User Tools

Site Tools


uic_eeprom_structure

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
uic_eeprom_structure [2024/12/08 13:09] – created arisoturauic_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://bitbucket.org/memahaxx/libdrc/src/master/src/device-config.cpp for more info.
  
 ^ Address ^ Length ^ Description ^ ^ Address ^ Length ^ Description ^
Line 9: Line 11:
 | 0x1012  | 1      | ?? | | 0x1012  | 1      | ?? |
 | 0x1013  | 1      | LED status when no firmware installed -- 1=red 2=amber 0/x=none | | 0x1013  | 1      | LED status when no firmware installed -- 1=red 2=amber 0/x=none |
 +| --      | --     | -- |
 +| 0x1101  | 32     | Wifi SSID (WiiUxxxx...) |
 +| 0x1121  | 1      | Wifi SSID length |
 +| 0x1122  | 1      | Wifi auth type
 +  0 = open
 +  1 = shared key (?) 
 +|
 +| 0x1123  | 1      | Wifi auth mode
 +  0x00 = disabled
 +  0x01 = none
 +  0x04 = WPA
 +  0x80 = WPA2 
 +|
 +| 0x1124  | 1      | Wifi encryption
 +  0 = none
 +  1 = WEP
 +  2 = TKIP
 +  3 = AES
 +|
 +| 0x1125  | 64     | Wifi passphrase |
 +| 0x1165  | 1      | Wifi passphrase length |
 +| 0x1166  | 2      | Wifi country code |
 +| 0x116B  | 2      | CRC16 over 0x1101..0x116A |
 +| 0x116D  | 16     | WoWL key |
 +| 0x117F  | 6      | WoWL MAC |
 +| 0x1187  | 1      | WoWL setting (?) |
 +| 0x118A  | 1      | Last wifi channel |
 +| --      | --     | -- |
 +| 0x11FD  | 1      | Layout of page 1 (should be 3) |
 +| 0x11FE  | 2      | CRC16 over 0x11FD |
 +| --      | --     | -- |
 +| 0x1200  | 1      | Board info 1 |
 +| 0x1201  | 2      | CRC16 over 0x1200 |
 +| 0x1203  | 1      | Region info 1 |
 +| 0x1204  | 2      | CRC16 over 0x1203 |
 +| 0x1206  | 1      | Board config 1 |
 +| 0x1207  | 2      | CRC16 over 0x1206 |
 +| 0x121A  | 2      | Volume calibration 1 |
 +| 0x121C  | 2      | CRC16 over 0x121A..0x121B |
 +| 0x121E  | 12     | Accelerometer calibration 2 |
 +| 0x122A  | 2      | CRC16 over 0x121E..0x1229 |
 +| 0x122C  | 19     | Gyroscope calibration 1 |
 +| 0x123F  | 2      | CRC16 over 0x122C..0x123E |
 +| 0x1253  | 16     | Touchscreen calibration 2 |
 +| 0x1263  | 2      | CRC16 over 0x1253..0x1262 |
 +| 0x1265  | 4      | Service version 2 |
 +| 0x1269  | 2      | CRC16 over 0x1265..0x1268 |
 +| --      | --     | -- |
 +| 0x1280  | 1      | Board info 2 |
 +| 0x1281  | 2      | CRC16 over 0x1280 |
 +| 0x1283  | 1      | Region info 2 |
 +| 0x1284  | 2      | CRC16 over 0x1283 |
 +| 0x1286  | 1      | Board config 2 |
 +| 0x1287  | 2      | CRC16 over 0x1286 |
 +| 0x129A  | 2      | Volume calibration 2 |
 +| 0x129C  | 2      | CRC16 over 0x129A..0x129B |
 +| 0x129E  | 12     | Accelerometer calibration 3 |
 +| 0x12AA  | 2      | CRC16 over 0x129E..0x12A9 |
 +| 0x12AC  | 19     | Gyroscope calibration 1 |
 +| 0x12BF  | 2      | CRC16 over 0x12AC..0x12BE |
 +| 0x12D3  | 16     | Touchscreen calibration 3 |
 +| 0x12E3  | 2      | CRC16 over 0x12D3..0x12E2 |
 +| 0x12E5  | 4      | Service version 3 |
 +| 0x12E9  | 2      | CRC16 over 0x12E5..0x12E8 |
 +| --      | --     | -- |
 +| 0x12FD  | 1      | Layout of page 2 (should be 5) |
 +| 0x12FE  | 2      | CRC16 over 0x12FD |
 +| --      | --     | -- |
 +| 0x1300  | 1      | Language |
 +| 0x1301  | 2      | CRC16 over 0x1300 |
 +| 0x1303  | 1      | Opening screen index |
 +| 0x1304  | 2      | CRC16 over 0x1303 |
 +| 0x1306  | 1      | Development mode setting |
 +| 0x1307  | 2      | CRC16 over 0x1306 |
 +| 0x1313  | 12     | Accelerometer calibration 1 |
 +| 0x131F  | 2      | CRC16 over 0x1313..0x131E |
 +| 0x1344  | 16     | Touchscreen calibration 1 |
 +| 0x1354  | 2      | CRC16 over 0x1344..0x1353 |
 +| 0x1356  | 1      | [[FLASH layout#Language bank|Language bank]] index |
 +| 0x1357  | 2      | CRC16 over 0x1356 |
 +| 0x1359  | 1      | Language version (together with CRC16 bytes) |
 +| 0x135C  | 4      | Remote control data version |
 +| 0x1360  | 2      | CRC16 over 0x135C |
 +| 0x1362  | 4      | Service version 1 |
 +| 0x1366  | 2      | CRC16 over 0x1362..0x1365 |
 +| 0x1368  | 4      | Opening screen 1 version |
 +| 0x136C  | 2      | CRC16 over 0x1368..0x136B |
 +| 0x136E  | 4      | Opening screen 2 version |
 +| 0x1372  | 2      | CRC16 over 0x136E..0x1371 |
 +| 0x1374  | 1      | Initial boot flag (?) |
 +| 0x1375  | 2      | CRC16 over 0x1374 |
 +| 0x1377  | 13     | LCD brightness levels |
 +| 0x1384  | 2      | CRC16 over 0x1377..0x1383 |
 +| 0x1386  | 1      | LCD brightness setting |
 +| 0x1387  | 2      | CRC16 over 0x1386 |
 +| 0x1389  | 5      | Remote control ID 1 |
 +| 0x138E  | 5      | Remote control ID 2 |
 +| 0x1393  | 2      | CRC16 over 0x1389..0x1392 |
 +| 0x1396  | 1      | Airwave setting |
 +| 0x1397  | 2      | CRC16 over 0x1396 |
 +| --      | --     | -- |
 +| 0x13FD  | 1      | Layout of page 3 (should be 4) |
 +| 0x13FE  | 2      | CRC16 over 0x13FD |
 +| --      | --     | -- |
 +| 0x1400  | 256    | ??? |
 +| 0x1500  | 2      | CRC16 over 0x1400-0x14FF |
 +| --      | --     | -- |
 +| 0x1580  | 256    | ??? |
 +| 0x1680  | 2      | CRC16 over 0x1580-0x167F |
 +
 +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#Setting_the_brightness|the LCD page]] for information as to how these settings are used.
 +
uic_eeprom_structure.1733663352.txt.gz · Last modified: 2024/12/08 13:09 by arisotura

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki