SCK-PBL-1 Payload Platform · Full Build Guide

Complete Payload Pipeline
GPS · Baro · Camera · Over RF

A proven end-to-end pipeline: fused GPS + barometric telemetry beacon every 10 seconds, remote image capture over RF, SD card file management, and a complete HAB mission stack. No radio license required.

Start Building →
System Overview

How It Works

The Pico acts as a remote payload processor. Board 0004 receives RF commands and forwards them to the Pico over UART. The Pico handles GPS, altimeter, camera, storage, and telemetry.

// Complete RF payload pipeline — fused telemetry + imaging

Windows Ground Station ──── COM · USB-Serial ────► Board 0001
RF 915MHz · CC1190 PA/LNA ────► Board 0004
UART0 · 115200 baud ────► Raspberry Pi Pico
UART1 · 9600 baud ────► GPS6MV2 (NEO-6M)
I2C1 · addr 0x76 ────► MS5611 Altimeter
SPI0 · 400kHz ────► Arducam OV2640
SPI0 · CS GP17 ────► MicroSD Card
📡

Fused Beacon

GPS + baro fused packet fires every 10 seconds autonomously. No ground command needed during flight. 8-field telemetry.

📷

SNAP Command

Send PICO Snap from ground station. Pico captures JPEG and saves to SD. Returns filename and size confirmation.

📋

LIST Command

Request SD card file listing over RF. Returns comma-separated filenames displayed in the Files tab.

⬇️

GET Command

Transfer files in 200-byte chunks over RF. Ground station reassembles and saves to Images\ folder automatically.

Command Reference

Pico Sub-Opcodes (opcode 0x20)

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-opcodeCommandResponse
0x00PINGPICO:ACK
0x01READ_TEMPTEMP:xx.xxC
0x02SNAPSNAP:OK:<filename>:<bytes>
0x03LISTLIST:<file1>,<file2>,...
0x04GET_INFOINFO:<filename>:<bytes>:<chunks>
0x05GET_CHUNKCHUNK:<index>:<200 bytes>
0x06DELETEDEL:OK:<filename>
0x07GET_GPSGPS:lat,lon,gps_alt,sats,fix,hpa,baro_alt,temp_c
0x08GET_BAROBARO:hpa,alt_m,temp_c
// Fused GPS + Baro beacon format (autonomous every 10 seconds)
GPS:36.058910,-87.384024,254.5,8,1,989.31,201.3,20.56
                                                 └ baro temp °C
                                          └ baro altitude metres
                                      └ pressure hPa
                                  └ fix (1=valid)
                                └ satellites
                          └ GPS altitude m
                └ longitude
        └ latitude
Parts List

What You'll Need

In addition to the OpenLST Explorer Dev Kit (which provides board 0004), you need these components for the full payload pipeline.

ComponentNotesLink
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
MS5611 Altimeter 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 ~$10
Arducam OV2640 Mini 2MP 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 →
Wiring Guide

Complete Wiring — All Devices

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.

Board 0004 → Pico

Board 0004 PinPico Pin
P1_5 (UART0 TX)GP1 (UART0 RX)
P1_4 (UART0 RX)GP0 (UART0 TX)
GNDGND

GPS6MV2 (NEO-6M) → Pico

GPS PinPico Pin
VCC3.3V
GNDGND
TX → Pico RXGP9 (UART1 RX)
RX → Pico TXGP8 (UART1 TX)

MS5611 Altimeter → Pico

MS5611 PinPico Pin
VDD3.3V
PS ⚠️3.3V (I2C mode)
CSB3.3V
SDOGND (addr 0x76)
SDAGP2 (I2C1)
SCLKGP3 (I2C1)
GNDGND

Arducam OV2640 → Pico

Camera PinPico Pin
VCC3.3V
GNDGND
MISOGP16 (SPI0)
MOSIGP19 (SPI0)
SCKGP18 (SPI0)
CSGP15
SDAGP4 (I2C0)
SCLGP5 (I2C0)

SD Card Adapter → Pico

SD Card PinPico Pin
VCCVBUS (5V) ⚠️
GNDGND
MISOGP16 (shared)
MOSIGP19 (shared)
SCKGP18 (shared)
CSGP17

Status LEDs (SCK-PBL-1)

LEDColorPico Pin
CameraGREENGP10
SD CardGREENGP11
GPS FixBLUEGP12
AltimeterYELLOWGP13
FaultREDGP14
SD Card Power — Critical

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 Arducam and MS5611 use 3.3V — do not connect them to VBUS.

🔌
Camera — Direct Wire Required

The Arducam OV2640 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.

📡
MS5611 PS Pin — I2C Mode Select

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.

Setup Guide

Step-by-Step Setup

1

Install MicroPython on the Pico

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.

2

Install Pico Firmware

Open Thonny, connect to the Pico, and upload sdcard.py first, then main.py. Save main.py as main.py on the Pico root — it runs automatically at boot.

3

Wire Everything

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.

4

Flash Board 0004 Custom Firmware

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.

5

Power Up and Verify

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.

6

Test Commands

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.

Capture Your First Image

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.

Troubleshooting

Common Issues

No GPS beacon arriving

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.

MS5611 not responding

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).

PICO commands return no reply

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.

SNAP returns memory error

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 not mounting

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.

File transfer stalls or fails

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.