Skip to content

Software and hardware used in the Argo 2 High Altitude Balloon launch.

License

Notifications You must be signed in to change notification settings

manterolat/argo2-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Argo 2 Tracker

High Altitude Balloon tracker designed for the Argo 2 launch by the Near Space Program at the International School of Panama.

Tracker transmits temperature, pressure and humidity data, as well as location coordinates and other status information.

The GroundStation program shows any data received, along with signal strength and CRC checking. It can also upload new data to the online tracker at HabHub.

Included are the PCB schematics (made in Eagle CAD) and software of the tracker and receiver, as well as the Ground Station program which runs on the tracking computer.

The software for the tracker and receiver is written in Arduino / C++, while the Ground Station written in Python.

Table of Contents

Parts and Components

Tracker:

Receiver:

Installation

To download the files in this repository run:

git clone https://github.com/manterolat/argo2-tracker.git

Tracker:

Software

  • Arduino IDE (1.6.0 and above should work)
  • If using Teensy 3.x: Install Teensyduino (tested with Teensyduino 1.29)
  • If using Feather M0: follow these instructions

Arduino Libraries

Receiver:

Software

Arduino Libraries

Ground Station:

GroundStation runs on Python 2.7, and requires the following modules:

  • crcmod for CRC checking
  • pyqrcode for generating QR codes
  • pyserial for serial communication

To install these (using pip) run:

pip install crcmod pyqrcode pyserial

Usage

After setting up the software and libary requirements you should be able to upload the tracker and receiver programs, as well as run the Ground Station.

Tracker:

Open /src/Argo2_Tracker/Argo2_Tracker.ino in the Arduino IDE.

Before compiling and uploading to the Feather/Teensy make sure to configure the tracker by changing the following lines in the program:

// Tracker callsign: change to your tracker's callsign
#define CALLSIGN "CHANGE_ME"

// Debug messages: uncomment the following line to enable printing to serial (for testing purposes)
//#define DEBUG

...

// Select either Teensy 3.x or Feather M0
#define TEENSY
//#define FEATHER

Leaving #define DEBUG uncommented will compile the Serial messages, which takes up space and cycles in the microcontroller.

Finally, select the board type and serial port in the Arduino IDE and upload.

Receiver:

Open Argo2_Receiver.ino with the Arduino IDE, then select the Feather M0 from the boards list and upload.

Ground Station:

If running on macOS with Python 2 installed manually, double-clicking GroundStation.py should start the program.

Otherwise, open a terminal in the argo2-tracker directory and run:

cd GroundStation
python GroundStation.py

The program will keep a log in the form of files: GroundStation.log and sentences.log.

Caution: Don't toggle the Online checkbox until you have setup your tracker on HabHub and are ready to launch/test.

Testing

Things to keep in mind before launch:

  • Cut the thermocouple cable as short as possible while keeping a small piece outside. We found that this reduced interference and/or resistance in the cable and improved the accuracy of measurements.
  • For the BME280 (pressure and humidity sensor) it's best to use cables and place the module on the outside of the capsule.
  • If placing the BME280 outside, cover the sensor with a small piece of cotton/fabric using tape in order to block wind which could affect measurements.

Only the Adafruit Feather M0 configuration (without thermocouple sensor) has being tested so far. Since then there have been a few changes to the tracker and receiver programs (mostly changing Serial.println to Snprintln).

The tracker also can't use the BME280 through SPI at the same time as the RFM95W radio due to SPI Transaction issues with the RadioHead library. For this reason, to use the BME280 you will need to connect the SCL and SDA pins of the BME280 to those of the Feather externally to use I2C instead (soldering wires externally).

Printed Circuit Boards

Both of these boards can be used with headers (for removable/replaceable components), or with the components soldered directly unto the board. I recommend the first method.

If using headers note that the RFM95W module needs 2.0mm headers, instead of regular 2.54mm headers.

The PCBs used in the Argo 2 launch were printed by OSH Park and functioned perfectly.

Tracker:

Note that there is an issue with the buzzer MOSFET and its connections at the moment. If you plan to use this board with a buzzer, you will have to either fix the MOSFET connections or connect the components separately.

Receiver:

This board supports the use of a PCB to SMA adapter if needed.

Launches

April 23, 2016: (Argo-2)

We launched the Argo 2 capsule on April 23, 2016 using the Feather M0 setup without the thermocouple (due to SPI issues). We received data throughout most of flight, which reached 33 km altitude, and used HabHub to follow the capsule. Unfortunately, the capsule landed in a mountainous area that made recovery impossible.

The data revealed an average vertical speed of 2.3 m/s (very low) and an estimated flight time of 295 minutes.

November 28, 2016: (CP-1)

We launched the CP-1 capsule on November 28, 2016, and succesfully recovered it! GoPro camera took many photos throughout the mission.

The capsule rose to around 33 km at an average vertical speed of 4.5 m/s. The mission lasted 149 minutes.

June 4, 2017: (CP-2)

Another successfull recovery with the same setup!

The capsule rose to around 27 km at an average vertical speed of 5.5 m/s. The mission lasted 136 minutes.

In the future, the NSP team will be using the Pi in the Sky board due to its widespread support and easy configurability. I wish them the best of luck in future launches!