GitHub: https://github.com/dpelgrift/ISS-Tracker
Overview:
This pedestal scrapes celestrak.org for the most recent Two-Line-Element (TLE) associated with the ISS, then uses it to calculate its current orbital position and point towards it.
It's powered by an Adafruit Feather m0 Express along with a featherwing Esp32 WiFi co-processor. An OLED featherwing display shows the current azimuth/elevation as well as the date/time. A compass can be added to manually align the pedestal with local north, but it can be omitted as long as you're willing to do said alignment manually.
Pedestal azimuth motion is controlled by a 28BYJ-48 stepper motor and pointer elevation is controlled with a standard SG90 micro-servo.
I tried to standardize on M2.5 screws to fasten everything together. I mostly succeeded, however, the micro-servo connections require M2 screws and the slip-ring flange holes require M5 screws.
Power and data connections to the servo and compass are done through a slip-ring, which needs some additional soldering/crimping preparation (see below).
See the linked github for details on code setup and configuration.
Wiring:
The pedestal receives 5-volt DC power through a standard 2.1mm barrel jack on the rear panel. The current draw is pretty minimal, so any 5v DC power supply you have laying around should work. Power is switched on and off by a toggle push-button located next to the barrel jack input. It's important to note that the power switch should be wired to interrupt the 5v signal (which comes out of the largest of the 3 tabs on the back of the barrel jack), not the ground signal.
I used an Adafruit half-sized perma-proto breadboard, primarily to handle power distribution to all devices that need it. I soldered the feather m0 express itself with stacking headers and stacked it with the wifi featherwing atop a featherwing doubler to provide easy access to all I/O pins.
Aside from 5v power, which is distributed to all devices, an I2C connection from the Feather to the display and compass is also required. I run that connection via the perma-proto breadboard as well. If the compass is omitted, then this is unnecessary, and the display I2C clock and data inputs can be directly connected to the Feather I2C pins.
The stepper motor pins are setup as follows:
From Feather → ULN 2003 Breakout
A0 → IN1, A1 → IN2, A2 → IN3, A3 → IN4
All other Feather inputs & outputs include the servo PWM output on pin 10, and I2C power and data on the SDA and SCL pins respectively, as well as ground and 5v in on the BAT pin.
Assembly:
I use the screw-pulling technique to embed hex nuts in some parts such as the front and rear panels in order to create threaded holes. If you're unfamiliar, simply insert a screw into the hole from the side opposite to the hex-shape indentation, thread a nut onto said screw, and then tighten to pull the nut into the hexagon-shaped indentation. Take care not to over-tighten and potentially damage the part. You should be left with the nut securely embedded into the part and thus acting as a solid threading surface.
To assemble the micro-servo properly, first, thread the servo wire down through the channel within the rear support so that it is sticking just out of the hole near the bottom. Then, seat the body of the servo into the rear support and cover it with the upright. Fasten it all together with two M2 screws making sure that the lower screw is long enough to thread into the plastic of the rear support.
Finally, power is controlled by a push-button toggle switch at the rear, which I secured in place with hot-glue, though strong tape may also suffice.
Slip-Ring Preparation:
The slip-ring carries power and data to-and-from the micro-servo and compass (if used). For our usage, it needs some additional work however. In order to fit inside the wire cover, wires need to be trimmed away or shortened depending on if we are using them or not, and then need to be either crimped or soldered to add dupont connectors to securely connect to the servo and compass. The exact wires you use for each task don't matter, but I'd recommend picking colors that at least resemble colors typical for their usage. For instance, I chose orange and black for the servo 5v and ground lines respectively, as well as red, grey, blue, & yellow for the compass 5v, ground, I2C data, & I2C clock respectively. I chose to crimp on connectors and I also shortened the Stemma QT cable connecting to the compass, as you can see below. I also crimped a single dupont connector onto the servo PWM wire on the other side of the slip ring so I could easily plug it directly into the featherwing doubler.
Printing:
A build volume of at least 195x195 mm is required to print the largest parts.
All .stl files are included in their recommended printing orientation. Most require no supports, exceptions being the WireCover and the center of the StandTop. In addition, the rear support and upright may need a brim to help keep their tapered sections stuck to the bed.
I printed nearly everything with 0.2mm layer height and 15% infill, the exception being the Stand top, which I printed in with 0.3mm layers to speed up printing. Nothing here is under any serious loading so standard print settings should be fine across the board
I personally printed with a 3-color scheme using Prusament Galaxy Black PLA, Hatchbox True White PLA, and Hatchbox Metallic Gold PLA.
Bill Of Materials:
Name | Link | # |
Adafruit Feather m0 Express | https://www.adafruit.com/product/3403 | 1 |
Wifi Featherwing | https://www.adafruit.com/product/4264 | 1 |
Display Featherwing | https://www.adafruit.com/product/4650 | 1 |
Stacking Headers for Feather | https://www.adafruit.com/product/2830 | 1 |
Magnetometer/Compass (optional) | https://www.adafruit.com/product/5579 | 1 |
Featherwing Doubler | https://www.adafruit.com/product/2890 | 1 |
28BYJ-48 Stepper Motor & ULN2003 Driver Breakout Board | https://www.amazon.com/4-Phase-Stepper-ULN2003-Machinery-Raspberry/dp/B07VPD4KJD | 1 |
SG90 Micro-Servo | 1 | |
Slip Ring | https://www.adafruit.com/product/1196 | 1 |
Toggle Button | https://www.adafruit.com/product/3870 | 1 |
DC Barrel Jack | https://www.adafruit.com/product/610 | 1 |
Stemma QT Cable | https://www.adafruit.com/product/4397 | 2 |
Adafruit Perma-Proto Half-Sized | https://www.adafruit.com/product/1609 | 1 |
Screw Terminal Block | https://www.adafruit.com/product/724 | 6 |
Rubber Feet (optional) | https://www.adafruit.com/product/550 | 4 |
5v Barrel Jack Power Supply | https://www.adafruit.com/product/276 (or any random 5-volt power supply you may have) | 1 |
M2 Machine Screws (for micro-servo mounting) | 3 | |
M2.5 Machine Screws & Nuts | ≥19 | |
M5 Machine Screws & Nuts (for slip-ring mounting) | 3 |
The author marked this model as their own original creation.