Skip to content

The Traxat project is an open-source and open hardware tabletop satellite tracker.

License

Notifications You must be signed in to change notification settings

quubspace/traxat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

  1. 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.
  2. 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.
  3. Power on your Traxat unit. If you followed the system service instructions when assembling, this is all you need to do.
  4. 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.
  5. 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.
  6. 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

QtyItemNotes
1Raspberry Pi 4B+ 1GBAny Pi 4 can be swapped in
1Each 3D-Printed PartParts can be printed in PLA or preferred material
2Stepper MotorsCan use any stepper motor, but platform is designed for specified one
8M3 Screws and NutsHolds the unit together

Assembly

  1. Place your Raspberry Pi in the base, with power ports facing towards the side

opening.

A Raspberry Pi placed into the base of the unit

  1. Screw a stepper motor onto the carriage, using the slots to adjust

where you want your motor.

  1. Attach the second stepper motor to the platform, pushing the connector through the bottom hole and using the screws to fasten it together.

Platform assembly for Traxat unit

  1. Place the platform assembly on top of the first motor on the carriage, and route the connectors down to the Pi.
  2. 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.
  3. Use the remaining screws to screw the carriage to the lid.
  4. Marvel at your finished Traxat unit!

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.