The 1090MHz Riddle

The book about decoding Mode-S and ADS-B data


Begun with a frustration on the lack of technical public information on ADS-B and Mode-S in the year 2015, I created a live online document to record my understanding of ADS-B data. Previously, this was known as “ADS-B Decoding Guide” project. Together with the tutorial, we also developed its related Python library, the pyModeS. With time, I received many feedbacks, compliments, and contributions from open-source community users.

Since the beginning of 2017, the interests of tapping into Enhanced Mode-S (EHS) data brought us a whole new chapter of Mode-S inference and decoding into the pyModeS. This also enriches the “ADS-B” guide. With the advance in this area, I am planning to compile a more comprehensive online book to cover both ADS-B and Mode-S decoding and related topic.

That’s the starting of this new repository. I am also starting to host the online book on my own server to allow more flexibility of editing and publishing. You can read the most up-to-date book on

Oh, it is still GNU GPL. It was great to see the pull requests from different contributors previously. I am looking forward to seeing more comments and pulls from the community. Enjoy!

Original contributors

  • Junzi Sun, PhD Candidate, TuDelft
  • Jacco Hoekstra,, TuDelft
  • Joost EllerBroek,, TuDelft
  • Huy Vu, Master Student, TuDelft


Since the start of the this project, I have received many questions by email. However, the best way to post your questions is using the GitHub Issues. This way, your questions and my answers can help others as well:

Anyhow, still feel free to drop me a messages at: j.sun-1[at]


Some good source of documents: