Skip to content

White Vest is a project for collecting, logging, emitting, and visualizing telemetry from a model rocket containing an inboard Raspberry Pi Zero with an Arduino receiving telemetry.

License

Notifications You must be signed in to change notification settings

johnjones4/white-vest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Icon

White Vest:

White Vest Build

Telemetry

White Vest is a project for collecting, logging, emitting, and visualizing telemetry from a model rocket containing an inboard Raspberry Pi Zero with an Arduino receiving telemetry. To learn more about this project, visit my blog post documenting it. This project is named after the iconic white vest that flight director Gene Kranz wore during Apollo 13.

Hardware

This project requires a Raspberry Pi Zero for the inboard systems and an Arduino for ground telemetry reception.

Inboard

The inboard system records video and measures pressure, temperature, altitude, acceleration, and orientation. The total payload weight of the module, with 3D printed parts for mounting, weights about 115 grams, but your mileage may vary.

Ground

Wiring

Wiring Diagram

The air hardware is wired to the following Raspberry Pi pins:

  • PowerBoost 500 Basic:
    • 5v -> Pi 5V
    • Ground -> Pi Ground
  • BMP388 (I2C)
    • VIN -> Pi 3V
    • GND -> Pi GND
    • SCK -> Pi SCL
    • SDI -> Pi SDA
  • LSM303 (I2C)
    • VIN -> Pi 3V
    • GND -> Pi GND
    • SCL -> Pi SCL
    • SDA -> Pi SDA
  • Camera
    • Pi Camera ribbon connection
  • RFM95W (SPI)
    • VIN -> Pi 3V
    • GND -> Pi GND
    • SCK -> Pi SPI SCLK
    • MOSI -> Pi SPI MOSI
    • MISO -> Pi SPI MISO
    • CS -> Pi D5
    • RST -> Pi CE1
  • GPS Module (Serial)
    • VIN -> Pi 5V
    • GND -> Pi GND
    • TX -> Pi RX
    • RX -> Pi TX
  • Momentary, Normally Open Switch
    • In -> Pi 3V
    • Out -> Resistor -> Pi D16

The ground hardware, much more simply, is wired to the following Arduino pins:

  • RFM95W
    • VIN -> Arduino 5v
    • GND -> Arduino GND
    • G0 -> Arduino 13
    • MISO -> Arduino 12
    • MOSI -> Arduino 11
    • CS -> Arduino 4
    • RST -> Arduino 2

Telemetry

The air software logs all sensor readings to a timestamped CSV file under data and transmits them using a LoRA transceiver, and data logging cuts off after 30 minutes. The transmitted data is a simple binary sequence of doubles in the following order:

  • Unix Timestamp
  • Barometric Pressure (Pascals)
  • Temperature (Celsius)
  • Acceleration X (M/s/s)
  • Acceleration Y (M/s/s)
  • Acceleration Z (M/s/s)
  • Magnetic Direction X (Degrees)
  • Magnetic Direction Y (Degrees)
  • Magnetic Direction Z (Degrees)
  • Latitude
  • Longitude
  • GPS Signal Quality
  • Number of GPS sats

Setup

Ground

The ground Arduino software receives transmitted packets and echos them out to serial encoded in base 64. Install the ground.ino file using the Arduino IDE.

Dashboard

The dashboard is a text-based tool for tracking and logging received telemetry. To use it, download a release from the GitHub project or build the dashboard using the following steps:

$ cd ~
$ git clone git@github.com:johnjones4/white-vest.git
$ cd white-vest/ground/dashboard
$ make install
$ make build

Then, run the dashboard using the following build/dashboard-Darwin-i386 --input /dev/cu.usbmodem143101 --output text. Note that dashboard-Darwin-i386 will change based on the system you are using and /dev/cu.usbmodem143101 is the path to the Arduino serial connection. To view the web dashboard, pass in web for the --output option and open http://localhost:8080/.

Tool

The tool is a utility for after-flight work. To use it, download a release from the GitHub project or build the dashboard using the following steps:

$ cd ~
$ git clone git@github.com:johnjones4/white-vest.git
$ cd white-vest/ground/tool
$ make install
$ make build

The overall command structure is:

$ white-vest-tool [TASK] [FLAGS]

Taks/Flags:

  • convert: Converts telemtry data to plain old JSON for analysis
    • --input: The file path to the input file
    • --output: The file path to output to
    • --type: The "type" of data. Right now the only valid option, and the default value, is inboard. This is the CSV file generated on the telemetry module during flight. I recommend reviewing the data and clipping the pre-launch and post-landing useless data for faster conversion.
    • --progress: true or false, print a progress bar during conversion
  • summary: Analyze the data and print a few summary data points like apogee, max v, etc
    • --input: The file path to the input file (use the file made during convert)
  • chart: Generate altitude and velocity charts
    • --input: The file path to the input file (use the file made during convert)
    • --ouput: The directory to save the charts to

Air

This software requires I2C, SPI0, and Serial to be enabled on a Raspberry Pi.

To install this software on a Raspberry Pi, execute the following:

$ cd ~
$ git clone git@github.com:johnjones4/white-vest.git
$ cd white-vest/air
$ make install

Then, run make install-service

To start the software in the background, run sudo systemctl start air

In addition, you may verify wiring connections by running make sensor-test