Skip to content

v0.3.3 Firmware Release for Duo

Latest
Compare
Choose a tag to compare
@XuGuohui XuGuohui released this 06 Nov 02:46

This release hopefully is the LAST release for backward compatible with 0.3.2 or below!

Since the firmware for the Duo will be merged to the upstream branch, i.e. Particle develop branch, and some of the features will be deprecated, such as local OTA over TCP/IP, Arduino uploading and WICED application uploading, etc (Check PR: particle-iot#1505). Anyway, the Duo firmware which version is above 0.3.3 will mostly functions as a Particle Photon, except that the Duo implements the BLE functionality and BLE setup.

This release is exactly based on the release v0.7.0-rc.7 of upstream.

This version can NOT be downgraded to v0.2.4 or below! Otherwise, the new bootloader will be destroyed by old system firmware.

By upgrading the system firmware from v0.3.1 (or below) to v0.3.2 (or above), the bootloader will be upgraded automatically. And please note that if you downgrade the system firmware to v0.3.1 or below, updating DCT(i.e. the du-util command with-a 1 option) via DFU mode will result failure, since the bootloader updated by system firmware v0.3.2 or above depends on DCT related functions those are implemented in system firmware v0.3.2 or above only.

If you have updated your Duo to this version, you MUST NOT downgrade the system firmware version. Otherwise, the bootloader will be destroyed! Unless you have a RBLink to fix the bootloader yourself.

! ! ! Important note : the DCT framework has been changed since v0.3.0. See the new DCT framework. Since the new bootloader exceeds the 16K space, we extend the bootloader space to 32K. This pushes the DCT to a higher sectors and the EEPROM emulator is moved to external serial flash. By updating this system firmware, the bootloader will be automatically updated to the latest.

The only thing you should pay attention to is that the DCT start address has been changed from 0x08004000 to 0x08008000. See the new memory map. So the information in the old DCT1 (from 0x08004000 to 0x08008000) will be erased after updating the bootloader by updating the system firmware to v0.3.0 or above. In this case, if you're lucky that the old DCT2 (which has been the new DCT1) is in use before updating the system firmware, then everything in the DCT is kept. But if the old DCT1 is in use, then the device private key and cloud public key and WiFi credentials, as well other non-volatile data in the old DCT1 will be erased. Thus, you have to:

  1. Update the entire DCT using the fac-dct-r1.bin, which includes the cloud public key.
    dfu-util -d 2b04:d058 -a 0 -s 0x8008000 -D fac-dct-r1.bin
  2. After you updating the entire DCT, the device private key will generated automatically. You have to provision the Duo to the cloud
  3. Re-configure the WiFi credentials.

Or if you have the backup device private key:

  1. Upload the cloud public key independently:
    dfu-util -d 2b04:d058 -a 1 -s 2082 -D server_public_key.der
  2. Upload your device private key:
    dfu-util -d 2b04:d058 -a 1 -s 34 -D device_private_key.der.
  3. Re-configure WiFi credentials.

If you don't want to provision your Duo again, you'd better dump the the device private key before updating the system firmware, or please follow the provisioning guide to provision your Duo. More instructions to update the DCT using dfu-util, please refer to the Firmware Deployment Guide.

Updating System Firmware

The local DFU-UTIL method

  • Put your device in DFU mode (flashing yellow LED)
  • open a terminal window, change to the directory where you downloaded the files below, and run these commands:

dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.3.3.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000 -D duo-system-part2-v0.3.3.bin

BUGFIXES

  • Fixes the issue that ble.sendNotify doesn't work
  • Fixes the issue that when fetches the firmware version in the Listening mode it returns an incorrect version string

Any other awesome features, enhancements and bug fixes, please refer to the change-log of upstream