Running gpsd on a Raspberry Pi 3 over UART

Adafruit have a great tutorial for connecting and setting up their GPS Shield on the Pi. To connect it direct to the tx/tx GPIO pins on the Pi (instead of USB), there’s some additional steps covered here. Since the Pi 3 uses it’s hardware serial with the onboard Bluetooth, there’s additional steps covered that are Pi 3 specific.

After following those steps however, runnning cgps would run for a second and quit, with ‘No Fix’. What’s odd was that doing a ‘cat /dev/ttyS0′ would show the GPS NMEA messages being received, so I could tell the GPS board was up and receiving, but something else was not right.

Instead of starting gpsd as a daemon, running it form the commandline with additional debugging options gave some additional clues:

pi@raspberrypi:~ $ sudo gpsd /dev/ttyS0 -n -N -D3 -F /var/run/gpsd.sock

gpsd:INFO: launching (Version 3.11)

gpsd:ERROR: can’t bind to IPv4 port gpsd, Address already in use

gpsd:ERROR: maybe gpsd is already running!

gpsd:ERROR: can’t bind to IPv6 port gpsd, Address already in use

gpsd:ERROR: maybe gpsd is already running!

gpsd:INFO: command sockets creation failed, netlib errors -1, -1

This thread has others with the same issue. There are some suggestions towards the end of the thread to edit /lib/systemd/system/gpsd.socket and change some values, but the one recommendation that worked for me was to use this to start the service:

sudo service gpsd start

and then running cgps connected to the gpsd daemon, and everything is good!

VNC remote desktop to a Raspberry Pi

I normally ssh into my remote Raspberry Pi’s, but if you don’t have then attached to a monitor and need to get a desktop view of what’s going on, a VNC remote connection works great. Step by step instructions here.

Raspbian USB disconnects and USB keyboards

I was looking for a solution to a USB soundcard that would randomly disconnect from my Raspberry Pi (it’s a Signalink USB soundcard/radio interface for amateur radio). Turns out, the issue I was seeing was caused by RF getting into somewhere when my radio was keying up – when I moved the HT radio further away from the Pi (only as far as the length of the connecting cable, a few feet) then my problems stopped. This could probably be avoided better with some snap-on ferrite beads.

In this post (and others), there is a suggestion about adding dwc_otg.speed=1 to your /boot/cmdline.txt. I tried this for a while and this didn’t seem to make any difference to my USB disconnects for this particular USB soundcard. It did however stop a USB keyboard from being recognized (a Gear Head Mini USB). Remembering I had added this param and then removing it solved my keyboard issue.

Lesson learnt: if trying out solutions to problems by trial and error, if something doesn’t work, remember to remove it afterwards in case it breaks other stuff 🙂