July 10th, 2017 - Updated hardware client libraries


We just pushed an update to all the hardware client libraries to expose a new reset method which can be used to reset the Helium Atom.

Resetting the Atom is required to allow it to apply any pending firmware updates. You can check whether the Atom needs a reset by calling the needs_reset method on the Helium instance.

If you have a loop where the code, for example, waits for a while, then performs a measurement to send up to a Channel you can add the following fragment (on Arduino and mbed):

if (helium.needs_reset()) {

Note that you will need to call connect and channel create commands again to connect back up to the channel you were using.

Get your fresh libraries and documentation at https://www.helium.com/dev/hardware-libraries/overview.


How long does it take to do a reset?

Does the reset() call block?

What indicates the reset is completed?

Is there a way to test reset processing? What happens if reset() is called when not needed?


Hey Rud,

A reset should take around 45 seconds.

The reset() call is not blocking.

If you are polling for reset, it should only invoke if needs_reset() returns true and in the polling sequence you should include reconnecting to your channel as explained above. For the purposes of development currently, you don’t need to be concerned with any firmware updates. However, if completeness is your goal, feel free to include a reset poll for peace of mind. Can’t hurt anything.

You should not invoke reset if needs_reset() does not return true as it is really just a forced reconnection like the one performed at startup.