Core blimey! (aka Tracking running #3)

For a while I've wanted to add live heart rate reporting to my DIY GPS tracker but never really had the time (or motivation), however, getting a new toy had given me some impetus to try again, also Christmas time meant plenty of time to play and tinker... oh and I'd put my back out somehow so needed a diversion!

After looking into them a while ago, I'd picked up a CoreTemp body temperature sensor since I've had issues with my body temperature in some events in the past I thought this would be interesting to be able to track and monitor...

but as a bonus *what if* it was possible for my crew to be able to monitor and track this remotely to be able to pick up on any issues before they become too serious to be able to handle?

So it's time to figure out how to enhance the homebrew tracker with sensor support. I went back to the "version 5" model with its slightly roomier case (also the v6, or was it v7? had been really temperamental) the main board in these - the A9G - doesn't provide any Bluetooth or ANT connectivity so I picked up a **tiny** nRF52 processor to deal with this.
I hadn't appreciated just how tiny this module would be - so the first challenge was working out how to interface to it. I'd bought it a while ago to get HR data, but just couldn't be bothered given how tiny it was (did I mention it was tiny?).


But now I'd got a reason to try, so time for the magnifying glass, double reading glasses and needle tip soldering iron.

I spent some time familiarising myself with the CoreTemp device by adding support for it onto an ancient Garmin (Epix) I had lying around, but then also adding a new app for the Bangle watch. The Bangle is an open source watch but also just happens to be based on the same processor as my Bluetooth module the nRF52. (app up on the Bangle app store)

Garmin Epix
Bangle data
another 'Bangle', made prettier.

Next time to prototype with the miniature radio board.... (oh and a big shout out to Chris at Core who was fantastic sending over loads of details and documentation)

and great success. 

Laptop getting sensor feed.

Time for a diversion - but it's just insane how powerful these bits of technology are. This is a chip about the size of the portcullis on a 1pence piece with a 32bit ARM processor, 256Mb of storage *and* a built in wireless/bluetooth/ANT radio. Just nuts.

Anyway... it's a straightforward process to write a small program that runs on this chip that just listens for any ANT+ heart rate and temperature sensors gets the values and then "prints them out" to one of its connectors. Once this was polished, robust and working it needed hooking up into the old tracker:

Addition on top right.

Output from the new bluetooth module connected to an input on A9G. So now we have a tiny pocket GPS rocking three processors, one (RDA8955) running the tracker, one (GK9501) talking to the GPS and now the new nRF52 running the wireless! Still hard to comprehend for someone who started out with 6502 micro in the 80's.

Next job enhancing the tracker software running in the device to store this feed and add it into the uploaded mobile data, with a bonus displaying it to check it works:


and the final piece in the jigsaw... enhancing the tracking website to show this logged data:


Voila! mobile website with live heart-rate, altitude and core body temperature. Looking forward to putting this through its paces over a long event to see what it shows.

But also, now wondering whether it's time to rework the tracker for the next build.... it's possible to get a single board with an nRF52 linked to a GPS and GSM module, e.g. the RAK5010 unfortunately their API/SDK/software isn't that open or accessible - so that might be a bit too much trouble to bother doing.  Having a smaller single board would make the whole setup a lot more compact though so perhaps I'll have a play sometime.


Popular posts from this blog

seven month update

Tracking running Part #2

back from the brink