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 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 554: |
Line 560: |
| | s | | | s |
| | rw | | | rw |
− | | Gyro sampling mode. Bits 0 and 1 control the gyro. If bits 0 or 1 are non-zero then gyro sampling is enabled. | + | | 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 580: |
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 588: |
Line 594: |
| |- | | |- |
| | X (left/right) | | | X (left/right) |
− | | held vertically | + | | held up vertically |
− | | rotated or tilted left | + | | rotated left 90° like a steering wheel |
− | | rotated or tilted right | + | | rotated right 90° like a steering wheel |
| |- | | |- |
| | Y (forwards/backwards) | | | Y (forwards/backwards) |
− | | laid flat | + | | laid flat on the desk with the screen facing up |
− | | held up | + | | held up vertically |
− | | helf up upside-down | + | | held up vertically with screen facing upside-down |
| |- | | |- |
| | Z (???) | | | Z (???) |
Line 684: |
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 693: |
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 764: |
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. |
| | | |