This project is to make something that used to be common – a GPS receiver with serial data output. Modern APRS handhelds like the THD72 have GPS on board, but my Kenwood TH-D7 is from the turn of the century and doesn’t have onboard GPS. I used to pipe the output of a handheld GPS into the serial port. That worked fine, but in the field it’s a drag to use a handheld GPS tethered to a rig. Every time you want to put something down or set the rucksack down you end up with a knitting session on the cables. This is why they invented Bluetooth, and one option I considered was running a little Bluetooth receiver to a Copilot BT GPS. Trouble with the Copilot is how do you recharge it in the field, and I need to pick off power from somewhere to run the Bluetooth receiver. So I still get cables to the rig and another battery to manage 🙁
Most handheld GPS receivers like my Garmin Vista HCx have moved on to USB serial interfaces now, whereas the 1990s vintage Kenwood TH-D7e uses 4800-n-8-1 RS232, which is what GPS units chucked out in those days. Early THD7s had a problem reading the serial stream since NMEA 0183.3 superseded 0183.2 for the reasons described in the Potator article. I assumed my unit was one of these, so I constructed the Potator, but while the rig worked through it, it also worked without it, so I was lucky and dispensed with that 🙂
Alternative approaches considered
There is a case to be made for using the alternative of using a PIC based tracker like the FreeTrak into the mic socket if you’re going to have to add a PIC to the system – that would also let you use smart beaconing and the like, which still keeping the receive side as normal. In that case I’d build the PIC tracker and GPS module in the same box. That approach comes with a different set of problems – VOX or PTT woes to fix.
Another way would be to go with the modern flow and use a USB Host board to connect to the GPS and turn it back into an old-skool serial unit. There’s a lot to be said for it:
- yes it still needs another battery but that will power the GPS via the USB, saving the batteries in the handheld GPS, which gives a handy way of keeping it ready for navigation in an emergency and not running the GPS power down while playing with radio
- in theory the THD7 can spit out a serial message back to the GPS that can put a waypoint on the GPS corresponding to received stations
However, it appears that my Garmin Vista HCx uses a proprietary USB interface, which puts the kibosh on that idea. If I wanted that functionality I’d have to buy another handheld GPS, in which case I’d make sure it supports serial (or has a serial adapter cable). Secondhand Garmin Emaps are to be had for about £50 on ebay, it’s important to get the serial cable with the unit, and the eMap memory module is also proprietary if uploading maps is desired. I can live without a display of other stations. So I went for the entirely dumb but low cost approach.
I got a GPS module off Ebay based on the Ublox Neo-6M. Never did find who CRIUS were and no datasheet was to be had. I was reassured by the silkscreen saying 5V although the actual signal levels seem 3.3V CMOS (the neo module runs at 3.3V, presumably the black SMD chip to the left of it is a voltage reg).
These modules are cheap and common, because they seem popular with RC flight/drone/quadcopter guys. I’m surprised the 5m accuracy of GPS is good enough for them, but they have done wonders for the price of the technology. I used an FTDI serial interface I normally used for Arduino tinkering and it drove the Neo-6 module straight off from u-center which is free from ublox in Switzerland. You obviously have to make up a rig to fiddle with the pinouts and map TX to GPS RX and vice versa. A 5V FTDI cable can run the GPS from the computer. The module comes set to 9600 baud and I used u-center to set the GPS to 4800 baud and then pressed the automagically resyc magic wand to resync u-center down to 4800.
The output of the NEO is positive TTL RS232 which is great for the FTDI and useful all round, but the Kenwood wants to see real pukka RS-232, inverted and with negative voltages. Ow. It presented enough of a load that the usual workaround of using an NPN transistor to invert the data didn’t work – with a 1k collector load to +5V the THD7 pulled the collector below ground, so I scratched that bright idea. Fortunately turning TTL into RS232 has been a common requirement for years, and according to the datasheet Maxim have been making MAX232 chips since 1989 which does all this using a switched capacitor voltage generator for the RS232 positive and negative values.
Although the datasheet seems to say you can leave unused sections open, I had to tie the unused CMOS T2IN to ground else there’s a great big messy 50Hz rail to rail output on T1OUT which didn’t give me a good feeling and is a waste of power and source of needless interference if nothing else. The RS232 RX on R1IN seems to rest R1out okay at 5V without flapping so I left it be, as per the datasheet
9.3.3 RS232 Receiver
Two receivers interface RS232 levels to standard logic levels. An open input will result in a high output on ROUT.
I guess inside the TH-D7 there’s another MAX232 to get it back to TTL 1. I simply followed the MAX232 datasheet, used mylar caps for the switched capacitors and regular electrolytic smoothing caps. It’s not really the sort of thing you want near sensitive radio equipment – the GPS signal is very weak, but in the 1.2-1.5 GHz range, so hopefully not too much hash from this up in the GHz range. The 3V3 serial data is within spec on the Max232 with its TTL-spec VIH of 2V and VIL of 0.8V. It didn’t seem to desense the GPS, which still works in a shelf through the roof and a ceiling and gets a 3D fix most of the time
The fool’s diode in reverse across the power supply means this must only be used with a 500mA fused battery box (or intelligent power managed) power supply, at the very least something that limits current to 1A. Else you’re looking to start a fire in your rucksack when you are tired and stick the batteries in the wrong way round… Sadly the spec of the Max 232 is 4.5V min so there’s not enough headroom even for a series Schottky diode with a four-battery 4.8V supply.
I plan to use this /P possibly mounted on the top of a rucksack handle. Now these days you want to be discreet about rucksacks with wires, I wouldn’t dream of taking this in a town or anywhere near public transport. It works inside my workshop through a roof and ceiling so perhaps it can all stay inside, but I ran on the assumption It’s gonna get rained on. So I used the case upside down and made sure not to drill any holes in it, all the holes and on the underside as is the cable entry. So the case should act as a shield the rain should fall out… I borrowed some tips from the quadcopter guys and used nylon screws to mount both boards. Fortunately the amazingly bright LEDs on the underside of the GPS are attenuated enough by the veroboard and the incidence onto the nylon bolts that while it’s just visible in the dark it’s still a strain to see, so it shouldn’t attract unwelcome attention. A 1Hz flash is sooo Hollywood movie bomb timer cliche and I’m glad to see it nutted.
It works fine and synchronises the TH-D7 okay, without having to mod the GPS module. The only drag, which isn’t the fault of the design, is that the power drain, while not trivial, isn’t enough to be able to use my 5V Ravpower USB powerbank, which cuts off deciding it’s a trivial load. Which is a bit rude, and just goes to show how much power a smartphone uses.
50mA is still a bit on the high side – it takes the receiver about 10 seconds to lock up if it’s been off for a minute. So I could save power by only running it for 30 seconds out of every five, but at the cost of ratty performance under trees etc (there the time to lock up may be longer). I’ll take the hit of a 30 hour battery life on 1800mAh AA NiMHs, the THD7 would probably drop out first.
- It’s a 3V3 Analog Devices part ADM3202 at position IC518 doing the same sort of job, shared across GPS and PC ↩