"tarnished": taking ADS-B on a cruise ship holiday

I wanted to share a fairly silly thing I did. The Raspberry Pi is dubbed “tarnished”, which is a nod towards Elden Ring where you explore “The Land Between”. Well yes, I’m not on land, I’m at sea, but it had to be named something :grimacing:. The goal was to toy around with receiving ADS-B, AIS, and GPS signals while on a short cruise last week to San Diego and Ensenada. I didn’t really think of myself as a “cruise person” but I have to say, this kept me entertained during the days at sea!!

Yes, you can imagine what the poor cabin steward thought when he saw this … “apparatus” on the balcony every day. Let’s break it down.

Crammed into this (really cool) Sixfab prototype enclosure:

  • Raspberry Pi 3 (supposed to be a 4 … more on that …)
  • Sixfab cellular hat for LTE and GPS
  • MakerFocus Raspberry Pi UPS and 10,000mAh battery
  • RTL-SDR Blog v3 SDR
  • NooElec NESDR Smart XTR SDR
  • Bulkhead SMA connectors

The antenna setup:

  • NooElec Lana
  • Flightaware 1090/978 filter
  • Acxico ADS-B PCB antenna
  • Dipole antenna for AIS from the RTL-SDR kit
  • Random telescoping antenna for the GPS

The build

The build didn’t go according to plan.

The enclosure seemed spacious, but with the battery and UPS board crammed in, it really wasn’t. Complicating things were the awkward USB extenders I had to employ to route the SDRs off to the sides. I had to trim a bunch of the strain relief off various cables just to put the lid on :grimacing:

Even worse, while testing things the morning of the cruise, it didn’t boot! Somehow my meat claws had partially torn the SD reader off the PCB:

For this reason I grabbed a backup Raspberry Pi 3, some tools, and resolved to repair it on the ship before my girlfriend left for the cruise without me :face_with_open_eyes_and_hand_over_mouth: Bonus: the RPi3 has a full HDMI port so I could bring a small portable display, for which I lacked a mini-HDMI to mini-HDMI cable. So, we were back in business!

Except, it almost never happened.

My Pelican case full of admittedly quite weird shit was flagged for security screening. The nice lady at security in the bowels of the boat indicated her superiors had instructed her to confiscate everything. “All of these tools,” she said, holding up a fistful of USB cables. I managed to convince her that I was an engineer (true), that these are for receiving TV signals (ehhhh … :laughing:) and we eventually negotiated for her to confiscate only my leatherman and an adjustable crescent wrench :joy: It was honestly my own doing; in the panic to want to repair the unit I threw in way more things than I strictly needed.

Key lessons

  • Use really compact USB extenders!
  • Raspberry Pi Zero W, maybe even two, would likely be a much better fit
  • Be more discreet on cruise ships
  • Test earlier, always earlier
  • The UPS is really sweet, being able to plug and unplug the thing without power cycling it was neat. It even has UART pins so you can do a controlled shutdown based on battery load, or monitor things
  • Avoid any need to download or update packages on the boat. What takes 10s in real life takes a full day to happen over the Pringles can dangling off the mizzenmast that cruise ships laughably refer to as high speed internet

The results

The results were … ok I guess? Especially given that I went in with very open expectations; I had never built such an enclosure before, or used AIS, or a cellular HAT, and so on. I think in an ideal world, I would have had a perfect GPS track for the entire trip, and some kind of database of all messages received for ADS-B and AIS for replay, as well as battery info, temp, etc. Cellular was a fun idea but realistically not useful for all the same reasons cruise wifi is unusable. Being able to leverage it for GPS was nice, however.

Worth mentioning: the GoPro Hero 9 you see in one of the pictures is really nice. I used it for time lapses of sunrise and sunset. There’s some cool software you can get that does telemetry overlays of your speed and position. It would have been fun to have had a complete time series of RF signals and then incorporate those into a video with telemetry overlay …

Parked off San Diego I was getting some pretty healthy ADS-B traffic. I wonder what piaware thought of my constant movement?

Traffic outside Ensenada looks thin, but that’s because it actually was! It was interesting that the skies were so dark further north; perhaps the orientation of the ship was blocking the view.

What about AIS? I was not really experienced with AIS-Catcher but I managed to get some results. Here’s San Diego harbor:

There was one ship, however, suspicious in its absence … the very boat I was on!! I don’t know enough about AIS signals but I can only assume the broadcast was too loud or the antenna doing the broadcast is throwing it out laterally and not downwards. The net result is that I only managed to snag one message from the same vessel I was in:

Conclusion

This was a fun project, and gave me plenty of challenges to overcome. The cruise itself was actually very enjoyable, my girlfriend is infinitely patient but I was careful to limit my hacking time to at-sea days so as to not miss too much adventure. This stuff can get a bit addictive if you’re not careful!

I’m going to continue to develop this concept and see how far I can push it. For instance, who is going to stop me if I put this in the trunk of my car … :thinking: I also did not get any chance to explore much else of the RF spectrum, for example, crew walkie-talkies or the RFID “medallion” used for payments and room access …

Thanks for reading!

8 Likes

That was a fun read! Did you get everything back in the end? On the next trip you’ll have to take a generator and a Starlink terminal.

1 Like

Yes, I handed them that piece of paper on the gangway as we disembarked; they fished around in a large bin of other confiscated items (so I wasn’t the only one!) and returned my tools :grimacing:

I haven’t done the math, so I’m curious to know how much longer a Pi Zero could last on the battery. It would be very convenient (and more discreet!) to only have to charge it once per day. Not to mention much smaller!

And maybe add a large fold-out solar panel too for some extra juice!

1 Like

A simpler system is to use an Android tablet on which App Avare ADSB from Google Play store can be installed, and a dongle plugged-in using OTG adaptor C to USB. The tablet can be run in Airplane mode, so no wifi or data connection required, and still the map is available.

My tablet (Lenevo Smart Tab) has a stand to which charger is connected. The battery is charged through stand while the tablet is in use, and USB C port is free to connect OTG/Dongle. Please see attached photo.

 

CLICK ON PHOTO TO SEE LARGER SIZE
CLICK AGAIN TO SEE FULL SIZE

2 Likes

That would be a great idea … if I was a normal person and not somebody trying to play everything on hard mode! :joy:

I’ll add offline maps as a thing to think about for future builds …

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.