Firmware Release 0.4.7
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
- Software Timers
- pulseIn(pin, value) now available for all devices.
- WiFi.dnsServerIP() and WiFi.dhcpServerIP()
- serialEvent()
- GCC virtual device
- System.version() to retrieve the version of system firmware #688
- Firmware control of OTA updates can happen #375
ENHANCEMENTS
- [multithreading] Application thread continues to run in listening mode
- [multithreading]
Particle.process()
called from the application thread pumps application messages #659 Particle.variable()
supportsString
s #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