timurrrr/RaceChronoDiyBleDevice

GPS Functionallity

Opened this issue · 1 comments

Hi,

works great. Is it possible to add GPS into your project?

Short answer: yes!

Long answer: but... :)

My project is a re-write of https://github.com/aollin/racechrono-ble-diy-device that already has GPS support.
So it's certainly possible. One option you might consider is just using that project instead of mine.

Personally I didn't find it useful to spend my time on understanding and adding GPS support, as I already own an off-the-shelf external GPS.
On top of that, the main reason I created my own fork was because that build worked super unreliably for me, and I had to question every single part of the project... Turned out to be a power supply issue, as always :))) But when I realized my code is more readable (to me, at least) and more component'ized (and thus allows more flexibility for customization), I figured it would be useful to upload it to GitHub.

Another thing to consider is that Bluetooth has limited bandwidth. If you use one Bluetooth channel to communicate between your DIY gadget and the Android device, the bandwidth will be shared between the CAN reader (that needs all the bandwidth it can get) and the GPS data (that needs roughly the same amount of bandwidth as one extra CAN PID). Although I don't know Bluetooth well enough to confidently say that by using an external GPS you actually get any "extra" bandwidth...

I don't own a GPS-capable board / component I could connect to my build, nor do I have time to work on this anytime soon. At this point I'd rather spend time generalizing the code to make it easier to support other car models. Or making a custom PCB with a smaller footprint.

Having said that, if you (or someone else) can take the code from aollin's project and re-organize it in a way that "plugs in" to my existing code with as little changes to the readability of the CAN/Bluetooth code as possible, and guard that with #ifdef's so that one can still build the project without GPS, I'll be happy to review and merge such a pull request.

Sorry for a long answer, and hopefully it was useful!