0.4.6 Firmware Release for Core, Photon and P1
Updating System Firmware
To update the core, please compile and flash your application in the Web IDE, selecting version 0.4.6 in the devices drawer. Update instructions for Photon and P1 below.
For devices already online and connected to the cloud, the system firmware can be updated OTA using these commands:
The OTA method
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.6-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.4.6-photon.bin
P1:
particle flash YOUR_DEVICE_NAME system-part1-0.4.6-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.4.6-p1.bin
The local EASY method using Particle CLI
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.6-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.4.6-photon.bin
P1:
dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.4.6-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.4.6-p1.bin
Changes since 0.4.5
FEATURES
- [photon] separate System Thread
- [core] Hooks to support FreeRTOS (optional library)
- Variables stored in Backup RAM
- printf/printlnf on
Print
classes -Serial
,Serial1
,TCP
,UDP
String.format
forprintf
-style formatting to aString
.- Wire.end() to release the I2C pins. #597
- Wire.reset() to reset the I2C bus. Thanks @pomplesiegel #598
- System.ticks() to retrieve the current MCU cycle counter for precise timing.
- System.enterSafeMode() to restart the device in safe mode.
ENHANCEMENTS
- [photon]
WiFi.selectAntenna()
setting is persistent, so the last selected antenna is used when the
device is in safe mode. [#618] - Detect when the cloud hasn't been serviced for 15s and disconnect, so device LED state accurately
reflects the connection state when the application loop has stalled. #626 - Compile-time checks for
Particle.variable()
#619 - [photon] Increased retry count when connecting to WiFi. #620
- Setup button events #611
BUGFIXES
UDP.receivePacket()
would fail ifUDP.setBuffer()
hadn't been called first. Thanks @r2jitu.- [photon] Default SS pin for SPI1 now set to D5. #623
- [photon] Long delay entering listening mode. #566
- [photon] Solid green LED when WiFi network cannot be connected to due to invalid key. (The LED now blinks.)
- [photon] Storing more than 2 Wi-Fi credentials would sometimes give unpredictable results.
- [photon] TX/RX pins did not work after entering listening mode. #632
- [photon] Improvements to I2C for MCP23017 / Adafruit RGBLCDShield. #626
- [photon] Incorrect wakeup time set for sleep. #653