rec_zephyr.py¶
MicroPython-based ground station for receiving AURORA telemetry over an HC-12 radio link during bench tests.
Background¶
The flight computer broadcasts state-machine updates over an HC-12 radio
using the wire format defined in aurora/lib/telemetry/hc12/hc12.c.
rec_zephyr.py runs on a Raspberry Pi Pico flashed with MicroPython,
listens to a paired HC-12 over UART, validates each frame and prints a
human-readable line per packet to the REPL.
It is intentionally self-contained: no host PC, no extra dependencies, no logging stack. The goal is to confirm that frames are being received and decoded correctly before integrating a more sophisticated tool.
Hardware¶
Tip
The hardware is identical for receiver and transmitter, since the HC-12 can do both.
Pico pin |
HC-12 pin |
Notes |
|---|---|---|
GP3 |
SET |
OPTIONAL (not implemented on receiver) |
GP4 (UART1 TX) |
RXD |
|
GP5 (UART1 RX) |
TXD |
|
3V3 |
VCC |
HC-12 is 3.3 V tolerant |
GND |
GND |
The HC-12 must be set to the same UART baud as BAUD in the script
(factory default 9600). To change the air baud, use the firmware shell
on the transmitting side:
telemetry hc12 baud 19200
This persists the new baud to the HC-12’s internal flash. Both the transmitter HC-12 and the receiver HC-12 must be reconfigured for the link to work.
Wire format¶
Frames sent by the firmware look like this:
[A5 5A] [type] [payload_len] [payload...] [crc16_le]
Field |
Size |
Purpose |
|---|---|---|
Magic |
2 B |
Lets the receiver re-sync after dropped bytes ( |
Type |
1 B |
Frame kind. Currently only |
Length |
1 B |
Length of the payload in bytes. |
Payload |
N B |
Type-specific body (see below). |
CRC |
2 B |
CRC-16/CCITT, reflected, init |
The SM-update payload (type = 0x01, 64 B) matches
struct hc12_sm_update_payload: a millisecond timestamp, the flight
state enum, an armed flag, a reserved field, then altitude / total
acceleration / vertical acceleration / vertical velocity, then three
orientation angles (yaw, pitch, roll). All floats are 64-bit
little-endian.
Why the parser is structured this way¶
A naïve receive loop calls print() for each frame and reads bytes
synchronously. This appears to work at high telemetry rates but fails
at lower rates because the UART hardware FIFO on the RP2040 is only
32 bytes and overruns whenever print() blocks. The script avoids that
problem in three ways:
Driver-side buffering: the UART is opened with
rxbuf=2048, so bytes keep arriving while Python is busy.Allocation-free parsing: one preallocated
bytearrayholds the in-flight bytes; parsing walks it with index arithmetic and re-uses the buffer across iterations.Deferred output: decoded lines are queued and only flushed when the UART has no pending bytes. The slow REPL
print()never blocks the parser.
The CRC is computed via a precomputed 256-entry lookup table, which is roughly an order of magnitude faster than the bit-by-bit reference implementation.
Usage¶
Tip
If you only want to build a simple HC-12 telemetry tester on a bench-target, you can do so. An example for the pico2w bench build is described in Building the Pico 2 W bench target.
Flash MicroPython onto the Pico (micropython.org/download).
Copy
rec_zephyr.pyto the Pico asmain.py(so it runs at boot), for example withmpremote:mpremote cp tools/rec_zephyr.py :main.py
Open the REPL (
mpremoteor any serial terminal at 115200 baud on the Pico’s USB CDC). One line should print per received telemetry frame:[OK ] SM t=12345 ms state=ARMED armed=1 alt=+0.12 a=+9.81 ...
Frames whose CRC fails appear as
[BAD] type=0x?? len=N: occasional bad frames are expected at long range or with weak antennas, but a steady stream of them indicates the UART baud is wrong on one side.
Here is an example output of the first successfull MULTIMETER flight:
[OK ] SM t=18740 ms state=ARMED armed=1 alt=-0.05 a=+10.03 av=-0.01 v=-0.11 ypr=-3.56/+2.90/-1.22
[OK ] SM t=18843 ms state=ARMED armed=1 alt=-0.01 a=+10.01 av=-0.05 v=-0.06 ypr=-4.45/+3.23/-1.23
[OK ] SM t=18945 ms state=ARMED armed=1 alt=-0.03 a=+10.62 av=+0.58 v=-0.08 ypr=-2.90/+2.43/-1.24
[OK ] SM t=19047 ms state=ARMED armed=1 alt=-0.02 a=+15.64 av=+5.61 v=+0.07 ypr=-2.25/+1.68/-1.80
[OK ] SM t=19150 ms state=ARMED armed=1 alt=+0.03 a=+37.58 av=+27.49 v=+1.66 ypr=-2.51/+2.82/-5.80
[OK ] SM t=19252 ms state=ARMED armed=1 alt=+0.31 a=+50.87 av=+40.86 v=+5.52 ypr=-0.16/+0.08/-8.97
[OK ] SM t=19355 ms state=ARMED armed=1 alt=+1.12 a=+35.49 av=+25.44 v=+8.99 ypr=+1.02/+2.13/-11.88
[OK ] SM t=19456 ms state=ARMED armed=1 alt=+2.24 a=+28.87 av=+18.66 v=+11.21 ypr=+2.39/+0.72/-14.61
[OK ] SM t=19559 ms state=ARMED armed=1 alt=+3.54 a=+25.89 av=+15.31 v=+13.01 ypr=+1.40/-1.42/-12.33
[OK ] SM t=19662 ms state=ARMED armed=1 alt=+4.88 a=+22.46 av=+11.72 v=+14.29 ypr=-0.73/-1.17/-6.28
[OK ] SM t=19764 ms state=ARMED armed=1 alt=+6.48 a=+21.55 av=+10.86 v=+15.50 ypr=-1.86/+0.66/+1.61
[OK ] SM t=19867 ms state=ARMED armed=1 alt=+8.19 a=+21.81 av=+11.34 v=+16.71 ypr=-1.11/+4.88/+10.68
[OK ] SM t=19968 ms state=BOOST armed=1 alt=+10.00 a=+21.84 av=+11.71 v=+17.94 ypr=+3.00/+3.72/+19.59
[OK ] SM t=20070 ms state=BOOST armed=1 alt=+11.87 a=+21.33 av=+10.50 v=+19.13 ypr=+2.45/-4.48/+31.19
[OK ] SM t=20174 ms state=BOOST armed=1 alt=+13.93 a=+20.76 av=+9.03 v=+20.19 ypr=-5.45/+0.74/+44.32
[OK ] SM t=20275 ms state=BOOST armed=1 alt=+16.00 a=+20.41 av=+9.46 v=+21.08 ypr=+0.05/+5.76/+57.49
[OK ] SM t=20378 ms state=BOOST armed=1 alt=+18.10 a=+20.20 av=+9.99 v=+21.98 ypr=+3.91/+0.03/+71.50
[OK ] SM t=20480 ms state=BURNOUT armed=1 alt=+20.33 a=+1.97 av=-9.51 v=+22.06 ypr=-71.02/-50.08/+87.94
[OK ] SM t=20582 ms state=BURNOUT armed=1 alt=+22.47 a=+1.43 av=-11.00 v=+20.88 ypr=-138.33/+11.62/+104.11
[OK ] SM t=20685 ms state=BURNOUT armed=1 alt=+24.42 a=+2.04 av=-10.81 v=+19.60 ypr=+120.82/+16.06/+119.71
[OK ] SM t=20787 ms state=BURNOUT armed=1 alt=+26.32 a=+1.42 av=-10.17 v=+18.50 ypr=+140.04/-49.49/+136.49
[OK ] SM t=20889 ms state=BURNOUT armed=1 alt=+28.01 a=+1.10 av=-10.48 v=+17.29 ypr=-130.06/+0.50/+153.48
[OK ] SM t=20992 ms state=BURNOUT armed=1 alt=+29.66 a=+0.85 av=-10.43 v=+16.15 ypr=-135.92/+9.07/+169.21
[OK ] SM t=21094 ms state=BURNOUT armed=1 alt=+31.16 a=+0.71 av=-10.69 v=+14.96 ypr=-179.08/+32.83/-176.29
[OK ] SM t=21197 ms state=BURNOUT armed=1 alt=+32.52 a=+0.63 av=-10.65 v=+13.72 ypr=+140.31/-21.45/-161.97
[OK ] SM t=21299 ms state=BURNOUT armed=1 alt=+33.77 a=+0.61 av=-10.30 v=+12.56 ypr=-128.05/-23.99/-148.44
[OK ] SM t=21401 ms state=BURNOUT armed=1 alt=+34.88 a=+0.90 av=-10.16 v=+11.39 ypr=-109.98/+3.06/-135.81
[OK ] SM t=21504 ms state=BURNOUT armed=1 alt=+35.88 a=+0.92 av=-10.16 v=+10.21 ypr=-108.25/-2.99/-124.20
[OK ] SM t=21606 ms state=BURNOUT armed=1 alt=+36.90 a=+0.34 av=-10.72 v=+9.19 ypr=+164.36/-42.75/-113.24
[OK ] SM t=21709 ms state=BURNOUT armed=1 alt=+37.78 a=+0.39 av=-10.89 v=+8.06 ypr=+119.36/-24.85/-102.71
[OK ] SM t=21811 ms state=BURNOUT armed=1 alt=+38.60 a=+0.20 av=-10.58 v=+7.02 ypr=-125.22/-10.88/-92.64
[OK ] SM t=21913 ms state=BURNOUT armed=1 alt=+39.28 a=+0.80 av=-10.12 v=+5.99 ypr=-100.30/+36.70/-82.96
[OK ] SM t=22017 ms state=BURNOUT armed=1 alt=+39.88 a=+0.64 av=-10.24 v=+4.96 ypr=-95.44/+19.17/-72.87
[OK ] SM t=22118 ms state=BURNOUT armed=1 alt=+40.35 a=+0.47 av=-10.35 v=+3.95 ypr=-101.31/+33.50/-62.83
[OK ] SM t=22220 ms state=BURNOUT armed=1 alt=+40.74 a=+0.58 av=-10.18 v=+2.95 ypr=-94.90/+54.91/-54.07
[OK ] SM t=22322 ms state=BURNOUT armed=1 alt=+41.04 a=+0.61 av=-10.14 v=+1.96 ypr=-104.04/+67.25/-46.65
[OK ] SM t=22425 ms state=BURNOUT armed=1 alt=+41.27 a=+0.45 av=-10.27 v=+1.01 ypr=+105.94/+81.01/-39.79
[OK ] SM t=22528 ms state=BURNOUT armed=1 alt=+41.44 a=+0.33 av=-10.30 v=+0.08 ypr=-100.30/+71.28/-33.34
[OK ] SM t=22629 ms state=BURNOUT armed=1 alt=+41.46 a=+0.38 av=-10.19 v=-0.89 ypr=-90.00/+77.01/-27.10
[OK ] SM t=22732 ms state=MAIN armed=1 alt=+41.25 a=+0.72 av=-9.97 v=-2.01 ypr=-121.37/+50.38/-22.15
[OK ] SM t=22834 ms state=MAIN armed=1 alt=+40.91 a=+0.39 av=-10.11 v=-3.14 ypr=-45.00/+88.02/-19.37
[OK ] SM t=22937 ms state=MAIN armed=1 alt=+40.41 a=+1.24 av=-9.62 v=-4.26 ypr=-43.60/+63.43/-15.98
[OK ] SM t=23040 ms state=MAIN armed=1 alt=+39.72 a=+1.15 av=-9.36 v=-5.45 ypr=-122.47/+83.75/-12.21
[OK ] SM t=23141 ms state=MAIN armed=1 alt=+38.89 a=+1.45 av=-8.85 v=-6.62 ypr=+120.47/+67.09/-7.60
[OK ] SM t=23244 ms state=MAIN armed=1 alt=+38.09 a=+1.06 av=-9.09 v=-7.62 ypr=+135.43/+31.66/-1.29
[OK ] SM t=23347 ms state=MAIN armed=1 alt=+37.15 a=+1.37 av=-8.66 v=-8.66 ypr=+129.69/+24.78/+7.51
[OK ] SM t=23448 ms state=MAIN armed=1 alt=+36.12 a=+3.37 av=-6.77 v=-9.52 ypr=+129.98/+42.77/+11.86
[OK ] SM t=23552 ms state=MAIN armed=1 alt=+35.05 a=+6.12 av=-4.18 v=-10.16 ypr=+156.14/+50.40/+13.17
[OK ] SM t=23653 ms state=MAIN armed=1 alt=+34.04 a=+5.00 av=-5.24 v=-10.43 ypr=+146.69/+49.61/+23.01
[OK ] SM t=23755 ms state=MAIN armed=1 alt=+33.30 a=+11.51 av=+0.84 v=-10.37 ypr=+115.04/+38.72/+55.42
[OK ] SM t=23859 ms state=MAIN armed=1 alt=+33.78 a=+23.17 av=+9.19 v=-8.52 ypr=+100.31/+5.78/+93.51
[OK ] SM t=23960 ms state=MAIN armed=1 alt=+34.23 a=+29.01 av=+7.87 v=-7.08 ypr=+53.13/-29.36/+117.47
[OK ] SM t=24062 ms state=MAIN armed=1 alt=+34.02 a=+34.33 av=+20.09 v=-4.37 ypr=-79.12/-2.73/+98.43
[OK ] SM t=24165 ms state=MAIN armed=1 alt=+33.73 a=+16.94 av=+2.15 v=-3.90 ypr=-29.83/+37.86/+2.75
[OK ] SM t=24267 ms state=MAIN armed=1 alt=+33.57 a=+18.95 av=+7.14 v=-2.76 ypr=-72.39/-27.93/-107.93
[OK ] SM t=24370 ms state=MAIN armed=1 alt=+33.32 a=+9.14 av=-2.01 v=-2.70 ypr=+69.35/-38.67/+143.15
[OK ] SM t=24472 ms state=MAIN armed=1 alt=+32.83 a=+18.48 av=+4.60 v=-3.06 ypr=-58.21/-25.78/+88.17
[OK ] SM t=24575 ms state=MAIN armed=1 alt=+32.45 a=+14.15 av=+3.93 v=-2.58 ypr=-2.67/-62.32/+32.50
[OK ] SM t=24677 ms state=REDUNDANT armed=1 alt=+32.07 a=+12.30 av=-0.23 v=-2.61 ypr=-44.31/+1.78/+7.34
[OK ] SM t=24779 ms state=REDUNDANT armed=1 alt=+31.58 a=+9.06 av=-2.23 v=-2.92 ypr=-39.51/-10.41/-52.86
[OK ] SM t=24882 ms state=REDUNDANT armed=1 alt=+31.05 a=+8.83 av=-1.12 v=-3.37 ypr=+11.07/-0.93/-129.73
[OK ] SM t=24984 ms state=REDUNDANT armed=1 alt=+30.63 a=+11.13 av=+0.58 v=-3.48 ypr=-26.86/+27.24/+167.68
[OK ] SM t=25086 ms state=REDUNDANT armed=1 alt=+30.25 a=+9.56 av=-0.72 v=-3.52 ypr=-26.51/-21.80/+82.07
[OK ] SM t=25190 ms state=REDUNDANT armed=1 alt=+29.84 a=+9.03 av=-0.76 v=-3.64 ypr=+26.03/-30.38/+4.41
[OK ] SM t=25291 ms state=REDUNDANT armed=1 alt=+29.42 a=+10.74 av=+0.47 v=-3.69 ypr=-5.42/-38.53/-38.79
[OK ] SM t=25394 ms state=REDUNDANT armed=1 alt=+28.95 a=+11.68 av=+0.69 v=-3.68 ypr=-25.77/-37.32/-51.50
[OK ] SM t=25495 ms state=REDUNDANT armed=1 alt=+28.50 a=+10.57 av=+0.43 v=-3.76 ypr=-8.89/+4.99/-56.86
[OK ] SM t=25598 ms state=REDUNDANT armed=1 alt=+28.01 a=+12.87 av=+2.14 v=-3.73 ypr=+21.70/+29.93/-74.80
[OK ] SM t=25702 ms state=REDUNDANT armed=1 alt=+27.46 a=+11.52 av=+0.43 v=-3.76 ypr=+26.72/+7.02/-97.24
[OK ] SM t=25803 ms state=REDUNDANT armed=1 alt=+26.96 a=+10.71 av=+0.02 v=-3.91 ypr=-6.69/-31.53/-90.74
[OK ] SM t=25905 ms state=REDUNDANT armed=1 alt=+26.49 a=+10.35 av=+0.10 v=-3.98 ypr=-21.27/-2.70/-67.53
[OK ] SM t=26007 ms state=REDUNDANT armed=1 alt=+25.97 a=+11.91 av=+0.83 v=-4.07 ypr=+27.20/+13.52/-54.07
[OK ] SM t=26110 ms state=REDUNDANT armed=1 alt=+25.56 a=+10.38 av=-0.24 v=-4.04 ypr=+28.48/-16.06/-17.88
[OK ] SM t=26213 ms state=REDUNDANT armed=1 alt=+25.13 a=+11.58 av=+0.76 v=-4.02 ypr=-24.11/-1.66/+42.19
[OK ] SM t=26314 ms state=REDUNDANT armed=1 alt=+24.73 a=+9.42 av=-0.60 v=-4.04 ypr=-0.64/-2.27/+83.98
[OK ] SM t=26417 ms state=REDUNDANT armed=1 alt=+24.35 a=+12.23 av=+1.31 v=-3.99 ypr=-35.13/-32.25/+130.56
[OK ] SM t=26520 ms state=REDUNDANT armed=1 alt=+23.86 a=+12.32 av=+0.79 v=-3.94 ypr=-49.66/-13.34/+167.29
[OK ] SM t=26621 ms state=REDUNDANT armed=1 alt=+23.42 a=+10.14 av=+0.16 v=-4.01 ypr=+16.62/-17.58/+166.20
[OK ] SM t=26725 ms state=REDUNDANT armed=1 alt=+22.88 a=+10.35 av=+0.63 v=-4.09 ypr=+23.60/-27.53/+178.63
[OK ] SM t=26826 ms state=REDUNDANT armed=1 alt=+22.47 a=+10.94 av=+0.20 v=-4.06 ypr=-27.43/-9.16/-148.33
[OK ] SM t=26929 ms state=REDUNDANT armed=1 alt=+22.07 a=+11.03 av=-0.62 v=-4.05 ypr=-34.54/+13.91/-135.98
[OK ] SM t=27032 ms state=REDUNDANT armed=1 alt=+21.55 a=+9.98 av=+0.12 v=-4.24 ypr=+0.58/-18.45/-154.00
[OK ] SM t=27133 ms state=REDUNDANT armed=1 alt=+21.06 a=+11.24 av=+1.63 v=-4.18 ypr=+13.57/-32.32/-163.05
[OK ] SM t=27236 ms state=REDUNDANT armed=1 alt=+20.62 a=+10.33 av=-0.30 v=-4.13 ypr=-23.52/-20.67/-152.69
[OK ] SM t=27338 ms state=REDUNDANT armed=1 alt=+20.13 a=+10.06 av=-0.56 v=-4.25 ypr=-20.88/-13.03/-156.76
[OK ] SM t=27440 ms state=REDUNDANT armed=1 alt=+19.74 a=+10.81 av=+1.08 v=-4.19 ypr=+14.52/-23.86/-178.03
[OK ] SM t=27543 ms state=REDUNDANT armed=1 alt=+19.34 a=+10.51 av=+0.46 v=-4.04 ypr=+4.86/-25.46/-174.56
[OK ] SM t=27645 ms state=REDUNDANT armed=1 alt=+18.82 a=+10.49 av=-0.86 v=-4.19 ypr=-26.64/-2.25/-144.89
[OK ] SM t=27747 ms state=REDUNDANT armed=1 alt=+18.29 a=+10.38 av=-0.37 v=-4.38 ypr=-27.28/-16.72/-129.82
[OK ] SM t=27850 ms state=REDUNDANT armed=1 alt=+17.98 a=+11.64 av=+1.90 v=-4.15 ypr=+6.42/-47.46/-127.63
[OK ] SM t=27952 ms state=REDUNDANT armed=1 alt=+17.52 a=+10.59 av=+0.48 v=-4.08 ypr=-16.84/-32.60/-103.78
[OK ] SM t=28055 ms state=REDUNDANT armed=1 alt=+17.07 a=+10.48 av=-0.34 v=-4.11 ypr=-8.98/-0.42/-80.02
[OK ] SM t=28157 ms state=REDUNDANT armed=1 alt=+16.62 a=+10.15 av=-0.35 v=-4.22 ypr=-4.07/-5.63/-69.58
[OK ] SM t=28259 ms state=REDUNDANT armed=1 alt=+16.14 a=+11.87 av=+1.43 v=-4.20 ypr=-21.74/-29.99/-63.51
[OK ] SM t=28362 ms state=REDUNDANT armed=1 alt=+15.77 a=+10.67 av=+0.35 v=-4.02 ypr=-18.91/-34.15/-64.91
[OK ] SM t=28464 ms state=REDUNDANT armed=1 alt=+15.27 a=+9.05 av=-0.91 v=-4.19 ypr=+2.27/-24.84/-73.26
[OK ] SM t=28567 ms state=REDUNDANT armed=1 alt=+14.77 a=+10.39 av=+0.31 v=-4.29 ypr=+5.17/-19.77/-77.38
[OK ] SM t=28669 ms state=REDUNDANT armed=1 alt=+14.23 a=+10.59 av=-0.36 v=-4.41 ypr=-17.64/-25.31/-69.76
[OK ] SM t=28771 ms state=REDUNDANT armed=1 alt=+13.73 a=+11.29 av=-0.03 v=-4.50 ypr=-27.48/-28.16/-62.40
[BAD] type=0x01 len=64
[OK ] SM t=28976 ms state=REDUNDANT armed=1 alt=+12.78 a=+10.02 av=-0.24 v=-4.42 ypr=-9.38/-28.42/-34.69
[OK ] SM t=29079 ms state=REDUNDANT armed=1 alt=+12.42 a=+9.48 av=-1.36 v=-4.41 ypr=-34.75/-20.19/+2.78
[OK ] SM t=29180 ms state=REDUNDANT armed=1 alt=+11.86 a=+10.57 av=+0.19 v=-4.67 ypr=-32.01/-26.97/+18.91
[OK ] SM t=29283 ms state=REDUNDANT armed=1 alt=+11.27 a=+10.94 av=+0.94 v=-4.64 ypr=-8.01/-29.92/+14.32
[OK ] SM t=29386 ms state=REDUNDANT armed=1 alt=+10.72 a=+11.82 av=+1.79 v=-4.58 ypr=+6.41/-21.76/+6.24
[OK ] SM t=29488 ms state=REDUNDANT armed=1 alt=+10.16 a=+11.95 av=+1.21 v=-4.55 ypr=-10.63/-28.15/+3.77
[OK ] SM t=29590 ms state=REDUNDANT armed=1 alt=+9.64 a=+11.57 av=+0.68 v=-4.47 ypr=-13.95/-33.15/+1.90
[OK ] SM t=29692 ms state=REDUNDANT armed=1 alt=+9.14 a=+9.70 av=-0.47 v=-4.49 ypr=-2.00/-25.36/+3.25
[OK ] SM t=29795 ms state=REDUNDANT armed=1 alt=+8.63 a=+10.66 av=+0.59 v=-4.54 ypr=-1.70/-20.40/+16.20
[OK ] SM t=29898 ms state=REDUNDANT armed=1 alt=+8.00 a=+10.97 av=+0.58 v=-4.64 ypr=-14.93/-15.17/+37.43
[OK ] SM t=29999 ms state=REDUNDANT armed=1 alt=+7.50 a=+10.91 av=+0.78 v=-4.57 ypr=-14.05/-19.96/+48.04
[OK ] SM t=30102 ms state=REDUNDANT armed=1 alt=+6.89 a=+10.61 av=+0.75 v=-4.67 ypr=-4.15/-24.52/+47.85
[OK ] SM t=30205 ms state=REDUNDANT armed=1 alt=+6.37 a=+10.69 av=+0.86 v=-4.63 ypr=-0.05/-18.74/+50.64
[OK ] SM t=30306 ms state=REDUNDANT armed=1 alt=+5.94 a=+10.13 av=+0.05 v=-4.55 ypr=-12.57/-14.50/+54.59
[OK ] SM t=30410 ms state=REDUNDANT armed=1 alt=+5.45 a=+10.09 av=+0.08 v=-4.56 ypr=-13.20/-23.36/+48.02
[OK ] SM t=30511 ms state=REDUNDANT armed=1 alt=+5.02 a=+10.25 av=+0.50 v=-4.49 ypr=+3.48/-30.36/+37.39
[OK ] SM t=30614 ms state=REDUNDANT armed=1 alt=+4.54 a=+10.00 av=+0.22 v=-4.49 ypr=+0.24/-24.06/+43.96
[OK ] SM t=30717 ms state=REDUNDANT armed=1 alt=+4.00 a=+10.85 av=+0.48 v=-4.53 ypr=-25.02/-11.96/+64.82
[OK ] SM t=30818 ms state=REDUNDANT armed=1 alt=+3.57 a=+9.99 av=-0.23 v=-4.50 ypr=-26.87/-17.10/+71.09
[OK ] SM t=30921 ms state=REDUNDANT armed=1 alt=+3.17 a=+11.61 av=+1.83 v=-4.34 ypr=+2.70/-34.79/+59.71
[OK ] SM t=31023 ms state=REDUNDANT armed=1 alt=+2.72 a=+11.02 av=+1.17 v=-4.14 ypr=-5.31/-26.80/+60.16
[OK ] SM t=31125 ms state=REDUNDANT armed=1 alt=+2.23 a=+10.20 av=+0.05 v=-4.13 ypr=-14.63/-14.91/+64.17
[OK ] SM t=31228 ms state=REDUNDANT armed=1 alt=+1.71 a=+10.52 av=+0.61 v=-4.24 ypr=-4.06/-26.02/+55.70
[OK ] SM t=31330 ms state=REDUNDANT armed=1 alt=+1.32 a=+11.58 av=+1.76 v=-4.03 ypr=+6.63/-33.11/+53.12
[OK ] SM t=31433 ms state=REDUNDANT armed=1 alt=+0.87 a=+10.48 av=+0.13 v=-4.01 ypr=-21.17/-18.03/+76.64
[OK ] SM t=31535 ms state=REDUNDANT armed=1 alt=+0.41 a=+20.39 av=+8.67 v=-3.95 ypr=+14.89/-12.80/+95.44
[OK ] SM t=31637 ms state=REDUNDANT armed=1 alt=-0.12 a=+29.70 av=-18.36 v=-3.60 ypr=+172.30/+5.49/+101.88
[OK ] SM t=31740 ms state=REDUNDANT armed=1 alt=-0.34 a=+22.87 av=+10.74 v=-2.73 ypr=-178.36/+6.37/+79.93
[OK ] SM t=31842 ms state=REDUNDANT armed=1 alt=-0.40 a=+24.61 av=-25.94 v=-3.65 ypr=-177.57/+7.04/+53.45
[OK ] SM t=31944 ms state=REDUNDANT armed=1 alt=-0.74 a=+20.47 av=-18.11 v=-6.52 ypr=+173.96/+17.27/+95.96
[OK ] SM t=32047 ms state=REDUNDANT armed=1 alt=-1.08 a=+4.51 av=-13.62 v=-6.36 ypr=+18.12/+11.00/+120.68
[OK ] SM t=32149 ms state=REDUNDANT armed=1 alt=-1.44 a=+8.82 av=-17.77 v=-8.41 ypr=-94.16/-13.56/+117.25
[OK ] SM t=32252 ms state=REDUNDANT armed=1 alt=-1.83 a=+7.39 av=-13.74 v=-9.45 ypr=-42.60/-9.62/+111.86
[OK ] SM t=32354 ms state=REDUNDANT armed=1 alt=-2.21 a=+11.35 av=-14.45 v=-10.34 ypr=-52.12/-11.03/+114.81
[OK ] SM t=32456 ms state=REDUNDANT armed=1 alt=-2.60 a=+6.35 av=-11.62 v=-10.88 ypr=-57.47/-7.19/+119.10
[OK ] SM t=32560 ms state=REDUNDANT armed=1 alt=-2.87 a=+6.10 av=-12.74 v=-11.11 ypr=-152.98/+12.05/+120.90
[OK ] SM t=32661 ms state=REDUNDANT armed=1 alt=-3.20 a=+6.92 av=-11.69 v=-11.07 ypr=-99.19/+9.07/+123.14
[OK ] SM t=32763 ms state=REDUNDANT armed=1 alt=-3.36 a=+9.97 av=-8.18 v=-10.91 ypr=-107.12/+25.84/+123.31
[OK ] SM t=32866 ms state=REDUNDANT armed=1 alt=-3.39 a=+10.06 av=-6.86 v=-10.47 ypr=-109.49/+24.15/+123.27
[OK ] SM t=32968 ms state=REDUNDANT armed=1 alt=-3.46 a=+10.03 av=-5.36 v=-9.96 ypr=-109.29/+24.52/+123.26
[OK ] SM t=33071 ms state=REDUNDANT armed=1 alt=-3.49 a=+10.01 av=-4.18 v=-9.34 ypr=-109.18/+24.39/+123.25
[OK ] SM t=33172 ms state=REDUNDANT armed=1 alt=-3.40 a=+10.00 av=-3.27 v=-8.57 ypr=-109.31/+24.29/+123.24
[OK ] SM t=33275 ms state=REDUNDANT armed=1 alt=-3.32 a=+10.02 av=-2.53 v=-7.81 ypr=-109.23/+24.43/+123.23
[OK ] SM t=33378 ms state=REDUNDANT armed=1 alt=-3.17 a=+10.01 av=-2.03 v=-7.00 ypr=-109.20/+24.41/+123.22
[OK ] SM t=33480 ms state=REDUNDANT armed=1 alt=-3.07 a=+10.00 av=-1.67 v=-6.29 ypr=-109.33/+24.37/+123.22
[OK ] SM t=33583 ms state=REDUNDANT armed=1 alt=-2.80 a=+10.01 av=-1.39 v=-5.45 ypr=-109.20/+24.41/+123.21
[OK ] SM t=33684 ms state=REDUNDANT armed=1 alt=-2.50 a=+10.01 av=-1.21 v=-4.65 ypr=-109.40/+24.21/+123.20
[OK ] SM t=33787 ms state=REDUNDANT armed=1 alt=-2.28 a=+10.02 av=-1.07 v=-4.01 ypr=-109.39/+24.56/+123.19
[OK ] SM t=33890 ms state=REDUNDANT armed=1 alt=-2.13 a=+10.03 av=-0.98 v=-3.50 ypr=-109.19/+24.24/+123.19
[OK ] SM t=33991 ms state=REDUNDANT armed=1 alt=-2.02 a=+10.01 av=-0.93 v=-3.09 ypr=-109.18/+24.39/+123.18
[OK ] SM t=34095 ms state=REDUNDANT armed=1 alt=-1.86 a=+10.02 av=-0.88 v=-2.66 ypr=-109.50/+24.49/+123.18
[OK ] SM t=34196 ms state=REDUNDANT armed=1 alt=-1.66 a=+10.00 av=-0.87 v=-2.23 ypr=-109.41/+24.48/+123.17
[OK ] SM t=34298 ms state=REDUNDANT armed=1 alt=-1.49 a=+10.00 av=-0.85 v=-1.89 ypr=-109.22/+24.48/+123.17
[OK ] SM t=34402 ms state=REDUNDANT armed=1 alt=-1.44 a=+10.04 av=-0.80 v=-1.71 ypr=-109.36/+24.27/+123.17
[OK ] SM t=34503 ms state=REDUNDANT armed=1 alt=-1.23 a=+10.06 av=-0.77 v=-1.37 ypr=-109.29/+24.87/+123.15
[OK ] SM t=34606 ms state=REDUNDANT armed=1 alt=-1.20 a=+9.98 av=-0.84 v=-1.27 ypr=-109.28/+24.65/+123.14
[OK ] SM t=34708 ms state=REDUNDANT armed=1 alt=-1.10 a=+10.02 av=-0.80 v=-1.10 ypr=-109.25/+24.60/+123.13
[OK ] SM t=34810 ms state=LANDED armed=1 alt=-0.99 a=+10.02 av=-0.79 v=-0.94 ypr=-109.44/+24.60/+123.12
[OK ] SM t=34913 ms state=LANDED armed=1 alt=-0.91 a=+10.01 av=-0.81 v=-0.82 ypr=-109.37/+24.29/+123.13
[OK ] SM t=35015 ms state=LANDED armed=1 alt=-0.93 a=+10.03 av=-0.79 v=-0.83 ypr=-109.48/+24.47/+123.11
[OK ] SM t=35117 ms state=LANDED armed=1 alt=-0.91 a=+10.02 av=-0.79 v=-0.79 ypr=-109.48/+24.42/+123.11
[OK ] SM t=35220 ms state=LANDED armed=1 alt=-0.84 a=+10.01 av=-0.81 v=-0.71 ypr=-109.39/+24.83/+123.09
Note
State APOGEE is so short-lived that the 10Hz LoRa rate is not enough to display it.
Building the Pico 2 W bench target¶
For bench work it is useful to flash a Pico 2 W with a minimal AURORA
build that only exercises the telemetry stack. No real IMU, no
barometer, no SD card. This is what the rpi_pico2/rp2350a/m33/w board
target plus the sim and nodisk snippets provide:
west build -p -b rpi_pico2/rp2350a/m33/w -S sim -S nodisk sensor_board
After flashing the resulting build/zephyr/zephyr.uf2 onto the Pico,
attach the HC-12 to UART1 as documented in the overlay. The board will
boot, start the simulated flight, and emit telemetry frames over the
radio for rec_zephyr.py to pick up.
Requirements¶
A Raspberry Pi Pico (or Pico W / Pico 2) flashed with MicroPython.
An HC-12 radio module paired with the transmitter on the same channel and baud.
No host-side Python dependencies, the REPL is the user interface.