Hello everyone! It's been a while Razz

Over the past 6 or so months, I have been working on a totally portable ADS-B decoder and mapper device based off the dump1090 software. The project uses the 7" RPI Foundation touchscreen with the graphics driver board. This is driven by a Raspberry Pi 4 - 2GB with a 32GB RAM SD card. The project uses a Geekworm x728 UPS power supply, which allows the Pi to be safely shutdown using an external button as well as providing battery power to the Pi. The Pi is connected to a FlightAware SDR dongle with a inline filter and amplifier and a small ADS-B antenna is attached to that. The Pi is also wired up to a TPA2016 Audio Amplifier and a speaker so you can listen to communications from aircraft, although this feature requires Wifi.

Below is a diagram of how the system works (roughly)


On the software side, I use a modified version of the original dump1090 web interface. I added the ability to view the METAR data from the nearest airport to the middle of the map, as well as the ability to fetch any of the audio feeds from participating airports in the United States (sorry Europe, I haven't added you yet). I also added the ability for aircraft to be overlaid onto standard aviation charts as well as satellite imagery. The pipeline for the software is as described below.


The only actual visible component to the end user is the top right of the pipeline, the localhost/dump1090/gmap.html part. For offline maps capability, I downloaded map tiles on Mobile Atlas Creator and imported those onto the device for offline use. Those are in the /home/pi/tile. The main software is in the /usr/share/dump1090-mutability/html folder and the temporary files generated by dump1090 are located at /run/dump1090-mutability. I wrote my own Python API bridge between bash and Javascript, allowing Javascript to get value on the device (volume percentage, git branch) and allowing Javascript to issue commands on the device (shutdown, update, change branch, volume up and down). The endpoint is only available on the device itself, therefore it should be safe from external attacks, and is available on the local endpoints of 127.0.0.1/audio and 127.0.0.1/cmd.

To provide ATC audio to the device, I wrote a script that recursively read through a database of every airport in the world, filtered out the non-USA airports, and fetched the viable streams for each airport from LiveATC.net. This data is stored as a JSON file, with the links to the live audio extrapolated from the returned PLS files. The website that serves as the UI then reads this file and recursively prints the streams to the screen, ordered by state and airport.

To provide METAR support for the device, the center of the map is fetched from OpenLayers, which is the framework that runs the primary map. This is sent to the AVWX API and the resulting METAR data is sent to the various parts of the screen that it corresponds to.

For this project, I also learned how to design in 3D and model, having never done that before. I bought myself a Creality Ender 3 printer, and did a few mods to it, namely adding LED lights that were wired into the printers PSU as well as wiring a RPI 4 2GB with Octoprint support into the PSU as well. My "upgraded" printer is seen below

This was more of a detour, but worth mentioning. After many many hours of design and testing, this was the model I came up with

(The original middle piece has been lost to time, so this is an earlier version of it)

After I got the case printed and everything seemed to fit, I then decided I wanted to add audio support and a fan so the case had to be redesigned and reprinted, but it seems to be complete for now. I have not assembled the project totally yet, I am still working on bits and pieces of it as I prepare to present it as my capstone project for high school. I can link that presentation into this as well upon demand. Here are some of the photos of the partially completed project



All of the images can be found on my Imgur Album

As for the software side of things, two screenshots of that can be seen below.

The general tab showcasing aircraft (if there were any flying over)

The METAR tab showcasing the nearest airports data

Sorry for the exceptionally long post, just looking to get this project out there! It is mostly done, needs presenting to my school and to the state science fair, but any additions I make I will be sure to update this thread.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement