SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

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 arooniNLJUG
 
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 ApplicationsNLJUG
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosNLJUG
 
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 DisselNLJUG
 
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 codeNLJUG
 
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 JavaFXNLJUG
 
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 DanesNLJUG
 
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 PatternsNLJUG
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvmNLJUG
 
Opening J-Fall 2013
Opening J-Fall 2013Opening J-Fall 2013
Opening J-Fall 2013NLJUG
 
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 ApplicationsNLJUG
 

Andere mochten auch (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 ...
 
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
 
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
 
Workshop spring boot presentatie - Atos
Workshop spring boot presentatie - AtosWorkshop spring boot presentatie - Atos
Workshop spring boot presentatie - Atos
 
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
 
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'
 
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
 
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...
 
Scratching the Surface with JavaFX
Scratching the Surface with JavaFXScratching the Surface with JavaFX
Scratching the Surface with JavaFX
 
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
 
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...
 
Real-World Scala Design Patterns
Real-World Scala Design PatternsReal-World Scala Design Patterns
Real-World Scala Design Patterns
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
 
Opening J-Fall 2013
Opening J-Fall 2013Opening J-Fall 2013
Opening J-Fall 2013
 
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)
 
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
 

Ähnlich wie Decoding the airspace above you with Java and $7 hardware - 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 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
 
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
 
JavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceJavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceBert 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 PythonVincent Claes
 

Ähnlich wie 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
 
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
 
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
 
JavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceJavaZone 2016: Continuous performance
JavaZone 2016: Continuous performance
 
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...
 
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...
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 

Mehr von 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 QuachNLJUG
 
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 BuijzeNLJUG
 
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 BorgersNLJUG
 
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 JuraNLJUG
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosNLJUG
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumNLJUG
 
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 knopperNLJUG
 
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 DashorstNLJUG
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert ErtmanNLJUG
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieNLJUG
 
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 BlankestijnNLJUG
 
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 MakNLJUG
 
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 GeerdinkNLJUG
 
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 DevelopersNLJUG
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScriptNLJUG
 
JVM bytecode engineering 101
JVM bytecode engineering 101JVM bytecode engineering 101
JVM bytecode engineering 101NLJUG
 

Mehr von 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
 
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
 
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...
 
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
 
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
 
Workshop angular dart presentatie - Atos
Workshop angular dart presentatie - AtosWorkshop angular dart presentatie - Atos
Workshop angular dart presentatie - Atos
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten Deinum
 
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
 
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...
 
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
 
Opening - Bert Ertman
Opening - Bert ErtmanOpening - Bert Ertman
Opening - Bert Ertman
 
Returning the right results - Jettro Coenradie
Returning the right results - Jettro CoenradieReturning the right results - Jettro Coenradie
Returning the right results - Jettro Coenradie
 
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
 
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
 
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
 
A Storm of Drones - Dennis Vredeveld
A Storm of Drones - Dennis Vredeveld A Storm of Drones - Dennis Vredeveld
A Storm of Drones - Dennis Vredeveld
 
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...
 
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
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScript
 
JVM bytecode engineering 101
JVM bytecode engineering 101JVM bytecode engineering 101
JVM bytecode engineering 101
 

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