"What hardware hacker doesn’t have a soft spot for transparent cases? ... [wyojustin] has done a fantastic job of documenting the hardware and software aspects of the build." — Hackaday (Full Feature Archive)
The Orbigator is an open-source, physical satellite tracker that turns complex orbital mechanics into a desk-side companion. Powered by the Raspberry Pi Pico 2 and precision DYNAMIXEL servos, it physically points to the ISS (or any satellite) in real-time with zero drift.
Inspired by Will’s Builds ISS tracker, the Orbigator introduces several key technical innovations to the DIY tracker space:
Unlike traditional trackers that use static globes (requiring wire unwinding every orbit), the Orbigator features a rotating globe. This allows for smooth, continuous tracking across multiple revolutions without ever needing to reset or "unwind."
The orbital mechanics are implemented directly in the hardware geometry (inclination angle). This ensures the satellite pointer maintains a true LVLH (Local Vertical, Local Horizontal) attitude throughout the entire pass—exactly how real satellites orient themselves.
Leveraging the 32-bit absolute resolvers in DYNAMIXEL XL330-M288-T motors, the system recovers its orientation instantly after power cycles. No homing, no limits, and no drift—just persistent, mathematical accuracy.
Complete Mechanical Assembly: Precision motion and integrated control.
The heart of the Orbigator is a custom, lightweight SGP4 implementation running natively on the Pico 2's RISC-V cores. Eschewing heavy ports, it was rolled specifically to provide mathematical accuracy within the visual tolerances of the physical hardware, handling real-time TLE propagation and J2 perturbation effects entirely in MicroPython.
A custom SH1106 OLED driver provides a powerful command center:
- Live Radar Plot: A dynamic "Sky Plot" of the current satellite pass.
- Localized World Map: High-speed bitmask rendering provides a 90° ground track view centered on your observer location.
The system monitors its own state and saves to Flash/SRAM only during ideal intervals (e.g., at equator crossings) to maximize flash lifespan while ensuring a perfect "instant-on" recovery.
| Path | Description |
|---|---|
| micropython/ | Firmware: SGP4 propagator, UI stacks, and motor drivers. |
| fabricate/ | Mechanical design: OpenSCAD files for 3D printing and assembly. |
| kicad/ | Electronics: PCB designs and schematics. |
| web/ | Dashboard: Real-time control and configuration via web interface. |
- 3D Print: High-quality production STLs are located in fabricate/stls/Production/.
- Assemble: Follow the assembly logic in the fabricate/ folder.
- Flash MicroPython: Install the Pico 2 firmware.
- Upload Code: Use Thonny or
mpremoteto copy themicropython/files to the board. - Track!: Power up and select your satellite from the "SGP4" menu.
- Controller: Raspberry Pi Pico 2W
- Motors: 2x DYNAMIXEL XL330-M288-T
- Display/UI: I2C OLED Display with EC11 Rotary Encoder
- RTC: DS3232 Precision RTC
- Logic: 1x SN74HC126N Quad Tri-State Buffer (for half-duplex UART)
- UI Extras: 2x Momentary Push Buttons
- Passives: 1x 10kΩ resistor, 2x 4.7kΩ resistors
- Power: 5V 4-5A External Power Supply with 5.5mm DC Barrel Jack
- Globe: 12" Transparent Desktop Globe
- Bearings: 3x 13mm OD Carbon Steel Ball Bearings (e.g., 624ZZ) and High-Performance Skate Bearings
- Fasteners: Self-tapping screws (included with motors), M3 Male Stud Mounting Magnets, and Tension Springs
- Hardware: 10-20 US pennies (used as counterweight)
- 3D Parts: Printed from the
Production/folder (PLA or PETG)
The following parts are required for the full assembly and can be found in fabricate/stls/Production/. The leading number in the filename indicates the required print quantity.
1_drive_gear.stl- Main EQX drive1_flex_aov_arm.stl- Satellite pointer arm1_globe_interface.stl- Secure mount for the globe1_inclination_aov_mount.stl- Hardware-implemented inclination bracket1_sled_3.stl- Electronic housing and base1_full_assembly.stl- Reference model (not for printing)3_swingarm.stl- Differential assembly components3_shim.stl- Insert for the skate bearings (seemisc.scadfor 13mm dims)3_washer.stl- Vertical stop for the ring gear
📸 Media: As Seen on WyoLum Blog
| Earthrise Shot | World Map Tracking |
|---|---|
![]() |
|
| ISS Tracking with Lunar Projection. | Real-time World Map Context. |
| UI & Setup | Electronics | Mechanical Assembly | Technical Render |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Real-time status | Pico 2 & Buffers | Internal Hardware | Mathematical precision |
"A beautiful mix of technical precision and mechanical elegance."
Distributed under the MIT License.
Developed with ❤️ by wyojustin GitHub




