• Algorithm development in progress

    Ultimate Robotics06/18/2020 at 18:57 1 comment

    Algorithm development process has started :) Some part of the work is done, and we would like to share it (further progress is a bit delayed since we switched to other projects for now).

    On the firmware side, everything is relatively simple - you need to turn on red, then infrared LEDs, then turn off both, and measure signal levels in these states. The only complication is that there is a switching noise, so measurements have to be done with half-millisecond delay after the switch, when the signal has already stabilized. Processing of the measured signal is more complicated. First of all, signals have a large constant component: the variation associated with the pulse is only about 1% of the signal value, and the noise is quite significant relative to this variation - but not too high, so simple smoothing solves this problem well. Then on these signals you need to find the local minimum and maximum points, which sounds simple, but there is a catch: the signal as a whole often goes up and down due to a number of factors, and a simple minimum / maximum in the interval will not produce anything useful. But an adaptive algorithm can track the average value and speed of change in each point, and produce quite a stable output. That is shown on the video - small triangles mark the points that the algorithm has identified as local extremums.

    Then the real fun begins. This method allows to measure both absolute value and signal variation in each channel, so in theory the SpO2 level is easily obtained from the ratio of these values (it will need to be calibrated and all that, but still it should be simple). And this sounds really logical: the relative absorption in the red and infrared ranges changes with change in oxygen saturation, so the ratio of these values should clearly indicate it...

    Well, it really should. The problem is, it doesn’t :) We don’t really have an oxygen deprivation chamber for testing, so for now we simply are holding our breath for lowering SpO2 at some point - but the ratio behaves in a very strange way. In some cases it reacts perfectly. In some - it doesn’t react at all, or only a bit and in a wrong direction :) Moreover, this does not change from case to case, but depending on the conditions - in some conditions it works every time, in others it does not work every time, and for now it is completely unclear why.

    So, well, yes - work in progress

  • Oximeters baking

    Ultimate Robotics05/26/2020 at 17:24 0 comments

    The idea to make an oximeter came to us at the end of March. To be more precise, for a while we wanted a method for measuring pressure - and combination of data from ECG and PPG with a proper processing algorithm could do just that. At least that's what several papers claimed, and physics behind that claim looks solid - so we wanted to try it in practice. Also oximeters became a short supply during the pandemics, and that was another reason to make one.

    We started by developing a PCB design. After several weeks of work, we made two versions of the oximeter - for the finger and for the ear. With ear-based version there were obvious problems with the mount, so we decided to start with the finger version and move from there.

    We ordered components and PCB production, and in early May got everything we need. Usually we don't capture any of our work on assembly, but this time is a rare exception! So in the video you can see how our oximeters are baked!