FlightAware Discussions

RockPi 4B Experiments

I finally bit the bullet and bought one of these RockPi 4B boards for some experimentation:

I’ve been holding off since distro support for most RK3399 boards has been sparse to say the least, but these guys have been gaining steam and their support forums are quite active now:

After scouring through this board’s schematics, I noticed that it contains separate lanes for USB3.0 and USB 2.0 hubs unto the SOC. (Multiple hubs) - Which got me wondering if it could handle (unlike the Rpi4) running an Airspy R2 going full-tilt at 24Mhz with anything else plugged unto another USB port and still maintain full data/MLAT integrity. Well… My recent tests prove that it does, and well!

Here are some screenshots of this board running an AirspyR2 @ 24Mhz through Dump1090-FA, An FA Orange dongle running Dump978 and a Ublox USB GPS spitting out coordinates through GPSD without packet loss with full sustained MLAT for proof of concept.
Dump1090 Map:

Dump978 Map:



RPIMonitor (Not refined for this board yet) - Ignore throttles, etc as those calls dont work on this distro

The setup was pretty much out of the box using the following:
Distro (linked up top): Armbian_5.67_Rockpi4b_Debian_stretch_default_4.4.154_desktop_20181210-gpt

sudo apt -y remove --purge bluez avahi-daemon x11-common cups  #Remove Desktop & other useless junk
sudo apt -y autoremove
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list  #Upgrade to Buster
sudo dpkg --add-architecture armhf
sudo apt update
sudo sh -c "echo 'GOVERNOR=\"performance\"' > /etc/default/cpufrequtils"
sudo systemctl restart cpufrequtils
sudo apt -y dist-upgrade
sudo apt -y autoremove
sudo apt clean
sudo apt -y install git build-essential cmake libtool autoconf automake bc libusb-1.0-0-dev pkg-config zlib1g-dev \
librtlsdr-dev libsndfile1-dev libasound2-dev debhelper pkg-config dh-systemd libncurses5-dev libbladerf1 libbladerf-dev \
adduser lighttpd tcl8.6-dev python-dev python3-dev python3-venv virtualenv dh-systemd zlib1g-dev tclx8.4 tcllib tcl-tls itcl3 \
net-tools libboost-system-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev gpsd gpsd-clients python-gps \
locate libc6:armhf libstdc++6:armhf libusb-1.0-0:armhf fakeroot

git clone https://github.com/jprochazka/adsb-receiver.git ~/adsb-receiver && cd $_
sed -i 'N;/CheckPackage postfix/,+2!P;D' bash/portal/install.sh
sed -i 's/\"9\" \]\]\; then DISTRO_PHP_VERSION=\".*\"/\"9\" \]\]\; then DISTRO_PHP_VERSION=\"7.3\"/' bash/portal/install.sh
sed -i 's/DUMP1090_FA_VERSION=\".*\"/DUMP1090_FA_VERSION=\"3.7.2\"/' bash/variables.sh
sed -i 's/PIAWARE_VERSION=\".*\"/PIAWARE_VERSION=\"3.7.2\"/' bash/variables.sh
sed -i 's/MLAT_CLIENT_VERSION=\".*\"/MLAT_CLIENT_VERSION=\"0.2.10\"/' bash/variables.sh
sed -i 's/MLAT_CLIENT_TAG=\".*\"/MLAT_CLIENT_TAG=\"0.2.10\"/' bash/variables.sh
sed -i 's/jessie/stretch/g' bash/feeders/piaware.sh
sed -i 's/dpkg-buildpackage -b 2>\&1/sudo rm -rf cx_Freeze-5.1.1\n    wget https:\/\/github.com\/anthony-tuininga\/cx_Freeze\/archive\/511f4733e6fb0070409a654cf5e8d2aea2dc5417.zip\n    unzip *.zip\n    mv cx* cx_Freeze-5.1.1\n    dpkg-buildpackage -b 2>\&1/' bash/feeders/piaware.sh
chmod +x install.sh
(Choose: Dump1090-FA, Dump978, Portal)
sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/graphs1090/master/install.sh)"
sudo bash -c "$(wget -O - https://raw.githubusercontent.com/wiedehopf/airspy-conf/master/install.sh)"

Note, the above uses some dirty hacks for Joe’s script, but can just as well install dump1090-fa and piaware manually if you so choose as well as use dump978-fa. I just used the ‘old’ method due to my experience with it.

So you may also see through the screenshots that the SBC is still somewhat “bored” when running the AirspyR2 @24Mhz, -e 7.5. (I recently switched to -w 1 for another test, I use -w 3 otherwise). There is a lot more CPU left to work with on the airspy_adsb thread. Graphs show solid MLAT, but current feeder is #24259 should anyone want to verify (this feeder changes hardware often though as it’s one of my test sites)

Also here is the GPS unit I bought and have attached to feed location through GPSD: (Plug & Play with Buster)

So proof of concept is there and working for those that have been looking for a way to do everything on one board while still maintaining MLAT. I have zero affiliation with anything linked above, I’m just a tester.

ADD: I failed to mention upstream hardware: Dual band antenna sourced from China -> Mini-Circuits LNA-1150LN+ LNA -> 5 meters RG-6 (Copper) -> FA Filter -> Mini-Circuits ZAPD-21 splitter -> AirspyR2/FA-Orange


Not to overshadow the whole fact that you got your RockPI4 setup running so well, but do you have any lead on the China-sourced dual-band ant? I run a DPD 1090 collinear right now and have a 978 collinear to put up, but I really hate having to put up two antenna systems if I could do with just one.


Adding to the offtopic - a dual band antenna cannot use a narrow band filtered LNA to pass both 1080 and 978. So that leaves available only a wide band amp eventually coupled with the FA wide band filter.

Hi Mike,
I’ll go through my files to find the email/contact from the place that made it up. In all honesty, it’s not a very good antenna - I also have some VNA shots of it at home at both 978 and 1090 and to be honest, it never passed my sniff test, so I scrapped a project I had going with sourcing a single workable dual-band antenna to go along with custom low noise 2-stage LNA and narrow-band DC-pass cavity diplexer. Will circle back after I get home.

1 Like

In that case, don’t waste your time on it. If it doesn’t pass your tests, I don’t think I’d be interested. Man i really wish somebody out there would make a good dual-bander though. What I have now is in my attic. If there was a dualbander that would perform as well outside as my 1090 ant does inside, I’d bite.

great job on the RockPI4 though. Looks like it’s really humming along without much effort at all.

I worked with at least 4 manufacturers in China through Alibaba a couple years back when I was really into this and found that it’s a tough nut to crack to get a decent SWR nailed down on a ~120Mhz spread for both bands, and some of the “better” manufacturers have much higher minimum order quantities (MOQ) to enable a person to test prototypes without going broke, so it’s best left up to corporations that make money doing this to source them. Pretty sure FA sold a dual-band a couple years ago but discontinued. I’d have to check my pile (literal) of antenna again to verify. I had a REALLY good, low-loss dual band cavity diplexer/filter in the works with DC-pass but scrapped it due to not being able to find the proper antenna for the upstream.

In the end, it’s best to run separate lines for performance reasons, even if it is a bit more inconvenient. Single antenna, diplexer/splitter/filter combo would be great for the average person, but wouldn’t sell very well due to added expense for the convenience factor. I think the unit was around $55/each in batches of 100 shipped, but then need to make at least a little bit if going through the hell of creation and supply. No thanks, I have a job already and FA along with RTLSDR are selling filters and LNA’s for under $30 each and there’s your market in the end.

Back to the RockPi - I’m highly impressed given my initial testing and results with this board so far. I’ll see what else I can wring out of her, but for now, it’s good enough to prove that it can be done at least. PS: Don’t let their “6 day” shipping fool you - it still took ~3 weeks to get to me from time of order.

1 Like

Update: Here she is screaming away without a care in the world: airspy_adsb -e 9.1 -w 3 -m 24

Got Bitching Betty when I pushed it to -e 9.3, so I backed her off a couple notches and not a complaint or dropped packet since. MLAT still good to go as can be seen in the chart.


That’s pretty good! I was tempted by RK3399 too but I didn’t want to be the tester…

nice work!
looks like a promising device!

I reloaded everything and went with dump978-fa for a more streamlined and cleaner setup than I had using the oldskool dump978 method with a zillion pipes. Which got me thinking: Am I wrong to be thinking that nearly all these results are being thrown out by piaware due to TIS-B pos??

…Hey it’s my thread, I can derail it if I want. :stuck_out_tongue:

At either rate, I’ll post commands for the most recent method once I clean everything up for anyone who may be following along. The install should be pretty much the same for any SBC using the Armbian base, so it may prove somewhat useful for those using Orange Pi or other off-the-wall boards.

I think if you go to /skyview978 and then click on the icon to Expand Sidebar, you should be able to tell then under one of the columns which is TIS-B. I’m betting you are correct.

In UAT 978 a lot are ADS-R and TIS-B.
I have seen 100 aircraft in dump978 with only 2-3 being actual ADS-B. The rest were ADS-R and TIS-B.

same here. When FA stopped ‘accepting’ the TIS-B in UAT the number of aircraft dropped from 1000 to 150 per day. Frankly, that FA decision made sense to me.

With my FlightFeeder 978MHz, the UAT has zero TIS-B on the webpage.

To me it’s normal to be like that.

Color me stupid, can somebody please explain why dump978-fa gain is stuck at max? Sorry, is my first time using dump978-fa, I’ve always used 978 mutability.

wrong configuration…

1 Like

Where does it go and what format?

 13 RECEIVER_OPTIONS="--sdr driver=rtlsdr,serial=00000978 --sdr-gain 40"

1 Like

Thank you sir! I’ve read that too, several places - in one eye, out the other. Silly why it’s even an option in the piaware config - but I also realize it’s not yet fully supported mainline, so I assume it will be fixed

It’s an option for dump1090 as well. Has been like that for ages.
Basically, if you don’t use the sd-card image you need to know it :wink:

1 Like