Updated 7 November 2026

Core8Bit pinout

Every STM32 pin you wire, where to find it on the core board, the display ribbon, and the ESP32 pins.

  • MCU: STM32H743IIT6 or STM32H753IIT6, LQFP176.
  • Logic levels: all signals are 3.3 V.
  • Location format: R12.1 = right header block, position 12, line 1 (as on the back silkscreen, see Core-board headers). FPCn = pin n of the core board's "LCD interface" connector. "Pad k" = contact k of the board-side FFC adapter (pad = 41 − FPC pin).

Contents

Display (LTDC)

Signal STM32 Location Notes
CLK PG7 FPC11 (pad 30) 33 Ω series resistor at the STM32 end
HSYNC PC6 R26.2 33 Ω series resistor, active low
VSYNC PI9 FPC9 (pad 32) 33 Ω series resistor, active low
DE PF10 FPC8 (pad 33) 33 Ω series resistor, active high
DISP (panel enable) PD5 R12.1 GPIO output, HIGH = panel on
R3 / R4 / R5 / R6 / R7 PB0 / PH15 / PC0 / PB1 / PG6 R7.2 / FPC25 / R3.2 / R6.1 / FPC31
G2 / G3 / G4 / G5 / G6 / G7 PA6 / PC9 / PH4 / PI0 / PI11 / PD3 R22.2 / R24.1 / R2.2 / FPC24 / R2.1 / R13.1
B3 / B4 / B5 / B6 / B7 PA8 / PG12 / PA3 / PB8 / PB9 FPC17 / FPC16 / R7.1 / R19.2 / R19.1
B1 PA10 R18.2 configured, but not wired

The display runs RGB565 on the high bits. Panel inputs R0–R2, G0–G1 and B0–B2 are not driven; tie them to GND (recommendation).

Audio (DAC1)

Signal STM32 Location To
Left PA4 (DAC1_OUT1) R9.1 PAM8406 LIN
Right PA5 (DAC1_OUT2) R3.1 PAM8406 RIN

Wiring and noise filtering: assembly.md.

Power control

Signal STM32 Location Notes
5 V rail enable PE4 R24.2 to boost #1 EN. HIGH = rail on (backlight, amplifier, ESP32), LOW = off. LOW at reset

Buttons

All buttons are active HIGH: wire each one between its pin and 3.3 V. The internal pull-downs are enabled; fit no external resistors.

Button STM32 Location
UP PI10 FPC10 (pad 31)
DOWN PI6 FPC14 (pad 27)
LEFT PI7 FPC13 (pad 28)
RIGHT PH6 R8.2, or FPC7 (pad 34)
A PH9 FPC35 (pad 6)
B PH10 FPC34 (pad 7)
X PH11 FPC33 (pad 8)
Y PH12 FPC32 (pad 9)
MENU PA0 R9.2
SELECT PI5 FPC15 (pad 26)
3.3 V common — FPC30 (pad 11), or R20.1 / R29.1

There are no shoulder buttons. Stick clicks are not read.

Analog sticks (ADC2)

Each axis is a potentiometer between 3.3 V and GND, with the wiper on the ADC pin. Never use 5 V.

Axis STM32 ADC channel Location
Right X PA2 ADC2_INP14 L22.2
Right Y PA7 ADC2_INP7 L24.1
Left X PC1 ADC2_INP11 L23.2
Left Y PC4 ADC2_INP4 L25.1
# Signal STM32 Location ESP32 DevKit Wire colour (reference unit)
1 GND GND R17.2 GND black
2 +5 V boost #1 output (PE4 rail) — VIN red
3 SCK PE2 R17.1 D18 (GPIO18) yellow
4 MOSI PE6 R22.1 D23 (GPIO23) green
5 MISO PE5 R23.2 D19 (GPIO19) blue
6 CS (active LOW) PD2 R14.2 D5 (GPIO5) orange
7 DRDY (HIGH = ESP32 has data) PD4 R13.2 D4 (GPIO4) white
  • SPI mode 0, 7.5 MHz. Keep the wires short and equal in length.
  • Fit a ~10 kΩ pull-up from D5 (GPIO5) to 3.3 V. GPIO5 is a strapping pin: the ESP32 does not boot if CS is LOW at start-up.
  • PE2 is also on FPC1 (pad 40). Leave pad 40 unconnected.
  • The STM32 does not drive the ESP32 EN or GPIO0. The ESP32 resets only when the PE4 rail cycles or with its own button.

VS1003B MP3 decoder (SPI2)

Planned for the mainboard (mainboard.md). The wired build does not have it. The pins are reserved.

VS1003B STM32 Location Mode
SCK PI1 FPC23 only SPI2
MISO (SO) PC2 R10.1 SPI2
MOSI (SI) PC3 R10.2 SPI2
XRST PI2 FPC22 only output, pull-up, idle HIGH
XCS PI3 R21.1 output, pull-up, idle HIGH
XDCS PI4 R23.1 output, pull-up, idle HIGH
DREQ PI8 R16.2 input, pull-down, HIGH = ready

Volume is set over SPI (register SCI_VOL).

USB

Signal STM32 Location Notes
D− PA11 on-board only (micro-USB "USB") not on the headers
D+ PA12 on-board only (micro-USB "USB") not on the headers
VBUS sense PA9 R18.1 on the wired build it follows the 5 V rail and is not used for charge detection

The firmware works as a USB device only (SD card mode and debug). Mainboard plan: mainboard.md.

microSD and other on-board lines

These lines are used on the core board. Connect nothing to them.

What STM32 Location
microSD (SDMMC2, 4-bit, slot on the board) PD6 CK, PD7 CMD, PB14 D0, PB15 D1, PB3 D2, PB4 D3 L27–L29
SDRAM (FMC) ports D, E, F, G, H (see the left header) L1–L20
QSPI flash PB2, PB6, PF6–PF9 not broken out
Crystals PH0/PH1 (25 MHz), PC14/PC15 (32.768 kHz) not broken out
SWD PA13 SWDIO, PA14 SWCLK "SWD" connector

PB3 (SWO) is used as SD D2, so SWO trace and 4-wire JTAG are not available. Use SWD.

Free pins

Pin Location Pin Location
PA1 L23.1 PD12 R28.2, FPC3
PA15 R26.1 PD13 R27.2, FPC5
PB7 R28.1 PE3 R16.1, FPC2
PB10 R6.2 PG3 R11.1
PB11 R5.1 PG10 FPC26
PB12 R5.2 PG11 L26.1
PB13 R4.1 PG13 L25.2
PC5 L24.2 PG14 L26.2
PC7 R25.1 PH7 R8.1, FPC6
PC8 R25.2 PH8 R27.1
PC10 R15.1 PH13 FPC27
PC11 R15.2 PH14 R21.2
PC12 R14.1 PC13 not broken out
PD11 R11.2
  • Planned: PA1 wake-up button, PD12 vibration motor (TIM4_CH1), PD13 LED (TIM4_CH2).
  • The microphone moves from PA9 to another free ADC input (TBD).
  • The mainboard will take its TUSB320 INT/ID, OTG_EN and charger CE GPIOs from this list (TBD, see mainboard.md).
  • PB5 (R4.2) and PG9 (R12.2) are set up as SPI1 but unused. Do not connect them.

Core-board headers

Back of the "STM32H7 CORE" board: silkscreen of both 2x29 headers

The core board has two double-row headers of 2 x 29 pins. The labels below are as printed on the back silkscreen. Some are shortened: D10 = PD10, E15 = PE15, G15 = PG15, F11 = PF11, B13 = PB13, C12 = PC12, A10 = PA10, H14 = PH14, A15 = PA15.

  • L / R = left / right block as seen on the back silkscreen. Seen from the component side, the blocks swap sides.
  • Position 1–29 counts from the end with D10 D14 / 5V GND (the USB/SWD end of the board).
  • Line 1 / line 2 = first / second label column. Which physical hole row is which: check with a continuity tester once.

Left block (L)

Pos Line 1 label Line 1 use Line 2 label Line 2 use
1 D10 SDRAM D14 SDRAM
2 PD9 SDRAM D15 SDRAM
3 PD8 SDRAM PD0 SDRAM
4 E15 SDRAM PD1 SDRAM
5 E14 SDRAM PE7 SDRAM
6 E13 SDRAM PE8 SDRAM
7 E12 SDRAM PE9 SDRAM
8 E11 SDRAM E10 SDRAM
9 PE1 SDRAM PE0 SDRAM
10 PG8 SDRAM PH5 SDRAM
11 PH2 SDRAM G15 SDRAM
12 PG2 SDRAM PH3 SDRAM
13 PG1 SDRAM F11 SDRAM
14 F15 SDRAM PG4 SDRAM
15 F14 SDRAM PG5 SDRAM
16 F13 SDRAM PG0 SDRAM
17 F12 SDRAM PF3 SDRAM
18 PF5 SDRAM PF2 SDRAM
19 PF4 SDRAM PF1 SDRAM
20 GND GND PF0 SDRAM
21 REF VREF+ RST NRST
22 BAT VBAT PA2 stick R-X
23 PA1 free PC1 stick L-X
24 PA7 stick R-Y PC5 free
25 PC4 stick L-Y G13 free
26 G11 free G14 free
27 PB3 SD D2 PB4 SD D3
28 PD7 SD CMD PD6 SD CK
29 B14 SD D0 B15 SD D1

Positions 1–20 and 27–29 are the on-board SDRAM and SD card. Connect nothing to them.

Right block (R)

Pos Line 1 label Line 1 use Line 2 label Line 2 use
1 5V 5 V GND GND
2 PI11 LTDC G6 PH4 LTDC G4
3 PA5 DAC R PC0 LTDC R5
4 B13 free PB5 (unused, do not connect)
5 B11 free B12 free
6 PB1 LTDC R6 B10 free
7 PA3 LTDC B5 PB0 LTDC R3
8 PH7 free PH6 btn RIGHT
9 PA4 DAC L PA0 btn MENU
10 PC2 VS1003B MISO PC3 VS1003B MOSI
11 PG3 free D11 free
12 PD5 panel DISP PG9 (unused, do not connect)
13 PD3 LTDC G7 PD4 ESP32 DRDY
14 C12 free PD2 ESP32 CS
15 C10 free C11 free
16 PE3 free PI8 VS1003B DREQ
17 PE2 ESP32 SCK GND GND
18 PA9 USB VBUS sense A10 LTDC B1 (not wired)
19 PB9 LTDC B7 PB8 LTDC B6
20 3V3 3.3 V GND GND
21 PI3 VS1003B XCS H14 free
22 PE6 ESP32 MOSI PA6 LTDC G2
23 PI4 VS1003B XDCS PE5 ESP32 MISO
24 PC9 LTDC G3 PE4 5 V rail EN
25 PC7 free PC8 free
26 A15 free PC6 LTDC HSYNC
27 PH8 free D13 free
28 PB7 free D12 free
29 3V3 3.3 V GND GND

Power and special pins

Location Label Meaning
R1.1 5V 5 V of the core board. Boost #2 feeds the board through this pin or through the USB jack: TBD
R1.2, R17.2, R20.2, R29.2, L20.1 GND ground
R20.1, R29.1 3V3 3.3 V from the on-board regulator (panel logic, sticks, buttons)
L21.1 REF VREF+ (ADC/DAC reference)
L21.2 RST NRST. The mainboard's hard reset button shorts it to GND
L22.1 BAT MCU VBAT; the battery is measured here. Limit 3.6 V; a full cell is 4.2 V. Never connect the cell straight to it; the circuit in between is TBD, see power.md

The display lines CLK, VSYNC, DE, R4, R7, G5, B3, B4, the buttons PH9–PH12, PI5, PI6, PI7, PI10, and PI1/PI2 come out only on the "LCD interface" connector (see below).

Display ribbon (40-pin, folded)

The panel reaches the core board's 40-pin "LCD interface" connector through two FFC adapters and a 40-pin ribbon. Under each adapter the ribbon is folded in half, and each fold reverses the pin order (n ↔ 41 − n).

 display FPC  ──►  screen-side adapter  ──►  40-pin ribbon  ──►  board-side adapter  ──►  core board
 pin n             (fold #1, mirrored)       conductor k          (fold #2, mirrored)        "LCD interface" pin m
 (datasheet)       pad = 41 − n              (cable side)         m = 41 − k                 (as printed) + headers

The board-side adapter is a breakout point: the buttons and the LCD-only lines are taken from its pads. The screen-side adapter is wired by function from those pads and the header wires, using the panel table. The pad number is not the panel pin (for example VSYNC is on pad 32 but panel pin 33).

Board-side adapter pads:

Pad (cable side) FPC pin (board side) STM32 Signal
40 1 PE2 ESP32 SPI4 SCK: leave the pad unconnected
39 2 PE3 free
38 3 PD12 free (planned vibration)
36 5 PD13 free (planned LED)
35 6 PH7 free
34 7 PH6 button RIGHT
33 8 PF10 LTDC DE
32 9 PI9 LTDC VSYNC
31 10 PI10 button UP
30 11 PG7 LTDC CLK
29 12 — not connected
28 13 PI7 button LEFT
27 14 PI6 button DOWN
26 15 PI5 button SELECT
25 16 PG12 LTDC B4
24 17 PA8 LTDC B3
19 22 PI2 VS1003B XRST (planned)
18 23 PI1 VS1003B SCK (planned)
17 24 PI0 LTDC G5
16 25 PH15 LTDC R4
15 26 PG10 free
14 27 PH13 free
11 30 3V3 3.3 V
10 31 PG6 LTDC R7
9 32 PH12 button Y
8 33 PH11 button X
7 34 PH10 button B
6 35 PH9 button A

FPC pins 4, 18–21, 28 and 36–40 are not documented (TBD).

Continuity check (power off, battery unplugged):

  1. Set the meter to continuity. Put one probe on the STM32 signal: the header pin or the board-side adapter pad.
  2. Slide the other probe along the panel FPC contacts (or the screen-side adapter pads; pad = 41 − panel pin) until it beeps.
  3. Note the panel pin for CLK, HSYNC, VSYNC, DE, DISP and every R/G/B line. Correct any line that does not match the table below.

Core board "LCD interface" FPC with the folded grey ribbon going into the green board-side 40-pin adapter

Top view of the reference unit: STM32H7 CORE board (Winbond SDRAM, USB and UART micro-USB, SWD connector, RESET/BOOT0 buttons, microSD slot, "LCD interface" FPC), the Li-Po pack, the ESP32 DevKit, the boost modules, and the green 40-pin FFC adapters with the grey ribbon.

Panel FPC pinout (HL043PQIPS-500)

HL043PQIPS-500 datasheet page

HL043PQIPS-500: 4.3" TFT IPS, 480 x RGB x 272, driver IC NV3047, logic 3.3 V, backlight 21 V / 40 mA (8 LEDs in series), 40-pin FPC with 0.5 mm pitch, active area 95.04 x 53.86 mm, outline 105.5 x 67.2 mm, operating −20…70 °C, storage −30…80 °C.

Panel pin Name Connect to Pick it up at Screen-side adapter pad (41 − pin)
1 LEDK 21 V booster − booster output 40
2 LEDA 21 V booster + booster output 39
3 GND GND 38
4 VCC 3.3 V R20.1 / R29.1, or pad 11 37
5–7 R0–R2 GND (recommendation) 36–34
8 R3 PB0 R7.2 33
9 R4 PH15 pad 16 32
10 R5 PC0 R3.2 31
11 R6 PB1 R6.1 30
12 R7 PG6 pad 10 29
13–14 G0–G1 GND (recommendation) 28–27
15 G2 PA6 R22.2 26
16 G3 PC9 R24.1 25
17 G4 PH4 R2.2 24
18 G5 PI0 pad 17 23
19 G6 PI11 R2.1 22
20 G7 PD3 R13.1 21
21–23 B0–B2 GND (recommendation) 20–18
24 B3 PA8 pad 24 17
25 B4 PG12 pad 25 16
26 B5 PA3 R7.1 15
27 B6 PB8 R19.2 14
28 B7 PB9 R19.1 13
29 GND GND 12
30 CLK PG7 via 33 Ω pad 30 11
31 DISP PD5 R12.1 10
32 HSYNC PC6 via 33 Ω R26.2 9
33 VSYNC PI9 via 33 Ω pad 32 8
34 DEN (data enable) PF10 via 33 Ω pad 33 7
35 NC — 6
36 GND GND 5
37–40 XR, YD, XL, YU (resistive touch) not connected 4–1

ESP32 DevKit pins

ESP32-WROOM-32 DevKit, CH340, USB-C

ESP32-WROOM-32 DevKit with CH340 USB-UART, USB-C and EN/BOOT buttons. Top row: VIN GND D13 D12 D14 D27 D26 D25 D33 D32 D35 D34 VN VP EN. Bottom row: 3V3 GND D15 D2 D4 D16 D17 D5 D18 D19 D21 RXD TXD D22 D23.

DevKit label ESP32 GPIO Function Direction
D18 GPIO18 SPI SCLK in
D23 GPIO23 SPI MOSI in
D19 GPIO19 SPI MISO out
D5 GPIO5 SPI CS; strapping pin, ~10 kΩ pull-up to 3.3 V in
D4 GPIO4 DRDY, starts LOW out
TXD / RXD GPIO1 / GPIO3 log console, 115200 baud, via the DevKit USB —
VIN — +5 V from boost #1 (PE4 rail) —
GND — ground —

Audio amplifier (HW-301 PAM8406)

HW-301 PAM8406 stereo amplifier with two 10 kΩ volume trimmers

From To Notes
PA4, R9.1 LIN
PA5, R3.1 RIN
core-board GND input GND keep it separate from the speaker leads
boost #1 output (PE4 rail) VCC / GND through the LC filter
LOUT+ / LOUT- left speaker bridge-tied: never connect LOUT-/ROUT- to GND
ROUT+ / ROUT- right speaker 20 mm speakers (see bom.md)

Power wiring: power.md.