Skip to content

Firmware Release 0.4.7

Compare
Choose a tag to compare
@m-mcgowan m-mcgowan released this 20 Oct 22:10
· 9518 commits to develop since this release

Updating System Firmware

To update the Core, compile and flash your application in the Web IDE, selecting version 0.4.7 in the devices drawer. Update instructions for Photon and P1 below.

The OTA method

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.

Photon:

particle flash YOUR_DEVICE_NAME  system-part1-0.4.7-photon.bin
particle flash YOUR_DEVICE_NAME  system-part2-0.4.7-photon.bin

P1:

particle flash YOUR_DEVICE_NAME  system-part1-0.4.7-p1.bin
particle flash YOUR_DEVICE_NAME  system-part2-0.4.7-p1.bin

The local EASY method using Particle CLI

This requires CLI version 1.8.12 or newer. You can check with particle --version.

If you have the Particle CLI installed already, you can update it and then update your device with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli && particle update (note: you can try without sudo first if you wish)

The local DFU-UTIL method

can be applied to offline devices locally over USB using dfu-util

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

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.4.7-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.4.7-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.4.7-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.4.7-p1.bin

What's changed in 0.4.7

FEATURES

ENHANCEMENTS

  • [multithreading] Application thread continues to run in listening mode
  • [multithreading] Particle.process() called from the application thread pumps application messages #659
  • Particle.variable() supports Strings #657
  • Simplified Particle.variable() API - variable type parameter is optional, and variables are passed by reference so &'s are not required.
  • I2C will generate STOP and SW Reset immediately if Slave Acknowledge failure is detected (must use pull-up resistors), instead of taking 100ms. commit

BUGFIXES

  • TCPClient unstable #672
  • Photon frequently SOS's immediately following cloud re-connect #663
  • String.toLower() has no affect on string. #665
  • SOS due to WICED socket handlers being called when socket is disposed. #663 #672
  • Application constructors executed after RTOS startup so that HAL_Delay_Milliseconds() can be called. This may mean that STARTUP() code executes just a little later than before, but
    can safely use all public APIs.
  • Ensure bootloader region is write protected.
  • White breathing LED on exiting listening mode. #682
  • WICED not resolving DNS names with 4 parts (it was trying to decode as an IP address.)
  • SoftAP via HTTP would fail on Safari due to request sent as multiple TCP packets. Fixed WICED HTTP server. #680
  • Retained variables are not persisting, even without reset or deep sleep. #661
  • Backup RAM enabled for monolithic builds #667
  • Pure virtual call on creation of low priority std::thread #652