I took a trip to Stead Nevada, to attend the Reno National Championship Air Races Final Flag. Having attended almost every year since my first trip in 1989, it was sad to see this great event coming to a close, at least for Stead Nevada.
This time around, it was about taking in the event, the vendors, the statics and the racing, more than trying to capture it all on camera. A few photos made the cut from a small collection of photos taken over the weekend. These photos are offered here, for anyone to enjoy.
Note, if there is a photo you’d like to purchase, many sizes and materials are available. Links to be added to post once I’ve finished setting them up with my art vendor. Stay tuned!
Checking in with my Starux project this morning, I found it unresponsive. A physical check shows a flashing red light on the Pi… something has gone haywire, and I couldn’t SSH into the little thing, so a really hard cold restart was in order.
Following the restart I quickly shut Stratux back down to start performing diagnostics:
pi@raspberrypi:~ $ sudo su -
root@raspberrypi:~# service stratux stop
Diagnostics 101
Check Filesystem Health
The last time the little Stratux suddenly had problems it was a filesystem space issue ( previous article ). It turns out the boot drive space was OK but the new Logging partition was again, completely consumed:
There are a number of ways to locate large file on a *NIX system. My favorite tool is find. First thing I want to do is locate any file that is larger than 1 Gigabyte, and sure enough it located a massive sqlite database file. The same one that ate up all the space on the boot drive. So.. this is going to require some more extrodinary measures to maintain 100% 24×7 operational status.
First order of business is to move aside the massive database, but try to preserve the data for examination. Since the filesystem is full, I can’t zip this thing in place, so first some space needs to cleared on the device. The things I’m least interested in go first.. like the zipped syslogs and any other ‘archived’ file (those with a .# suffix).
But.. that’s not going to doe the complete trick, especially if after deleting files df still shows 100% utilization. You need to figure out what is holding which deleted file(s).
Normallyh, the best way to do that on *NIX is with lsof. Much to my chagrin, it was not available on the OS… so I had to go grab it. Thankfully I had the main filesystem on a different partition that still had enough space to install more tools! Once lsof was installed, grep through the list of open file handles and find those marked for delete.. and those are the processes that have handles pointing to those files. However, this didn’t help me with Rasperian Jessie. I know that a reboot will recover the space so.. that was the next step.. a brutal warm-boot.
root@raspberrypi:/var/log# lsof
-su: lsof: command not found
root@raspberrypi:/# apt-get install lsof
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libperl4-corelibs-perl
The following NEW packages will be installed:
libperl4-corelibs-perl lsof
...
The first thing was to move aside the current database, and then restart stratux to verify it can created a new empty database for it’s purposes.. then shut it right back down again.
root@raspberrypi:/var/log# mv stratux.sqlite stratux.sqlite.1
root@raspberrypi:/var/log# service stratux start
root@raspberrypi:/var/log# ls -l
total 7291480
[...]
-rw-r--r-- 1 root root 4096 Apr 30 14:27 stratux.sqlite
-rw-r--r-- 1 root root 7466160128 Apr 30 14:24 stratux.sqlite.1
[...]
root@raspberrypi:/var/log# service stratux stop
A new empty database file has been created [ 4096 Apr 30 14:27 stratux.sqlite ]. This tells me that moving aside the current database file on a periodic basis, compressing and then archiving it should be sufficient to maintain operational status.
Logging Insanity
Before restarting Stratux, I zerod out these log files. Running for first a few moments these files were already reading up a lot of space. Tailing one of them I see that Stratux, with my current settings is logging A LOT of data to these log files. I feel this was my first error.. enabling too much logging. My settings look like this:
With those settings enabled, there are a lot of GPS and other events that I don’t really have a use for, being dumped into the Statux log.
Turning OFF ‘Verbose Message Log’ made that insanity stop.
Replay logging is what is writing to the SQLite database. So the question is. how much of that data do I want to keep, and how much will I lose if I turn off the replay logs. I think that will be research for another day… right now the goal is to recover disk space by compressing the massive database file that was moved aside, and get Stratux stabilized again. Once compressed, check filesystem and file size!
An ADS-B listening station has long been on my list of things to build.
Our current residence is located right under the domestic approach to San Francisco International Airport (see picture), so I believed there should be plenty of data for testing and tuning. Local Air Traffic
What is Stratux
So, what are we talking about here? It’s Stratux, and Open Source complete software package that leverages inexpensive SDRs (Software Defined Radios).
“Stratux is a homebuilt ADS-B In receiver for pilots. It’s easy to assemble from inexpensive, off-the-shelf hardware, and probably already works with your electronic flight bag (EFB) of choice. Even better, if you’re so inclined, the software is open-source and hackable so you can build the system that’s right for you. “
This is some powerful stuff!
The Raspberry Pi 3 (revision b)
Raspberry PI 3After completing a proof-of-concept residential IP space data acquisition project for a client, I found myself with a Raspberry Pi just sitting on shelf.
The Raspberry Pi 3b is a neat little device. A full Linux computer in a form factor the size of a pack of card, including a graphics chip that drives and HDMI output making it a real (compact and low power) desktop project computer.
SoC: Broadcom BCM2837 CPU: Quad-core ARM Cortex-A53, 1.2GHz GPU: Broadcom VideoCore IV 3D graphics RAM: 1GB LPDDR2 (900 MHz) Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy Storage: microSD GPIO: 40-pin header, populated Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)
My first Raspberry Pi purchase (as requested by the client) was a complete kit that cost me about $75 [ link to super size kit ], but you can certainly get the bare Raspberry Pi for under $40 (assuming you have some spare things like a micro-USB cable and a micro SD card).
Adding ADS-B radios
Adding ADS-B radios to the Raspberry Pi was as easy as ordering a kit form Amazon for under $40. [ Dual-Band ADS-B (978MHz UAT & 1090MHz 1090ES) Bundle For Stratux ]. For some reason, I’d debating buying the radios and building a kit. There are several complete kits with the computer, radios, specialized case, memory card etc. Prices vary between $120 to $250 depending on what parts you want. When I found this little kits with 2 sets of antennas, radios and coax for under $40.. it was just too easy to pull the trigger. So far they have been well worth the very inexpensive purchase!
Assembling the Sysetm
Custom Stratux Pi CaseBeing a proof of concept, I didn’t feel like dropping another $20 on a specialized case such as this one (right), because I wasn’t sure if I’d be happy with this project.
The previous projects housing was too small (in my opinion) to provide what I wanted, which was a single item housing all the parts. Again, wanting to minimize costs while building project, I opted to re-purpose an small plastic ammo can into a make-shift housing. The unfortunate side effect of that decisions is that the final product looks like some sort of nefarious device (see final photos somewhere below).
Using the drill press / mill I have setup for another project, I quickly milled some vents to the plastic box to vent out the heat created by the Pi and the two nano radios. And believe me, this is something you want to do. Using the Stratux software, I’m typically seeing CPU temperatures around 140F (toasty), and the radio run a lot hotter.SDRs installed into Raspberry Pi Hot enough to blacken the decals I’d put on the bottoms of the radios (this is what they looked like before they were cooked).
Once I had all the milling completed I installed the radios, Pi and coax into the box. The coax are reasonable flexible but still barely looped around inside the box. This photo was before I added another port for an Ethernet cable (that hack to be discussed in a subsequent post). It might not look pretty, but it does work!
Milled ammo box
SDRs and Pi installed in the ammo box.
Final Stratux in Ammo Box project
Making it all work
Once the physical construction was done, the last step was to download the software, burn it to a little MicroSD card and fire it up!
Once you have connected to the ad-hoc stratux WiFi network, navigate to this IP address: http://192.168.10.1 . If your system is up and running you’ll see a page that looks like this: Stratux landing page at 192.168.10.1
If you have some aircraft overhead (as I almost always do), you should see them listed on the ‘Traffic’ page. This is what mine looked like just a few minutes before writing this article: Stratux Air Traffic page
Now that you have this up and running, it can provide a GDL 90 data feed to variety of flight planning / monitoring software, including some free apps for iOS and Android. The full current list of software supported on the Stratux main page. Here is a snapshot of software support at this time: Stratux Software support
It was bound to happen. I’m hooked. This Radio Control stuff is just as fun, if not more fun (now that I can afford basically anything I want to fly) than it was as a kit!
While driving all over Puget Sound looking for a few things (good price on transmitter set, a good 450-class heli, some training software, parts, etc. etc) we stopped at HobbyTown near PLU. This place is more like the old-school hobby shops of my youth. Piled with all sorts of cool kits. A little bit of everything. Old display fixtures and a group of characters behind every counter. Reminded me of Houston’s Hobby in the Cambrian area of San Jose. Digressing…..
Atop a counter sat a small collection of R/C demo aircraft. The Boy gravitated straight towards the P-51 mustang there, and asked if he could see if fly. It didn’t look like they had ANY place to fly a fixed-wing model, so I was surprised when the guy picked it up and said, “Sure, let’s check it out. It’s a little windy but I think we can do it.” And that he did.
I was impressed by the 4-channel micro foamy plane’s ability to fly, and to handle the breezes. The Boy wanted to see it fly over and over again, but the batter was low in the plane and it barely made it back. LOL.
Long story short, they guy at the hobby shop made a sale because of that demo. I was $135 lighter in the pocket. Which I didn’t think was *that* bad considering that buys the plane, the transmitter, receiver and servos, battery and charger, plus it’s completely Spektrum DMS2 2.4 GHz spread-spectrum compatible (how compatible I would shortly discover, more on that later). That’s it on the right there, in case you can’t tell the difference between a heli, a can of PBR and a P-51. Proto CX Heli and HobbyZone P-51 Parkflyer
We drove all around town, even up to Tukwilla for another hobby shop before heading home with the batteries in the P-51 charging up in the back of the car.
When we arrived home, there was still plenty of sunlight to go fly. So that’s what we did! Took the little P-51 out for it’s maiden voyage. Thankfully it’s light weight and made of foam, because it spent white some time ‘landing’ on surfaces other than it’s wheels. One crash was bad enough to snap a better connector off. This was the begining of it’s downfall, and really, mine as well, I just did not know it yet. Fortunatly the battery, even though it was broken, was still able to be attached to the plane. So I crashed it until dusk and we headed home.