Shared packed C++ types for rocket telemetry used by:
- SpencerBoardCode — fills
TelemetryData, sends over I2C. - JacobBoardCode — reassembles
TelemetryData, sendsLoRaTelemetryPayloadover LoRa. - AbrahamBoardCode — receives I2C and logs
TelemetryDatato SD.
Changing field order or sizes in src/TelemetryData.h requires updating all boards and any PC tools (e.g. telemetry_packet_viewer.py) in the same commit.
Arduino looks for libraries under your sketchbook libraries folder (same parent as your Projects / sketch folders).
-
Copy or clone this repo so the folder layout is:
Documents/Arduino/libraries/TelemetryCommon/library.properties
Documents/Arduino/libraries/TelemetryCommon/src/TelemetryData.hOn Windows, if this repo currently lives at
Documents/Arduino/TelemetryCommon, either:-
Move the whole
TelemetryCommonfolder intoDocuments/Arduino/libraries/, or -
Clone/copy it there, or
-
Create a directory junction (run
cmdas Administrator if needed):mklink /J "%USERPROFILE%\Documents\Arduino\libraries\TelemetryCommon" "%USERPROFILE%\Documents\Arduino\TelemetryCommon"
-
-
Restart the Arduino IDE (or Arduino IDE 2) so it rescans libraries.
-
In each sketch (
SpencerBoardCode.ino,JacobBoardCode.ino,AbrahamBoardCode.ino), use:#include <TelemetryData.h>
No extra “include path” configuration is required once the library is under
libraries/.
If you insist on keeping this repo outside libraries/:
-
arduino-cli (works with IDE 2 installs):
arduino-cli compile --fqbn <your:fqbn> --build-property "compiler.cpp.extra_flags=-I\"C:/Users/you/OneDrive/Documents/Arduino/TelemetryCommon/src\"" path/to/sketchAdjust the
-Ipath to your machine. Forward slashes are fine on Windows. -
Arduino IDE GUI does not expose a per-sketch global include path; the library layout above is the supported approach.
Add to platformio.ini for a project that needs the types:
build_flags =
-I${sysenv.USERPROFILE}/OneDrive/Documents/Arduino/TelemetryCommon/srcOr use lib_extra_dirs pointing at the parent of TelemetryCommon and depend on the library by name if you add a platformio manifest later.
This library has no firmware of its own—no LEDs or UART. Use the board repos for live debug:
| Repository | Console / UART | Status LEDs |
|---|---|---|
| SpencerBoardCode | USB or add Serial1 (see that README) |
Pins 3 and 13 (see that README) |
| JacobBoardCode | Serial1 @ 115200 (see that README) |
Pin 7 (see that README) |
| AbrahamBoardCode | SD logs only by default; optional Serial1 |
None in default firmware |
Teensy 4.x Serial1 and a 3.3 V USB–UART cable: connect GND, adapter RX to Teensy pin 1 (TX1), and adapter TX to Teensy pin 0 (RX1). Do not attach 5 V TTL UART outputs to Teensy GPIO.
Decoded SD dumps use telemetry_packet_viewer.py in the SpencerBoardCode repo.
Initialize or clone this repository in the location you prefer, then install under libraries/ as described so the Arduino build can find #include <TelemetryData.h>.