-
1Concept
First, we need to plan out exactly how we’re going to pull this off.
The ISS communicates on UHF or Ultra High Frequency bands, specifically around 437 MHz downlink.
If you were to calculate the diameter of a dish antenna required to communicate with the ISS at these frequencies, you'd end up with something over 10 meters wide! That's clearly out of the question for a DIY project, especially one that fits on your work desk.
So how do we create a compact antenna that can sit right on your desk? The solution is to let someone else handle the tracking and data retrieval, then feed that information into our antenna. This is much simpler and requires only a few components. For this project, you'll only need an ESP8266 microcontroller, a single RGB LED, and a few resistors to current-limit the LED.
To get the ISS tracking data, we'll use an open-source API like Open Notify. This API continuously provides the live latitude and longitude of the ISS. With a bit of math, we can calculate the distance between your location and the ISS to determine what color the LED should display.
-
2CAD Designs
For the antenna, I designed a simple model in Fusion 360 that you can easily 3D print.
First, there are the side triangular trusses, one vertical and one inclined on each side. Next, we have the housing that neatly encloses the microcontroller and wiring. At the top, a bridge section secures the antenna dish in place, followed by the dish itself. Finally, a circular disk covers the soldered wires on the LED pins.
Justway
Part of this project was supported by Justway.
Justway offers a comprehensive suite of solutions, including CNC machining, 3D printing, sheet metal fabrication, injection molding, and urethane casting, offering rapid prototyping and mass production solutions.
Here are the steps to get your project 3D printed by Justway's 3D printing service.
First, head over to Justway's 3D printing service and select 3D printing. You also have options like CNC machining, injection Molding and Urethane Casting. But for this project, we will use the 3D printing service.
Click on "upload your design". A new page will appear. Here, you need to click on "Select CAD files" and upload the STL file.
After that, select the Quantity, Material (I recommend PLA or ABS for this project). In the color section, you can either select white and paint it later, or select the color you like directly in the 3D print. This will save time later.
Finally, after selecting all the options, you can enter your email and submit the request to get a quote.
-
3Assemble the Antenna
I cut the exact shapes from the 3D model out of PVC board. I wanted to build it by hand for a more personalized feel. For the dish, I used a perfectly sized ice cream cup.
First, I glued all the trusses together using rubber adhesive.
Once everything looked solid, I spray-painted the structure for a nice glossy finish. You can do the same with your 3D prints if you like.
I painted the inside of the dish and the housing grey, which I think looks much better than plain white.
I also glued the base to the trusses before painting. Lastly, be sure to paint the circular disc grey as well to complete the look.
-
4Electronics
Now, let’s move on to the electronics. I used a Wemos D1 Mini, but you can use any ESP8266 or ESP32 microcontroller you have on hand.
The LED I'm using is a common cathode type, meaning it has a shared ground pin and separate anodes for each of the three colors.
To ensure safe operation, we need to solder three 470-ohm resistors to the pins where the LED anodes will connect. This prevents excessive current draw that might damage either the LED or the microcontroller.
In my case, I soldered the resistors to pins D5, D6, and D7. On the other ends of the resistors, I attached long wires that will later connect to the corresponding LED pins. Additionally, I soldered a long wire to the ground pin of the D1 Mini.
The LED is connected with red on D5, green on D6, and blue on D7.
I even used colored wires to help keep track of each connection. Finally, I routed the wires through a hole in the housing and the back of the dish.
-
5RGB LED
Now, let's focus on the LED. Start by gently bending the LED pins so they resemble nice antenna arms.
Then, create four holes in the grey disc and thread the pins through them.
Once everything is aligned, carefully solder each corresponding wire to its designated pin.
Then, we can glue the disc in place to finish off the antenna dish! There are some scratches on the paint, but we can paint it again later.
-
6Final Assembly
Finally, attach the antenna to the bridge section using glue.
Then, plug in the micro USB cable through the cutout in the housing, and you're done!
-
7Code
Now it's time to upload the code to the microcontroller. All you need to do is replace the latitude and longitude values in the code with your own, enter your Wi-Fi SSID and password, and upload it. That’s it!
However, I’d like to give a brief explanation of how it all works, so you can tweak the setup as needed.
We start with our current latitude and longitude set as constants in the code.
We use the Open Notify API to retrieve the current latitude and longitude of the ISS in real time.
To determine how far the ISS is from our location, we can’t simply subtract the coordinates because the Earth is spherical, not flat. So, we use the Haversine formula, which accounts for the Earth's curvature, to accurately calculate the distance.
I won’t delve too deeply into the mathematics here, but here's a great explainer video for those who want to learn more.
Finally, based on the calculated distance, the code updates the color of the LED.
We only call the API once every 30 seconds. This is because it is an open source API we got to be mindful of not overloading it.
-
8Conclusion
Now all you have to do is power up the microcontroller and set it on your desk. It will continuously update you on how far the ISS is from your location!
I find it absolutely fascinating to think that there are people up there, above us, floating in space, conducting research. It really puts into perspective just how far humanity has come and how high we can rise. As a space geek, this is extremely cool to me.
I've watched the ISS fly by many nights, and each time it fills me up with wonder, reminding me how small we are while also fueling my excitement to explore the universe.
I hope you enjoyed this project!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.