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.