Dec. 4th, 2013

dichro: (Default)
One of my pre-roadtrip notions was to broadcast an APRS beacon from the car, for tracking our progress across the country. Having a radio in the car, I further justified, was also a useful emergency communications tool for, you know, emergencies. Without further ado, I bought a Yaesu VX-8DR, advertised as an APRS/GPS/Bluetooth radio.

This description turned out to be taking certain liberties with the truth.

It did Bluetooth in the sense that you could buy a separate $80 Bluetooth radio to plug into it.
It did GPS in the sense that you could buy a separate $75 GPS radio to plug into it (with an additional $40 adapter).
It did APRS, to be sure, in that it had a built-in 1200/9600 baud modem, which must be, what, a hundred lines of code to replicate in software?

Affronted, I refused to spend the money, deciding that I had a perfectly good GPS in my phone that is running ~100% of the time in the car anyway, and there's no reason to buy all that extra hardware when I could just send it to the radio's serial port via a $11 Bluetooth adapter. There's even a range of GPS mouse apps out there ("GPS mouse" being a term that made a lot more sense before Bluetooth).

Unsurprisingly, I ran out of time to do anything with this before we set out, and didn't find much more en route, beyond determining that the plug on the radio was finicky and it was too hard to convince the adapter's cable to mate with it. I bought a breakout cable for it–grumbling–and then took advantage of an electronically inclined friend's hack night to connect the parts together.

Pretty much everything went wrong from that point onwards.

The Bluetooth adapter was entirely happy to relay GPS data as long as somebody else connected to it first. But that's not the way that GPS mice (and apps that mimic them) work: a Bluetooth client must connect to them before they'll respond with GPS data. Trying to convince the adapter to initiate a connection was a multi-hour journey through inconsistent datasheets and discordant firmwares (firms-ware?); frustrating despite being a well-trodden path. The closest match–at least, the one whose sample output matched–was mostly untranslated and then the module didn't work as documented anyway, though I suspect here that it may have been attempting to connect to a particular UUID/port, and I still have no idea how to mess with Bluetooth at that level on a Mac.

Eventually I gave up, dug up somebody else's GPS mouse Android source, and talked it into making outbound connections. Then it became clear that the VX-8DR has NFI how to parse standards-compliant GPS output and demands fixed-width formatting because lazy firmware programmers. Also, the code was so reminiscent of my own approach to hacking together minimally functional Android apps that I spent approximately equal time feeling faintly nostalgic and wrestling with the urge to rewrite imprudently large chunks of it and send pull requests.

But with all that done and working, it was finally time to go for a drive! At which point I discovered that my Nexus 4 can't push data down an RFCOMM link without destroying the audio quality of the podcasts it's streaming through the car's speakers. Argh. Then it also became clear that the radio largely failed to punch a signal through the car's skin anyway.

So, back to the drawing board. On the upside, I rediscovered a lovely parkable perch for admiring the city lights from above.


dichro: (Default)
Miki Habryn

April 2017


Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 23rd, 2017 01:52 am
Powered by Dreamwidth Studios