SlideShare a Scribd company logo
Decoding the air around you
with Java and $7 hardware
Bert	
  Jan	
  Schrijver
@bjschrijverbertjan@jpoint.nl
@bjschrijver
Let’s meet
Bert Jan Schrijver
@bjschrijver
Outline
• Background
• Software Defined Radio
• ADS-B
• AIS
• Decoding ADS-B & AIS
• Demo
• Q&A
@bjschrijver
How it all started…
@bjschrijver
Software Defined Radio
• Radio communication system
• Components implemented in software
• Cheap DVB-T with RTL2832U chip ($7)
• Hence: RTL-SDR
• Details on www.rtl-sdr.com
@bjschrijver
Software Defined Radio
@bjschrijver
DEMO
@bjschrijver
Amateur radio
@bjschrijver
Vessel to shore
@bjschrijver
POCSAG pager messages
@bjschrijver
FLEX pager messages
@bjschrijver
DEMO
@bjschrijver
So how about Java?
@bjschrijver
Java and RTL-SDR
RTL_TCP: Provides socket for RTL-SDR device
@bjschrijver
ADS-B
Automatic Dependent Surveillance Broadcast
Source: simflight.nl
@bjschrijver
Java and ADS-B
• Java connects to RTL_TCP socket
• But now what?
• No open source Java decoders available
• No other option than to write own decoder… 





…or is there?
@bjschrijver
(insert legal notice here)
@bjschrijver
How stuff works
@bjschrijver
DEMO
@bjschrijver
MongoDB data structure
@bjschrijver
API data structure
@bjschrijver
Frontend
@bjschrijver
That’s cool, but…
• In-house reception is sub-optimal
• Always-on service would be nice
• Laptop needed for work now and then
@bjschrijver
Getting serious
@bjschrijver
That’s cool, but…
• Raw RTL_TCP stream is huge
• Problematic over wifi
• Would like to give AIS another try
• Want to throw out horrible decompiled code
@bjschrijver
Getting serious - v2.
@bjschrijver
Getting serious - v2.
@bjschrijver
AIS
Automatic Identification System
Source: hollandmarinehardware.nl
@bjschrijver
Decoding AIS
rtl_fm -g 9999 -f 161975000 -p 10 -s 48k -r 48k | aisdecoder -h 192.168.2.2 -p 1234 -a file -c mono -d -f /dev/stdin
@bjschrijver
Decoding AIS
rtl_fm -g 9999 -f 161975000 -p 10 -s 48k -r 48k | aisdecoder -h 192.168.2.2 -p 1234 -a file -c mono -d -f /dev/stdin
@bjschrijver
Getting serious - v3.
@bjschrijver
DEMO
@bjschrijver
We love data
• Keep system running for a while
• Nicely stocked MongoDB
• Now what?
• Visualise it!
@bjschrijver
Antenna range: planes
@bjschrijver
Antenna range: ships
@bjschrijver
1 hour of data
@bjschrijver
2 hours
@bjschrijver
4 hours
@bjschrijver
8 hours
@bjschrijver
16 hours
@bjschrijver
24 hours
@bjschrijver
SUMMARY
@bjschrijver
Summary
• Playing with Software Defined Radio can

be loads of fun!
• You can get started for just a few bucks
• Want details?



https://github.com/bertjan/sdr-java
• Live demo on http://sdr.revolution.nl
• More SDR info on http://www.rtl-sdr.com

@bjschrijver
Q&A
@bjschrijver
Thanks for your time!
Please care about
conference quality.
Liked it? Tweet it!

More Related Content

PDF
Robocon @ Immune-it
PDF
Agile project management anti patterns
PDF
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
PDF
OpenValue meetup February 2019 - Decoding the air around you with Java and $7...
PDF
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
PDF
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
PDF
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan Schrijver
PDF
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...
Robocon @ Immune-it
Agile project management anti patterns
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
OpenValue meetup February 2019 - Decoding the air around you with Java and $7...
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan Schrijver
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...
Ad

JavaOne 2015 - Decoding the air around you with Java and $7 hardware