Перейти к содержанию

Ports & GPIO

This page is the single source of truth for how PiBody wires its ports onto the Raspberry Pi Pico W GPIO pins. The PiBody device and the bare carrier board share this same mapping — only the physical connector differs (PiBody uses magnets for A–F and JST for G/H; the carrier uses JST throughout). The slots, reserved and gpio_all values in the frontmatter above are read by the code-generation tooling; the tables below are the human-readable view of the same data.

Kit slots (A–H)

Each general-purpose slot carries two signal lines wired to two GPIO pins:

Slot GPIO pins Notes
A GPIO0, GPIO1 digital / PWM
B GPIO2, GPIO3 digital / PWM
C GPIO28, GPIO22 ADC-capable (analog input)
D GPIO4, GPIO5 digital / PWM
E GPIO6, GPIO7 digital / PWM
F GPIO26, GPIO27 ADC-capable, two analog lines (Joystick)
G GPIO16, GPIO17 digital / NeoPixel (4-pin JST on PiBody)
H GPIO18, GPIO19 digital / NeoPixel (4-pin JST on PiBody)
  • Analog (ADC) inputs work only on C and F (the ADC-wired pins).
  • I²C works on any slot except C (C's second line is shared with the ADC mux and cannot drive a clean I²C bus).
  • NeoPixel (LED Tower) runs on slots G, H or positions 8, 9 (position 12 is servo-only).

Fixed-function pins (reserved)

These GPIO pins are hard-wired to on-board peripherals and are never free for external wiring:

Function GPIO pins
Servo / LED Tower GPIO8, GPIO9, GPIO12 (positions 8, 9, 12)
Buttons GPIO20, GPIO21 (GP20/GP21, PiBody only; the carrier has RESET but no GP20/GP21)
Display GPIO10, GPIO11, GPIO13, GPIO14, GPIO15 (SPI; PiBody only)

Pico header breakout

On both boards the Pico W plugs into the middle, and every one of its pins is broken out to a row of holes running down both sides of it — like a breadboard rail. Each GPIO (and the power pins: VBUS, VSYS, 3V3, GND) is duplicated on the adjacent row, so you can attach a jumper or connector to any pin directly, without going through an A–H slot.

This is the escape hatch for anything the slot API doesn't cover: wiring your own part, tapping a signal, or reaching a pin that is otherwise reserved. Two cautions:

  • A pin exposed here is the same electrical pin as the slot/servo/display it belongs to — driving it from the breakout and from a module at the same time will conflict.
  • Only the free pins below are safe for external parts. Reserved pins (servo, display, buttons) are broken out too, but are already in use.

Free GPIO pins

Any GPIO in gpio_all that is not in reserved is available for wiring an external (non-kit) component: GPIO0–7, GPIO16–19, GPIO22, GPIO26–28. External parts must only be wired to these free pins — never to a servo, display, or button pin.

See also PiBody, Carrier board, and Built-in components.