Managing Firmware

You can update the firmware in your devices in real time or based on devices’ life-cycles, on the scale of a whole device fleet or on a device-by-device basis. Whether you are updating an entire class of devices right now or tinkering with a single device in testing, the dashboard offers tools to help.

Updating Firmware in Devices’ Life-Cycle

Using this method will allow you to assign firmware updates to a single device or a fleet to be undertaken in those devices’ natural life-cycle. Whether it is each hour, day, or week, devices can all be configured to reach out to the server for updates, and it is with this functionality that you can leave an update waiting for your devices when they next check for one.

Under the “Software Management” tab in your device’s dashboard page, click the “Manage Firmwares” button, that looks like this:

../_images/ManageFirmwares.png

The following page shows a list of active firmwares, with the “Devices Installed” column showing how many (and which) devices are operating with a certain firmware.

../_images/FirmwareView.png

Clicking on this button will give a pop-up list of the devices using this firmware version. Confirm with this button that the device you want to update is on the firmware version you think it is. To update the firmware, simply drag the firmware version you want to update to over the “Next Version When Update” column of your device’s row. The bar looks like this:

../_images/FirmwareUpdateDragAndDrop.png

Once you have dragged the desired firmware version into this box, the firmware will be queued for update. IP-connected devices reach out to the server for updates each day (sometimes more, depending on the device), and will download the newly-assigned firmware at its next update check-in.

Instantaneous Firmware Rollout

While it is useful in some cases to leave firmware updates for your devices to get at their next check-in, you may not want to wait for devices to check in to update their firmware. Instantaneous rollout allows you to override your devices’ life-cycles and send firmware updates in real time.

To designate a group of devices for update, they must all share a tag. You can create a tag on the page of any of your devices with the “Create New Tag” button:

../_images/CreateNewTag.png

Name your tag and click submit to save. At this point, it will show up on the page under “Available tags,” and you can drag and drop it into the “Assigned tags” box for any individual device. If you want to update firmware across a wide range of devices and want to avoid assigning tags one-by-one, you can also assign tags to entire device classes. From your project’s homepage, the “Manage Device Classes” button (below) will bring you to a drop-down list of your device classes.

../_images/ManageDeviceClasses.png

Pick the device class you want, and on the next page, you will find a “Create New Tag” button under the “Class Tags” tab. Create your tag and each device of that class will immediately update to have it.

When you have tagged all the devices you want updated with a common tag, navigate through any device’s page to the “Software Management” tab and click the “Manage Rollout” button.

On the next page, click the “Create New Group” button, name your group, and then submit. Your group should appear in the list like this:

../_images/DeviceGroup.png

Use the “Assign Tag” button to select tags for this group, which will fill the group with all devices who have the tags you select. You can navigate back to the “Rollout Management” page through any device’s page, and see a list of your device groups in rows like this one:

../_images/FirmwareListView.png

Click the “Create Rollout” button to view a pop-up for rollout options. You can name your rollout, select your group and firmware version to be downloaded. Then, under “Group by,” you can specify the number of devices you want updated at a time.

“Stop ratio” represents the maximum percentage of download failures acceptable before the rollout stops and reports failure.

“Next group trigger ratio” is a percentage success rate that will trigger the next round of the rollout, allowing you to predetermine a minimum success rate to trigger the next round of downloads.