Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Documentation on how to use with Blockstream Satellite #14

Closed
muaddib1984 opened this issue Jul 2, 2022 · 3 comments
Closed

Comments

@muaddib1984
Copy link

I'm new to blockstream satellite but not new to GNURadio and SDR. I understand that this is just the receiver, but the Blockstream Satellite project references leandvb as the software it uses. Are there any 'Hello World' tutorials on how to receive a blockstream message with gr-dvbs2rx as the receiver software?

@igorauad
Copy link
Owner

igorauad commented Jul 5, 2022

Hi @muaddib1984 ,

Thanks for your interest in the project. We've just pushed a branch on the satellite project with the support for gr-dvbs2rx. Please check it out: https://github.com/Blockstream/satellite/tree/gr-dvbs2rx

All you have to do is checkout this branch and run blocksat-cli.py from the local source file rather than the version installed via pip3. You would run the gr-dvbs2rx SDR receiver with:

./blocksat-cli.py sdr --impl gr-dvbs2rx

There are loads of extra options like --gui for GUI mode -d for debugging the low-level metrics. Please check the help with ./blocksat-cli.py sdr --help.

If you run with --debug before the sdr subcommand, like so:

./blocksat-cli.py --debug sdr --impl gr-dvbs2rx

You will see the full command printed on the console, like the command below. Yours will be different depending on the satellite and hardware (LNB LO, etc) you are using.

dvbs2-rx --source rtl --rtl-idx 0 --rtl-gain 40 --out-fd 4 --freq 1316900000.0 --samp-rate 2000000.0 --sym-rate 1000000 --rolloff 0.2 --modcod qpsk3/5 --frame-size normal --pilots on --ldpc-iterations 25 --mon-server 4>&1 1>&2 | \
tsp --realtime --buffer-size-mb 1.0 --max-flushed-packets 10 --max-input-packets 10 -P mpe --pid 32 --udp-forward --local-address 127.0.0.1 -O drop

If you want more control, you can play with the command directly. The Blocksat CLI is just a wrapper to call dvbs2-rx and tsp with the appropriate options and pipe one to the other.

As for leandvb vs. gr-dvbs2rx, it is true that we are still recommending leandvb for the time being. At some point, we will transition to gr-dvbs2rx as the main SDR application. However, leandvb has the advantage of being a more self-contained software that is a lot easier to distribute. In contrast, gr-dvbs2rx requires GR 3.9, which is not available on the official binary package repos of many distributions (e.g., Ubuntu 20.04 has GR 3.8 by default). So it will take a bit more time until we make gr-dvbs2rx easy to install across the distros we support (Ubuntu, Fedora, CentOS, Debian, and Raspbian).

Please note that after you get a lock on the SDR receiver, you then need to run bitcoind with the right options to receive the data. Please, refer to the bitcoin config instructions and the user guide in general.

@muaddib1984
Copy link
Author

Sorry for the delayed response, again thank you so much this is a huge help. I'm working through all the pieces but it appears to be working. From what I can tell i'm downloading the large blockchain transactions ledger at ~1.15Mbps using connect=0 to only use the SDR. Going to test with an actual message at some point. Thanks so much @igorauad !

@igorauad
Copy link
Owner

That's awesome, @muaddib1984 . Happy to help!

Please feel free to send more questions here or at the satellite repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants