Changes

→‎Device 3: MCU bit 11: Accelerometer status
Line 342: Line 342:  
| ro
 
| ro
 
| Flags: bit7-5 are read via [[MCU_Services|mcu::GPU]]. The rest of them are read via [[MCU_Services|mcu::RTC]].
 
| Flags: bit7-5 are read via [[MCU_Services|mcu::GPU]]. The rest of them are read via [[MCU_Services|mcu::RTC]].
   bit01: ShellState
+
   bit1: ShellState
   bit03: AdapterState
+
   bit3: AdapterState
   bit04: BatteryChargeState
+
   bit4: BatteryChargeState
   bit05: Bottom screen backlight on
+
   bit5: Bottom screen backlight on
   bit06: Top screen backlight on
+
   bit6: Top screen backlight on
   bit07: GPU on(?)
+
   bit7: LCD panel voltage on
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 383: Line 383:  
   bit09: Charger plugged in
 
   bit09: Charger plugged in
 
   bit10: RTC alarm (when some conditions are met it's sent when the current day and month and year matches the current RTC time)
 
   bit10: RTC alarm (when some conditions are met it's sent when the current day and month and year matches the current RTC time)
   bit11: ??? (accelerometer related)
+
   bit11: Accelerometer I2C read/write done [https://github.com/profi200/libn3ds/blob/083c8ffa3f56a49802fa74b6afe45a96820f0439/include/arm11/drivers/mcu_regmap.h#L124]
 
   bit12: HID update
 
   bit12: HID update
 
   bit13: Battery percentage status change (triggered at 10%, 5%, and 0% while discharging)
 
   bit13: Battery percentage status change (triggered at 10%, 5%, and 0% while discharging)
Line 442: Line 442:  
| d
 
| d
 
| wo
 
| wo
| Used to set LCD states
+
| Used to turn on or turn off LCD-related boost circuits. Bits 5:2 can be read back so see whether backlight setting is in progress or not, however bits 1:0 get cleared as soon as the request gets acknowledged.
   bit0: don't push to LCDs
+
   bit0: LCD panel voltage off
   bit1: push to LCDs
+
   bit1: LCD panel voltage on
   bit2: bottom screen backlight off
+
   bit2: Bottom screen backlight off
   bit3: bottom screen backlight on
+
   bit3: Bottom screen backlight on
   bit4: top screen backlight off
+
   bit4: Top screen backlight off
   bit5: top screen backlight on
+
   bit5: Top screen backlight on
    
Bits 4 and 5 have no effect on a 2DS because the backlight source is the bottom screen.
 
Bits 4 and 5 have no effect on a 2DS because the backlight source is the bottom screen.
Line 834: Line 834:  
| Controller ID
 
| Controller ID
 
|  
 
|  
| Upper 4bits is manufacturer. Lower 4bits is unknown, most likely revision, possibly encoded as a Johnson counter.
+
| Upper 4bits is manufacturer. Lower 4bits is unknown, most likely revision, possibly encoded as a Johnson counter. The fields are encoded this way, most likely for the register checksum feature.
 +
 
 +
Manufacturers:
 +
  - 0x0 - SHARP (LTPS(?) TN), old I2CLCD, found in old3DS (non-XL) only
 +
  - 0x1 - JDI (LTPS IPS), found in select new3DS and new3DSXL consoles
 +
  - 0xC - SHARP (LTPS(?) TN), new I2CLCD
 +
  - 0xE - SHARP (TFT), found in 2DS only
    
Known IDs:
 
Known IDs:
Line 840: Line 846:  
   - 0xC3 - older old3DSXL
 
   - 0xC3 - older old3DSXL
 
   - 0xE1 - 2DS
 
   - 0xE1 - 2DS
 +
    - LQ050B1LW10B
 +
      - LQ = normal TFT
 +
      - 050 = panel 5 inches diagonal
 +
      - B = "other" display format
 +
      - 1 = transmissive (backlight-compatible)
 +
      - L = LVDS
 +
      - W = *unknown coating type*
 +
      - 10 = model number
 +
      - B = *unknown suffix*
 
   - 0x10 - some select new3DS and new3DSXL with IPS screens
 
   - 0x10 - some select new3DS and new3DSXL with IPS screens
 
   - 0x01 - old3DS
 
   - 0x01 - old3DS
  - 0x00 - unknown, gsp compares for this exact Controller ID for an alternate initialization path
+
    - LS035T7LE38P (top screen)
 
+
      - LS = TFT (LTPS or SI-TFT ?)
Manufacturers:
+
      - 035 = panel 3.5 inches diagonal
  - 0xC - SHARP (TN)
+
      - T = "other 16:9" (even though the panel is 16:10 in physical size, or 32:10 in terms of pixel count)
  - 0x1 - JDI (LTPS IPS), found in select new3DS and new3DSXL consoles
+
      - 7 = *unknown backing type*
  - 0xE - unknown, found in 2DS only
+
      - L = LVDS
   - 0x0 - unknown, found in old3DS (non-XL) only
+
      - E = *unknown coating type*
 +
      - 38 = model number
 +
      - P = *unknow suffix*
 +
    - LS030Q7DW48P (bottom screen)
 +
      - LS = TFT (LTPS or SI-TFT ?)
 +
      - 030 = panel 3 inches diagonal
 +
      - Q = QVGA (320x240)
 +
      - 7 = *unknown backing type*
 +
      - D = parallel RGB (unspecified, but it's known to be RGB888 for this display)
 +
      - W = *unknown coating type*
 +
      - 48 = model number
 +
      - P = *unknow suffix*
 +
   - 0x00 - no controller, or dead (I2CLCD always ACKs reads, but returns 00 if dead)
 
|}
 
|}
      
=== Custom registers for controller 0x00 ===
 
=== Custom registers for controller 0x00 ===