A Raspberry Pi Pico payload board with GPS, a barometric altimeter, a camera, and SD storage — built to bolt directly onto an SCK-915 or SCK-2400 for HAB and CubeSat missions. Every Pico pin is broken out and the firmware is open source, so it works just as well as a standalone board for any project that needs this sensor stack, radio or no radio.
SCK-PBL-1 was designed to sit on top of an SCK-915 or SCK-2400 radio board, but nothing about it requires a radio at all. Every subsystem inits and fault-flags independently, and every GPIO — used or not — is on a header.
Mounts to an SCK-915 or SCK-2400 Mini over a 4-pin UART header (GND/RX/TX/+3V3). Same ESP-framed command protocol on both, so the same firmware runs unmodified against either radio.
| Parameter | Value |
|---|---|
| Radio interface | UART0, ESP framing, 115200 baud |
| Compatible radios | SCK-915 (CC1110) & SCK-2400 Mini (CC2652P) |
| Command set | 10 opcodes — PING through BEACON_CTRL |
| Autonomous beacon | Fused GPS+baro every 10s |
Power it from LiPo, wall adapter, or raw wire and drive it from USB REPL or your own UART host — no SpaceCommsKit radio board required. `main.py` is open source and built to be extended.
| Parameter | Value |
|---|---|
| Power input | LiPo (JST-PH), 5.5×2.5mm barrel jack, raw wire |
| Onboard regulation | 5V (LM2576-5.0) + 3.3V (MC33269) rails |
| Breakout headers | Full 40-pin Pico breakout (J1/J2) + 3-pin SWD debug (J3) |
| Firmware | MicroPython, open source, documented extension pattern |
In bolt-on mode, the Pico acts as a remote payload processor. The radio board (SCK-915 or SCK-2400 Mini) receives RF commands and forwards them to the Pico over UART. The Pico handles GPS, altimeter, camera, storage, and telemetry.
Skip the radio board entirely — power SCK-PBL-1 from LiPo/wall/raw wire and talk to it over USB REPL, or wire UART0 to any host of your own. Every subsystem below still works the same way; you're just choosing what sits upstream of it. See §Standalone Use below.
GPS + baro fused packet fires every 10 seconds autonomously. No ground command needed during flight. 8-field telemetry.
Send PICO Snap from ground station. Pico captures JPEG and saves to SD. Returns filename and size confirmation.
Request SD card file listing over RF. Returns comma-separated filenames displayed in the Files tab.
Transfer files in 200-byte chunks over RF. Ground station reassembles and saves to Images\ folder automatically.
All Pico commands use opcode 0x20 (PICO_MSG) with a sub-opcode byte as the payload. Responses are ESP-framed ASCII strings returned as ACK payloads.
| Sub-opcode | Command | Response |
|---|---|---|
| 0x00 | PING | PICO:ACK |
| 0x01 | READ_TEMP | TEMP:xx.xxC |
| 0x02 | SNAP | SNAP:OK:<filename>:<bytes> |
| 0x03 | LIST | LIST:<file1>,<file2>,... |
| 0x04 | GET_INFO | INFO:<filename>:<bytes>:<chunks> |
| 0x05 | GET_CHUNK | CHUNK:<index>:<200 bytes> |
| 0x06 | DELETE | DEL:OK:<filename> |
| 0x07 | GET_GPS | GPS:lat,lon,gps_alt,sats,fix,hpa,baro_alt,temp_c |
| 0x08 | GET_BARO | BARO:hpa,alt_m,temp_c |
| 0x09 | BEACON_CTRL | BEACON:ON / BEACON:OFF |
Because the firmware runs on stock MicroPython with no dependency on a specific radio board, you can build with SCK-PBL-1 the same way you'd build with any Pico dev board — just with GPS, altimeter, camera, and SD already sorted out.
LiPo battery over the onboard JST-PH connector, a 5.5×2.5mm barrel jack for wall power, or raw wire straight to the regulators. Onboard LM2576-5.0 and MC33269-3.3 regulation gives you clean 5V and 3.3V rails either way.
The Pico sits centered with a full breakout header down each side — every GPIO, power pin, and the SWD debug interface (SWDIO/GND/SWCLK) broken out separately, whether or not the stock firmware uses it.
Camera, SD, GPS, and altimeter each have independent init and fault flags — pull out what you don't need. Add new commands to `main.py` following the documented opcode pattern, or bypass the command protocol entirely and drive the board from USB REPL.
`main.py` is the same firmware whether you're bolted to an SCK-915, an SCK-2400, or nothing at all. Read it, fork it, ship your own payload on top of it — we'd like to hear what you build.
A stock SCK-PBL-1 ships with all of this already populated and wired — you don't need to source or wire anything below to use one. This is here as a reference for replacement parts, or if you're replicating the design with discrete modules instead of buying a board.
| Ref | Part | Description | Source / Part # |
|---|---|---|---|
| U1 | Raspberry Pi Pico | RP2040, MicroPython firmware | — |
| U3 | LM2576-5.0WU-TR (TO-263-5) | 5V rail regulator, fixed output | — |
| U4 | MC33269DR2-3.3G | 3.3V LDO regulator | Digi-Key MC33269DR2-3.3GOSCT-ND |
| — | Inductor | Buck regulator inductor (LM2576 stage) | Digi-Key 495-4547-1-ND |
| J10 | S2B-PH-K-S | Battery power connector, JST-PH 2-pin | Digi-Key 455-1719-ND |
| J9 | 54-00134 | Power adapter jack, R/A PCB, 5.5×2.5mm barrel | Digi-Key 839-54-00134-ND |
| U9 | MEM2080-00-128-00-A | microSD card slot | Digi-Key 2073-MEM2080-00-128-00-ACT-ND |
| U5 | MS561101BA03-50 | MS5611 barometric pressure/altitude sensor | Digi-Key 223-1622-1-ND |
| — | ArduCAM Mini-Cam-Plus (OV2640) | SPI/I2C camera module | — |
| — | GPS6MV2 | u-blox NEO-6M GPS module | — |
If replicating the design on a breadboard, the MS5611 can also be sourced pre-mounted on an SPI/I2C breakout board rather than the bare SMD chip — see smart-prototyping.com.
If you're building an equivalent from a bare Pico plus discrete modules — or replacing a damaged part — these are the module-level parts and general sourcing notes that match the onboard design.
| Component | Notes | Link |
|---|---|---|
| Raspberry Pi Pico W | RP2040. Micro USB cable required. | Adafruit / Digi-Key |
| GPS6MV2 (NEO-6M breakout) | UART GPS module. Connect via UART1. Firmware configures airborne mode at boot — rated to 50km. | Amazon ~$8 |
| MS561101BA03-50 | Aviation-grade barometric altimeter. I2C1 address 0x76. PS pin must tie to 3.3V for I2C mode. 10–1200 hPa — rated above 45km altitude. | Digi-Key 223-1622-1-ND |
| ArduCAM Mini-Cam-Plus (OV2640) | SPI camera module. Must be direct-wired to Pico — not through a breadboard. Breadboard connections are unreliable at SPI speeds. | Amazon → |
| SPI MicroSD Card Adapter | Important: Use an adapter with 5V power input and 3.3V logic (level-shifted). Connect VCC to Pico VBUS (5V), not 3.3V. | Amazon → |
| MicroSD Card 32GB | Format as FAT32 before use. | Any retailer |
| USB to Serial FTDI Adapter | 3.3V TTL. Used to connect board 0001 to your Windows PC. | Amazon → |
All SPI devices share the Pico's SPI0 bus with separate chip select pins. GPS and altimeter use separate I2C and UART buses. Follow this exactly — pin assignment matters.
On a production SCK-PBL-1 this pinout is fixed in the PCB — nothing to wire by hand. It's documented here because it's exactly what the firmware expects, so it's the reference if you're extending firmware, adding your own sensor to a free GPIO, or replicating the design on discrete modules.
| Board 0004 Pin | Pico Pin |
|---|---|
| P1_5 (UART0 TX) | GP1 (UART0 RX) |
| P1_4 (UART0 RX) | GP0 (UART0 TX) |
| GND | GND |
| GPS Pin | Pico Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| TX → Pico RX | GP9 (UART1 RX) |
| RX → Pico TX | GP8 (UART1 TX) |
| MS5611 Pin | Pico Pin |
|---|---|
| VDD | 3.3V |
| PS ⚠️ | 3.3V (I2C mode) |
| CSB | 3.3V |
| SDO | GND (addr 0x76) |
| SDA | GP2 (I2C1) |
| SCLK | GP3 (I2C1) |
| GND | GND |
| Camera Pin | Pico Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| MISO | GP16 (SPI0) |
| MOSI | GP19 (SPI0) |
| SCK | GP18 (SPI0) |
| CS | GP15 |
| SDA | GP4 (I2C0) |
| SCL | GP5 (I2C0) |
| SD Card Pin | Pico Pin |
|---|---|
| VCC | VBUS (5V) ⚠️ |
| GND | GND |
| MISO | GP16 (shared) |
| MOSI | GP19 (shared) |
| SCK | GP18 (shared) |
| CS | GP17 |
| LED | Color | Pico Pin |
|---|---|---|
| Camera | GREEN | GP10 |
| SD Card | GREEN | GP11 |
| GPS Fix | BLUE | GP12 |
| Altimeter | YELLOW | GP13 |
| Fault | RED | GP14 |
| SCK-2400 Signal | Pico Pin |
|---|---|
| DIO23 (SSI1 SCLK) | GP26 |
| DIO24 (SSI1 MOSI) | GP27 |
| DIO25 (SSI1 MISO) | GP28 |
| DIO26 (SSI1 CS) | GP22 |
Wired but reserved — no command handler implemented yet. Not used with the SCK-915 bolt-on path.
| Header | Function |
|---|---|
| J1 / J2 | Full 20-pin breakout each side — every Pico power, ADC, and GPIO pin |
| J3 | SWD debug header — SWDIO / GND / SWCLK |
Pins already used by onboard subsystems are still present on the header — driving them externally will conflict with that subsystem.
The SD card adapter VCC must connect to the Pico's VBUS pin (5V from USB), NOT the 3.3V pin. Using 3.3V will cause unreliable SD card operation. The camera and MS5611 use 3.3V — do not connect them to VBUS.
The ArduCAM Mini-Cam-Plus must be connected with direct jumper wires — not through a breadboard. Breadboard connections introduce enough resistance and capacitance to make SPI communication unreliable at 400kHz.
The PS pin on the MS5611 must be tied HIGH (3.3V) to select I2C mode. If left floating or pulled LOW, the chip enters SPI mode and will not respond on I2C. This is the most common MS5611 wiring mistake.
Download MicroPython v1.27 for the Pico from micropython.org. Hold BOOTSEL while connecting USB, then copy the .uf2 file to the drive that appears. Install Thonny to manage files.
Follow the wiring tables above. Direct-wire the camera (no breadboard). Connect SD card VCC to VBUS. Tie MS5611 PS pin to 3.3V. Connect board 0004 UART0 (P1_5 → GP1, P1_4 → GP0). Insert formatted microSD card.
Board 0004 needs the custom firmware with PICO_MSG and CC1190 support. Clone github.com/eor123/openlst, build with SDCC, and flash OTA from the ground station Firmware tab. See the Developer Guide for full build instructions.
Power board 0001 (5V), power board 0004, power Pico via USB. In the ground station, set HWID to 0004. Wait 5–10 seconds for Pico boot. Watch the GPS/Map tab — the fused GPS+baro beacon should start arriving every 10 seconds automatically. Status LEDs on the SCK-PBL-1 should be green.
Send PICO Ping from Custom Commands — you should see ✓ ack → PICO:ACK. Then try Get GPS from the GPS/Map tab — should populate all 8 stat panels and plot on the map.
Send PICO Snap from Custom Commands. You'll see ✓ ack → SNAP:OK:snap_001.jpg:4617. Go to the Files tab, click Refresh List, select snap_001.jpg, click Get File. Image saves to your Images\ folder and Explorer opens automatically.
Take GPS module near a window — NEO-6M needs open sky view. First fix can take 60–90 seconds cold start. Blue LED on SCK-PBL-1 illuminates when fix acquired. Beacon fires every 10 seconds after fix.
Check PS pin is tied to 3.3V — this selects I2C mode. Without it the chip enters SPI mode and won't respond on I2C. Verify SDA/SCL on GP2/GP3 and address is 0x76 (SDO to GND).
Wait 5–10 seconds after Pico boot — camera initializes on first idle timeout. Verify UART wires (P1_5→GP1, P1_4→GP0). Confirm Pico is running main.py by checking Thonny console.
MicroPython heap fragmentation. Run gc.collect() before capture, or reduce camera resolution. The firmware automatically reduces resolution if memory allocation fails. Power cycling the Pico clears the heap.
SD card VCC must be on VBUS (5V pin), not 3.3V. Confirm card is formatted as FAT32. Try a different SD card — some cards are incompatible with SPI mode.
Boards too close together — maintain 2–4 feet separation. Check RF link quality with Get Telem (RSSI should be above −90 dBm). Retry logic will attempt each chunk 3 times automatically.
SCK-PBL-1 is in active bringup — GPS, MS5611, camera, and SD are all verified working on the production layout. Sign up to be notified when boards are available.
Drop-in for SCK-915 or SCK-2400 Mini · GPS + baro fused beacon · camera SNAP · SD file transfer over RF
Sign up below to be notified at launch
No radio required · every Pico pin broken out · open-source firmware · LiPo, wall, or raw wire power
Sign up below to be notified at launch
Questions before ordering? info@spacecommskit.com · Volume or university pricing available on request.
Ships to United States only. Boards are hand-assembled in Tennessee, USA.