<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://kuribo64.net/wup/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://kuribo64.net/wup/feed.php">
        <title>WiiU Gamepad Technical Documentation</title>
        <description></description>
        <link>https://kuribo64.net/wup/</link>
        <image rdf:resource="https://kuribo64.net/wup/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-10T08:13:02+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=accelerometer&amp;rev=1735055473&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=audio_amplifier&amp;rev=1742597650&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=audio_controller&amp;rev=1742595410&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=camera_controller&amp;rev=1747482642&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=compass&amp;rev=1735055594&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=dma&amp;rev=1745176212&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=flash_layout&amp;rev=1737319349&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=fpgapad&amp;rev=1742425146&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=general_registers&amp;rev=1760562997&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=gpio&amp;rev=1760564232&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=gyroscope&amp;rev=1735055818&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=h264_codec&amp;rev=1748197871&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=hardware_overview&amp;rev=1737407083&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=i2c&amp;rev=1745149872&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=irq_controller&amp;rev=1747434791&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=lcd&amp;rev=1742138781&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=lcd_controller&amp;rev=1757024982&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=memory_map&amp;rev=1747238155&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=mystery_registers&amp;rev=1745617349&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=pinouts&amp;rev=1746990480&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=pmic&amp;rev=1743712236&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=register_map&amp;rev=1745189150&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=sdio&amp;rev=1744835043&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=spi&amp;rev=1744904652&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=start&amp;rev=1747432706&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=test_points&amp;rev=1747147315&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=timers&amp;rev=1744552262&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=touchscreen_controller&amp;rev=1735055350&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=uart&amp;rev=1746878125&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=uic&amp;rev=1744977615&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=uic_eeprom_structure&amp;rev=1744970056&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=uic_firmware_re_notes&amp;rev=1733664272&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=uic_internals&amp;rev=1729424116&amp;do=diff"/>
                <rdf:li rdf:resource="https://kuribo64.net/wup/doku.php?id=wifi&amp;rev=1739878612&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://kuribo64.net/wup/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>WiiU Gamepad Technical Documentation</title>
        <link>https://kuribo64.net/wup/</link>
        <url>https://kuribo64.net/wup/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=accelerometer&amp;rev=1735055473&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-24T15:51:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>accelerometer</title>
        <link>https://kuribo64.net/wup/doku.php?id=accelerometer&amp;rev=1735055473&amp;do=diff</link>
        <description>Accelerometer

The accelerometer is a STMicroelectronics LIS3DH (marking C3H). It is connected to the UIC over SPI.

Vendor datasheet</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=audio_amplifier&amp;rev=1742597650&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-21T22:54:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>audio_amplifier</title>
        <link>https://kuribo64.net/wup/doku.php?id=audio_amplifier&amp;rev=1742597650&amp;do=diff</link>
        <description>Audio amplifier

The audio amplifier used in the gamepad is a Texas Instruments TLV320AIC3012.

No datasheet for it has been found, though there is a datasheet for the TLV320AIC3100, which appears to be a close match.

Clock generation

The amplifier&#039;s input clock (MCLK) is sourced from</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=audio_controller&amp;rev=1742595410&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-21T22:16:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>audio_controller</title>
        <link>https://kuribo64.net/wup/doku.php?id=audio_controller&amp;rev=1742595410&amp;do=diff</link>
        <description>Audio controller

The audio controller has two main components: output (playing sound to the internal speakers or headphone jack) and input (recording sound from the internal microphone). It supports PCM16 and A-law or µ-law encoded PCM8. Sound output can be mono or stereo, input is always mono.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=camera_controller&amp;rev=1747482642&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-17T11:50:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>camera_controller</title>
        <link>https://kuribo64.net/wup/doku.php?id=camera_controller&amp;rev=1747482642&amp;do=diff</link>
        <description>Camera controller

NOTE: this is a findings dump for now. It is unclear what is what, so there may be stuff pertaining to the h264 codec in here. Not sure how interwoven it is with the camera controller.

Known registers:
 Address     Desc.  0xF0000800</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=compass&amp;rev=1735055594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-24T15:53:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>compass</title>
        <link>https://kuribo64.net/wup/doku.php?id=compass&amp;rev=1735055594&amp;do=diff</link>
        <description>Compass

The compass is a STMicroelectronics chip with marking MSA3D. It is not yet known what it is or whether it is a custom chip. The magnetic sensors are external to it.

It is connected to the UIC over SPI.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=dma&amp;rev=1745176212&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-20T19:10:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dma</title>
        <link>https://kuribo64.net/wup/doku.php?id=dma&amp;rev=1745176212&amp;do=diff</link>
        <description>DMA

The gamepad features 5 DMA channels. The first two channels are intended for communication with peripherals such as SPI and IR, while the three last are general DMA channels suitable for uses such as blitting graphics to the framebuffer.

The base I/O addresses for the DMA channels are as follows:</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=flash_layout&amp;rev=1737319349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-19T20:42:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>flash_layout</title>
        <link>https://kuribo64.net/wup/doku.php?id=flash_layout&amp;rev=1737319349&amp;do=diff</link>
        <description>FLASH layout

The gamepad&#039;s firmware data is stored in a 32MB FLASH memory. This page describes the layout of the data in that memory.

Memory map
 Address    Internal name  Description  0x0000000  SPL            Second-stage bootloader  0x000E000  ErrorLog</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=fpgapad&amp;rev=1742425146&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-19T22:59:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fpgapad</title>
        <link>https://kuribo64.net/wup/doku.php?id=fpgapad&amp;rev=1742425146&amp;do=diff</link>
        <description>FPGApad



The FPGApad is Arisotura&#039;s modified WiiU gamepad, which serves for reverse-engineering and development purposes. This page is intended to document the FPGApad and provide a blueprint for anyone wanting to attempt a similar mod.

Reason

On a stock gamepad, the firmware can only be updated over wifi. Since the firmware runs on the bare metal, you need a functional firmware to do anything, including uploading new code to the gamepad. This excludes any sort of reverse-engineering work be…</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=general_registers&amp;rev=1760562997&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-15T21:16:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>general_registers</title>
        <link>https://kuribo64.net/wup/doku.php?id=general_registers&amp;rev=1760562997&amp;do=diff</link>
        <description>General registers
 Address     Desc.  0xF0000000  Hardware ID  0xF0000004  Soft reset  0xF0000008  Hardware setup  0xF000000C  PLL - input clock divider  0xF0000010  PLL - clock multiplier  0xF0000014  PLL - primary clock divider  0xF0000018  PLL - secondary clock 1 divider</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=gpio&amp;rev=1760564232&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-15T21:37:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gpio</title>
        <link>https://kuribo64.net/wup/doku.php?id=gpio&amp;rev=1760564232&amp;do=diff</link>
        <description>GPIO

The GPIO registers allow direct control over the SoC&#039;s I/O lines.

Here is a list of the known GPIO registers, as well as the values the stock firmware initializes them to.
 Address     Mask    Init.    Desc.  0xF000502C  0xC000  0x8000   ? (could be LCD pixel clock?)</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=gyroscope&amp;rev=1735055818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-24T15:56:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gyroscope</title>
        <link>https://kuribo64.net/wup/doku.php?id=gyroscope&amp;rev=1735055818&amp;do=diff</link>
        <description>Gyroscope

The gyroscope is an InvenSense ITG-3280. It is connected to the UIC over SPI.

No datasheet for it has been found, but there is the following datasheet for the ITG-3200.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=h264_codec&amp;rev=1748197871&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-25T18:31:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>h264_codec</title>
        <link>https://kuribo64.net/wup/doku.php?id=h264_codec&amp;rev=1748197871&amp;do=diff</link>
        <description>H264 codec

The gamepad features a hardware H264 codec. It can decode a video feed to the screen, and encode the video feed from the camera.

Register map:
 Address     Desc.  0xF0008404  ???  0xF0008408  ???  0xF000840C  ???  0xF0008410  ???  0xF0008414</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=hardware_overview&amp;rev=1737407083&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-20T21:04:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>hardware_overview</title>
        <link>https://kuribo64.net/wup/doku.php?id=hardware_overview&amp;rev=1737407083&amp;do=diff</link>
        <description>Hardware overview

Motherboard revisions

There are atleast two known revisions of the WiiU gamepad motherboard.

Revision 01 (PWB/MAIN/AU/HF-C/DH-01) is the most common.

Revision 20 (DRC-MAIN-20) is possibly an earlier motherboard revision. The most notable difference is that the speakers are soldered directly to the motherboard instead of using connectors. There are also other minor hardware differences, the full extent of which isn&#039;t known yet.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=i2c&amp;rev=1745149872&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-20T11:51:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>i2c</title>
        <link>https://kuribo64.net/wup/doku.php?id=i2c&amp;rev=1745149872&amp;do=diff</link>
        <description>I2C

The I2C interface connects the LCD, audio amplifier and camera to the CPU.

There are two possible I2C controllers. If the LSB of register 0xF0000000 is 0x41, the gamepad has the Samsung controller, otherwise it has the Renesas controller.

In practice, I have only seen Renesas controllers so far, so I don&#039;t know how rare the Samsung one is. Considering that the I2C controller is part of the SoC, it is likely that the Samsung controller is solely prototype stuff. As further evidence, the di…</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=irq_controller&amp;rev=1747434791&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-16T22:33:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>irq_controller</title>
        <link>https://kuribo64.net/wup/doku.php?id=irq_controller&amp;rev=1747434791&amp;do=diff</link>
        <description>IRQ controller

The IRQ controller is presumably able to schedule and distribute IRQs based on a priority order.

Registers

The IRQ controller has the following registers:
 Address           Desc.  0xF0001200        Shorthand IRQ enable for IRQ 0x00..0x0F</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=lcd&amp;rev=1742138781&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-16T15:26:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lcd</title>
        <link>https://kuribo64.net/wup/doku.php?id=lcd&amp;rev=1742138781&amp;do=diff</link>
        <description>LCD

The gamepad&#039;s LCD is connected to the I2C interface: bus 3, device 0x39.

Initialization

Before displaying anything, the LCD must be initialized with the following sequence.

First, configure the LCD GPIO (at 0xF0005100) as an output, by setting it to 0xC200. Then set it to zero (0xC200), wait atleast 5 milliseconds, set it to one (0xC300), wait atleast 15 milliseconds. This sequence seems to prepare the LCD for I2C communication.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=lcd_controller&amp;rev=1757024982&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-04T22:29:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lcd_controller</title>
        <link>https://kuribo64.net/wup/doku.php?id=lcd_controller&amp;rev=1757024982&amp;do=diff</link>
        <description>LCD controller

The gamepad provides simple display hardware that can display a video feed (from the camera or the H264 decoder) and a framebuffer overlay on top.

Register map:
 Address     Desc.  0xF0009400  Horizontal timing control  0xF0009404  Vertical timing control</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=memory_map&amp;rev=1747238155&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-14T15:55:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>memory_map</title>
        <link>https://kuribo64.net/wup/doku.php?id=memory_map&amp;rev=1747238155&amp;do=diff</link>
        <description>Memory map

The gamepad has a pretty simple memory map.
 Start       End         Desc.           0x00000000  0x3FFFFFFF  main RAM (4MB, mirrored)  0x00000000  0x00000FFF  boot ROM overlay  0xE0010000  0xE001FFFF  SDIO registers (256 bytes, mirrored)</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=mystery_registers&amp;rev=1745617349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-25T21:42:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mystery_registers</title>
        <link>https://kuribo64.net/wup/doku.php?id=mystery_registers&amp;rev=1745617349&amp;do=diff</link>
        <description>Mystery registers

The various bits and parts of the gamepad hardware that haven&#039;t been connected to something bigger.

Registers

0xF0000C00


reg F0000C24 -&gt; 00000001 (old 00000001)
reg F0000C30 -&gt; 00000007 (old 00000007)
reg F0000C34 -&gt; 00000007 (old 00000006)
reg F0000C38 -&gt; 00000007 (old 00000005)
reg F0000C3C -&gt; 00000007 (old 00000004)
reg F0000C40 -&gt; 00000007 (old 00000007)
reg F0000C44 -&gt; 00000007 (old 00000005)
reg F0000C48 -&gt; 00000007 (old 00000003)
reg F0000C4C -&gt; 00000007 (old 000000…</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=pinouts&amp;rev=1746990480&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-11T19:08:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pinouts</title>
        <link>https://kuribo64.net/wup/doku.php?id=pinouts&amp;rev=1746990480&amp;do=diff</link>
        <description>Pinouts

Known pinouts for the various ICs and connectors on the Gamepad motherboard.

DRC-WUP
 Ball  1  2  3  4  5  6  7  8  9  10  11  12  13  14  A  x  GND  1v behind EM19  GND behind EM20  2v7 behind EM14  to Screen  to Screen  to Screen  to Screen</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=pmic&amp;rev=1743712236&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-03T20:30:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pmic</title>
        <link>https://kuribo64.net/wup/doku.php?id=pmic&amp;rev=1743712236&amp;do=diff</link>
        <description>PMIC

The gamepad&#039;s power management IC is a Texas Instruments SN1010007. So far no datasheet has been found.

It is connected to the UIC&#039;s I2C bus, where its device ID is 0x48.

Pinout
 Pin  Desc.  1    ??  2    ??  3    ??  4    ??  5    Battery pin 1 (red)</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=register_map&amp;rev=1745189150&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-20T22:45:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>register_map</title>
        <link>https://kuribo64.net/wup/doku.php?id=register_map&amp;rev=1745189150&amp;do=diff</link>
        <description>Register map

This page lists all the known I/O registers.

&#039;Mask&#039; is the value read back after writing 0xFFFFFFFF to the register. This doesn&#039;t account for read-only or write-only bits, but gives a basic idea of the register&#039;s layout. Similarly, some registers might be missing because they were reading as zero.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=sdio&amp;rev=1744835043&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-16T20:24:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sdio</title>
        <link>https://kuribo64.net/wup/doku.php?id=sdio&amp;rev=1744835043&amp;do=diff</link>
        <description>SDIO

The gamepad includes a SDIO host controller to access the BCM4319 wifi card.

Registers

The SDIO host controller registers are at 0xE0010000. They occupy a 256-byte block which is mirrored across the entire 0xE0010000-0xE001FFFF range.
 Address</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=spi&amp;rev=1744904652&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-17T15:44:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>spi</title>
        <link>https://kuribo64.net/wup/doku.php?id=spi&amp;rev=1744904652&amp;do=diff</link>
        <description>SPI

The SPI bus connects the gamepad storage (Flash memory) and the UIC to the CPU.

SPI controller

The gamepad uses a pretty simple SPI controller with 16-byte FIFOs for reading and writing. Due to the way this is designed, one has to be mindful to avoid FIFO overflows/underflows during a SPI transfer.</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=start&amp;rev=1747432706&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-16T21:58:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://kuribo64.net/wup/doku.php?id=start&amp;rev=1747432706&amp;do=diff</link>
        <description>WiiU Gamepad Technical Documentation

The aim is to document the inner workings of the WiiU Gamepad.

This is still largely a work in progress.

Hardware documentation

	*  Hardware overview
	*  Memory map
	*  Register map
	*  General registers
	*  IRQ controller
	*  GPIO
	*  Timers
	*  DMA
	*  SPI
	*  UART
	*  I2C
	*  LCD controller
	*  LCD
	*  Audio controller
	*  Audio amplifier
	*  Camera controller
	*</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=test_points&amp;rev=1747147315&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-13T14:41:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>test_points</title>
        <link>https://kuribo64.net/wup/doku.php?id=test_points&amp;rev=1747147315&amp;do=diff</link>
        <description>Test points

The Gamepad&#039;s motherboard features many test points.




TODO: make a picture with the test points labelled, maybe interactive

The following test points have been identified so far:
 Test point  Description  TP3         Right speaker +</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=timers&amp;rev=1744552262&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-13T13:51:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>timers</title>
        <link>https://kuribo64.net/wup/doku.php?id=timers&amp;rev=1744552262&amp;do=diff</link>
        <description>Timers

The gamepad has the following timer registers: (TODO word better)
 Address     Desc.  0xF0000400  Prescaler for timer 0/1  0xF0000404  Prescaler for count-up timer  0xF0000408  Count-up timer  0xF0000410  Timer 0 control  0xF0000414  Timer 0 counter</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=touchscreen_controller&amp;rev=1735055350&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-24T15:49:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>touchscreen_controller</title>
        <link>https://kuribo64.net/wup/doku.php?id=touchscreen_controller&amp;rev=1735055350&amp;do=diff</link>
        <description>Touchscreen controller

The touchscreen controller is a Texas Instruments TSC2046. It is connected to the UIC over SPI.

Vendor datasheet</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=uart&amp;rev=1746878125&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-10T11:55:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>uart</title>
        <link>https://kuribo64.net/wup/doku.php?id=uart&amp;rev=1746878125&amp;do=diff</link>
        <description>UART

The gamepad features 3 UART controllers.
 Base address  Desc.  0xF0004C00    UART0  0xF0004C40    UART1  0xF0004C80    UART2 
The entire UART region is mirrored every 256 bytes over 0xF0004C00..0xF0004FFF.

Related IRQs:
 IRQ   Desc.  0x03  UART0</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=uic&amp;rev=1744977615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-18T12:00:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>uic</title>
        <link>https://kuribo64.net/wup/doku.php?id=uic&amp;rev=1744977615&amp;do=diff</link>
        <description>UIC

The UIC is the gamepad&#039;s auxiliary microcontroller. It is connected to the CPU over the SPI bus.

Given the characteristics, the UIC could be a STM8L151R8. It has 4KB of RAM, 2KB of EEPROM and 64KB of FLASH.

Pinout
 Pin  Name  Function  1    PA0</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=uic_eeprom_structure&amp;rev=1744970056&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-18T09:54:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>uic_eeprom_structure</title>
        <link>https://kuribo64.net/wup/doku.php?id=uic_eeprom_structure&amp;rev=1744970056&amp;do=diff</link>
        <description>UIC EEPROM structure

The UIC&#039;s EEPROM occupies address range 0x1000..0x17FF. (TODO: maybe it occupies more?)

The first 256 bytes are used internally, while the rest is used for user data storage.

&lt;https://bitbucket.org/memahaxx/libdrc/src/master/src/device-config.cpp&gt; for more info.
 Address  Length  Description  0x1010</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=uic_firmware_re_notes&amp;rev=1733664272&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-08T13:24:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>uic_firmware_re_notes</title>
        <link>https://kuribo64.net/wup/doku.php?id=uic_firmware_re_notes&amp;rev=1733664272&amp;do=diff</link>
        <description>UIC firmware RE notes

kind of a general dump for anything pertaining to the UIC firmware

RAM
 address  desc.  01a5     FIFO for ??  01ab     FIFO for ??  01b1     FIFO for general commands  01b7     copy of EEPROM config data (1100 and up) 
General commands</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=uic_internals&amp;rev=1729424116&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-20T11:35:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>uic_internals</title>
        <link>https://kuribo64.net/wup/doku.php?id=uic_internals&amp;rev=1729424116&amp;do=diff</link>
        <description>UIC internals

This page documents the low-level aspects of the UIC.

General characteristics

The UIC is a STM8 microcontroller. It is likely a STM8L151R8.

It has 4KB of RAM, 2KB of EEPROM and 64KB of FLASH.

Memory map
 Start    End      Desc.  0x00000</description>
    </item>
    <item rdf:about="https://kuribo64.net/wup/doku.php?id=wifi&amp;rev=1739878612&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-18T11:36:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wifi</title>
        <link>https://kuribo64.net/wup/doku.php?id=wifi&amp;rev=1739878612&amp;do=diff</link>
        <description>Wifi

The gamepad includes a Broadcom BCM4319 wifi card for network communications.

It is accessed over SDIO.

The driver used in the stock gamepad firmware is a port of open-source BCM43xx drivers.

Hardware

The gamepad&#039;s wifi card uses the Broadcom BCM4319 SoC. Broadcom hardware is poorly documented, but open-source drivers can be found for it.</description>
    </item>
</rdf:RDF>
