Wingbit is a new DePIN blockchain whose goal is to collect ADS-B information provided by aircraft in flight to enable precise tracking, similar to what we know from FlightRadar24, but with a more massive, dense, and global approach. The underlying business model is the resale of this information to companies interested in exploiting it. It remains to be seen how large the demand for this will be in the long term.
However, this project is quite engaging, centered around a topic that resonates with many people, even outside the blockchain and geek spheres. Since it involves radio reception, the choice of hardware is an important consideration when starting the project. As a result, I conducted a small benchmark of various easily accessible equipment to design an efficient, low-cost receiver.
This article will interest anyone who wants to receive aircraft information (ADS-B), including for other projects, as Wingbit has just closed the possibility of building your own receiver.
DiY or WB-200 ?
Wingbit has decided to close access to DIY solutions in favor of a manufacturer system with validated hardware. This approach is very similar to Helium’s, and the Wingbit project is heavily inspired by Helium in its approach. The current solution is to order WB-200 hardware (pictured here) or WB-300, which also mines Geodnet (GPS RTK). The price is quite high relative to the components inside, but you save a lot of time in configuration. The WB-300 allows you to start earning immediately with GEOD tokens, which have a market value, unlike Wingbit tokens, which are still in devnet at the time of this post.
Consequently, the rest of the blog post, which focuses more on DIY (ok, I could have published much of it earlier), can help you test your location and evaluate your potential rewards before ordering official hardware. It can also allow you to optimize your setup, such as the antenna, filters, or help you choose the right equipment for ADS-B without necessarily being involved in the Wingbit project. There are indeed many community projects, such as fr.flightaware.com, for example.
Tested Hardware
Pico computer board
The following boards works well for me
- Raspberry PI zero 2W (26€) : compact solution, also not expensive. It does not natively have Ethernet connection and rely on WiFi. I did add Ethernet Hat (20€) and Ethernet+PoE (32€) hat depends on my deployment way. To be used with a heat sink (10€) compatible with the hats or this one (9€) if you use an USB adapter.
- Raspberry PI 3B : good to reuse if you have some.
SDR (Radio Receiver) dongle
I’ve tested the following dongle and make them working out-of-the-box
- Airnav RadarBox FlightStick (50€) : this is currently the best performing dongle I’ve been tested. It claims to have a specific ADS-B filter. The plastic box is not optimum for temperature radiation.
- NooElec NESDR Smart – version 201x – (36€) – works well but lower performing in terms of rewards apparently (about -20%). Check the radio reception above
- NooElec NESDR Nano 2 (39€) : this one is really small and could really fit with a PIZero 2W for a small WingBit platform but it does not perform well.
- New Gen RTL2832 (21€) : This one is a noname, low cost SDR, it comes with a small antenna not tuned for 1090MHz. The radio connector is not an SMA and an adpator will be required.
The New Gen RTL2832 gave similar performance. In terms of rewards, i saw a difference around 7% in favor of RadarBox but in regard of the period of measurment I’m not sure it’s 100% significant.
- SDR ADS-B (24€): this one is a ADS-B dedicated SDR with 19dBm LNA and filter (1075-1105MHz). The result is better than the Radarbox one for half of the price. Also the metal casing is better for heating. Rewards get better about 20% with that one compared to reference.
I’ve also tested the following one, not working out-of-the-box
- NooElec NESDR SMArTee XTR (48€) – is detected but does not report ADS-B information, the product manuf is indicating that the device does not support ADS-B because it has a frequency gap capability near 1100MHz (the ADS-B frequency)
- Airspy – is not detected
Antenna
The use of a 1090MHz antenna has a significant impact as you can see on the following graph where the antenna has been swapped from a 868MHz to a 1090MHz.
This needs to be compared with a reference receiver where the antenna has been unchanged during the same period of time and at the same location to make sure the change did not came from the plane traffic:
The green highlighted line shows that with a stable setup during this period of time, the number of messages has decreased compared to 11:20, when in the previous graph it increased, showing the impact of the antenna.
Both type of antenna in this test are equivalent, it is just a question of frequency mapping.
I’ve tested different antenna at the same place, my reference will be a simple antenna like this one ($18 on Amzon). The position is quite bad, as an advantage, any change starts to be significant in this context. Also this kind and low cost antenna is not made for a real performance so they are a good comparative. For real they are not so bad but they have a low gain being omnidirectional.
This is going my reference in the comparison. I use 2 SDR in parallel, they have a different sensitivity but with the added Saw / LNA they are close to each other. I’ll also compare the evolution.
My second antenna tested is this one from Aliexpress it is supposed to have a gain of 12 dBi and costs $18 for 40cm length, delivered at home. Here is the result:
The antenna itself quality is ok, the provided cable is long but the quality is bad: it’s really thin and the shield may be a bad quality. I don’t recommend to use it. I did use it in my test. The result of the test can be seen above:
You have a first message evolution coming from the reference SDR and we see that the airplane traffic was growing during the last 24hours. But on the left, the antenna change make the airplane traffic decreasing. This only makes sense if the antenna gain is lower with this new setup. The antenna swap has been made in between the two days.
My third antenna also comes from Aliexpress it’s a 50cm outdoor antenna that cost about $30 with a type N connector. This connector is a male type N, a bit not standard but good for what it does. The optional cable provided quality is good too.
When I compare this antenna with my reference, here is the change at the same moment of the day.
In terms of signal, you can see the comparison. as the result was vusally really better and my antenna setup on the roof top was not ideal (antenna was dropping). The growth is significant enough.
SAw FILTER & LNA
The addition of a saw filter with LNA can help to capture more signal ; in particular when the SDR does not have one. The generic SDR board are made for large frequency reception and does not filter noise on frequencies around. In the following graph, you can see the moment when I added the saw+lna easily and see the improvement associated. In terms of reward, this modification made the miner passing from 2.5 token a day to 3.5 (+40%)
The model I used for that test was really basic from aliexpress with a cost of $10.
The use of filters alone, without the LNA (low noise amplifier), is intended to eliminate signals coming from other frequency bands that might bleed over. This makes sense only if you are in a noisy environment. Normally, this shouldn’t be the case (unless you’re deploying on a telecom tower, for example). It is preferable not to deploy them otherwise, as their insertion will result in signal loss. Here are the results I obtained by inserting low-cost filters without an amplifier:
A soon as the filter is inserter the signal decrease when on my second station, the signal is stable over the different days. Below the different filters I tried, giving basically the same result. With the one on the left I also had some connector insertion issues.
Network traffic
The network traffic mostly depends on number of aircraft in view, in my experience, for a volume of 1600 messages / second, the daily volume has been about 2GB. Running on LTE connectivity this can be a budget impact.
Install
Install wingbit requires a debian based OS, raspiOS 64b is ok. It is compatible with RPI3 to 5 and RPi Zero 2W. Get the RaspiOS Lite version from raspberry Pi download website. Then burn it on a SdCard from 8GB with a tool like Balena Etcher
Enable ssh on boot if you want to setup w/o keyboard (on macOS X) and create a user pi with default password pi
$ touch /Volumes/bootfs/ssh
As macosX openssl does not support the expected format generating a password, let’s pass the following command on another RPI
# echo 'mypassword' | openssl passwd -6 -stdin
$6$5RBKDgAYcV83KLps$bti3u7ULoeIo8/voyaNBuD1V1ZzdgDjUJA3kcdzVs888ldo9KhQ5eyFcIUV7nZqpHfkiRK1Rmt9bLPII1Omfb.
Then let’s create the user entry:
$ echo 'pi:$6$5RBKDgAYcV83KLps$bti3u7ULoeIo8/voyaNBuD1V1ZzdgDjUJA3kcdzVs888ldo9KhQ5eyFcIUV7nZqpHfkiRK1Rmt9bLPII1Omfb.' > /Volumes/boofs/userconf
Now you can boot the pi with the sdcard and you will be able to ssh the RPI and terminate the wingbit setup.
$ sudo su
$ apt update
$ apt upgrade
$ reboot
Now you can go to wingbit dashboard register, create a new station and on the bottom of the Station page, you will find a curl line to execute on your Pi for installation. This will make the whole installation, including the dependencies.
$ sudo su
$ curl -sL https://gitlab.com/wingbits/config/-/raw/master/download.sh | sudo loc="x.xx, x.xx" id="xxxx-xxxx-xxxx" bash
$ curl -sL https://gitlab.com/wingbits/config/-/raw/master/wb-config/install.sh | sudo bash
$ reboot
Ubuntu install on piZero 2W does not give enough memory for /run and you may have the following error:
Reload daemon failed: Refusing to reload, not enough space available on /run/systemd. Currently, 1.3M are free, but a safety buffer of 16.0M is enforced.
To fix this, add the following line into /etc/fstab
none /run tmpfs defaults,size=72M 0 0
Then remount /run
mount -o remount /run
If you don’t need WiFi, better disabling it, less radio you have close to your receiver, better it is
$ rfkill block wifi
# use unblock to revert the action
Remote Access
To access your Wingbit once it is deployed remotely, it can be useful to preconfigure an SSH tunnel that is accessible even behind a firewall, NAT, or a private IP, as is commonly found with mobile subscriptions.
For this, you need access to a server with a public IP, but after that, it’s quite simple. I have described how to do it in my blog post on Storj.
As an addition, it sounds good to restart the service on daily basis to make sure your can connect. Add in /etc/crontab the following lines and restart cron service.
51 4 * * * root systemctl stop sshtunnel
53 4 * * * root systemctl start sshtunnel
To be continued
Even though this article is published to avoid waiting too long to share the collected information, it will be updated regularly as new equipment is tested and compared.