SlideShare a Scribd company logo
1 of 45
Download to read offline
Decoding the air around you
with Java and $7 hardware
Bert	
  Jan	
  Schrijver
@bjschrijverbertjan@jpoint.nl
@bjschrijver@bjschrijver
Bert Jan Schrijver
Let’s meet
@bjschrijver@bjschrijver
Outline
• Background
• Software Defined Radio
• ADS-B
• AIS
• Decoding ADS-B & AIS
• Demo
• Q&A
@bjschrijver@bjschrijver
How it all started…
@bjschrijver@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@bjschrijver
Software Defined Radio
@bjschrijver
DEMO
@bjschrijver@bjschrijver
Amateur radio
@bjschrijver@bjschrijver
Vessel to shore
@bjschrijver@bjschrijver
POCSAG pager messages
@bjschrijver@bjschrijver
FLEX pager messages
@bjschrijver
DEMO
@bjschrijver@bjschrijver
So how about Java?
@bjschrijver@bjschrijver
Java and RTL-SDR
RTL_TCP: Provides socket for RTL-SDR device
@bjschrijver@bjschrijver
ADS-B
Automatic Dependent Surveillance Broadcast
Source: simflight.nl
@bjschrijver@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@bjschrijver
(insert legal notice here)
@bjschrijver@bjschrijver
How stuff works
@bjschrijver
DEMO
@bjschrijver@bjschrijver
MongoDB data structure
@bjschrijver@bjschrijver
API data structure
@bjschrijver@bjschrijver
Frontend
@bjschrijver@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@bjschrijver
Getting serious
@bjschrijver@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@bjschrijver
Getting serious - v2.
@bjschrijver@bjschrijver
Getting serious - v2.
@bjschrijver@bjschrijver
AIS
Automatic Identification System
Source: hollandmarinehardware.nl
@bjschrijver@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@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@bjschrijver
Getting serious - v3.
@bjschrijver
DEMO
@bjschrijver@bjschrijver
We love data
• Keep system running for a while
• Nicely stocked MongoDB
• Now what?
• Visualise it!
@bjschrijver@bjschrijver
Antenna range: planes
@bjschrijver@bjschrijver
Antenna range: ships
@bjschrijver@bjschrijver
1 hour of data
@bjschrijver@bjschrijver
2 hours
@bjschrijver@bjschrijver
4 hours
@bjschrijver@bjschrijver
8 hours
@bjschrijver@bjschrijver
16 hours
@bjschrijver@bjschrijver
24 hours
@bjschrijver
SUMMARY
@bjschrijver@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@bjschrijver
Thanks for your time!
Please care about
conference quality.
Liked it? Tweet it!

More Related Content

Viewers also liked

EuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionEuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionBert Jan Schrijver
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xBert Jan Schrijver
 
GOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterGOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterBert Jan Schrijver
 
Codemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps DisasterCodemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps DisasterBert Jan Schrijver
 
Utrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.xUtrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.xBert Jan Schrijver
 
Devoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.xDevoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.xBert Jan Schrijver
 
Utrecht JUG - Pipeline as code
Utrecht JUG - Pipeline as codeUtrecht JUG - Pipeline as code
Utrecht JUG - Pipeline as codeBert Jan Schrijver
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Bert Jan Schrijver
 

Viewers also liked (8)

EuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionEuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
 
GOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterGOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps Disaster
 
Codemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps DisasterCodemotion Amsterdam 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps Disaster
 
Utrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.xUtrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.x
 
Devoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.xDevoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.x
 
Utrecht JUG - Pipeline as code
Utrecht JUG - Pipeline as codeUtrecht JUG - Pipeline as code
Utrecht JUG - Pipeline as code
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster
 

Similar to 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...
OpenValue meetup February 2019 - Decoding the air around you with Java and $7...OpenValue meetup February 2019 - Decoding the air around you with Java and $7...
OpenValue meetup February 2019 - Decoding the air around you with Java and $7...Bert Jan Schrijver
 
JavaOne 2015 - Decoding the air around you with Java and $7 hardware
JavaOne 2015 -  Decoding the air around you with Java and $7 hardwareJavaOne 2015 -  Decoding the air around you with Java and $7 hardware
JavaOne 2015 - Decoding the air around you with Java and $7 hardwareBert Jan Schrijver
 
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardwareDevoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardwareBert Jan Schrijver
 
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardwareDevoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardwareBert Jan Schrijver
 
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverDecoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverNLJUG
 
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan Schrijver
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan SchrijverDecoding the airspace above you 
with Java and $7 hardware by Bert Jan Schrijver
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan SchrijverBaruch Sadogursky
 
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...Bert Jan Schrijver
 
GOTO Berlin 2019 - Building a self-driving RC car
GOTO Berlin 2019 - Building a self-driving RC carGOTO Berlin 2019 - Building a self-driving RC car
GOTO Berlin 2019 - Building a self-driving RC carBert Jan Schrijver
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot PythonVincent Claes
 
Inside House2
Inside House2Inside House2
Inside House2jhaand
 

Similar to JavaLand 2016 - Decoding the air around you with Java and $7 hardware (10)

OpenValue meetup February 2019 - Decoding the air around you with Java and $7...
OpenValue meetup February 2019 - Decoding the air around you with Java and $7...OpenValue meetup February 2019 - Decoding the air around you with Java and $7...
OpenValue meetup February 2019 - Decoding the air around you with Java and $7...
 
JavaOne 2015 - Decoding the air around you with Java and $7 hardware
JavaOne 2015 -  Decoding the air around you with Java and $7 hardwareJavaOne 2015 -  Decoding the air around you with Java and $7 hardware
JavaOne 2015 - Decoding the air around you with Java and $7 hardware
 
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardwareDevoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
 
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardwareDevoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
 
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan SchrijverDecoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver
 
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan Schrijver
Decoding the airspace above you 
with Java and $7 hardware by Bert Jan SchrijverDecoding the airspace above you 
with Java and $7 hardware by Bert Jan Schrijver
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...
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...
Devoxx 2014: Decoding the airspace above you with Java and $7 hardware (ignit...
 
GOTO Berlin 2019 - Building a self-driving RC car
GOTO Berlin 2019 - Building a self-driving RC carGOTO Berlin 2019 - Building a self-driving RC car
GOTO Berlin 2019 - Building a self-driving RC car
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 
Inside House2
Inside House2Inside House2
Inside House2
 

JavaLand 2016 - Decoding the air around you with Java and $7 hardware