Changes

Jump to navigation Jump to search
1,030 bytes added ,  21:24, 28 December 2019
Clarify where each gyroscope is used (although missing old3DSXL and non-XL new3DS)
Line 194: Line 194:  
| 0xa6
 
| 0xa6
 
| "i2c::HID"
 
| "i2c::HID"
| Unknown. The device table in I2C-module had the device address changed from 0xA6 to 0xD6 with [[8.0.0-18]].
+
| Debug(?) gyroscope. The device table in I2C-module had the device address changed from 0xA6 to 0xD6 with [[8.0.0-18]].
 
|-
 
|-
 
| 10
 
| 10
Line 200: Line 200:  
| 0xd0
 
| 0xd0
 
| "i2c::HID"
 
| "i2c::HID"
| Gyroscope
+
| Gyroscope (old3DS)
 
|-
 
|-
 
| 11
 
| 11
Line 206: Line 206:  
| 0xd2
 
| 0xd2
 
| "i2c::HID"
 
| "i2c::HID"
| ?
+
| Gyroscope (2DS, new3DSXL, new2DSXL)
 
|-
 
|-
 
| 12
 
| 12
Line 224: Line 224:  
| 0xa0
 
| 0xa0
 
| "i2c::EEP"
 
| "i2c::EEP"
| eeprom?
+
| HWCAL EEPROM ([[Hardware_calibration#Header|only present on dev units where SHA256 is used for HWCAL verification]])
 
|-
 
|-
 
| 15
 
| 15
Line 281: Line 281:  
| ds
 
| ds
 
| rw
 
| rw
| Top screen flicker
+
| Top screen Vcom
 
|-
 
|-
 
| 0x04
 
| 0x04
 
| ds
 
| ds
 
| rw
 
| rw
| Bottom screen flicker
+
| Bottom screen Vcom
 
|-
 
|-
 
| 0x05
 
| 0x05
Line 333: Line 333:  
| s
 
| s
 
| ro
 
| ro
| Flags: bit7-5 are read via [[MCU_Services|mcu::GPU]]. The rest of these are read via [[MCU_Services|mcu::RTC]]: bit4 = BatteryChargeState. bit3 = AdapterState. bit1 = ShellState.
+
| Flags: bit7-5 are read via [[MCU_Services|mcu::GPU]]. The rest of them are read via [[MCU_Services|mcu::RTC]].
 +
  bit01: ShellState
 +
  bit03: AdapterState
 +
  bit04: BatteryChargeState
 +
  bit05: Bottom screen backlight on
 +
  bit06: Top screen backlight on
 +
  bit07: GPU on(?)
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 371: Line 377:  
   bit11: ??? (accelerometer related)
 
   bit11: ??? (accelerometer related)
 
   bit12: HID update
 
   bit12: HID update
   bit13: Battery dead(?)
+
   bit13: Battery percentage status change (triggered at 10%, 5%, and 0% while discharging)
   bit14: Battery stop charging(?) (independent of charger state)
+
   bit14: Battery stopped charging (independent of charger state)
   bit15: Battery start charging(?)
+
   bit15: Battery started charging
 
Nonmaskable(?) interrupts
 
Nonmaskable(?) interrupts
 
   bit16: ???
 
   bit16: ???
Line 380: Line 386:  
   bit23: ??? Register 0x0E update
 
   bit23: ??? Register 0x0E update
 
   bit24: ??? (the off event for below bit)
 
   bit24: ??? (the off event for below bit)
   bit25: ??? (triggered when something related to the GPU is turned on)
+
   bit25: ??? (triggered when something related to the GPU is turned on, most likely backlight)
 
   bit26: ??? (???)
 
   bit26: ??? (???)
 
   bit27: ??? (???)
 
   bit27: ??? (???)
 
   bit28: ??? (???)
 
   bit28: ??? (???)
   bit29: Battery percentage status change (triggered at 10%, 5%, and 0% while discharging)
+
   bit29: ??? backlight on?
 
   bit30: bit set by mcu sysmodule
 
   bit30: bit set by mcu sysmodule
 
   bit31: bit set by mcu sysmodule
 
   bit31: bit set by mcu sysmodule
Line 456: Line 462:  
| 0x29
 
| 0x29
 
| sd(5)
 
| sd(5)
| rw
+
| ??
| Power LED state + some extra data
+
| Power mode indicator state (read-write)
 +
  1 = forced default blue
 +
  2 = sleep mode animation
 +
  3 = "power off" mode
 +
  4 = disable blue power LED and turn on red power LED
 +
  5 = disable red power LED and turn on blue power LED
 +
  6 = animate blue power LED off and flash red power LED
 +
  anything else = automatic mode
 +
The other 4 bytes (32bits) affect the pattern of the red power LED (write only)
 
|-
 
|-
 
| 0x2A
 
| 0x2A
Line 471: Line 485:  
   1 = slowly blinking
 
   1 = slowly blinking
 
   2 = constantly on
 
   2 = constantly on
 +
  3 = "TWL" mode
 
   4 = flash once
 
   4 = flash once
 
   5 = delay before changing to 2
 
   5 = delay before changing to 2
Line 517: Line 532:  
| rw
 
| rw
 
| RTC alarm registers
 
| RTC alarm registers
   byte 0: minutes(???)
+
   byte 0: minutes
   byte 1: hours(???)
+
   byte 1: hours
 
   byte 2: day
 
   byte 2: day
 
   byte 3: month
 
   byte 3: month
Line 545: Line 560:  
| s
 
| s
 
| rw
 
| rw
| Pedometer state (?)
+
| Tilt sensor sampling mode. Bits 0 and 1 control the mode. If bits 0 or 1 are set then the tilt sensor is enabled and sampled.
 
|-
 
|-
 
| 0x41
 
| 0x41
Line 565: Line 580:  
| s
 
| s
 
| rw
 
| rw
| ???, accelometer related
+
| ???, pedoometer related(?)
 
|-
 
|-
 
| 0x45
 
| 0x45
Line 571: Line 586:  
| s
 
| s
 
| ro
 
| ro
| Gyroscope 3D rotation from the 12bit ADC, left shifted 4 to fit in a 16bit signed short
+
| Tilt sensor 3D rotation from the 12bit ADC, left shifted 4 to fit in a 16bit signed short, relative to the 3DS bottom screen
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  AXIS
 
!  AXIS
Line 578: Line 593:  
!  V=0xC0  
 
!  V=0xC0  
 
|-
 
|-
| Y (=roll)
+
| X (left/right)
| held vertically
+
| held up vertically
| vertical right side
+
| rotated left 90° like a steering wheel
| vertical left side
+
| rotated right 90° like a steering wheel
 +
|-
 +
| Y (forwards/backwards)
 +
| laid flat on the desk with the screen facing up
 +
| held up vertically
 +
| held up vertically with screen facing upside-down
 
|-
 
|-
| Z? (=yaw)
+
| Z (???)
| ???
  −
| ???
   
| ???
 
| ???
|-
  −
| X? (=pitch)
  −
| held vertically
   
| ???
 
| ???
 
| ???
 
| ???
Line 675: Line 690:  
| d(9-0x13)
 
| d(9-0x13)
 
| ro
 
| ro
| Various system state information.
+
| Various system state information (debug pointer table)
 
   byte 0x06: battery related? (seems to decrease while charging and increase while discharging)
 
   byte 0x06: battery related? (seems to decrease while charging and increase while discharging)
 
   byte 0x09: system model (see [[Cfg:GetSystemModel#System_Model_Values|Cfg:GetSystemModel]] for values)
 
   byte 0x09: system model (see [[Cfg:GetSystemModel#System_Model_Values|Cfg:GetSystemModel]] for values)
   byte 0x0A: power LED related? 0 is off, 1 is red
+
   byte 0x0A: Red Power LED mode (0 = off, 1 = on)
 +
  byte 0x0B: Blue Power LED intensity  (0x00 - 0xFF)
 
   byte 0x0D: RGB LED red intensity
 
   byte 0x0D: RGB LED red intensity
 
   byte 0x0E: RGB LED green intensity
 
   byte 0x0E: RGB LED green intensity
Line 684: Line 700:  
   byte 0x11: WiFi LED brightness
 
   byte 0x11: WiFi LED brightness
 
   byte 0x12: raw button states?
 
   byte 0x12: raw button states?
     bit0: unset while power button is held
+
     bit0: unset while Power button is held
     bit1: unset while home button is held
+
     bit1: unset while HOME button is held
     bit2: unset while Wifi slider is held
+
     bit2: unset while WiFi slider is held
 
     bit5: unset while the charging LED is active
 
     bit5: unset while the charging LED is active
 
     bit6: unset while charger is plugged in
 
     bit6: unset while charger is plugged in
   
  −
    this byte is reset to 0 before an svcBreak takes effect
      
On MCU_FIRM major version 1 the size of this is 9, reading past the 9th byte will yield AA instead of FF.
 
On MCU_FIRM major version 1 the size of this is 9, reading past the 9th byte will yield AA instead of FF.
Line 755: Line 769:     
== Device 10 ==
 
== Device 10 ==
 +
See the datasheet linked to on the [[Hardware]] page for reference.
 +
 +
== Device 11 ==
 
See the datasheet linked to on the [[Hardware]] page for reference.
 
See the datasheet linked to on the [[Hardware]] page for reference.
  
215

edits

Navigation menu