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. |