User Tools

Site Tools


uic_eeprom_structure

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
uic_eeprom_structure [2025/02/24 08:45] 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 12: Line 14:
 | 0x1101  | 32     | Wifi SSID (WiiUxxxx...) | | 0x1101  | 32     | Wifi SSID (WiiUxxxx...) |
 | 0x1121  | 1      | Wifi SSID length | | 0x1121  | 1      | Wifi SSID length |
-| 0x1122  | 1      | Wifi auth type0=open1=shared key (?) | +| 0x1122  | 1      | Wifi auth type 
-| 0x1123  | 1      | Wifi auth mode; 0=disabled0x01=none0x04=WPA0x80=WPA2 | +  0 = open 
-| 0x1124  | 1      | Wifi encryption0=none1=WEP2=TKIP3=AES |+  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 | | 0x1125  | 64     | Wifi passphrase |
 | 0x1165  | 1      | Wifi passphrase length | | 0x1165  | 1      | Wifi passphrase length |
 +| 0x1166  | 2      | Wifi country code |
 | 0x116B  | 2      | CRC16 over 0x1101..0x116A | | 0x116B  | 2      | CRC16 over 0x1101..0x116A |
 | 0x116D  | 16     | WoWL key | | 0x116D  | 16     | WoWL key |
Line 23: Line 39:
 | 0x118A  | 1      | Last wifi channel | | 0x118A  | 1      | Last wifi channel |
 | --      | --     | -- | | --      | --     | -- |
-0x1200  | 3      | Board info 1 | +0x11FD  1      | Layout of page 1 (should be 3) | 
-| 0x1203      | Region info 1 | +| 0x11FE  | 2      | CRC16 over 0x11FD | 
-| 0x121A      | Volume calibration 1 | +| --      | --     | -- | 
-| 0x121E 14     | Accelerometer calibration 2 | +| 0x1200  | 1      | Board info 1 
-| 0x122C 21     | Gyroscope calibration 1 | +| 0x1201  | 2      | CRC16 over 0x1200 
-| 0x1253 18     | Touchscreen calibration 2 |+| 0x1203      | Region info 1 
 +| 0x1204  | 2      | CRC16 over 0x1203 | 
 +| 0x1206  | 1      | Board config 1 | 
 +| 0x1207  | 2      | CRC16 over 0x1206 
 +| 0x121A      | 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 | | 0x1265  | 4      | Service version 2 |
 | 0x1269  | 2      | CRC16 over 0x1265..0x1268 | | 0x1269  | 2      | CRC16 over 0x1265..0x1268 |
 | --      | --     | -- | | --      | --     | -- |
-| 0x1280      | Board info 2 | +| 0x1280      | Board info 2 
-| 0x1283      | Region info 2 | +| 0x1281  | 2      | CRC16 over 0x1280 
-| 0x129A      | Volume calibration 2 | +| 0x1283      | Region info 2 
-| 0x129E 14     | Accelerometer calibration 3 | +| 0x1284  | 2      | CRC16 over 0x1283 | 
-| 0x12AC 21     | Gyroscope calibration 1 | +| 0x1286  | 1      | Board config 2 | 
-| 0x12D3 18     | Touchscreen calibration 3 |+| 0x1287  | 2      | CRC16 over 0x1286 
 +| 0x129A      | 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 | | 0x12E5  | 4      | Service version 3 |
 | 0x12E9  | 2      | CRC16 over 0x12E5..0x12E8 | | 0x12E9  | 2      | CRC16 over 0x12E5..0x12E8 |
 +| --      | --     | -- |
 +| 0x12FD  | 1      | Layout of page 2 (should be 5) |
 +| 0x12FE  | 2      | CRC16 over 0x12FD |
 | --      | --     | -- | | --      | --     | -- |
 | 0x1300  | 1      | Language | | 0x1300  | 1      | Language |
Line 47: Line 85:
 | 0x1306  | 1      | Development mode setting | | 0x1306  | 1      | Development mode setting |
 | 0x1307  | 2      | CRC16 over 0x1306 | | 0x1307  | 2      | CRC16 over 0x1306 |
-| 0x1313 14     | Accelerometer calibration 1 | +| 0x1313 12     | Accelerometer calibration 1 
-| 0x1344 18     | Touchscreen 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 | | 0x1356  | 1      | [[FLASH layout#Language bank|Language bank]] index |
 | 0x1357  | 2      | CRC16 over 0x1356 | | 0x1357  | 2      | CRC16 over 0x1356 |
Line 62: Line 102:
 | 0x1374  | 1      | Initial boot flag (?) | | 0x1374  | 1      | Initial boot flag (?) |
 | 0x1375  | 2      | CRC16 over 0x1374 | | 0x1375  | 2      | CRC16 over 0x1374 |
-| 0x1377 15     | LCD brightness levels |+| 0x1377 13     | LCD brightness levels 
 +| 0x1384  | 2      | CRC16 over 0x1377..0x1383 |
 | 0x1386  | 1      | LCD brightness setting | | 0x1386  | 1      | LCD brightness setting |
 | 0x1387  | 2      | CRC16 over 0x1386 | | 0x1387  | 2      | CRC16 over 0x1386 |
Line 70: Line 111:
 | 0x1396  | 1      | Airwave setting | | 0x1396  | 1      | Airwave setting |
 | 0x1397  | 2      | CRC16 over 0x1396 | | 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. 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.1740386758.txt.gz · Last modified: 2025/02/24 08:45 by arisotura

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki