Our most popular Notecard got an update. Learn more about the new Notecard Cellular.

Today is a big day at Blues, as we announce the official launch of our newest Notecard feature: Outboard Firmware Update, a new solution for over-the-air (OTA) host firmware updates.

Let’s dive right in and look at what the Notecard Outboard Firmware Update is, how it works, and how you can start performing OTA firmware updates today.

What is Notecard Outboard Firmware Update?

OTA firmware updates are table stakes in IoT, but until now implementing the updates was a complex and highly risky endeavor. The process required developers to write code, generally placed within the application itself, or within its RTOS, requiring a special ‘bootloader’ and firmware layout. This required a high degree of skill on the part of the developer, was susceptible to bad updates “bricking” or rendering devices non-functional, and often removed developer choice from the equation. 

Outboard Firmware Update is a Notecard feature that allows device builders to implement OTA firmware updates in their devices without writing any code. Additionally, developers have the freedom of choice, and may select from a large number of microcontrollers (MCUs), programming languages, and real-time operating systems (RTOS), and can even perform updates on ‘native’ applications with no code from Blues and no RTOS at all.  This capability from Blues continues to bring cellular cloud-connected products within reach of every developer, no matter their skill level. 

The Notecard’s Outboard Firmware Update capability stands apart from the competition because:  

  • A large number of MCUs are supported. 
  • It’s independent of RTOS and programming language, making it easy to develop and deploy a prototype, update it in the field, and even change RTOS after-the-fact. 
  • Non-functional (bricked) devices damaged by corrupted firmware, malware attack, or just an ‘infinite loop’ can be recovered. 
  • Partial app updates can be performed – such as the installation of a new machine learning model – saving on data usage costs for large updates. 

How It Works

An increasing number of MCUs are shipped with their primary bootloader “in ROM”, unmodifiable by any user operation. On these devices, when a RESET pin is asserted, the device enters this ROM bootloader which can load and execute code from a variety of sources. This ROM bootloader’s behavior is controlled by actively probing those I/O ports and by sampling the state of “strapping pins” or specially locked “boot option bytes” in Flash.

These manufacturer-provided ROM bootloaders present exciting new opportunities—specifically, they allow us to perform firmware updates in a manner that is far more flexible in terms of language and RTOS, and far less vulnerable to inadvertent programming bugs.

Beginning with firmware version 3.5.1, the Blues Wireless Notecard is now capable of utilizing these capabilities of modern MCUs, and performing firmware update “from the outside” and not involving the firmware running on the MCU whatsoever. The Notecard can update firmware regardless of RTOS or language, and can even be used to switch between them, even modifying Flash memory layout and partitioning any time after-the-fact, at the developer’s choice.

Hardware Setup

Taking advantage of the Notecard’s new capabilities requires you to lay out several connections between the Notecard’s AUX pins and the host MCU’s, RESET, BOOT, and UART pins.

Today this wiring is available out-of-the-box and supported in our Notecarrier-F when used with one of its tested Outboard Firmware Update MCUs. Over time, we intend to greatly expand our list of tested MCUs, and to publish hardware design guidelines to allow you to work with Outboard Firmware Update on other development boards.

Performing OTA Firmware Updates with Notecard’s Outboard Firmware Update

If you have a Notecarrier-F and one of its tested MCUs, you can use Outboard Firmware Update to perform over-the-air device firmware updates (DFU) today.

To start, first make sure your Notecard is running a firmware version that’s 3.5.1 or newer. (And if it’s not, see our guide on updating Notecard firmware).

From there, you need to enable Outboard Firmware Update using the new card.dfu request.

{"req":"card.dfu","name":"<esp32 or stm32>","on":true}

Next, in a Notehub project, navigate to the Firmware page, select the Host firmware tab, and then click Upload firmware.

Peforming OTA firmware updates with the Notecard Outboard Firmware Update feature.

On the next page upload a .bin file of the new firmware you want to place on your host. (See our documentation for more information on how to prepare your firmware image for Outboard Firmware Update.)

With the new firmware uploaded to Notehub, you next need to tell Notehub to send that firmware to your devices.

To do that, go to your Notehub project’s Devices page, go to the Host Firmware tab, select all devices you’d like to update host firmware on, and then click the Update button.

After you select the new version you’d like, you’ll see your new firmware appear in the Requested Version column.

The next time your Notecard performs a sync, it’ll detect a new host binary is available and will begin downloading it (without interfering with its normal operations). You can view the progress of the download in Notehub.

After the download completes, the Notecard will reprogram the various areas in Flash as directed by instructions within the firmware image file, verifies them via MD5 hashes, and restarts the MCU.

In Notehub you’ll see the DFU Status update to Completed and your DFU Version update to your new binary.

And, that’s it! With those few steps you have the power to perform complete over-the-air firmware updates 🎉

For technical support, make sure to check out our Notecard Outboard Firmware Update documentation, and then reach out in our forum if you have any feedback or questions. 

And if you want to stay informed on the latest and greatest IoT Developer news, make sure to sign up for our newsletter for monthly updates. 

What’s next?

Anyone building cloud-connected devices needs to plan for how they’ll maintain and update their solutions as they scale from one to potentially hundreds of thousands of devices. This challenge only multiplies for cellular-based solutions, which is why the Notecard and Notehub were designed to remove the cost and complexity from IoT development, and to enable secure and economical operations at scale.  

Outboard Firmware Update is is yet another commercial-grade capability that Blues is now providing, and it’s available to all customers today!

Share on: