Currently I don't see anyway to update the value of a characteristic without using NRF.updateServices which requires that the device is no longer connected to any host
This isn't the case - you can call this just fine when you're connected. It's what it is designed for.
What you're hitting is that you're calling 'setServices' to set up the services, but Espruino can't set them up while you're connected. Once the characteristics are set up though, updateServices will work fine
Also is there a maximum length for the value of a characteristic, in bytes.
It depends on the device, but on Bangle.js the MTU is 131 - I can't remember exactly but I think that means maybe 128 bytes?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
This isn't the case - you can call this just fine when you're connected. It's what it is designed for.
What you're hitting is that you're calling 'setServices' to set up the services, but Espruino can't set them up while you're connected. Once the characteristics are set up though, updateServices will work fine
It depends on the device, but on Bangle.js the MTU is 131 - I can't remember exactly but I think that means maybe 128 bytes?