When it is necessary to update a Bristlemouth development module in-system, the specific workflow and expectations will depend on the versions being updated from and updated to.

If you have direct USB access to a Bristlemouth module, we suggest you follow this guide to update the module directly (not over the Bristlemouth network): 1: Update Bristlemouth Modules.

Details on how to perform a firmware update over a Bristlemouth network are described here: Updates over Bristlemouth. We’ll show some specific examples of this workflow below, but it’s best to follow the linked guide exactly for the most detailed and up-to-date instructions.

Overview

Guidance & Reminders

  1. This guide is intended for ‘bootstrapping’ updates across incompatible versions of Bristlemouth. If you are updating within compatible minor versions of the protocol, you can follow the normal procedures described elsewhere.
  2. Use a known stable application. Instead of deploying your custom version 0.11 app, try deploying the version 0.11 Hello World app first.
  3. When issuing commands, always double check that you’re sending them to the correct serial connection, and the correct Bristlemouth Node ID.
  4. Use a serial terminal program you’re comfortable with (we like CoolTerm a lot!), and capture all the serial console output in case you need help troubleshooting later.
  5. Remember to use the .elf.dfu.bin version of the app - not the .elf.unified.bin version.
  6. If you’re bootstrapping from any version earlier than 0.11, remember to wait for Spotter’s 2 minute initialization to complete (after any power cycle or Spotter reset) before issuing the update command.
  7. Always test the application(s) you’re updating to on a bench-top setup before deploying to inaccessible modules. If you don’t have an extra Dev Kit or Spotter to test with, reach out on the Bristlemouth community forum. Someone will happily test it out for you on their setup.
  8. Update using a direct connection to your Dev Kit or Mote if you can. It’s much faster and simpler.
  9. Remember to start with the furthest downstream module, and only move to the next module upstream when that is complete.
  10. If anything seems off, don’t hesitate to reach out for help in the Bristlemouth community forum. This is not as fast and simple as it eventually will be. The bootstrapping process can be cumbersome, but if you carefully follow it step-by-step it will be safe and reliable.

General Process

The general process for bootstrapping a system is as follows:

  1. Start with all systems elements on the old compatible versions of all apps. For example, Dev Kit and Spotter Bridge on 0.4.0 and Spotter main on 2.9.0.
  2. Update the furthest downstream module using the Bristlemouth protocol.