SlideShare a Scribd company logo
Decoding the airspace 
above you 
with Java and $7 hardware 
Bert Jan Schrijver 
bertjan@jpoint.nl 
@bjschrijver
Outline 
• Background 
• Software Defined Radio 
• About ADS-B 
• Decoding ADS-B 
• Demo 
@bjschrijver
TL;DR 
• Now -> planes & Java 
• Afterwards -> free beer (at the bar) 
@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
So how about Java? 
@bjschrijver
Java and RTL-SDR 
• RTL_TCP: Provides socket for RTL-SDR 
device 
• Java can connect, set frequency and 
stream data 
• Decode data signal in Java 
• First try: AIS (ship traffic) 
• First tries never succeed… 
@bjschrijver
ADS-B 
• Automatic Dependent Surveillance 
Broadcast 
• Monitoring and collision avoidance 
• Installed on all airliners 
• Reports identity, position and more 
• Part of US and EU regulation 
@bjschrijver
ADS-B 
@bjschrijver 
Source: simflight.nl
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
@bjschrijver 
Demo! o/
How stuff works 
@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
We love data 
• Keep system running for a while 
• Nicely stocked MongoDB 
• Now what? 
• Visualize it! 
@bjschrijver
Antenna range 
@bjschrijver
1 hour of data 
@bjschrijver
2 hours 
@bjschrijver
4 hours 
@bjschrijver
8 hours 
@bjschrijver
16 hours 
@bjschrijver
@bjschrijver 
That’s all!
@bjschrijver 
Questions?
Thanks for your time! 
Please care about 
conference quality.
Liked it? 
Tweet it! 
@bjschrijver 
bertjan@jpoint.nl
Ad

More Related Content

Viewers also liked (16)

Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
NLJUG
 
Ing presentatie j fall 2013 nijkerk amir arooni
Ing presentatie j fall 2013 nijkerk amir arooniIng presentatie j fall 2013 nijkerk amir arooni
Ing presentatie j fall 2013 nijkerk amir arooni
NLJUG
 
On the integrity of data in Java Applications
On the integrity of data in Java ApplicationsOn the integrity of data in Java Applications
On the integrity of data in Java Applications
NLJUG
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - Atos
NLJUG
 
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van DisselCultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
NLJUG
 
J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'
J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'
J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'
NLJUG
 
How to get more kids to code
How to get more kids to codeHow to get more kids to code
How to get more kids to code
NLJUG
 
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
NLJUG
 
Scratching the Surface with JavaFX
Scratching the Surface with JavaFXScratching the Surface with JavaFX
Scratching the Surface with JavaFX
NLJUG
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
NLJUG
 
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
NLJUG
 
Real-World Scala Design Patterns
Real-World Scala Design PatternsReal-World Scala Design Patterns
Real-World Scala Design Patterns
NLJUG
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
NLJUG
 
Opening J-Fall 2013
Opening J-Fall 2013Opening J-Fall 2013
Opening J-Fall 2013
NLJUG
 
Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)
Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)
Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)
Bondan the Planter of Palm Oil
 
Akka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based ApplicationsAkka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based Applications
NLJUG
 
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
Web-scale op basis van Hadoop en Akka Reactive Streams - Johan Tillema, Rene ...
NLJUG
 
Ing presentatie j fall 2013 nijkerk amir arooni
Ing presentatie j fall 2013 nijkerk amir arooniIng presentatie j fall 2013 nijkerk amir arooni
Ing presentatie j fall 2013 nijkerk amir arooni
NLJUG
 
On the integrity of data in Java Applications
On the integrity of data in Java ApplicationsOn the integrity of data in Java Applications
On the integrity of data in Java Applications
NLJUG
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - Atos
NLJUG
 
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van DisselCultivating the jenkins job jungle with groovy - Patrick van Dissel
Cultivating the jenkins job jungle with groovy - Patrick van Dissel
NLJUG
 
J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'
J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'
J fall 2013 - Hands-on lab 'effectief automatisch testen met cucumber'
NLJUG
 
How to get more kids to code
How to get more kids to codeHow to get more kids to code
How to get more kids to code
NLJUG
 
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...Speedy perception trumps speedy reception–smart asynchronous interactions - L...
Speedy perception trumps speedy reception–smart asynchronous interactions - L...
NLJUG
 
Scratching the Surface with JavaFX
Scratching the Surface with JavaFXScratching the Surface with JavaFX
Scratching the Surface with JavaFX
NLJUG
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
NLJUG
 
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
NLJUG
 
Real-World Scala Design Patterns
Real-World Scala Design PatternsReal-World Scala Design Patterns
Real-World Scala Design Patterns
NLJUG
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
NLJUG
 
Opening J-Fall 2013
Opening J-Fall 2013Opening J-Fall 2013
Opening J-Fall 2013
NLJUG
 
Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)
Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)
Ringkasan perkuliahan semester 1 pengantar ilmu pertanian (bagian 1)
Bondan the Planter of Palm Oil
 
Akka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based ApplicationsAkka in Practice: Designing Actor-based Applications
Akka in Practice: Designing Actor-based Applications
NLJUG
 

Similar to Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver (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
Bert 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 hardware
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 car
Bert Jan Schrijver
 
JavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceJavaZone 2016: Continuous performance
JavaZone 2016: Continuous performance
Bert Jan Schrijver
 
OpenValue meetup January 2019 - Continuous performance - Load testing for dev...
OpenValue meetup January 2019 - Continuous performance - Load testing for dev...OpenValue meetup January 2019 - Continuous performance - Load testing for dev...
OpenValue meetup January 2019 - Continuous performance - Load testing for dev...
Bert Jan Schrijver
 
JUGM meetup March 2019 - Continuous performance - Load testing for developers...
JUGM meetup March 2019 - Continuous performance - Load testing for developers...JUGM meetup March 2019 - Continuous performance - Load testing for developers...
JUGM meetup March 2019 - Continuous performance - Load testing for developers...
Bert Jan Schrijver
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
Vincent Claes
 
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
Bert 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 hardware
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 car
Bert Jan Schrijver
 
JavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceJavaZone 2016: Continuous performance
JavaZone 2016: Continuous performance
Bert Jan Schrijver
 
OpenValue meetup January 2019 - Continuous performance - Load testing for dev...
OpenValue meetup January 2019 - Continuous performance - Load testing for dev...OpenValue meetup January 2019 - Continuous performance - Load testing for dev...
OpenValue meetup January 2019 - Continuous performance - Load testing for dev...
Bert Jan Schrijver
 
JUGM meetup March 2019 - Continuous performance - Load testing for developers...
JUGM meetup March 2019 - Continuous performance - Load testing for developers...JUGM meetup March 2019 - Continuous performance - Load testing for developers...
JUGM meetup March 2019 - Continuous performance - Load testing for developers...
Bert Jan Schrijver
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
Vincent Claes
 
Ad

More from NLJUG (20)

The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
NLJUG
 
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard BuijzeReal-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
NLJUG
 
The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...
NLJUG
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen Borgers
NLJUG
 
Introduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus JuraIntroduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus Jura
NLJUG
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - Atos
NLJUG
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten Deinum
NLJUG
 
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopperEvolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
NLJUG
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
NLJUG
 
Apache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn DashorstApache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn Dashorst
NLJUG
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert Ertman
NLJUG
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro Coenradie
NLJUG
 
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn BlankestijnReactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
NLJUG
 
Event-sourced architectures with Akka - Sander Mak
Event-sourced architectures with Akka - Sander MakEvent-sourced architectures with Akka - Sander Mak
Event-sourced architectures with Akka - Sander Mak
NLJUG
 
Setting up a mini big data architecture, just for you! - Bas Geerdink
Setting up a mini big data architecture, just for you! - Bas GeerdinkSetting up a mini big data architecture, just for you! - Bas Geerdink
Setting up a mini big data architecture, just for you! - Bas Geerdink
NLJUG
 
A Storm of Drones - Dennis Vredeveld
A Storm of Drones - Dennis Vredeveld A Storm of Drones - Dennis Vredeveld
A Storm of Drones - Dennis Vredeveld
NLJUG
 
ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...
NLJUG
 
Data Science with R for Java Developers
Data Science with R for Java DevelopersData Science with R for Java Developers
Data Science with R for Java Developers
NLJUG
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScript
NLJUG
 
JVM bytecode engineering 101
JVM bytecode engineering 101JVM bytecode engineering 101
JVM bytecode engineering 101
NLJUG
 
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris QuachThe future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
The future of Web-Scale - Johan Tillema, Rene Boere & Chris Quach
NLJUG
 
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard BuijzeReal-time user interfaces - sosm gewoon makkelijker - Allard Buijze
Real-time user interfaces - sosm gewoon makkelijker - Allard Buijze
NLJUG
 
The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...The end of traditional enterprise IT - ING's journey to the next generation I...
The end of traditional enterprise IT - ING's journey to the next generation I...
NLJUG
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen Borgers
NLJUG
 
Introduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus JuraIntroduction to Reactive with Play and Akka - Markus Jura
Introduction to Reactive with Play and Akka - Markus Jura
NLJUG
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - Atos
NLJUG
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten Deinum
NLJUG
 
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopperEvolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
Evolutionary Algorithms: the key to solving complex Java puzzles! - Bas knopper
NLJUG
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
NLJUG
 
Apache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn DashorstApache Wicket: 10 jaar en verder - Martijn Dashorst
Apache Wicket: 10 jaar en verder - Martijn Dashorst
NLJUG
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert Ertman
NLJUG
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro Coenradie
NLJUG
 
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn BlankestijnReactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
Reactive programming met Java 8 en Java EE 7 - Martijn Blankestijn
NLJUG
 
Event-sourced architectures with Akka - Sander Mak
Event-sourced architectures with Akka - Sander MakEvent-sourced architectures with Akka - Sander Mak
Event-sourced architectures with Akka - Sander Mak
NLJUG
 
Setting up a mini big data architecture, just for you! - Bas Geerdink
Setting up a mini big data architecture, just for you! - Bas GeerdinkSetting up a mini big data architecture, just for you! - Bas Geerdink
Setting up a mini big data architecture, just for you! - Bas Geerdink
NLJUG
 
A Storm of Drones - Dennis Vredeveld
A Storm of Drones - Dennis Vredeveld A Storm of Drones - Dennis Vredeveld
A Storm of Drones - Dennis Vredeveld
NLJUG
 
ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...
NLJUG
 
Data Science with R for Java Developers
Data Science with R for Java DevelopersData Science with R for Java Developers
Data Science with R for Java Developers
NLJUG
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScript
NLJUG
 
JVM bytecode engineering 101
JVM bytecode engineering 101JVM bytecode engineering 101
JVM bytecode engineering 101
NLJUG
 
Ad

Decoding the airspace above you with Java and $7 hardware - Bert Jan Schrijver