Orbigator
Analog orbit propagator.
Install / Use
/learn @wyolum/OrbigatorREADME
🌍 Orbigator: The Analog Orbit Propagator
"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.
🚀 Why the Orbigator?
Inspired by Will’s Builds ISS tracker, the Orbigator introduces several key technical innovations to the DIY tracker space:
🔄 Continuous, Uninterrupted Motion
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."
🎯 LVLH Attitude Control
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.
🧩 Zero-Drift absolute Positioning
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.
🛠️ Technical Deep Dive
Complete Mechanical Assembly: Precision motion and integrated control.
Lightweight, High-Performance Propagator
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.
Split-Screen Radar UI
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.
Smart Persistence
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.
📦 Repository Structure
| 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. |
⚡ Quick Start
- 3D Print: High-quality production STLs are located in fabricate/stls/Production/.
- Assemble: Follow our step-by-step Assembly Instructions.
- 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.
🧾 Bill of Materials (BOM)
Electronics
- Controller: Raspberry Pi Pico 2W
- Motors: 2x DYNAMIXEL XL330-M288-T
- Display/UI: I2C OLED Display with EC11 Rotary Encoder (includes 2x buttons)
- RTC: DS3232 Precision RTC
- Logic: 1x SN74HC126N Quad Tri-State Buffer (for half-duplex UART)
- Passives: 1x 10kΩ resistor, 2x 4.7kΩ resistors
- Power: 5V 4-5A External Power Supply with 5.5mm DC Barrel Jack
Hardware & Mechanical
- 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)
📐 3D Printing (Production Parts)
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. |
System Details
| 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."
⚖️ License
Distributed under the MIT License.
Developed with ❤️ by wyojustin GitHub
