• Tag Archives acars
  • Remote control of SDRuno with MQTT and Node-RED

    Getting back to looking at HF ACARS messages again and so with that comes the need to tune to the best HF frequency. (Best is still based on propagation and is a topic for another blog).
    My HF station is in Arizona, and San Francisco is the best ground station for it to hear. New York is a close second.
    SF mostly runs on two frequencies, 6559KHz and 13276KHz with 5508KHz thrown in from time to time. NY is sort of the same but different.
    So, the question (or goal) is to be able to switch between those frequencies on some sort of time schedule. (Sort of based on day and night – ie, follow the HF propagation).

    For the longest time I got fixated on getting SDRuno to do the memory channel switching for me. Spent waaaaay to long looking for plug-ins that would do the job.
    Thought about trying to set up squelch-less scanning to do the job.
    Spent some time looking to get the RSP2 working under SDR# since it seemed to have more plug-ins and options.
    Turns out this was the wrong way of looking at the problem…. All very well to get the program to do the automatic switching – which it can’t do – but what if I want some other frequency at some other time?
    Better to have web site (Node-RED dashboard) control right?
    I mean the decoded data (the ACARS message) is displayed there anyway, so putting a button there just makes sense.
    We spent hours trying to figure out how to make it work, and minutes getting it working once we turned the problem around.

    So, long intro long.
    The key is to remove control from SDRuno and put it in the hands of the website / user / Node-RED.
    Press a button on the dashboard in one location and have it change the VFO frequency in another. Here is how we do that do.

    SDRuno can use a serial protocol called CAT. The software emulates a small subset of those CAT commands for a Kenwood TS-480 transceiver.
    What we need to do is setup a serial connection to SDRuno to send those CAT commands as needed.
    Start with a virtual serial cable. I downloaded and used http://com0com.sourceforge.net/ Simple and free. Hard to beat.
    Set up something like com3 and com4 in that program.
    Go into SDRuno and set up com3 as the CAT serial port. I just accepted the default baud, it does not really matter as even 300 baud will be overkill for changing a few frequencies. It should connect straight away.
    Now, in Node-RED running on the same computer as SDRuno add a serial node that is configured to com4.
    To prove it works, put down 2 debug nodes if you like and use them to change the frequencies back and forth.
    In short, what ever CAT commands you pump into com4 via Node-RED will come out of com3 and thus into SDRuno and the VFO will change frequency.

    Now with that working, add an MQTT node configured to your broker and connect it to your serial node.
    So now, when ever a payload is published to that topic it will be sent to com4.
    On the instance of Node-RED that is running the dashboard then, you add a button that publishes its value to the broker on that topic.
    You now have control of the SDRuno VFO A frequency from your web page.

  • Inmarsat ACARS

    Sorry guys, did not realize that I had not blogged about my Inmarsat fun and games…..

    There are a few different ways that aircraft communicate back and forth with the airline.
    This blog is about satellite.
    There is a geostationary (not moving, very handy, no tracking needed) satellite named Inmarsat (sorry, forget the exact number, there are a few of them) that carries, among other things, aircraft data.
    To pick it up you need a small dish, an antenna, SDR (software defined radio) and a computer to run some software. We are going to be looking at the ACARS data on 1.545 GHz.

    First things first. As it happens, I knew this day was coming so have been collecting satellite dishes behind the shed for a while, turns out I kinda lot track and have about 5 of them back there…. hey, its good to have options.

    Next, you need an antenna or feed horn. So I did what all good hackers do and wound one around a toilet roll.

    Next up, attache it to the dish and see if you can get some signal.
    And we did, but the mounting was a bit unsustainable and looking out the window was also not the best, but here is how it looked for the test.

    Next thing to try was jamming it in attic.
    Let me tell you about the nice words that were expressed in getting the dish through the manhole and aligned to look at the satellite.

    There is alfoil over the roof and it really killed the signal…..
    Freddy came up with the idea of putting a pole on the side fence and hiding it behind some bushes out there, so thats what did.

    Finally we had a good strong signal and a nice solid mount.
    The eagle eye among us might notice that the feed horn is not the toilet roll. And your right.
    I modified a GPS antenna and its much better as its smaller, flat and has better gain.
    So with a 30 foot long USB lead, we now have a signal in the garage where we can use the software JAERO to decode the signal and stream it to my main dashboard.

    You can see it here; http://thebaldgeek.net:2880/ui/#!/4

    Long term my plan is to get another GPS antenna and have a second decoder running to double my data rate.

    So yeah, that’s how I pick up aircraft text messages from space.
    Cool beans.

  • Noisy computers?

    We have been interested in building a one stop shop website for all things aircraft tracking and decoding for some time.
    To this end we have put up a satellite dish to get Inmarsat messages, 136mHz antennas for ACARS and VDL data and for HF we have been running an Alinco receiver.

    Everything has been working great, but I have always struggled with a really high HF noise (static) floor. It massively impacts my ability to pickup and thus decode the weak signals coming from the aircraft all around the world (the radio at this frequency – 6mHz – can hear aircraft from pretty much around the globe). I have been tinkering with the antenna and noise suppressors and all sorts of things, but it has always not been great.

    The last straw was when this guy commented about my HF reception;
    (At the very bottom of that thread/comment.)
    1% of the traffic. Ouch.
    But he was right, I had a feeling I was not doing great. Getting around 70 messages a day from aircraft.
    I honestly suspect any one or all of the 90 or so computer devices that are running 24×7 at the house.

    Anyway, buddies to the rescue.
    I have been chatting with two guys from Phoenix a fair bit and one of them is big into both aircraft and HF and he also noticed that he was getting more traffic than I was, but he lacked the computer skills and gear to decode them.
    So yeah, we made a deal. If he picked up the signals, I would decode them.
    Thus he has dedicated one of his radios to aircraft and I wrote some code to transfer the raw data from his place to mine where I do further decoding and display it on my website.

    BOOM! I cant believe it but we went from 70 a day to 3000+ a day.
    We are now almost drowning in lovely lovely aircraft data from around the world.
    Both he and I are thrilled.

    You can see the data here; http://thebaldgeek.net:2880/ui/#!/5
    Its been running great for the week or so and neither of us see why that won’t be the case for a good while longer.


    Turns out that aircraft blat out more than just their positions.
    They also send a lot of short messages that anyone can receive and to some extent decode and make some sense of.
    This has been keeping me busy for the past month or so. Been really enjoying being distracted from other things, and my love of all things aircraft gets a good dose of love.
    The fact that I also use Node-RED to decode the messages is also very helpful as I needed a project to dive deeper into it.

    I started off with the freely available acrsdeco2 program and the real power of this program is that you can run remote instances of it and have it feed into a central server.
    I sent a Raspberry Pi and two receivers to my mate in Phoenix and have his data added to what I can pick up. The net results is that we have pretty much the whole area now covered with just the two receivers. More would be good and we will look at adding a few more in due course, but for now, the two systems working as one does the job.

    From there I added Node-RED. Doing a ton of reading got a lot of the abbreviations entered into the system and then I started filtering out the boring positions reports. I split off the airborne weather reports and engine reports.
    I then added several displays that showed this filtered and partly decoded information.
    The flow is by far and away the most complex I have done.

    If you would like to watch the messages, you can, just hit up the resulting node-RED dashboard; http://thebaldgeek.net:2880/ui/#/0

    The top line is just helpful data for me to see how much data we are handling. Some quick links to other parts of the system and weather stations at each location are included.
    Next is heavily filtered messages. At times I can see more than 1 message a second and they scroll past too fast to read, so I do some heavy filtering to slow the interesting stuff down.
    Next is an aircraft call sign filter. If you want to follow a specific aircraft, this is the tool to use.
    Next is the raw message. This way you can just what we are working with.
    Below that is a way to stop/ start the raw lightly decoded messages.
    Then you have the real interesting stuff. It is the result of the filter and should be interesting enough that we email it to a few of the guys and myself.
    Below that, the reports and a table of last seen (heard) aircraft.

    All in all, fascinating stuff.