About
The Traxat project is an open-source and open hardware tabletop satellite tracker. This repository contains the Rust code for the firmware, the CAD models, and instructions for constructing your own Traxat. Fully compatible with GPredict, Traxat utilises hamlib and rotctld to enable wide compatibility with a wide variety of programs.
We are constantly looking to improve the Traxat project, both in design and in documentation. Feel free to open an issue or PR!
Usage
The project only supports GPredict for tracking, although hypothetically you can use a different program.
- Open GPredict on a separate computer. Within GPredict’s settings, you should see the ability to add radios and rotators. Add your Traxat unit’s IP address as a rotator, and keep the default port.
- Traxat does not automatically zero. In order to do so manually, push the pointer all the way to the left, and line up the motor as close to center as you can.
- Power on your Traxat unit. If you followed the system service instructions when assembling, this is all you need to do.
- Back in GPredict, you should see a small drop-down arrow near a map. When you select this, you will see rotator control. Click the menu.
- You should now see a new window with various numbers. On the right side, you should see the name of your Traxat unit and an engage button. Once you select that, Traxat should start tracking.
- For further problems, consider opening an issue.
Building
Software
Traxat is guaranteed to build on the Raspberry Pi 4B+ and on the Raspberry Pi 3B+. It appears to build correctly on the M1 MacBook Pro as well, but all other platforms aren’t directly supported.
Traxat is written in Rust, so you will need to have a Rust installation in order to compile it. Traxat is guaranteed to compile with Rust 1.59.0 (stable) or newer, but older versions may also work.
To build Traxat:
$ git clone https://github.com/quubspace/traxat
$ cd traxat/software # To move into the software directory
$ cargo build --release
Once finished, you can try running Traxat:
$ cd ../ # So we are in the root of the project
$ ./software/target/release/traxat
In order to use Traxat on system start, copy the service file and binary as root and enable the systemd
service:
$ sudo cp ./software/target/release/traxat /usr/bin
$ sudo chmod a+x /usr/bin/traxat # So the program is executable
$ sudo cp traxat.service /etc/systemd/system/
$ sudo systemctl enable --now traxat
A static IP is recommended for the Raspberry Pi so that your tracking program can consistently connect to the unit, and through testing ethernet is more consistent than Wi-Fi.
Hardware
The Traxat unit consists of 3D-printed parts, screws, stepper motors, and a Raspberry Pi unit (preferably a Pi 4B+ for optimal performance).
The STLs for the 3D-printed parts are included in /hardware
.
Bill of Materials
Qty | Item | Notes |
---|---|---|
1 | Raspberry Pi 4B+ 1GB | Any Pi 4 can be swapped in |
1 | Each 3D-Printed Part | Parts can be printed in PLA or preferred material |
2 | Stepper Motors | Can use any stepper motor, but platform is designed for specified one |
8 | M3 Screws and Nuts | Holds the unit together |
Assembly
- Place your Raspberry Pi in the base, with power ports facing towards the side
opening.
- Screw a stepper motor onto the carriage, using the slots to adjust
where you want your motor.
- Attach the second stepper motor to the platform, pushing the connector through the bottom hole and using the screws to fasten it together.
- Place the platform assembly on top of the first motor on the carriage, and route the connectors down to the Pi.
- Connect the motor control boards to the motors, and then wire them to the
Raspberry Pi as shown in the first photo and documented in
software/src/rotator.rs
. Ensure your azimuth and elevation are not flipped. - Use the remaining screws to screw the carriage to the lid.
- Marvel at your finished Traxat unit!
Testing
To run manual step tests, make use of the included manual_testing.sh
found in
/software
. Simply run ./manual_testing.sh 10
, where 10 is the number of
motor steps to run.
Credits
Initial prototypes of Traxat were inspired by PiTator by @M0JEC on GitHub. Thank you to everyone at Quub for your continued support as well.