Skip to content

AtomicAggies/TelemetryCommon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TelemetryCommon

Shared packed C++ types for rocket telemetry used by:

  • SpencerBoardCode — fills TelemetryData, sends over I2C.
  • JacobBoardCode — reassembles TelemetryData, sends LoRaTelemetryPayload over LoRa.
  • AbrahamBoardCode — receives I2C and logs TelemetryData to 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.


Install as an Arduino library (recommended)

Arduino looks for libraries under your sketchbook libraries folder (same parent as your Projects / sketch folders).

  1. Copy or clone this repo so the folder layout is:

    Documents/Arduino/libraries/TelemetryCommon/library.properties
    Documents/Arduino/libraries/TelemetryCommon/src/TelemetryData.h

    On Windows, if this repo currently lives at
    Documents/Arduino/TelemetryCommon, either:

    • Move the whole TelemetryCommon folder into Documents/Arduino/libraries/, or

    • Clone/copy it there, or

    • Create a directory junction (run cmd as Administrator if needed):

      mklink /J "%USERPROFILE%\Documents\Arduino\libraries\TelemetryCommon" "%USERPROFILE%\Documents\Arduino\TelemetryCommon"

  2. Restart the Arduino IDE (or Arduino IDE 2) so it rescans libraries.

  3. 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/.


Arduino IDE 2 — optional: extra include path (not recommended)

If you insist on keeping this repo outside libraries/:

  1. 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/sketch
    

    Adjust the -I path to your machine. Forward slashes are fine on Windows.

  2. Arduino IDE GUI does not expose a per-sketch global include path; the library layout above is the supported approach.


PlatformIO

Add to platformio.ini for a project that needs the types:

build_flags =
  -I${sysenv.USERPROFILE}/OneDrive/Documents/Arduino/TelemetryCommon/src

Or use lib_extra_dirs pointing at the parent of TelemetryCommon and depend on the library by name if you add a platformio manifest later.


Debug guide

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.


Git

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

About

Common C++ Libraries for onboard Avionics Stack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors