Building Your Own Bitcoin Satellite Node: Part 3 — Dish Alignment


At this point you should have your dish assembled and the required software installed. You can, and should, copy over an already-synced Bitcoin blockchain to your Sat Node. Blockstream Satellites rebroadcast the last 24 hours of blocks, so don’t worry about having to hurry. Time to align your dish!


  • An assembled dish and correctly connected cabling as per Part 1
  • Requisite software installed as per Part 2
  • Clear line-of-sight to the satellite
  • Your LNB’s LO frequency (mine was printed on the box the LNB arrived in)
  • (Optional) Smartphone dish alignment app

For reference, here are the previous parts of this guide:

Determining the proper satellite to align to

Note: For this guide we will use Galaxy 18.

Blockstream currently has four satellites broadcasting Bitcoin blocks to North and South America, Africa, and Europe. To determine which satellite provides the best coverage for your area, refer to the Network Status page here:

There is also a Dish Alignment Tool you can use to input your address and receive what elevation, azimuth, and polarity you need to receive data from the satellite.

Attaining line-of-sight

To get a rough visualization of my line-of-sight to Galaxy 18, I used the SatellitePointer iOS app.

Make sure you have no buildings, trees, or structures within 30 degrees of your line-of-sight. An example of a good line-of-sight:

The better and less-obstructed line-of-sight you have, the better your signal will be:

Setting your dish’s azimuth and elevation

Once you have determined an area with good line-of-sight, you can begin setting the azimuth (side-to-side movement) and elevation (up and down angle) of your dish. The dish used in this guide is known as an “offset” dish. What that means to us is to use the dish’s own angle measurement to set the elevation versus relying on a protractor or smartphone app.

The quality of signal you will receive is very sensitive to the angle of elevation, so make sure you are setting it as accurately as possible.

Once you believe you have accurately set the dish’s elevation, move on to setting the LNB polarity.

Setting the LNB’s polarity

Setting the polarity of the LNB is a little tricky. I used the SatellitePointer iOS app to help with this. I fit the top of my smartphone under the flat part of the LNB (painted red) and then tried to get an accurate reading from the app:


There are also degree markings on the top of the LNB, but I found using the smartphone app was easier.

Using the Blockstream Satellite Receiver to fine-tune alignment

A prerequisite of launching the Receiver is to determine what frequency to pass to . You should have figured out the frequency of the satellite you want to receive from previously in this guide. Galaxy 18’s frequency is 12022.85 MHz.

To calculate the frequency to pass to , you subtract your LNB’s LO frequency from the satellite frequency. The LNB used in this guide has an LO frequency of 10750 MHz. Thus, the result is 1272.85 MHz. accepts frequency in Hz (instead of MHz), so the result is 1272850000 Hz.

Now, you can pass the frequency and gain (40 is fine) to and run it:

python --freq 1272850000 --gain 40 is located in the satellite/grc directory we cloned from the Blockstream Satellite repository in Part 2 of this guide. Mine is located at: /home/grubles/satellite/grc/

Working with the Receiver GUI

When you start a window will pop up with numerous tabs. What we want to do is use the FFL Intab:

no signal yet!

This graph is very noisey and updates quickly. To help with this you can set the graph to average its updates to get a clearer visualization of the quality of your signal:

15 should do the trick

Sweeping and setting the dish’s azimuth

At this point your graph will be more or less flat. Now we can focus on setting the azimuth correctly. Slowly sweep left to right and back while watching the FFL Intab. I used the previously mentioned iOS app to help with setting the azimuth:


If you are successful, you will see a lump in the graph similar to this but not necessarily as clear:

Nice! Now you can adjust the azimuth (side to side), elevation (up/down), and polarity of your LNB to get a bigger “lump”, and therefore a better signal.

The objective is to have a clear lump similar to this:

To confirm your signal is good, you can click on the Abs PMF Out tab and see a single large peak:

You can also click over to the Costas Sym Out tab and see four groupings of dots:

Finally, the terminal where you are running will print out:

#### Frame synchronization acquired ####

Congrats! You’ve successfully aligned your dish to the Blockstream Satellite!

time to uncork that 50 pound champagne bottle you’ve been storing for years

Starting FIBRE ( bitcoind )

Now that we are successfully aligned to the satellite, we can start bitcoind and receive blocks from the Blockstream Satellite!

$ bitcoind -fecreaddevice=/tmp/async_rx

You can now follow the debug.log to see if you’re receiving blocks successfully. If you see something similar to:

2017–09–17 20:41:39 UDP: Got full header and shorttxids from [::]:2 2017–09–17 20:41:42 UDP: Initialized block 0000000000000000008961eb7ce04e56c0d6dec5b6e92a3e4298b7614d762f83 with 0/867 mempool-provided chunks (or more)

…then you are all set! Congratulations!

actual footage of me when I got all this working for the first time

Now, you can turn off (or keep turned off) networking to your device and only receive blocks from the satellite or you can stay networked. It’s up to you!

This concludes Part 3 of the Building Your Own Bitcoin Satellite Node guide. A special thanks to Chris Cook at Blockstream for walking me through setting my sat node up, and also to Greg Maxwell for informing me of such a cool and exciting application of technology.

For a more in-depth guide visit:

If you found this guide helpful you can spend tips to3KQFQptqczxfXfWKwTxDw7iwifrf96axuG

Thanks for reading!