0.7.0-rc.1 Prerelease (Core/Photon/P1/Electron)
Pre-releaseFirmware 0.7.0-rc.1 Pre-release is out on the Web IDE for Core/Photon/P1/Electron
released on production servers June 29th, 2017
π Please read all notes in the Notes Festival π below
Note: There are 2 known issues with 0.7.0-rc.1 where when using
SYSTEM_THREAD(ENABLE)
that are already fixed and will be released in 0.7.0-rc.2. See details here to see if it will affect you.
Note: This is a pre-release and is not intended for production yet. We've tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it's available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.
Note: You must update your Electron to v0.5.3 first before attempting to use OTA or YModem transfer to update to >= v0.6.0. If you use DFU over USB, you can update to >= v0.6.0 directly, but make sure you have installed >= v1.21.0 of the CLI first.
Note about Downgrading [Photon/P1] OTA or YModem transfer: First downgrade system-part2 back to 0.6.2. Any attempts to write to the DCT while the device is in DFU mode will fail now. At this point, attempting to downgrade system-part1 will fail silently, since the new bootloader (v100) cannot access DCT and read module update info, thus, in order to downgrade from 0.7.0-rc.1 to 0.6.2, photon/p1 firmware modules should be flashed in the following order with 0.6.2 system binaries: system-part2 -> bootloader (v11) -> system-part1.
Note about Downgrading [Electron] OTA or YModem transfer: Downgrade in normal order with 0.6.2 system binaries: system-part3 -> system-part2 -> system-part1 -> bootloader (v0.6.2).
βοΈ 0.6.2 bootloader binaries have been added to this release below (on github) for convenience.
βοΈ You can only flash the bootloader OTA or YModem over USB. DFU mode over USB will fail because it uses the bootloader itself for that mode of operation.
YModem e.g.particle flash --serial bootloader-0.6.2-photon.bin
0.7.0-rc.1 Changelog
FEATURES
[PR #1245]
Particle.publish()
now able to use Future API[PR #1289]
[Implements #914]
[Photon/P1]
WPA/WPA2 Enterprise support added (PEAP/MSCHAPv2 and EAP-TLS)! [Photon/P1] Automatic cipher/security detection when configuring WiFi settings over Serial.
ENHANCEMENTS
[PR #1242]
[Photon/P1/Electron]
DFU transfer speeds increased! v100 bootloader is now 41% faster than v7 and 60% faster than the latest v11.[PR #1236]
[Fixes #1201]
[Fixes #1194]
Added type-safe wrapper for enum-based flags forParticle.publish()
which enables logical OR'ed flag combinationsPRIVATE | WITH_ACK
[PR #1247]
Adds error checking toWiFi.setCredentials()
, will returntrue
if credentials has been stored successfully, orfalse
otherwise.[PR #1248]
Added an overload tomap()
function that takesdouble
arguments.[PR #1296]
[Photon/P1]
Added support for setting a custom DNS hostname, default is device ID.[PR #1260]
[Implements #1067]
Adds ability to interrupt the blinking cyan cloud connection with the SETUP/MODE button.[PR #1271]
[Implements #1180]
[Photon/P1]
ConstrainsWiFi.RSSI()
to -1dBm max.[PR #1270]
Removesspark/device/ota_result
event and instead sends OTA'd module info as a payload in UpdateDone message, or as an ACK to UpdateDone.[PR #1300]
Restores public server key and server address if missing[PR #1325]
Use backup registers instead of DCT to store system flags to avoid chance of a DCT corruption.[PR #1306]
Bootloader module dependency and integrity checks have been added to system-part2. If they fail, the device is forced into safe mode and a new bootloader will be OTA transferred to the device.[PR #1329]
Adds a verification and retry scheme to the bootloader flashing routine.[PR #1330]
[Electron]
Added CRC checking to the Electron DCD implementation so that write errors are detected. Added a critical section around flash operations and around DCD operations to make them thread safe.[PR #1307]
[Photon/P1]
New version of WICED adds CRC checking to the DCT implementation so that write errors are detected. Added a critical section around flash operations and around DCT operations to make them thread safe.[PR #1269]
[Closes #1165]
Cloud connection can be closed gracefully allowing confirmable messages to reach the cloud before the connection is terminated
BUGFIX
[PR #1246]
Fixes possible corruption of event data in multi-threaded firmware[PR #1234]
[Fixes #1139]
[Electron]
spark/hardware/max_binary
event was sent in error, adding 69 more bytes of data to handshake (full or session resume). Also fixes other preprocessor errors.[PR #1236]
[Fixes #1201]
[Fixes #1194]
SanitizedParticle.publish()
overloads.[PR #1237]
Fixes potential memory leak and race condition issues inRGB.onChange()
function.[PR #1247]
Previously no null pointer checks on password argument ofWiFi.setCredentials()
.[PR #1248]
[Fixes #1193]
Fixes divide by zero on incorrect parameters ofmap()
function.[PR #1254]
[Fixes #1241]
WiFi.connecting()
was returningfalse
while DHCP is resolving, will now remaintrue
.[PR #1296]
[Fixes #1251]
[Photon/P1]
Default Wi-Fi DNS hostname changed to device ID, to avoid spaces in name which may cause issues.[PR #1255]
[Fixes #1136]
[Core]
Interrupts were disabled by default.[PR #1259]
[Fixes #1176]
MakesSystem.sleep(mode, seconds)
a synchronous operation in multithreaded firmware. This ensures the device is in a well-defined state before entering sleep mode.[PR #1315]
Fixes Particle Publish flag implicit conversion issue. e.g.Particle.publish("event", "data", NO_ACK);
was previously changing event's TTL instead disabling acknowledgement of the event)[PR #1316]
Fixes LED indication when network credentials are cleared by holding the SETUP button for >10 seconds.[PR #1270]
[Fixes #1240]
TCP Firmware will not ACK every chunk in Fast OTA mode now.[PR #1302]
[Fixes #1282]
[Electron]
Wire1
was not working correctly.[PR #1326]
Renamedsystem_error
enum tosystem_error_t
to avoid conflicts withstd::system_error
class.[PR #1286]
Improves stability of TCP server implementation: 1) Update server's list of clients on a client destruction (thanks @tlangmo!), 2) TCPClient now closes underlying socket on destruction.[PR #1327]
[Fixes #1098]
[Photon/P1] Previously, when entering Sleep-stop mode:System.sleep(D1, RISING, 60);
while in the process of making a Wi-Fi connection resulted in some parts of the radio still being initialized, consuming about 10-15mA more than normal.[PR #1336]
Fixes an issue with Serial when receiving consecutive multiple 64-byte transmissions from Host[PR #1337]
Fixed system attempting to enter listening mode every 1ms when the SETUP button is pressed.[PR #1289]
Fixes a stack overlap with system-part2 static RAM on Photon/P1[PR #1289]
Fixes a memory leak when Thread is terminated[PR #1289]
Fixes a deadlock in SoftAP, when connection is terminated prematurely[PR #1340]
[Electron]
Fixes the monolithic build
INTERNAL
[PR #1313]
Compilation fixes for GCC platform[PR #1323]
USB vendor requests should be executed on system thread instead of being processed in ISR.[PR #1338]
Do not read or write feature flags from an ISR
System Binaries (all devices) & Device Upgrader (Photon & Electron)
located below
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.