rockus.at: gpsd On WRT54GL

rockus.at / Linux_x86 / gpsd on WRT54GL

 

There will be a node in my attic connected to a GPS and various other sensors to work as a weather and synchronisation station for my local network. This node is setup using one of Linksys' WRT54GL routers running OpenWRT or DD-WRT.

This page is supposed to document a bit my progress in getting the thing up and running.

Currently I've got a gpsd 2.30 running on the WRT54GL, despite posts in the forum that it's got too few RAM for that to do. One solution posted was to add swap space via a SD card connceted to the GPIO pins. Since I want to use the GPIOs for other things, this was not viable for me and I started to dissect the gpsd code.

As it runs now it supports pure NMEA, lacks a few features like DGPS support or PID file support and lots of other stuff, but it serves my GPS connected to /dev/tts/1 to the world. If anyone is interested or if there are any questions, feel free to drop me an email.

The plan is to stream line the code to be able to extend the official gpsd package from berlios so that it runs on the WRT54GL when cross-compiled out-of-the-box.


Current setup: Yes, this is mixing things, but if it works that way, it should better work when the process becomes cleaner.
A quick look on CPU usage:

There have been forum posts that gpsd is rather a heavy burden on a small CPU as is used here. I let gpsd run, with one GPS in NMEA mode and one client attached. That client had both watcher and raw mode enabled, as was debug level 4 on the daemon. With this the CPU usage of gpsd was around 15% on average. Load average during that run, which lasted for about half an hour, was around 0.25. This is with the router in client mode, wirelessly connected to my main network, running X-Wrt as noted above.


power supply:

The power supply of the WRT54GL is handled by several different chips, most of them (for 5V and 3.3V) directly connected to the input power provided by the wall brick. The 2.5V supply is connected to the 5V chip.

supplymanuf.typemax.current
heat sinked
max.power diss.
2.5VRichtekRT9167A-25 (product page, PDF datasheet)0.5 A625 mW
Supply for Flash(?) (3.3V?)Diodes Inc.AP1605 (product page, PDF datasheet)3.0 A1200 mW
3.3VDiodes Inc.AP1509-33 (product page, PDF datasheet)2.0 Ainternally limited
5.0VDiodes Inc.AP1509-50 (product page, PDF datasheet)2.0 Ainternally limited

The datasheet for the AP1509 states, that "[t]he SOP-8L package needs a heat sink under most conditions." This especially holds true if one wants to draw the whole 2A current. In this application, the router itself consumes only a couple tens of mW, therefore no heat sink has been applied by Linksys.

Preferably, connected periphery also draws power from the already existing supply solutions. A Garmin GPS 18 LVC requires 60mA @ 5V according to the GPS 18 Technical Specification, ch.1.5.2.2, p.5. Since the AP1509 includes a thermal shutdown feature, connecting additional periphery should not be able to destroy the supply.

It remains to be seen if the AP1509 goes into thermal shutdown if the system is run with the GPS connected to the 5V supply. Currently the supply chip does not even become noticeably warmer.