Skip to content
oapogeev0.1 design stage

Reference

Schematic, pinout, mechanical drawings, wire format specifications, and errata. No hand-holding.

draftadvancedupdated 2026-08-115 open markers

Written, not reviewed by anyone. Check the primary sources it links to. The highlighted blocks below are places where a number or a step is deliberately missing rather than guessed at.

Everything an engineer needs, with the explanation stripped out. If you want the reasoning, it is on the page that owns each subject.

Specifications

  • Telemetry packet format, version 1. The downlink wire format: byte layout, packet types, field encodings, CRC, and receiver conformance rules.
  • Onboard log format, version 1. Directory layout, the self-describing manifest, fixed-width record layouts, and reader conformance rules.

Both are published so that third parties can write their own tools without reverse engineering anything, and both carry a reference implementation.

System block diagram

The generated system diagram is on the bill of materials page. It is rendered from data/system.yaml, whose nodes reference part identifiers in data/bom.yaml, and the build fails if the committed diagram stops matching the data it was drawn from.

Flight state machine

Value State Transitions to On
0 PAD_IDLE ARMED Operator arms the payload
1 ARMED BOOST Sustained upward acceleration, held for N samples
2 BOOST COAST Acceleration crosses zero, burnout
3 COAST APOGEE Altitude decreasing across N consecutive samples
4 APOGEE DESCENT Sustained descent confirmed
5 DESCENT LANDED Altitude and acceleration quiet for a sustained period
6 LANDED none Terminal until power cycle

The same enumeration appears in the firmware, the log format, and the packet format. Values 7 to 255 are reserved.

Unverifiedevery threshold marked N above is unset. They must come from measured sensor noise on real hardware, not from intuition, and each carries its own verification note in data/flight-phases.yaml.

Flags

Identical bit assignments in the packet header and in each log record.

Bit Mask Name Meaning when set
0 0x01 GNSS_FIX Position fix available
1 0x02 HIGH_G High-g accelerometer present and healthy
2 0x04 BARO_FAULT Barometer failed or implausible
3 0x08 IMU_FAULT IMU failed or implausible
4 0x10 LOG_FULL Storage full, logging stopped
5 0x20 LOW_BATT Battery below threshold
6 0x40 SIM Bench test or simulation, not a flight
7 0x80 reserved Transmit 0, ignore on receive

Parts

Manufacturer part numbers, roles, tier membership, substitutes, and the reasoning behind each choice are on the bill of materials, generated from data/bom.yaml.

Schematic and PCB

Needs hardwarethe KiCad project does not exist. When it does, publish the project itself rather than a PDF export, along with Gerbers, a pick and place file, and the assembly bill of materials.

Pinout

Needs hardwarethe pin assignment is not fixed. It cannot be published until the schematic exists, and publishing a provisional one would guarantee that somebody builds against it.

Mechanical

Needs hardwareboard outline, mounting hole positions and diameters, connector positions, and the maximum component height on each side. Also the sled and pod models, published as parametric source rather than only as exported STLs.

Firmware

Needs hardwareconfiguration file reference, serial command reference, and the self-test output format.

Errata

None recorded, because nothing exists to have errata against.

When hardware ships, this section carries every known defect, with the revision affected and the workaround. Errata for a flight computer are safety information: if a firmware release changes an apogee detection threshold, somebody flying the previous build needs a way to find that out.

Changelog

Every change and decision so far is in the changelog, rendered from CHANGELOG.md. Nothing has been released yet, so every entry sits under Unreleased. Errata will appear there too.