-
Notifications
You must be signed in to change notification settings - Fork 26
Numbering and Detection
| Mode | Meaning |
|---|---|
GPIO.BOARD |
Physical connector position on the exact supported carrier/header. |
GPIO.BCM |
Compatibility identifier from the board map. It is not necessarily the SoC's native GPIO line. |
Internally, the backend also needs the native SoC GPIO bank/line or Linux gpiochip offset. Do not expose or document that controller identifier as though it were universally interchangeable with GPIO.BCM.
Detection aliases and Banana Pi model selection are maintained in source/c_gpio_bpi.c. Board-specific maps are included through source/bpi_gpio.h and the relevant source/bpi-*.h headers.
For a new board, collect both values from the exact production image:
cat /proc/device-tree/model; echo
tr '\0' '\n' < /proc/device-tree/compatiblePrefer exact compatible strings over broad marketing names. Generic model strings shared by multiple revisions must not silently select the wrong carrier map.
A compute module does not define a 26/40-pin user header by itself. GPIO.BOARD can only be promised for the exact carrier/development kit.
Examples:
- LM7 uses W3 as its documented development kit.
- CM4, CM5, CM5 Pro, CM6, AIM7 and AI2N support claims must name the exact IO board/carrier.
Attach:
uname -a
cat /etc/os-release
cat /proc/device-tree/model; echo
tr '\0' '\n' < /proc/device-tree/compatible
python3 -c 'import RPi.GPIO as GPIO; print(GPIO.VERSION); print(GPIO.RPI_INFO)'Also provide board, module and carrier revisions and a clear header photograph.
Documentation for BPI-SINOVOIP/RPi.GPIO · Verify the exact board, carrier, revision and voltage before driving GPIO.