Avatar for Gordon


Member since Sep 2013 • Last active May 2022

Most recent activity

  • in Bangle.js
    Avatar for Gordon

    @johan_m_o did you choose the 'Pair' option when connecting, or was it not paired. I've seen when you pair sometimes the OS does seem to hang onto the bluetooth connection, especially if you enabled HID.

    Sometimes I have trouble when connecting to the app store.

    What happens if you go to the 'my apps' tab and refresh?

    The bitmap rendering of unknown characters and emojis is not working at all for me.

    That's odd - I think what's happening is some of those are getting converted to stuff like :heart: but it's trying to convert the whole word into a bitmap, which is why it's very long.

    There's currently an issue where some characters in the bitmap get converted to UTF8 by Gadgetbridge, and it all gets garbled. I think that's what you're seeing here - it still works most of the time. I plan to try and get it fixed soon but I thought I'd attempt to just get something out.

    is the bitmap rendering supposed to take care of words containing special characters as well?

    Yes. Right now anything that's not char code 0...255 is converted (assuming that the fonts support ISO8859-1 correctly). å is char code 229 though. It seems to be in the 12x20 and 6x8 fonts, but maybe not in the 6x15 one? What size to you think the font was that's not getting rendered right? It could be a Bangle.js issue.

    there was a small toast informing me that the Gadgetbridge app isn't installed on my Bangle.js.

    I really need debug info from Gadgetbridge for that, but the Gadgetbridge app isn't installed on my Bangle.js error occurs when the Bangle throws an error in response to Gadgetbridge sending a message - so that's a bug in the Bangle.js app (do you have the default Android app or did you also install Gadgetbridge Music)? I imagine you'd see exactly that error with the normal Gadgetbridge too.

    @rullen there is an option in Gadgetbridge settings to enable auto-reconnect. Is that on? I think the default is for it to be off?

    This version of Gadgetbridge, apart from a few additions like the app manager, font conversion and internet access, is pretty much identical to the normal Gadgetbridge that everyone's been using for the past year or so. The Bluetooth connection handling is identical, so if you had issues with the original Gadgetbridge, this one will be no different.

    Honestly I'm just stretched too thin trying to support everyone on every different platform with random watch configurations at the moment. I'll try and sort out the UTF-8 issue and get the word splitting better but really I need a bit of help on the Gadgetbridge side of things.

  • in The Place for Patreon Patrons
    Avatar for Gordon

    That looks really interesting... However do the BAT tokens have a value? Or I'd just use them to pay for Advertising for Espruino on other platforms?

    I think the problem for me is really just one of added complexity though. I'm juggling way too much stuff at the moment, and actually I need to be finding ways of reducing the amount of things I have to deal with, not adding more. Patreon is a great source of income, but it's also a big source of guilt because I really think I should be doing more for my supporters and I just don't have time.

    Right now outside of Patreon I get less than $20 a month average in donations. I imagine in all likelihood BAT might end up a similar amount, and it sounds ungrateful but if I just did some consultancy work instead of the time I'd need to set up, administer and do the tax accounting for BAT, I'd probably get more money and other people would still have theirs :)

  • in Bangle.js
    Avatar for Gordon

    Ok, thanks! So with the app up to date that's looking a lot more reasonable, and it seems when confidence=100% the heart rate reading is matching the chest strap?

    The picture above was what I get after a minute of not moving my arm.

    And yes, movement will knock the HRM sensor off. There's a whole other thread on this which I think you'd probably have seen, but basically every watch sensor has this problem, and making it work better is a software issue.

    • On modern sensors they look at the data from the accelerometer as well as HRM, and use this to try and discount false positives.
    • The heart rate algorithm provided by the manufacturer for this sensor (which can use the accelerometer) is in a binary blob, with no source. Some people have been very against using this, so right now we have an open algorithm I came up with, but it doesn't use the accelerometer.

    The code itself is at https://github.com/espruino/Espruino/blo­b/master/libs/misc/hrm_vc31.c (for the low lever sensor) and https://github.com/espruino/Espruino/blo­b/master/libs/misc/heartrate.c for the algorithm, so any improvements would be great.

    BUT: We've been through this with the step counting. If someone makes changes that they believe improve things for them, it usually breaks things for other people. What we need is a more scientific approach - there's a thread here (sorry - don't have time to find it right now) where there's a discussion on this. Basically there's an app where you can download the raw HRM and accelerometer data and info from a bluetooth heart rate monitor - then we can get a bunch of data and everyone can test the algorithm offline and come up with improvements that work for everyone

  • in Bangle.js
    Avatar for Gordon

    Ok, thanks - If you can't see DfuTarg when in bootloader mode in NRF Connect I guess it's likely broken hardware. I'll ask Christine to see about getting a replacement out to you.

  • in Bangle.js
    Avatar for Gordon

    Great, thanks! Hopefully, it should be reasonably easy to see how it's done in the Messages app :)

  • in Bangle.js
    Avatar for Gordon

    Hi - is this with the 2v13 firmware, and all the apps are up to date? And the Bangle is seated nicely against your skin? I forget now but I think some of the KickStarter watches had a protective foil on the back, so worth checking for that.

    Maybe you could have a look at the HRM-raw values using the Web IDE. Run:

    var h;
    Bangle.on('HRM-raw', function(hrm) { h=hrm });

    I'd be really interested to see what kind of range the vcPPG values are in.

    This is the kind of thing I see on the one I have here - which is obviously a lot different, and you can see the values seem a lot more 'analog' out of it:

  • in Bangle.js
    Avatar for Gordon

    @rullen just a thought, but what if you remove your Bangle from Gadgetbridge and re-add it without pairing (click Don't Pair when prompted). Does that make the situation better?

    @Raik well I hope that soon I'll get it on the main Play store - I'm just fighting with Google's review process at the moment

  • in Puck.js, Pixl.js and MDBT42
    Avatar for Gordon

    Not sure how to configure security in Espruino to make this happen and if I would receive an NRF.on('security' event - that was the hope

    I'm not sure either to be honest, and I don't think you'd get a security event for that. I'd imagine that probably once the device had been authorized that would be it though - otherwise writes to secure endpoints would end up running significantly slower than to insecure ones.

  • in Pico / Wifi / Original Espruino
    Avatar for Gordon

    Thanks - yes, I noticed @mmix2009 had already tweaked that ;) I've just changed it, and added my updated I2C comms code