Skip to content

Releases: redbear/firmware

v0.3.3 Firmware Release for Duo

06 Nov 02:46
Compare
Choose a tag to compare

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

v0.3.2 Firmware Release for Duo

02 Apr 03:24
Compare
Choose a tag to compare

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 to v0.3.2, 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 depends on DCT related functions those are implemented in system firmware v0.3.2 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.2.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000 -D duo-system-part2-v0.3.2.bin
dfu-util -d 2b04:d058 -a 2 -s 0x180000:leave -D duo-wifi-r2.bin

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

v0.3.1 Firmware Release for Duo

25 Feb 09:49
Compare
Choose a tag to compare

This release is exactly based on the release v0.6.1-rc.2 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.

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.1.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.3.1.bin

FEATURES

  • Arduino API compatible

BUGFIXES

  • It won't apply the new updated application, neither via Arduino IDE nor Particle cloud!

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

v0.3.0 Firmware Release for Duo

21 Feb 02:57
Compare
Choose a tag to compare

This release is exactly based on the release v0.6.1-rc.2 of upstream.

This version is NOT downgradable !

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 : This release has changed the DCT framework. 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. And the following data will be destroyed:

  • The device private key
  • The Particle server public key
  • The WiFi credentials
  • Other non-volatile data in the DCT

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.0.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.3.0.bin

FEATURES

  • Optionally enable BLE functionality for setup when the Duo is in the Listening mode
  • Optionally enable filtering duplicate BLE scanned device
  • More BLE APIs exported
  • Formal local TCP/IP OTA

ENHANCEMENT

  • Extends the bootloader to 32KB.

BUGFIXES

  • Fixes the BLE address type issue, which result failure when compiling the SimpleBLECentral example.
  • BLE API typos
  • Particle building issue: 3b0f463

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

v0.2.4 Firmware Release for Duo

24 Oct 10:32
Compare
Choose a tag to compare

Updating System Firmware

The OTA method (supported since v0.2.0 )

For devices already online and connected to the cloud, the system firmware can be updated OTA using these commands:

If your device is online, you can attempt to OTA (Over The Air) update these system parts as well with the particle-cli:

Note: You must download system binaries to a local directory on your machine for this to work.

particle flash YOUR_DEVICE_NAME duo-system-part1-v0.2.4.bin
particle flash YOUR_DEVICE_NAME duo-system-part2-v0.2.4.bin

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 2 -s 0x140000 -D duo-fac-web-server-v0.2.4.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.2.4.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.2.4.bin

FEATURES

  • BLE central now supports connecting 8 peripherals simultaneously
  • Add BLE API for setting scan respond data
  • Add BLE API for fetching MAC address
  • Add wiring APIs for using external serial flash

ENHANCEMENTS

  • Update BTStack library
  • Add lots of BLE related macro definitions
  • Update bootloader

BUGFIXES

  • SoftAP http web page didn't work in listening mode
  • Duo performs soft reset upon connected to AP if WiFi.off() is invoked before

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

v0.2.3 Firmware Release for Duo

11 Mar 06:35
Compare
Choose a tag to compare

2nd mass production firmware since 2016/04/20

Updating System Firmware

The OTA method (supported since v0.2.0 )

For devices already online and connected to the cloud, the system firmware can be updated OTA using these commands:

If your device is online, you can attempt to OTA (Over The Air) update these system parts as well with the particle-cli:

Note: You must download system binaries to a local directory on your machine for this to work.

particle flash YOUR_DEVICE_NAME duo-system-part1-v0.2.3.bin
particle flash YOUR_DEVICE_NAME duo-system-part2-v0.2.3.bin

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 2 -s 0x140000 -D duo-fac-tinker-v0.2.3.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.2.3.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.2.3.bin

FEATURES

  • Support updating system-part1, system-part2 and factory reset firmware via local TCP/IP during the same connection
  • Add JSON command to invalid user part
  • BLE central can now connect to peripherals and perform read, write and receive notification

ENHANCEMENTS

  • Remove the crc32 calculation function when uploading sketch via avrdude, since the crc32 is appended to the compiled binary on the Arduino IDE side
  • Add a ring buffer for staging the data to be notified to GATT client
  • Add a thread to dealing with BLE events, instead of by invoking ble.loop() in the sketch
  • Update BTStack library

BUGFIXES

  • BLE RSSI display incorrectly
  • If change the password for a stored WiFi credential using BLE provision, it makes no effect

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

v0.2.3-rc.2 Firmware Release for Duo

04 Mar 08:58
Compare
Choose a tag to compare
Pre-release

Updating System Firmware

The OTA method (supported since v0.2.0 )

For devices already online and connected to the cloud, the system firmware can be updated OTA using these commands:

If your device is online, you can attempt to OTA (Over The Air) update these system parts as well with the particle-cli:

Note: You must download system binaries to a local directory on your machine for this to work.

particle flash YOUR_DEVICE_NAME duo-system-part1-v0.2.3-rc.2.bin
particle flash YOUR_DEVICE_NAME duo-system-part2-v0.2.3-rc.2.bin

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 2 -s 0x140000 -D duo-fac-tinker-v0.2.3-rc.2.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.2.3-rc.2.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.2.3-rc.2.bin

v0.2.2 Firmware Release for Duo

30 Jan 16:19
Compare
Choose a tag to compare

Updating System Firmware

The OTA method (supported since v0.2.0 )

For devices already online and connected to the cloud, the system firmware can be updated OTA using these commands:

If your device is online, you can attempt to OTA (Over The Air) update these system parts as well with the particle-cli:

Note: You must download system binaries to a local directory on your machine for this to work.

particle flash YOUR_DEVICE_NAME duo-system-part1-v0.2.2.bin
particle flash YOUR_DEVICE_NAME duo-system-part2-v0.2.2.bin

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 2 -s 0x140000 -D duo-fac-tinker-v0.2.2.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.2.2.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.2.2.bin

FEATURES

  • Add APIs for fetching device name, i.e. "Duo-xxxx"
  • Instantiate Serial2 in wiring functions, thus user can use it directly in sketch
  • Add JSON command to leave listening mode
  • Add JSON command to check if device has stored credentials
  • Integrate BTStack BLE library into system firmware, instead of WICED BTE library
  • Exports some BLE APIs for user part usage

ENHANCEMENTS

  • Notify central device if BLE Provisioning failed.
  • Give different responds to the TCP client during OTA uploading firmware
  • JSON command "version" fetches the real module versions
  • update BLE Provisioning protocol to support setting hidden SSID and full key length

BUGFIXES

  • SPI1 isn't instantiated by SPIClass because of the including header file order
  • Tone on pin A4 and A5 failed

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

v0.2.1 Firmware Release for Duo

16 Jan 15:10
Compare
Choose a tag to compare

1st mass production firmware since 2016/01/27

Updating System Firmware

The OTA method (supported since v0.2.0 )

For devices already online and connected to the cloud, the system firmware can be updated OTA using these commands:

If your device is online, you can attempt to OTA (Over The Air) update these system parts as well with the particle-cli:

Note: You must download system binaries to a local directory on your machine for this to work.

particle flash YOUR_DEVICE_NAME duo-system-part1-v0.2.1.bin
particle flash YOUR_DEVICE_NAME duo-system-part2-v0.2.1.bin

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 2 -s 0x140000 -D duo-fac-tinker-v0.2.1.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.2.1.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.2.1.bin

FEATURES

  • Updating firmware via local TCP/IP
  • Supports IPv6 protocol

ENHANCEMENTS

  • Implements Servo functionality on more pins
  • Implements Tone functionality on more pins
  • Add Local Name attribute in BLE advertising packet

BUGFIXES

  • Arduino uploading stocks on verify stage
  • Arduino uploading fails on some PCs
  • When jumping from DFU bootloader to system part 2, it generates a fake Arduino uploading request
  • Duo performs reset before Arduino uploading completed since the Flash Update Timeout isn't cleared on every packet transfered
  • When more than one Duo are advertising, LightBlue App can not distinguish from each other

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

v0.2.0 Firmware Release for Duo

28 Dec 04:15
Compare
Choose a tag to compare

2nd PP firmware since 2016/01/06

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 2 -s 0x140000 -D duo-fac-tinker-v0.2.0.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v0.2.0.bin
dfu-util -d 2b04:d058 -a 0 -s 0x8040000:leave -D duo-system-part2-v0.2.0.bin

FEATURES

  • OTA updating system part firmware and bootloader using Particle cloud
  • HCI interface APIs to interact with bluetooth controller
  • Enable WiFi Tester

ENHANCEMENTS

  • Arduino uploading is more stable
  • MCU performs soft reset after WiFi credentials saved and listening mode exited
  • It is more sufficient to determine to run WICED application or Particle application