Pádraig has a great summary on the hardware here. This is based off their fantastic work and some extra bits I’ve found while implementing a Rust library.
| Component | Description |
|---|
| Microcontroller | Espressif ESP32-WROOM-32D |
| Display (LED Matrix) | 24x24 LED matrix driven by ICN2012 multiplexer and HC595 shift registers |
| Matrix Buttons | |
| Home Button | |
| Status LEDs | Blue LED on GPIO 22, Red LED on GPIO 23 |
Pin Overview
| # | Label | Description |
|---|
| 1 | GND | --- |
| 2 | 3V3 | --- |
| 3 | EN | --- |
| 4 | SENSOR_VP | (GPIO36) Input Rows 2 & 8 (Buttons) |
| 5 | SENSOR_VN | (GPIO39) Input Rows 1 & 7 (Buttons) |
| 6 | IO34 | Input Rows 4 & 10 (Buttons) |
| 7 | IO35 | Input Rows 3 & 9 (Buttons) |
| 8 | IO32 | Input Rows 6 & 12 (Buttons) |
| 9 | IO33 | Input Rows 5 & 11 (Buttons) |
| 10 | IO25 | |
| 11 | IO26 | I2C (Motion Sensor) |
| 12 | IO27 | I2C (Motion Sensor) |
| 13 | IO14 | |
| 14 | IO12 | |
| 15 | GND | --- |
| 16 | IO13 | |
| 17 | SD2 | |
| 18 | SD3 | |
| 19 | CMD | |
| 20 | CLK | |
| 21 | SD0 | |
| 22 | SD1 | |
| 23 | IO15 | |
| 24 | IO2 | Home Button |
| 25 | IO0 | |
| 26 | IO4 | HC595 Output Enable (Display) |
| 27 | IO16 | HC595 Latch (Display) |
| 28 | IO17 | HC595 Clock (Display) |
| 29 | IO5 | HC595 Data (Display) |
| 30 | IO18 | ICN2012 A1 (Display) |
| 31 | IO19 | ICN2012 A0 (Display) |
| 32 | NC | --- |
| 33 | IO21 | ICN2012 A2 (Display) |
| 34 | RXD0 | |
| 35 | TXD1 | |
| 36 | IO22 | Blue LED |
| 37 | IO23 | Red LED |
| 38 | GND | --- |