• @Graham_Jones My sensor only begins to work at LedCurrent : 7 , I used your app and have to swipe down until its 7, else I get readings of 0. Strange you don't have that? unless its lighting related? Even 7 is sometimes too high, requirement seems to vary.

    Also your app, I can't see a graph, its empty below it.

    It seems that the photodiode reading increases the closer to 0 I go with LED current.
    LedCurrent: 0 , Average: 5800
    LedCurrent: 1 , Average: 5000
    LedCurrent: 2, Average: 3200
    LedCurrent: 3, Average: 1600
    LedCurrent: 4, Average: 800

    Some kind of effect like that. Its interesting that, I didn't notice this before, thanks to your app :)

    I think the real max value is 8190, despite it being stored in a 16 bit short?
    Probably why auto adjust ON is the best. Hopefully its keeping it within good bounds? Like sometimes my ledCurrent: 0 creates too high values ,so it only reads 8190 cos of some clamp somewhere.

    Based on this idea, perhaps the target photodiode value should be half way between 0 and 8190 , 8190/2 == 4095

    I will try in different lighting condition. Even in dark room, the conditions are same for me. The 0x80 last bit of the LedCurrent value is a PpgGain btw, so at values between 129->136, I get some numbers , but it seems gain is bad because the swings are higher so you need to adjust led more often.

    Would be nice to see if @user140377 has anything similar to this ( the low LED current requirement ), we could compare to figure if any of our bangles are different/defective.

    What I like others to test:

    To be clear:

    if my LEDcurrent(reg 0x17) are above some very low number, eg. 5,
    The signal of the photodiode drops to 0.
    And there is an inverse scaling, the closer LEDcurrent is to 0, the Higher the photodiode values

    Also, confirm your output of : Bangle.hrmRd(0) is 33 , confirming you have the vc31B device and not the vc31.

    @Graham_Jones There are hrm->csv recorder apps already on the app store (namely the "recorder" app by gordon (seems beats only), or "HRM Accelerometer event recorder" by halemmerich, your app store is a bit out of date. Just in case you did not know.

    https://github.com/espruino/BangleApps/tree/master/apps/hrmaccevents

    https://github.com/gfwilliams/EspruinoHRMTestHarness

  • @d3nd3-o0 - thanks for this detail - I will go through it and reply properly, but it might be tomorrow evening or the one after. A couple of quick thoughts:

    I will check the ID from the sensor - I was starting to wonder if maybe I have a different sensor (I only purchased the Bangle2 recently)

    For me, a LED current value of 15 seemed about right - the automatic adjuster varied it from about 13 to 22, so our watches do seem to be behaving differently if you had to use a much lower current (unless our skin colours are very different maybe - that might have an effect, so could be another reason for needing automatic current control for different users.).

    My copy of the app store is very minimalist on purpose - I am thinking of pointing users of my seizure detector app to it if I can get the heart rate measurement working reliably, and I only want them to install apps that I now will not interfere with the seizure detector (some users like to fiddle.....).

    Alas, I had to disable the graph drawing part of my little HRM test app because drawing to the screen seemed to take such a long time (over 1 second), and it blocked the HRM measurement while it was happening - it seems that the HRM measurements are not interrupt driven so if I want to achieve 40ms sample period I have to be very careful about not doing too much.... My little app is based on one of the others in the app store - I modified it to try to make it easier to try out different settings (and the idea was to have a graph at the same time to see the effect in real time). I don't get on very well with javascript so had a bit of a sense-of-humour failure at it and de-scoped my intentions for the test app!

    Regards

    Graham.

About