0.4.3 release for Photon/P1
Updating System Firmware
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 update these system parts as well with the particle-cli:
photon:
particle flash YOUR_DEVICE_NAME system-part1-0.4.3-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.4.3-photon.bin
P1:
photon:
particle flash YOUR_DEVICE_NAME system-part1-0.4.3-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.4.3-p1.bin
The updates can also be applied to offline devices 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.3-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.4.3-photon.bin
P1:
dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.4.3-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.4.3-p1.bin
Changes
FEATURES
- Half-duplex mode on Serial1 via
Serial1.halfdupliex()
. Thanks to @prices. WiFi.connect(WIFI_CONNECT_SKIP_LISTEN)
allows application firmware to skip listen mode when there is no credentials.- System events
ENHANCEMENTS
- I2C methods now use
micros()
for timeouts rather thanmillis()
, so I2C functions can be used in an interrupt handler. #460 WiFi.listen(false)
to programmatically exit WiFi listening mode.- make is verbose by default. To silence, add
-s
to the command line. WiFi.connect(WIFI_CONNECT_SKIP_LISTEN)
starts connection but does not enter listening mode if no credentials are found.- Setup/Mode button now starts listening mode when WiFi is off.
WiFi.listen(false)
can be used to exit listening mode (from an interrupt.)- LED flashes high-speed green when requesting an IP address via DHCP.
BUGFIXES
- [Photon/TCPServer] -
TCPClient.connected()
was not returningfalse
when the socket was asynchronously disconnected. - Fix time being reset on wakeup. (removed WICED RTC init code that resets to default preset time in platform_mcu_powersave_init() within photon-wiced repo.) #440
TCPClient.connected()
was not returningfalse
when the socket was disconnected from the other end.strdup()
was returning garbage #457attachInterrupt()
should work on all interrupt pins now except D0 & A5. Please note there are shared lines as per the following issue comment : #443- I2C bus lockup when no slave devices are present by issuing a STOP condition after sLave send address fails.
spark/
events not propagated to application handlers. #481sprintf
calls not linking correctly. #471- Photon/P1 sometimes did not start without hitting reset after a cold boot.
- Disable LTO compile for user firmware since it causes linking problems (see
sprintf
above.)
Unlocker (P1)
- unlocker-p1.bin - For the P1 PLATFORM ONLY! (For photon, see the 0.4.1 release.) This is used to remove write protect bits on flash pages so devices can be returned to factory condition and updated using JTAG. This is not necessary when using DFU to update system firmware. To apply, download the file then run
dfu-util -d 2b04:d008 -a 0 -s 0x8020000:leave -D unlocker-p1.bin
. The unlocking happens automatically - the LED will be yellow during unlocking, then green when unlocking is complete.