Well, my RSL10-SENSE-DB-GEVK kit still hasn't arrived but (even after the completion date has been extended) there are only two weeks left to finish the project so I thought I'd better try and make some progress. In this blog, I investigate the different ways of getting data out of the RSL10-SENSE-DB-GEVK and into the cloud while on the move.
Which development environment?
The obvious development environment to use is the On Semiconductor Eclipse-based IDE with the CMSIS software development kit, but having discovered that the Atmosphere IoT cloud platform now supports the RSL10-SENSE-DB-GEVK kit, I was keen to explore that too.
On Semiconductor "Sense and Control" app
I have two mobile devices that I could use with this app - a Moto G5 phone (Android) and an iPad Pro (9.7" display). To use Bluetooth to relay the sensor data from the RSL10-SENSE-DB-GEVK means that whatever device I use, I have to carry it with me. Of the two devices, I'd rather carry a phone than an iPad. I don't normally carry anything when I go running but I can see why a phone might be useful. Unfortunately, when I RoadTested the RSL10-SENSE-DB-GEVK, I discovered that the Sense and Control app doesn't work properly on my phone. I also tried the app on my son's Android phone and that was no better. In summary, on the rare occasion that I could get it to connect, it disconnected after a few minutes. I had more luck with the iOS version of the app, but even that stopped streaming data to the cloud when the iPad's screensaver kicked in. In case you are wondering, the RoadTest RSL10-SENSE-DB-GEVK has been put to another use (as was always the plan), and isn't available for me to use in this project.
Atmosphere IoT app
There is an easy-to-follow tutorial for the RSL10-SENSE-DB-GEVK on the Atmosphere IoT website (“Getting Started with RSL10-SENSE-GEVK”). That shows you how to get data from (most of) the onboard sensors, configure a mobile app to display the data in real time and also send the data to the Atmosphere IoT cloud (which then makes it available to be viewed from any Internet-enabled device). To view the cloud data remotely (e.g. on your PC), you can create a “Dashboard” to display your data on a browser.
I did find a few bugs in the Atmosphere IoT app software when it comes to configuring the Dashboard. Overall, the iOS app works well (as long as the device is charging). Like the Sense and Control app, I couldn't get this app to work reliably with my Android phone. On either version of the app, it is better to configure the web dashboard on your PC (or Mac) because the various menus and options don’t render properly on all mobile screens and I found I got stuck on a screen that I couldn’t get out of a few times.
The screenshot below shows how the app screen is configured in the Atmosphere IoT IDE. This is what you get if you just follow the tutorial, but it wouldn't be hard to make it look prettier.
The next screenshot (taken from the tutorial) is of a dashboard, showing how the data would look in the Atmosphere cloud.
In summary, I am pretty sure that I could get the RSL10-SENSE-DB-GEV to stream data via my iPad to the cloud as long as I plugged a small USB powerbank into the iPad to stop the lockscreen from kicking in. This is always assuming that the iPad has a 4G signal wherever I am running (living in a big city more or less guarantees that). I prefer the Atmosphere IoT IDE as there is very little to install (just the Segger J-Link software and a little "helper" app to link the Atmosphere cloud compiler to the Segger software that flashes the code).
Importing data to Golden Cheetah
I could see two ways of getting the RSL10 data out of the cloud and into Golden Cheetah. One would be direct integration with the cloud data and the other would be to download the cloud data into Excel, manipulate it and then import it into Golden Cheetah. I haven't really looked at directly integrating Golden Cheetah with Atmosphere IoT yet but I know that Golden Cheetah has a cloud services API and can pull in data from Strava - a popular cloud-based training log software aimed at runners and cyclists. I know that you can integrate the Sense and Control app with your own choice of cloud services provider, so that would probably swing the decision in favour of Sense and Control if I decide to go the cloud integration route (the preferred option).
The second way (download then import) would be relatively easy, but time-consuming. There's an option in the Atmosphere IoT platform to do just that.
Then, in Golden Cheetah you would import the data from the *.csv file. I think that would swing the decision in favour of Atmosphere, rather than Sense and Control if I can't get the cloud integration to work.
Is there another way?
I had always planned on using the BLE features of the RSL10-SENSE-DB-GEVK kit to get the data out and onto my PC. Then I remembered reading in the data sheet that the RSL10 SIP has "384 kB of Flash Memory, 76 kB of Program Memory and 88 kB of Data Memory". Maybe it would be better simply to store the sensor data on the device and download it to my PC later - rather than having to rely on BLE and 4G signals and flaky phone apps? After all, that's how the Garmin works - it stores data while you exercise and then use BLE or USB afterwards to transfer the data to your PC. I went back to the CMSIS software development kit and had a look for examples of how you could do that (or at least the BLE part of it as there is no USB/serial interface on the RSL10-SENSE-DB-GEVK kit). I couldn't see any examples for how to do this. I am sure that it must be possible, but without a better idea of how the flash memory is structured, it would be beyond my capabilities.
The next steps
Hopefully my RSL10-SENSE-DB-GEVK kit will arrive soon (although I said that in Blog #2 several weeks ago!). Since it doesn't appear to have even been despatched yet and there are only two weeks of this contest left to run, I might end up in the somewhat awkward position of not having received the equipment before the competition ends!
In the meantime, I have sourced a neat IP65 container with wrist strap for the RSL10-SENSE unit and I'm hoping it will arrive this week.
List of blog posts