Sunday, January 28, 2018

ADS-B plane tracking on raspberry pi

An enjoyable meeting of the ARNSW Home Brew Group at Dural today. Along with the general social catch up, sausage sizzle, cups of tea and cordial, there was a trash and treasure. I came away with a nice big Ammeter that might do well in the van.

I presented about tracking planes' ADS-B locations using an RTL-SDR dongle the fantastic Malcolm Robb fork of dump1090 running on a Raspberry Pi. It looks like he hasn't updated it since 2014 but it sill builds and works well on a Pi.

A fresh install of Raspbian comes with all the developer tools needed and you only need to install rtl-sdr and librtlsdr-dev to get what you need to make dump1090.

In my presentation I demonstrated a build and run of the software. The shed at Dural is rather well shielded and we only saw a few planes using the indoor antenna.

Peter, VK2EMU, showed a fantastic looking 3D CNC machine from China that he's building that costs about $200 and might be suitable for PCB fabrication. (Note that it's too early to tell if this is actually a good deal).

John, VK2ASU, is turning into a C programmer and showed a touch screen controller for a rig he's building.

Great to see everyone and thanks to John, VK2ASU, for the photo of me above.

Friday, January 26, 2018

Vanlife: Power system sorted - bigger battery

The challenge with this van is to have enough power to run a small fridge full time with available power for a bit of ham radio. So far, with the two batteries that came with this van, the system hasn't really been up to it.

In the last few days I disconnected both batteries that came with the van and attached a 150AHr battery I've been using in my shed's solar system. This has done the trick. Gone are all those deep dips in voltage when the fridge was running without full sun and it now looks much better.

Note that in the plot above I set the fridge to 8C over night then in the morning, when the sun came out (actually it's quite overcast today), I lowered the temperature to 4C which is why you see the downward voltage movement at about 9:30.

Along the way I learned that the solar charge controller doesn't get on with the fridge. If I connected the fridge to the "load" terminals on the controller it would flash the load symbol which indicates a short circuit. I guess the initial inrush of the fridge is high enough to trigger that protection so I've had to connect directly to the battery. Fortunately the Waeco fridge has its own low voltage shut down so it won't over flatten and damage the battery.

The 150AHr batter is big and my plan is to mount it under the bed and remove the big battery box that rather fills the space behind the driver's seat.

All good fun learning about this but beware that batteries that come with campervans may well have been mistreated. The Arduino voltage logger has been a great tool for figuring out how the system is performing.

Power consumption of a fridge is dependant on multiple factors including: temperature difference between the air and the internal setting and temperature of liquids placed into the fridge. I've seen it work hard after having a full load of room temperature beer added.

Sunday, January 21, 2018

Vanlife: Sorting out the power system

The van came with a 100W solar panel on the roof and a wooden box containing batteries and wires. The seller told me that it had 200AHr of capacity and a good quality relay for charging from the alternator when driving and the starter battery was full.

It did seem to work OK but when I spent a night out and used power for a transceiver as well as the fridge the voltage dropped faster than I had expected and it was time to investigate.

Here's the contents of the magic battery box.

On the right is a Century 65AHr deep cycle battery. Connected in parallel on the left is an Exide 90AHr conventional lead acid battery. I know it's a bad idea to simply put two batteries in parallel but it's definitely a bad idea if they are different types of battery as in this case.

I disconnected everything - which means I now understand the wiring - and charged the deep cycle battery for a day. In the morning, with no load, it had self discharged quite a bit. My theory is that the first battery started to lose capacity and a previous owner simply added an extra battery. 

So, I've removed the first battery and simply wired in the second, larger capacity battery. The box looks like this now.

I let this battery charge, which it did quite quickly in full sun, and then turned the fridge back on. A great benefit of keeping notes for myself on a blog is that I found this post that shows my source code for an Arduino based voltage logger. 

I left it sampling battery voltage every 10 seconds for over 24 hours and produced this graph.

During the first afternoon it looks like the voltage was swinging pretty wildly up and down as the battery charged and then discharged to run the fridge but after few hours it settled down and now looks pretty good (although I think I need to use heavier wire to reduce resistance under load from the fridge).

Crisis: Clouds

The next day was overcast and the voltage dropped to the point where the Waeco fridge (correctly) stopped running. It does this to avoid fully discharging and damaging the battery. In the plot below you can see the spike down below 12V until I noticed and then turned the fridge off all together.

This has prompted me to do the right thing and re-wire so that loads in the van come from the output of the charge controller so that it can take care of switching off all loads in the event that the battery falls below a set threshold. (As it came all loads are connected directly to the battery).

Ever since I put in this new controller, a cheap "no brand" model from an eBay seller, it has mysteriously flashed the battery symbol rather than acting as advertised in the manual.

I took this opportunity to mount it horizontally, so the display is easier to read, and attach cables with bullet connectors. This removal from power seems to have reset the thing and now it's acting as it should and I've been able to correctly set the battery type. Here's how it looks now:

Today is still rather overcast so I'll leave the fridge off until we get back to full charge and give it another go. It may be that the second battery is also degraded but we'll see.

Update: The other battery isn't up to it either

After charging with the fridge off, I re-connected it. Here's a voltage plot showing a peak of charging and then a rapid decline into under voltage when the fridge was turned on.

Next step is that I've moved the 150AHr battery from my shed into the van and am now running the fridge. We'll see how that goes. As an aside, drawing these graphs with a time axis took me a little tinkering so here's the latest code using matplotlib in python 3.

import csv
import datetime
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

timeFmt = mdates.DateFormatter('%H:%M')


datareader = csv.reader(open(INFILENAME,'r'), delimiter=',')
values = []
times = []
for row in datareader:
    if len(row) > 1:
        # eg: 23/01/18 13:12:49        timeStamp = datetime.datetime.strptime(row[0], '%d/%m/%y %H:%M:%S')
        volts = float(row[1]) * VOLTSCALE

convertedTimes = matplotlib.dates.date2num(times)

plt.plot(convertedTimes, values)

Thursday, January 18, 2018

Vanlife: first night out in the van

Cattai campground on the banks of the Hawkesbury river is very quiet on a Wednesday night. Only a few other campers and just one visible from my location. There is lots of friendly wildlife including about 8 wallabies, a big lizard, some sort of snake and various birds.

I backed the van up in a spot looking over the water with some bush and trees on either side. Unfortunately not quite level but perfectly fine.

A simple half-wave dipole made from thin, multi-strand, figure eight speaker wire was strung up between two trees by throwing a line with a stick on the end over a branch at each end. It hung quite low but tuned up well. This a a very low noise location I guess because the sites are unpowered. (Although there is power to the amenities block). Listening to short wave was very pleasant.

For lunch a large fried sausage with some salad followed by an afternoon of reading, tuning around 40m, and quiet contemplation by the river.

Late afternoon I called CQ on 7.1MHz and quickly heard back from Rob, VK2MZ who was very strong. We gave each other feedback on audio quality and equalisation - he was experimenting with a speech processor for an FT-817 which worked fine except when he used a power amp. With just 5W he was still very strong. On my new FT-891 Rob found that position 2 on the Yaesu microphone sounds clearer - I've read that position 1 is better tuned to Japanese voices. Later, Peter, VK2FPGK joined the discussion when he heard us talking about software defined radio.

Dinner was fried sausages and salad again and I have no idea how I'm going to clean the frypan when camping.

After talking on ham radio for a while I noticed that the fridge had turned itself off to protect the batteries from over-discharge. It seems that the twin 12V batteries charged by the 100W solar panel do not have the capacity they used to and quickly discharge if the sun isn't on the panel. I farewelled my ham radio friends to hopefully keep enough power for the fridge over night.

It was a warm evening and three beers were consumed while watching the sun go down across the river. The only real negative about Cattai is that the river is used for water skiing, which seems to be a particularly pointless and annoying activity that I couldn't really characterise as a sport. At dusk they gave it up.

At about 8:30pm it was quite dark so I went to bed with the back door to the van open and slept under a sheet (with a doona nearby). My big fear was being tortured all night by biting insects and while I did hear two mosquitoes during the night I only noticed one bite on my palm by morning. After hearing the first insect I sprayed myself with Bushman brand repellant who supply the Australian Olympic team I see.

I parked a long way from the amenities block, hoping to avoid other campers who might object to my antenna. My plan was to pee into a plastic bottle and this worked well until first light when the bottle was getting a little full - the three beers were back in full.

Overall, I had a very good night's sleep. There were occasional plops and splashes from the river, a branch dropped loudly on the van roof at one point, but the other wildlife left me alone. Sleeping on an incline is a bit odd and next time I'll try to park a bit better.

Breakfast was three eggs and bacon plus hand ground coffee. Thanks to Peter C for the home grown eggs. Morning temperature had fallen to 12C but the doona was enough to keep me warm despite the back door being fully open.

Battery voltage did come back up after I stopped the ham radio and the Waeco fridge ticked along most of the night but when I woke at 5:30 I noticed that it had shut down. When the sun came up the fridge woke and showed that it was 8C so the milk will be fine.

I have a big list of things to get or fix before the next outing in the van but clearly the batteries need attention - they need to run the fridge as well as lighting and ham radio and currently the voltage drops very quickly. The solar charge controller I put in (to replace the very basic one that came with the van) has always displayed a blinking battery icon and I should have realised that the voltage has always been low even under ideal conditions.

The first night was very pleasant and I look forward to improving the setup and having many more nights on the road.

Tuesday, January 16, 2018

Running an SDR "spy server" for the Airspy HF+ on Raspberry Pi

One of the great features of the Airspy devices and the SDR# software is the ability to remote control a receiver that is running on a "spyserver". I thought I'd run it up on a Raspberry Pi here.

I followed the simple instructions for an ARM32 CPU but immediately got the dreaded “`GLIBCXX_3.4.21′ not found” error when I tried to run ./spyserver.

Unfortunately the source code to spyserver doesn't seem to be available and the binary has been built against a pre-release version of ARM Linux. The instructions to update to the required libraries are here and thankfully that worked for me (but takes some time to do all the updates).

I port forwarded 5555 to the outside and now I can connect remotely and use the receiver. The first user gets full control of frequency and others can listen nearby. I've got to say, connecting to and using a spyserver works really well. There's a small list of public servers here. I can recommend a very low noise location in NZ at sdr://

It would be great if the protocol and spyserver reference code could be open sourced. You can also share an rtl-sdr device via this protocol as well.

Saturday, January 13, 2018

Dave, VK3ASE shows his amazing streaming radio station

This video is a mix of hilarious sendup of many YouTube stars and also a fascinating overview of Dave's streaming radio station.

More information about VK3ASE's exploits. The crossband recordings page even includes a bit of me from back in 1978.

Crossbands were a terrific way to have a multi-person conversation on amateur radio. One station would mix together several receivers and transmit the mix. Participants could have a pleasant full duplex conversation. Sometimes these got rather silly but often were most entertaining and a snapshot of the time.

Live streams are available here.

Friday, January 12, 2018

AirSpy HF+ review - a nice SDR receiver

When I read the glowing review of the new AirSpy HF+ on the RTL-SDR site on December 11 2017 I ordered one. Now, a month later, it's arrived. I have an SDRPlay and it's a terrific SDR receiver although the proprietary driver is a solid negative to me - basically because it means that third party software can't bundle the driver and it must be downloaded and installed manually - just a hassle.

The AirSpy HF+ is a very nice piece of hardware, heavy, quality metal construction that looks great. (Click to enlarge any picture).

Receiving 40m SSB.

I love SDR receivers for short wave listening, here's 9MHz (mostly Chinese stations). AM sounds great.

Compared to the SDRPlay, the extra dynamic range is obviously better. Here's the SDRPlay on medium wave:

Here's the AirSpy on medium wave:

I ran the receiver as a WSPR receiver on 20m today and one station, a VK7 was consistently -27dB with the SDRPlay and was just -13 on the AirSpy HF+ - a dramatic improvement in signal to noise ratio.

I'm still learning about this but so far my impression is really great. I was disappointed by how long it took from the time that it was possible to order to when it arrived but hopefully that was an initial glitch in manufacturing. The product seems excellent to me though.

Over the horizon radar

A wonderful thing about being able to see the whole band on a waterfall is that you can clearly see how those over the horizon radar systems abuse our spectrum. This is on for a minute at a time but blots a huge block of the 20m ham band.

Airspy HF+ on Linux problems

I'm having problems using the HF+ on Linux. I've tried Ubuntu and Fedora but so far airspy_info always says:


I can see that when I plug the device in it is correctly identified:

Jan 15 07:14:51 stream kernel: [ 2149.736036] usb 1-2: new high-speed USB device number 6 using xhci_hcd
Jan 15 07:14:51 stream kernel: [ 2149.877049] usb 1-2: New USB device found, idVendor=03eb, idProduct=800c
Jan 15 07:14:51 stream kernel: [ 2149.877067] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jan 15 07:14:51 stream kernel: [ 2149.877076] usb 1-2: Product: AIRSPY HF+
Jan 15 07:14:51 stream kernel: [ 2149.877086] usb 1-2: Manufacturer:
Jan 15 07:14:51 stream kernel: [ 2149.877095] usb 1-2: SerialNumber: AIRSPYHF SN:DD5243AA904134AF
marksp@stream:~$ airspy_info
airspy_lib_version: 1.0.9
airspy_open() board 1 failed: AIRSPY_ERROR_NOT_FOUND (-5)

The troubleshooting guide isn't helping me.

I have manually added the udev rule (Note that this is wrong for the hf+ I now know):

marksp@stream:~$ cat /etc/udev/
hwdb.d/    rules.d/   udev.conf  
marksp@stream:~$ cat /etc/udev/rules.d/52-airspy.rules 
ATTR{idVendor}=="1d50", ATTR{idProduct}=="60a1", SYMLINK+="airspy-%k", MODE="660", GROUP="plugdev"

Just found out about udevadm:

sudo udevadm monitor -e
# Then plug in the device

UDEV  [195.512324] add      /devices/pci0000:00/0000:00:14.0/usb1/1-2 (usb)

UDEV  [195.515692] add      /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0 (usb)

The vendor id and product id are different. (I now realise that the airspyhf is quite different).

I've now found the correct udev rule here. Now when I plug in I see the device entry in /dev/

marksp@stream:~$ ls /dev/air*

airspy_info still can't find the device though.

Note that the library for Airspy HF+ is at I've built that but the utilities such as airspy_info are still here but haven't been updated for 9 months. Do the userland tools automatically pick up the new device? It's rather confusing to me.

Success! GQRX now receiving AirspyHF+ on Ubuntu Linux

Turns out that the utils, such as airspy_info, are not needed for a build of GQRX to be able to see the airspyhf.

Got the latest gqrx 2.9 from here. I've also built gr-osmosdr from source.

Now when I start gqrx from the command line I see the following receivers supported:

built-in source types: file osmosdr fcd rtl rtl_tcp plutosdr miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya

And in the configuration dialog I now see the airspyhf:

And it receives.

I'm using Gqrx 2.9 on Ubuntu 17.10. For some reason I haven't got it working on Lubuntu at the moment.

Thursday, January 11, 2018

Vanlife: Needed some repairs

I paid AU$8k for the van. It's a 2000 Toyota Hiace that came with lots of useful things for camping including solar power, water, gas and comfy bed.

To my untrained eye it seemed to drive well but it did seem a little noisy. Other things I noticed were that the coolant light comes on for a while when first starting, the left headlight didn't work and the interior light is out.

Before heading off on a significant trip I took it to my local car servicing place and asked them to give it a good look over...

It turns out that the differential was on the way out and needed to be replaced. The rear bearings were also bad. I decided to go with four new tyres. All up, I've now spent almost AU$3k on an $8k purchase. The mechanic commented that other than these issues it seems in excellent condition considering its age and I'd rather spend the money now than find myself broken down somewhere remote.

The mechanic joked that it will be so quiet now I'll be able to sleep while I drive!

Slightly in shock at this expense but happy to be in #vanlife.

Update: More repairs

On the way home I noticed that the break pedal was very squishy and went almost to the floor. Thought it might just be some air after the fluid change but it was still bad in the morning so I went back. Another day in the repair shop and a new break master cylinder. They think that draining the break fluid triggered a leak. Anyway, another $500.

Wednesday, January 10, 2018

Is the cheapest smartphone usable? ZTE Blade L111 Review

 I recently reviewed a premium Android phone but I've wondered about the extremely cheap phones you see. This week, a Coles supermarket flyer offered a smart phone for AU$29 and I thought I'd check it out.

The phone is actually a ZTE Blade L111 that has been customised by, and locked to the Telstra network. It comes with a $10 prepaid SIM. They can't be making any money on these things.

The device looks quite good and after using larger phones it's a delight to hold something with a 4 inch screen. Very pocketable.

The unboxing experience is nothing like the high end phones but all the bits are there even including a bag to post your old phone in for recycling.

Battery and SIM installed.

Initial boot.

Initial set up and activation is a little bumpy. There's lots to update on the phone and for me the updates often failed and had to be retried. There were some alarming error messages about Google Play but in the end (after about an hour) all was up and running.

Due to the small storage space I chose to set up fresh and not attempt restore from a backup of another device.

Telstra's activation took only about ten minutes and initial test calls sounded quite good.

So far this seems like a decent cheap phone for beach or camping.

The bundled $10 ran out within a few hours, not sure why, perhaps it inadvertently used data during some of the initial updates even though I was connected to Wifi. The battery does not seem like it will make it through a day of my normal use. The display is difficult to read in bright daylight.

Out of space!

The built in camera is passable, here's a sample shot. If there is strong back light is suffers from lens flare rather badly.

I've taken only a few shots, perhaps 5, and now am seeing errors updating apps due to the small (4Gb) of available storage. There's not much that can be deleted, ironically this is one that it suggested.

Thursday, January 04, 2018

Vanlife begins - a new toy, a Toyota Hiace LWB van to camp in

Very excited with my purchase of a rather beaten up 2000 Toyota Hiace LWB van with some basic camper van facilities built in.

The back is rather filled with a full size double bed mattress but underneath there is lots of storage space.

It came with a 100W solar panel on the roof and two batteries making up 200Ahr. There is pretty nice LED light bars and oddly little twinkly lights that I'll probably remove.

Already I've made a few improvements to the electrical system by upgrading the charge controller to one with a digital readout of battery voltage and larger capacity. Before:


I plan to run more 12V equipment, obviously ham radio gear, so I've added a distribution board:

The van drives well (I drove it back from Wollongong to Sydney this morning) and the most amazing discovery is that the radio has shortwave!

Surely it was meant for someone like me. Table for outdoor cooking and battery box.

The mattress rather fills the space:

Lots of storage underneath. Here's the drinking water (with pump) and gas.

Battery box has been done pretty well although I fear dropping a spanner in there.

Looking pretty comfortable now.

Wednesday, January 03, 2018

Podcast recording with distributed guests

In the past, when recording a podcast where the guests are in different locations, I've used Skype and a utility that lets each guest record their audio locally. While you can just have the host record the whole Skype call, network issues can reduce the quality of the remote guests. Since Microsoft purchased Skype they've messed with it and prevented the old recorder software from working.

Recently I had the pleasure of being a guest on the Vertical Hold tech podcast with prolific tech journalists Adam Turner and Alex Kidman. The show was a kind of wrap of 2017 and look ahead to 2018, you can hear it here or subscribe wherever good podcasts are offered.

I mention this because we recorded the podcast using a web site called Zencastr. Each party joins the conference using just their web browser (Chrome is recommended) and it works like a group call. The real magic is that each person's audio is recorded locally in the browser and uploaded to the server in full quality as you go. You wouldn't know this was going on except that at the end of the recording we had to keep the browser window open for a little while for the upload to complete.

The upshot is that the podcast sounds very good. At my end I'm using a Rode USB mic which I think sounds excellent. I did have one problem at the start, I had a Chrome extension installed that prevents HTML5 video from auto-playing and this prevented me hearing the others until I disabled it.

Zencastr has a straight forward interface, you see a list of people in the call and interestingly the type of microphone they have selected - I imagine this is useful to make sure people aren't using the built-in laptop mic by mistake. There's a "hand" button where you can raise your hand so the host can throw to you. They have reasonable pricing and a free tier with up to two guests and 8 hours recording a month.

Thanks again to Adam and Alex.