## Firmware 0.5.0 Release is out on the Build IDE for Core/Photon/P1/Electron - and the Particle CLI has been updated from 1.11.0 to 1.12.0
Note: This is a Release and may be used for production. Any known issues are minor and mostly likely slated for 0.6.x release (check Github issues). It is available by default for all devices. To use, select the 0.5.0 version dropdown from the devices drawer.
Note: Some users previously had last used 0.5.0-rc.1 on various platforms. Since 0.5.0-rc.1 is no longer available, please reflash your devices with 0.5.0. This is technically the same as 0.5.0-rc.2. As usual, you will have to locally upgrade the Electron system firmware to 0.5.0 first. If you had 0.5.0-rc.1 on your Electron, it may show up as 0.4.8 in the IDE until you upgrade to 0.5.0.
v0.5.0 Changelog
FEATURES
- Added SYSTEM_FLAG_WIFITEST_OVER_SERIAL1 which is disabled by default. Tinker enables this by default so that the Wi-Fi Tester is available during manufacturing. Also ensures TX/RX pins are not used for Serial1 by default, in case you want to use these as GPIO. 945
- [Electron] Multi-threading SYSTEM_THREAD() is supported (in Beta) #884
- [Electron] Cellular Data Usage API #866
- [Electron] Configurable Particle.keepAlive() ping #913
- [Electron] Cellular Band Select API #891
- [Electron] Cellular Local IP API #850
- [Photon/Electron] Stack overflow detection with SOS code 13-blinks
- [Photon/Electron] SPI Slave support #882
- Atomic writes in EEPROM emulation #871
- Application Watchdog #860
- Serial.availableForWrite() and Serial.blockOnOverrun() #798
- [Photon] SoftAP HTTP server can serve application pages. #906
ENHANCEMENTS
- Timer::isActive() function added #950
- mbedtls headers are private to the communications module now, so user applications can include their own version of mbedtls
- Compiler error with variable/function names that are too long. #883
- [Electron] NO_ACK flag on
Particle.publish()
disables acknoweldgements reducing data use #862 - [Electron] Allow session to resume when IP changes. #848
- [Electron] Ensure published events are received by the cloud before sleeping. #909
- [Electron] SLEEP_NETWORK_STANDBY on System.sleep() #845
- Serial baudrate to select ymodem mode includes listening mode #912
- Wi-Fi connection process forced to timeout after 60 seconds if unsuccessful #898
- Added write-verify-retry-fail logic to DFU writes #870
- Support for USART (Serial1/2/4/5) data bits, parity and stop bits #757
BUGFIXES
- Soft AP Claim code fix #956
- Variable template fix #952
- TCPClient on Electron not receiving all of the data for small files #896
- targets
program-cloud
,program-dfu
can be used without requiringall
and will built the firmware correctly. #899 - [Electron] Free socket when the socket is closed remotely #885
- Extended CAN filters #857
- I2C does not ensure a stop condition completes correctly in endTransmission #856
- DAC1/2 possible problem with
digitalWrite()
afteranalogWrite()
#855 - Servo HAL: Do not disable timer if some of its channels are still in use #839
- USB driver fixes and Serial.available() not returning values greater than 1 #812 #669 #846 #923
- SOS During
WiFi.scan()
#651
System Binaries (all devices) & Device Updater (Photon & Electron)
Updating System Firmware (and optionally adding Tinker)
Build IDE (OTA)
To update your Core, Photon, or P1 over the air, compile and flash your application in the Build IDE, selecting version 0.5.0 in the devices drawer. Electron system firmware must be updated locally (see below) to minimize data usage, after which user applications can be flashed OTA from the Build IDE.
Particle CLI (easy method)
The easiest way to upgrade to 0.5.0 system firmware, is to use the CLI and run these commands. First upgrade the System firmware, then optionally put Tinker on the device. This requires CLI version 1.12.0 or newer. You can check with particle --version
.
If you have the Particle CLI installed already, you can update it with the following command. Make sure the device is in DFU mode (flashing yellow LED) and run:
sudo npm update -g particle-cli
// Note: you can try without sudo first if you wish
- Make sure the device is in DFU mode and run:
particle update
- Optionally add Tinker as the user firmware instead of an app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
Particle CLI (OTA with individual binaries)
For devices already online and connected to the cloud, the system firmware can be updated OTA using the following commands.
Note: Binaries are attached to the bottom of this release.
Core:
particle flash YOUR_DEVICE_NAME tinker-0.5.0-core.bin
Photon:
particle flash YOUR_DEVICE_NAME system-part1-0.5.0-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)
P1:
particle flash YOUR_DEVICE_NAME system-part1-0.5.0-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)
Electron:
particle flash YOUR_DEVICE_NAME system-part1-0.5.0-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)
Particle CLI (locally over USB with individual binaries)
Note: Binaries are attached to the bottom of this release.
Core:
particle flash --usb tinker-0.5.0-core.bin
Photon:
particle flash --usb system-part1-0.5.0-photon.bin
particle flash --usb system-part2-0.5.0-photon.bin
particle flash --usb tinker (optional)
P1:
particle flash --usb system-part1-0.5.0-p1.bin
particle flash --usb system-part2-0.5.0-p1.bin
particle flash --usb tinker (optional)
Electron:
particle flash --usb system-part1-0.5.0-electron.bin
particle flash --usb system-part2-0.5.0-electron.bin
particle flash --usb tinker (optional)
DFU-UTIL (locally over USB with individual binaries)
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 binaries attached to the bottom of this release, and run these commands:
Core:
dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.0-core.bin
Photon:
dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.0-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.0-photon.bin
P1:
dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.0-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.0-p1.bin
Electron:
dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.0-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.0-electron.bin
Debugging for Electron
Instructions on using the Tinker USB Debugging app are here
This is useful for simply capturing the Electron's connection process.
Instructions on using the Electron Troubleshooting app are here
This is useful for interacting with the Electron's connection process.