The ongoing VO2 Max saga

Testing the first version

I constructed the VO2 max device when I first heard about it on Instructables it was great fun to make and I was really impressed with the quality of design and construction. (I ordered the case parts from an online 3D printing service)

All the bits

The resulting unit is really professional and fun to use.

The finished device


I played with the code and made a few tweaks to the software, then saw there were some improvements and modifications that Ulli Rissel had worked on and incorporated those first incorporating a barometer (BMP180) then adding in a CO2 sensor (SCD30)
Since the device relies on calculating gas volume changes it seemed to make sense to include these sensors.

I played with the project occasionally although frequently getting distracted by other projects (like my GPS telemetry tracker).
After being contacted by Nik Hawks aka "Gristle King" who was also making his own version and improvements to the design (link: GristleKing) this spurned me on to play with the device a bit more again.
The problem with the CO2 sensor modification was that the chosen sensor only supported levels up to 4% and there were no ways to adjust or increase this. Since expired air is already at that level and will go above during exercise this seemed to make the CO2 modification pretty pointless.
I hunted around at the various sensors available and experimented with a few but couldn't find a good quality, but reasonably priced unit. I experimented with some eCO2 sensors -  these "approximate" CO2 levels from the readings of other gases in the air but turned out to be of no use whatsoever for trying to measure breath, similarly a Sensirion SCD40 whilst measuring CO2 didn't respond quickly enough to be any use - clearly designed for monitoring room background levels.


Testing multiple CO2 and eCO2 sensors

The STC31 looked promising, but I couldn't find a UK/EU supplier of board and purchasing one from the US would result in tax and duties on top of a ~£100 price for a sensor - to play with - that might not work...
I'd also been toying with the idea of making my own boards for another project so this seemed like an ideal opportunity to try to make a sensor board myself for just the cost of the parts (and obviously many hours of my spare time 😄)

After designing a board using the STC31 and SHT31 chips, I sent off for some boards (JLCPCB).... then immediately spotted a dumb "bug" in my design, unfortunately hardware bugs aren't quite as easy as my more familiar software bugs to fix, so I improved and ordered a new set of boards. (you need to order a minimum 5 boards). 

The 'debugged' new board

A few weeks later (I used economy shipping to keep a sane budget) the bad boards arrived, followed a few days later by the good ones. So exciting!!! Also ordered the handful of components I'd need, albeit quite hard to talk myself into ordering a £40 chip that's just 3x3mm! The next project I needed to complete was to build my own surface mount heatplate machine to make the board. Much amusement from the family as I explained the project that was sprawling across the kitchen was just the project that would help me build the board for a different project.

Practicing with the DIY hotplate

At the same time I've been having huge fun designing and building components with my new 3D printer to use for various pieces. At the moment I'm still on version 1.1 of my hotplate using scavenged parts (e.g. an old PC power supply), version 2 will be a neat rebuild using small components into a compact printed case.

Printing parts for the hotplate mount

After building the hotplate and practising my skills on a few practice boards I was ready to make my little sensor board with my rather expensive chip. It looked beautiful, it has my name on the back of the board! 😁

Assembled, heated and cooled - it I tested the connections with a multimeter and the seemed ok, so it was time to link it to a development board to see what it looked like...
AND IT WORKED!!!! OMG SO EXCITING. I may have whooped. Breathing on it showed the humidity and CO2 values increasing nicely. 

Also this board uses the same chips as the Sparkfun module so the same driver software can be used.

Testing the board
Ready to install
Fitted sensor onto tube

I stripped down my device and replaced the CO2 sensor (again) I think I need to redesign the top tube to incorporate a slot to allow the sensor to be directly in the airflow rather than the previous SCD "top box" design that seemed to want/need a pocket of air around it to work.
At the same time I spent some time getting to understand the rho ratio calculations for the gas volume equations, since the CO2 sensor monitored the air humidity and temperature directly it seemed a shame to have maths that just took "assumed" values of 35℃ and 95% humidity for breath. 

After understanding and working out how to change them to use the sensor values, I also decided it would make sense to upgrade the front barometer from a BMP180 (which only measures pressure and temperature) to a BME280 which also captures humidity.

New Barometer board

A few "sofa" based test runs and the values are all looking good, apart from the expired humidity being a bit low when the sensor is above the tube compared to when I was breathing on it directly, hopefully a design tweak to move it into the airflow will resolve that, also a mesh/gap at the front to allow air onto the front barometer would help. Next I need to get a session on the turbo to see what the actual exercise values look like now,

Link to updated code: https://github.com/ihewitt/VO2max (will update with the components and details for the CO2 board)

Just need to revisit a few other shelved projects now, I have my redesigned GPS tracker to build but that's going to need the improved heatplate finishing (and a lot more practice) first since it uses a monster 90+ pin BGA surface mount chip

New GPS board

Also to revisit the infrared skin blood monitor device I made some headway on before, since it was using off the shelf modules and really would have benefited from a custom board instead.
Just need to find time, thankfully I'm not running much at the moment so have a bit more time to play!😁

Popular posts from this blog

seven month update

Tracking running Part #2

back from the brink