Frame & Connections

I²C Address Map

Every I²C address across an Attaky build — which device, which module, and which bus.

The global I²C address table for an Attaky build. Core devices are always present; a module's devices appear only when that module is attached. Addresses are chosen so nothing collides on a shared bus. For where each line is physically carried, see Connectors.

Two buses

An Attaky has two I²C buses:

  • Main bus — on IO1 / IO2, carried across the BTB, all three FPC taps, and the 7-pin connector. Almost everything lives here: the Core's own sensors and expanders, the Power module's fuel gauge, and any Control module.
  • Secondary bus — on IO41 / IO42, on the BTB only. It exists for the FM/AM Radio tuner alone, so the tuner's address can never clash with anything on the main bus.

Address table

AddressDeviceModuleBusPresent
0x22TCA9555 (left half)GamepadMain (via FPC)with a gamepad
0x26TCA9555 (right half)GamepadMain (via FPC)with a gamepad
0x36MAX17048 fuel gaugePower: Standard CellMainwith a Power module
0x38FT6636 capacitive touchCoreMainalways
0x48STK3311-X ambient-light / proximityCoreMainalways
0x58AW9523 GPIO expander (interrupts)CoreMainalways
0x59AW9523 GPIO expander (buttons, RGB LED, touch reset)CoreMainalways
0x5AAW9523 (left half)KeyboardMain (via FPC)with a keyboard
0x5BAW9523 (right half)KeyboardMain (via FPC)with a keyboard
0x64TEF6687 tunerExpand: FM / AM RadioSecondary (IO41 / IO42)with the FM/AM Radio Expand
0x6BQMI8658A 6-axis IMUCoreMainalways

Notes

  • A keyboard and a gamepad can coexist. Both Control modules can be on the bus at once — each has its own addresses (0x5A / 0x5B for the keyboard, 0x22 / 0x26 for the gamepad). They share interrupt lines, so the firmware scans both when one fires. See the Compatibility Matrix.
  • 0x64 is on its own bus. Because the FM/AM tuner sits on the secondary bus, its address is independent of the main bus and free to overlap with anything there.

See also

On this page