GPIO Pin Reference¶
Complete pin assignment table using BCM (Broadcom) numbering:
BCM Pin |
Direction |
Function |
Connects To |
|---|---|---|---|
17 |
Output |
Select S0 |
S0 on all 6 muxes |
27 |
Output |
Select S1 |
S1 on all 6 muxes |
22 |
Output |
Select S2 |
S2 on all 6 muxes |
23 |
Output |
Select S3 |
S3 on all 6 muxes |
Input |
Mux 0 SIG |
Black storage zone |
|
7 |
Input |
Mux 1 SIG |
Board files a–b |
8 |
Input |
Mux 2 SIG |
Board files c–d |
9 |
Input |
Mux 3 SIG |
Board files e–f |
10 |
Input |
Mux 4 SIG |
Board files g–h |
11 |
Input |
Mux 5 SIG |
White storage zone |
I2C |
OLED SDA |
OLED display data |
|
3 |
I2C |
OLED SCL |
OLED display clock |
Input |
Start button |
Active-low, pull-up enabled |
|
21 |
Input |
Stop button |
Active-low, pull-up enabled |
24 |
Input |
Reset button |
Active-low, pull-up enabled |
All GPIO pin assignments for sensors and operator UI
Note
The mux pin assignments can be overridden by passing custom arrays to the BoardScanner constructor. The button defaults are defined in button_controller.h; the OLED defaults are defined in display_controller.h. If you need to change them, update the corresponding default constants and rebuild.
Raspberry Pi Header Pin |
BCM GPIO |
|---|---|
Pin 11 |
GPIO 17 (S0) |
Pin 13 |
GPIO 27 (S1) |
Pin 15 |
GPIO 22 (S2) |
Pin 16 |
GPIO 23 (S3) |
Pin 3 |
GPIO 2 (OLED SDA) |
Pin 5 |
GPIO 3 (OLED SCL) |
Pin 7 |
GPIO 4 (Mux 0) |
Pin 26 |
GPIO 7 (Mux 1) |
Pin 24 |
GPIO 8 (Mux 2) |
Pin 21 |
GPIO 9 (Mux 3) |
Pin 19 |
GPIO 10 (Mux 4) |
Pin 23 |
GPIO 11 (Mux 5) |
Pin 38 |
GPIO 20 (Start button) |
Pin 40 |
GPIO 21 (Stop button) |
Pin 18 |
GPIO 24 (Reset button) |
BCM to physical header pin mapping
Warning
Do not confuse BCM GPIO numbers with physical header pin numbers. The mux SIG inputs now use replacement GPIOs 4, 7, 8, 9, 10, 11 on physical header pins 7, 26, 24, 21, 19, 23. These pins overlap the Raspberry Pi SPI alternate function, so keep SPI disabled or unused for this wiring test.