(Update: I added a second screen shot and data about current consumption that I forgot in the first version. It was quite late yesterday...)
Since this design challenge is now nearly finished, its about time to show what came out of all my work. There will be a second entry today outlining what can (and needs) to be improved further on - but this has a little bit more time since the next skiing season is still some months away. And its quite good to get some rest now, the last weeks were quite busy (not only with this project).
My goal for this challenge was to develop a device that allows me to whether a skiing accident of my son (he started last season with downhill skiing) is dangerous or not. So it needs to be small enough to be mounted on a helmet, since its uncomfortably for him to wear it anywhere else. For notification it needs to transfer the logged data to my phone. Runtime needs to be at about 6 hours - thats a typical skiing day for us.given the size it cannot use batteries that need to be exchanged, so it must be rechargeable. Since its used outdoors, wireless charging is preferred. Also, the user interface elements need to be water-proof.
So, how much of these goal did I achieve?
Well, I would give it a 70% rating or thereabout.
Here is what it looks like:
The device on top is the skiing monitor, the one on the bottom is the charging base station. The SkiMon is 50x40x25mm. This quite OK since its still a prototype. A final version can be much smaller, but more to that in the next post.
The SkiMon can be mounted on a helmet, but its not exactly unobtrusive. As can be seen its charged via wireless power transfer, so there is no charging port needed. For my prototype I used a normal push button for interaction, but this can be replaced by a CapSense button so the whole SkiMon can be encapsulated in resin if needed (though it should be clear one).
The battery runtime is more than a day, and the logging time depends on the software (right now I can see the last hour of data). I figure since any larger accident should be noticed directly afterwards this should be OK.
The device pairs with my Android phone (and should work with all BLE capable phones with at least Android 4.4) and transfers the logged data continuously when paired.
Whats not implemented is storing of an alert log that shows the really bad recent impacts - the App only shows a data graph. So there is also no notification to the phone about that. On the other hand it not only shows the impact force, but also calculates the so-called "Head injury criterion" which is used to determine that real effect any impact on the head has (and takes into account the acceleration and its duration). This allows easy assessment how severe an accident had been.
A demonstration and some results
I shot a short video showing me demonstrating SkiMon:
SkiMon is in hibernate mode initially, so I wake it up with the button. Afterwards it waits for a connection (for up to 60 seconds) which gets initiated by the phone App. As long as SkiMon is not in hibernation it collects data.
After connecting to the phone I shake SkiMon to generate some acceleration data. On the first page the current status of the device can be seen, including the average and max acceleration during the last second. Swiping to the next page there is an overview of all the logged data: the calculated HIC, maximum and average acceleration. The red curves are for the last minute and the blue curves underneath are for the last hour (each data point here gets aggregated from the last minute of data). Swiping further shows larger and more detailed graphs of the same data.
When SkiMon is not in use it can be put to hibernate with a one-second button press (not shown).
I also did not demonstrate the 'nullify' function. Since the normal acceleration is 1g in downwards direction all other accelerations that are measured are skewed by that. So the App can initiate a 'nullify' process that corrects further measurements by the currrent position of SkiMon. For that a data sample of about 2 seconds is taken which reflects the current position of the device (especially which axis is pointing downwards). The average values of that is stored and subtracted from all further measurements, so it acts as an offset. This also corrects the normal offset that the ADXL375 exposes (which can be up to 2g in each direction).
To show a more severe impact I mounted SkiMon on my bike helmet and did a drop test:
Then I let it drop from about 1m heigth (with the back of the helmet, where the device is mounted, downwards). The resulting impact looks like this in the App:
The maximum acceleration during impact was about 86g, which explains the high HIC value of nearly 1500. (A HIC of 1000 is indicating severe head trauma).
What also can be seen here is the effect of the offset: the average curve is near to 1g right at the start, but the offset correction lowers this to about 0.4g. Also the free fall can be seen here, since the acceleration is near zero then.
In a totally unscientific comparison I also measured what happens when the SkiMon device is dropped on its own:
Surprisingly the acceleration forces are much smaller - most probably because the mass of the device is so much smaller than that of the helmet. For a better evaluation I would need to strap it on e.g. a melon, both with and without the helmet and compare these situations.
Last but not least I measured the current consumption. I did this before finally connecting the main board to the battery, and measured power consumption when being powered by my bench power supply. During BLE advertising and normal operation, SkiMon uses about 8 to 9 mA. When connected to the phone, this rises to about 12 to 13 mA because there is regular data transmission. In hibernate mode the current drops to 0.5 mA. The battery I ordered was advertised as 280mAh, even though its label says 380 mAh. Going with the lower number means I should get about 35 h battery life from it which is plenty enough. Even with continuous connection to the phone it should run for more than 20 hours. And in hibernate mode the battery last for more than 20 days.
So SkiMon is ready to be tested further. Its not perfect, but actually better than I thought in the middle of the project. The next post will show where I could make improvements, and I will probably also write a "lessons learned", maybe this helps future challenge competitors.