bu-353 is known to work with gpsd.
1) Try the -b flag (for example, gpsd -b /dev/ttyUSB0)
2) Open a separate terminal window and run gpsmon (included in the 'gpsd-clients' package) to check gpsd output. Restart gpsmon each time you restart gpsd.
Could tango be starting too soon? The dongle requires a few seconds to sort out the signals, identify satellites, and calculate a fix, udev requires a few seconds to start gpsd, which in turn requires a few seconds to probe the dongle (which may not be ready yet) and begin broadcasting useful information when the data stream finally begins. gpsmon can help diagnose that problem, too.
3) If there's no gpsd output, then do a more detailed check. Do the following steps in order to test the dongle, the kernel module, the mount, the device node, and gpsd:
- Unplug the USB dongle and kill gpsd (
sudo pkill gpsd). Wait 10 seconds for /dev/ttyUSB0 to be freed.
- Plug the USB dongle back in and wait 10 seconds.
- Check
dmesg | tail -n 5 to verify the dongle was really mounted to /dev/ttyUSB0. If it doesn't mount, then you're missing a kernel module (from your description, that's unlikely). Sometimes it gets mounted to /dev/ttyUSB1 if 0 isn't free!
- See if udev recognized the dongle and started gpsd (
ps -e | grep gpsd). If not, then you have a udev rules issue, and you must start gpsd manually with gpsd /dev/ttyUSB0
Once gpsd is running, check for dongle output (dongle output = gpsd input). Try cat /dev/ttyUSB0 (stop it with CTRL+c). If that fails, then try resetting the baud rate to 4800:
pkill gpsd
stty 4800 > /dev/ttyUSB0
gpsd -b /dev/ttyUSB0
cat /dev/ttyUSB0 # CTRL+c to stop
- If you have have good dongle output (=gpsd input), open a second terminal window and try either
gpsmon or cgps to test gpsd output.
- Finally, now that you have good dongle output and good gpsd output, try tangoGPS.