daniestevez / free-outernet

Free Software Outernet receiver
GNU General Public License v3.0
78 stars 23 forks source link

free-outernet

Free Software Outernet receiver

Note: This software is now maintained by Othernet as open-ondd. The new open-ondd has been updated to work with the current Othernet data broadcast protocols.

This is a Free Software (Open Source) receiver for Outernet designed to work with the gr-outernet GNUradio Outernet receiver modem. The key parts of the official Outernet receiver software, ondd and sdr100 are closed-source, distributed as binaries only. This project aims to provide a Free Software alternative to ondd, while gr-outernet can be used a a substitute for sdr100.

With free-outernet and gr-outernet you can receive the files that are broadcast by Outernet file service and the time packets that are broadcast by the Outernet time service.

All this software is the result of a reverse engineering effort, since Outernet does not publish any documentation for the protocols they use.

You can use free-outernet.py to receive UDP packets in real-time from gr-outernet or with a KISS file recorded previously by gr-outernet. free-outernet.py recovers the files that are transmitted by Outernet and prints the time packets. It also prints some interesting debug info.

Things that are not implemented/supported yet:

Dependencies

To install all dependencies just run: pip3 install -r requirements.txt

Sample KISS files

You can use some sample KISS files for testing.

About LDPC decoding for files

LDPC decoding has been implemented by George Hopkins by reverse engineering ondd.

Previously, this was not implemented, so free-outernet needed to receive all the blocks for a file to be able to reconstruct it correctly. Now, it can use the LDPC to "fill in" the missing packets in case some of them were lost.

The performance of free-outernet regarding FEC and LDPC decoding should be now the same as the performance of ondd.