This page is intended to be a technical guide to the Wii Balance Board..
Enough information is available to be able to get calibrated readings from the four pressure sensors, and receive events from the single button and drive the single led. There is other information available in the extension controller registers, but with no identified purpose.
The Wii Balance Board exposes the sames services over the Bluetooth Service Discovery Protocol (SDP ) as a Wiimote.
The Wii Balance Board operates similarly to a Wiimote as a HID device, however the friendly name exposed to HID is Nintendo RVL-WBC-01
Specifically, it will generate reports for the various features of a Wiimote, even though the hardware is absent.
All Data reporting modes of the Wiimote are supported. Since only eight bytes of the extension report are currently understood, report 0x32 "Core Buttons with 8 Extension bytes" is most appropriate.
Memory and Registers
Undocumented at this point whether the Wii Balance Board exposes any EEPROM storage space.
The control registers for the extension controllers are the only ones currently validated, as there is no IR or speaker hardware in the Wii Balance
Board. Access to the extension controller registers is identical to that of the Wiimote.
The Wii Balance Board has only a single physical button, accessible as core button "A", bit 3 of the second byte of button status.
Note that the Wii Balance Board will generate input reports for hardware it does not have, but that a Wiimote does.
The Wii Balance Board has only a single LED, controlled by the same reports as the Wiimote uses to control the player 1 LED. There is no rumble or speaker feature.
The Wii Balance Board appears as a Wiimote with a Balance Board extension controller permanently connected. The Balance Board extension is accessed similarly to a normal extension controller on a Wiimote
Registers / Initialization
The Balance Board extension is initialized similarly to a normal extension controller, however no encryption or decryption needs to be undertaken on data either read from the registers, or streamed through the output reports.
The last two bytes of the register block identify the connected Extension Controller. A two-byte read of register 0xa400fe will return these bytes. The Extension Controller must have been initialized prior to this (by writing 0x00 to the key register).