Skip to main content

Portable Ground Station and Data Transmission Payload For Rocketry

Ever since I started working on model rockets several years ago I've been interested in making my own telemetry system. This would allow me to receive useful information about the rocket such as altitude, speed, location and the rocket's state (has it reached its apogee or landed?).

I aim is to design and build a portable ground station and electronic payload. Collected data will be transmitted by the rocket and received by the ground station to be shown to the user.


  • Continue to add sensors (e.g. IMUs and GPS) to a Teensy microcontroller for use as the payload on a rocket
  • Create a basic ground station with a ROCK 4 C+  (249-3158) , add a display, USB power bank and a case
  • Incorporate a LoRa telemetry link between the two and perform range testing
  • Program a live data visualisation on the ground station
  • Perform an integrated flight test with the payload and ground station

The Payload

The payload consists of a microcontroller, an array of sensors, a power source and a telemetry module. The specific sensors my system will use include:

  • Teensy 4.1 microcontroller (includes an SD card reader as well)
  • LSM6DSO32 (225-0663) accelerometer and gyroscope
  • A magnetometer (TBD)
  • Adafruit Ultimate GPS Breakout (PA1616D)
  • A pressure sensor (often includes a temperature sensor) (TBD)
  • RFM95W 868 MHz LoRa transceiver (might upgrade after doing a range test)

Current avionics setup

Current avionics setup: Teensy 4.1, GPS, LoRa transceiver

These are pretty standard sensors for a rocket payload. They allow you to determine the altitude, velocity, acceleration, roll rate, latitude and longitude. A Kalman filter can be used to combine data from different sensors such as the accelerometer, pressure sensor and GPS to get a more accurate altitude reading. The LoRa (Long Range) module is a low-power transceiver that can be used to transmit small amounts of data long distances. This will transmit the data to the ground station where it will be received by another LoRa module.

During each rocket launch, the payload won't perform any actuation such as parachute deployment. This is quite a bit more complicated and if done incorrectly could result in the loss of the rocket and all the electronics. The rocket that the payload will be launching on has already launched 4 times. For parachute deployment, I will be using an Eggtimer quantum.

The rocket that will carry the avionics

The rocket that will carry the avionics

Current avionics bay sled with an Eggtimer Quantum

Current avionics bay sled with an Eggtimer Quantum

The Ground Station

The other key component is the ground station. For this, I intend to use an OKdo ROCK 4 C+ that I have and an 8" touchscreen display. The plan is to have the option of powering the ground station using both an internal USB power bank and an external power source. A switch will select the desired power source. When powered through the internal battery the external power source will be able to charge the power bank. The ROCK and other electronics will be housed inside a Pelican case to protect it. There will be the option of adding extra devices using panel-mounted USB and HDMI ports.

3D-printed front plate design

Current progress on the 3D-printed front plate that houses the display and switches

A lot of the inspiration for the ground station was from Jay Doscher's "Recovery Kit". It houses most of the equipment inside the base of a Pelican case as there isn't enough room in the lid. Below the display, there is a recessed region for the switches and various ports. The lid of the Pelican case can be used to hold a reduced-size keyboard. It can function like a normal laptop.

Jay Doscher's Cyberdeck - Recovery Kit

Jay Doscher's Cyberdeck / Recovery Kit

This brings up the point, why not just use a laptop? Although the core of the system, an SBC, monitor and keyboard make it similar to a laptop, once more components are added it is convenient to also house these inside the case. With a laptop, this could get quite cluttered with all the loose wires. The casing can prevent the electronics from getting damaged or wet in environments where you might not want to bring your laptop.

Plotting The Data

Once set up, the received data will be plotted in real-time using Matplotlib as I have done before. In the future, I may switch to another program like Grafana.

Plotting the data

Pressure, temperature, humidity, altitude, acceleration and angular velocity plotted in Python

In the past, I created a real-time GPS tracker that transmitted GPS coordinates with LoRa to my computer and then plotted using Google Earth. I could walk around or drive in a car with the GPS and see the updated position on Google Earth. I hope to implement this into the system, the result will look like the below plot of Project Sunride's Karman Alpha rocket launch.

Karman Alpha launch trajectory

Karman Alpha launch trajectory

Next Steps

I hope to next start work on the ground station. I will begin prototyping with 3D-printed parts to create a housing that secures the display, SBC and USB battery pack inside the Pelican case. I already have quite a bit of experience with each of the sensors involved in the project, I just need to bring them all together. Once ready, I hope to complete an integrated flight test on the rocket to test the system. This will hopefully display the data from the rocket from a decent altitude.

I'm very greatful to have been chosen as one of the winners of the Designspark Student Project Fund 2024.

Mechanical Engineering student at the University of Sheffield