uic_eeprom_structure
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
uic_eeprom_structure [2024/12/08 13:09] – created arisotura | uic_eeprom_structure [2025/04/18 09:54] (current) – arisotura | ||
---|---|---|---|
Line 4: | Line 4: | ||
The first 256 bytes are used internally, while the rest is used for user data storage. | The first 256 bytes are used internally, while the rest is used for user data storage. | ||
+ | |||
+ | https:// | ||
^ Address ^ Length ^ Description ^ | ^ Address ^ Length ^ Description ^ | ||
Line 9: | Line 11: | ||
| 0x1012 | | 0x1012 | ||
| 0x1013 | | 0x1013 | ||
+ | | -- | -- | -- | | ||
+ | | 0x1101 | ||
+ | | 0x1121 | ||
+ | | 0x1122 | ||
+ | 0 = open | ||
+ | 1 = shared key (?) | ||
+ | | | ||
+ | | 0x1123 | ||
+ | 0x00 = disabled | ||
+ | 0x01 = none | ||
+ | 0x04 = WPA | ||
+ | 0x80 = WPA2 | ||
+ | | | ||
+ | | 0x1124 | ||
+ | 0 = none | ||
+ | 1 = WEP | ||
+ | 2 = TKIP | ||
+ | 3 = AES | ||
+ | | | ||
+ | | 0x1125 | ||
+ | | 0x1165 | ||
+ | | 0x1166 | ||
+ | | 0x116B | ||
+ | | 0x116D | ||
+ | | 0x117F | ||
+ | | 0x1187 | ||
+ | | 0x118A | ||
+ | | -- | -- | -- | | ||
+ | | 0x11FD | ||
+ | | 0x11FE | ||
+ | | -- | -- | -- | | ||
+ | | 0x1200 | ||
+ | | 0x1201 | ||
+ | | 0x1203 | ||
+ | | 0x1204 | ||
+ | | 0x1206 | ||
+ | | 0x1207 | ||
+ | | 0x121A | ||
+ | | 0x121C | ||
+ | | 0x121E | ||
+ | | 0x122A | ||
+ | | 0x122C | ||
+ | | 0x123F | ||
+ | | 0x1253 | ||
+ | | 0x1263 | ||
+ | | 0x1265 | ||
+ | | 0x1269 | ||
+ | | -- | -- | -- | | ||
+ | | 0x1280 | ||
+ | | 0x1281 | ||
+ | | 0x1283 | ||
+ | | 0x1284 | ||
+ | | 0x1286 | ||
+ | | 0x1287 | ||
+ | | 0x129A | ||
+ | | 0x129C | ||
+ | | 0x129E | ||
+ | | 0x12AA | ||
+ | | 0x12AC | ||
+ | | 0x12BF | ||
+ | | 0x12D3 | ||
+ | | 0x12E3 | ||
+ | | 0x12E5 | ||
+ | | 0x12E9 | ||
+ | | -- | -- | -- | | ||
+ | | 0x12FD | ||
+ | | 0x12FE | ||
+ | | -- | -- | -- | | ||
+ | | 0x1300 | ||
+ | | 0x1301 | ||
+ | | 0x1303 | ||
+ | | 0x1304 | ||
+ | | 0x1306 | ||
+ | | 0x1307 | ||
+ | | 0x1313 | ||
+ | | 0x131F | ||
+ | | 0x1344 | ||
+ | | 0x1354 | ||
+ | | 0x1356 | ||
+ | | 0x1357 | ||
+ | | 0x1359 | ||
+ | | 0x135C | ||
+ | | 0x1360 | ||
+ | | 0x1362 | ||
+ | | 0x1366 | ||
+ | | 0x1368 | ||
+ | | 0x136C | ||
+ | | 0x136E | ||
+ | | 0x1372 | ||
+ | | 0x1374 | ||
+ | | 0x1375 | ||
+ | | 0x1377 | ||
+ | | 0x1384 | ||
+ | | 0x1386 | ||
+ | | 0x1387 | ||
+ | | 0x1389 | ||
+ | | 0x138E | ||
+ | | 0x1393 | ||
+ | | 0x1396 | ||
+ | | 0x1397 | ||
+ | | -- | -- | -- | | ||
+ | | 0x13FD | ||
+ | | 0x13FE | ||
+ | | -- | -- | -- | | ||
+ | | 0x1400 | ||
+ | | 0x1500 | ||
+ | | -- | -- | -- | | ||
+ | | 0x1580 | ||
+ | | 0x1680 | ||
+ | |||
+ | Data is stored in little-endian order. | ||
+ | |||
+ | When multiple regions exist for a given information (for example, board info), the first region with a correct CRC16 is selected. | ||
+ | |||
+ | |||
+ | ===== Board info ===== | ||
+ | |||
+ | Bit 0-3 of the board info value are the main version, while bit 4-7 are the sub version. | ||
+ | |||
+ | Main version: | ||
+ | * 0 = DK1 | ||
+ | * 1 = EP_DK2 | ||
+ | * 2 = DP1 | ||
+ | * 3 = DP2 | ||
+ | * 4 = DK3 | ||
+ | * 5 = DK4 | ||
+ | * 6 = DP3 | ||
+ | * 7 = DK5 | ||
+ | * 8 = DP4 | ||
+ | * 9 = DKMP | ||
+ | * 10 = DP5 | ||
+ | * 11 = MASS | ||
+ | * 12 = DKMP2 | ||
+ | * 13 = DRC_I | ||
+ | |||
+ | Sub version: | ||
+ | * 0 = DK1_EP_DK2 | ||
+ | * 1 = DP1_DK3 | ||
+ | * 2 = DK4 | ||
+ | * 3 = DP3 | ||
+ | * 4 = DK5 | ||
+ | * 5 = DP4 | ||
+ | * 6 = DKMP | ||
+ | * 7 = DP5 | ||
+ | * 8 = MASS | ||
+ | * 9 = DKMP2 | ||
+ | * 10 = DRC_I | ||
+ | |||
+ | |||
+ | ===== Region info ===== | ||
+ | |||
+ | * 0 = Japan | ||
+ | * 1 = North America | ||
+ | * 2 = Europe | ||
+ | * 3 = China | ||
+ | * 4 = South Korea | ||
+ | * 5 = Taiwan | ||
+ | * 6 = Australia | ||
+ | |||
+ | |||
+ | ===== Board config ===== | ||
+ | |||
+ | Value is 0x15 for retail boards. | ||
+ | |||
+ | If bit0-1 are any value other than 1, the gamepad will enter service mode upon boot. | ||
+ | |||
+ | |||
+ | ===== Language ===== | ||
+ | |||
+ | (0-3 = America, 4-11 = Europe) | ||
+ | |||
+ | * 0 = English | ||
+ | * 1 = French | ||
+ | * 2 = Spanish | ||
+ | * 3 = Portuguese | ||
+ | * 4 = English | ||
+ | * 5 = French | ||
+ | * 6 = Spanish | ||
+ | * 7 = Portuguese | ||
+ | * 8 = Dutch | ||
+ | * 9 = Italian | ||
+ | * 10 = German | ||
+ | * 11 = Russian | ||
+ | * 12 = Japanese | ||
+ | * 13 = Chinese (simplified) | ||
+ | * 14 = Korean | ||
+ | * 15 = Chinese (traditional) | ||
+ | |||
+ | |||
+ | ===== Volume calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 1 | Minimum volume | | ||
+ | | 0x01 | 1 | Maximum volume | | ||
+ | |||
+ | The minimum and maximum values are used to cap the reading from the volume slider within an acceptable range. | ||
+ | |||
+ | TODO: detail how that reading is converted to the final volume setting passed to the audio amplifier | ||
+ | |||
+ | |||
+ | ===== Gyroscope calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 3 | Zero X | | ||
+ | | 0x03 | 3 | Zero Y | | ||
+ | | 0x06 | 3 | Zero Z | | ||
+ | | 0x09 | 3 | Rotation X | | ||
+ | | 0x0C | 3 | Rotation Y | | ||
+ | | 0x0F | 3 | Rotation Z | | ||
+ | | 0x12 | 1 | Speed | | ||
+ | |||
+ | |||
+ | ===== Accelerometer calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 2 | 0G X | | ||
+ | | 0x02 | 2 | 0G Y | | ||
+ | | 0x04 | 2 | 0G Z | | ||
+ | | 0x06 | 2 | 1G X | | ||
+ | | 0x08 | 2 | 1G Y | | ||
+ | | 0x0A | 2 | 1G Z | | ||
+ | |||
+ | |||
+ | ===== Touchscreen calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 2 | Point 1 screen X | | ||
+ | | 0x02 | 2 | Point 1 screen Y | | ||
+ | | 0x04 | 2 | Point 2 screen X | | ||
+ | | 0x06 | 2 | Point 2 screen Y | | ||
+ | | 0x08 | 2 | Point 1 raw X | | ||
+ | | 0x0A | 2 | Point 1 raw Y | | ||
+ | | 0x0C | 2 | Point 2 raw X | | ||
+ | | 0x0E | 2 | Point 2 raw Y | | ||
+ | |||
+ | Raw coordinates are 12-bit TSC readings, while screen coordinates are their corresponding values in pixels. | ||
+ | |||
+ | Observed screen coordinates are: 53,30 802,451 | ||
+ | |||
+ | |||
+ | ===== LCD brightness levels ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 1 | Level 0 brightness level (setting A) | | ||
+ | | 0x01 | 1 | Level 0 frequency (setting B) | | ||
+ | | 0x02 | 1 | Level 1 brightness level | | ||
+ | | 0x03 | 1 | Level 1 frequency | | ||
+ | | 0x04 | 1 | Level 2 brightness level | | ||
+ | | 0x05 | 1 | Level 2 frequency | | ||
+ | | 0x06 | 1 | Level 3 brightness level | | ||
+ | | 0x07 | 1 | Level 3 frequency | | ||
+ | | 0x08 | 1 | Level 4 brightness level | | ||
+ | | 0x09 | 1 | Level 4 frequency | | ||
+ | | 0x0A | 1 | Level 5 brightness level | | ||
+ | | 0x0B | 1 | Level 5 frequency | | ||
+ | | 0x0C | 1 | Threshold level | | ||
+ | |||
+ | This table maps 6 predefined brightness levels to their adequate LCD parameters. See [[LCD# | ||
+ |
uic_eeprom_structure.1733663352.txt.gz · Last modified: 2024/12/08 13:09 by arisotura