Thanks Tim. It’s true the Android BLE libraries are pain. So much so that there are popular libraries that market themselves entirely on working around Android bugs. For example, SweetBlue. I actually tried out sweetblue at one point, but it didn’t solve the particular issue I was running in to and would require some deep refactoring of the mooshimeter app, so I skipped it. I may reconsider soon (the beta app is heavily refactored and would be easier to integrate the external library in to).
Joe – Sorry about the update loop behavior. I’ve tracked down that issue – the problem is that after you finish the firmware update, the Mooshimeter disconnects from the Android phone and needs to reconnect. But the Android layer caches what services are available from the Mooshimeter and, upon reconnection, tells the app that the meter is still in Bootloader mode. Rebooting the Android phone after a firmware update usually solves this issue. On some phones a full reboot is not required, and it is sufficient to restart the bluetooth subsystem (by either toggling bluetooth or setting the phone to airplane mode and back).
Hope this helps, or at least sheds some light on the issue. Thanks!