Particle Device OS Updates Thread


#42

Firmware 0.6.1 release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers March 1, 2017

:warning: Please Note: The bootloader on Electron/Photon/P1 will update to v11 automatically with this update. Make sure your device is connected to a stable power source and do not remove power until after the device reboots and is running. It happens so quickly right after the device resets and boots that you won’t notice any special RGB LED signaling for this.

Note: This is a Release and may be used for production. Any known issues are likely slated for 0.7.0-rc.1 (check Github issues). It is available by default for all devices. To use, select the 0.6.1 version dropdown from the devices drawer.

Note: If you have previously last used one of the prerelease versions of 0.6.1 on a Core/Photon/P1 device, please re-flash it with 0.6.1. You must upgrade (locally preferred) the Electron system firmware to 0.6.1 first before you can OTA new user apps.

Note: You must update your Electron to (v0.5.3, v0.5.3-rc.2, or v0.5.3-rc.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.1 directly, but make sure you have installed v1.20.1 of the CLI first.

Note: As a Product in the Console, when flashing a >= 0.6.0 user app, Electrons can now Safe Mode Heal from < 0.5.3 to >= 0.6.0 firmware. This will consume about 500KB of data as it has to transfer two 0.5.3 system parts and three >= 0.6.0 system parts. Devices will not automatically update system firmware if not added as a Product in Console.

061

0.6.1 Changelog (same as v0.6.1-rc.2)

FEATURES

  • [PR #1190] [[Implements #1114]] (https://github.com/spark/firmware/issues/1114) [Docs] Added ability to mirror MODE/SETUP button to any GPIO, available from time of boot, active high or low.
  • [PR #1182] [Fixes #687] [Docs] Added WiFi.set|getListenTimeout() | Cellular.set|getListenTimeout() to override the automatic new Listening Mode timeout (Wi-Fi = no timeout by default, Cellular = 5 minute timeout by default).
  • [PR #1154] [Docs] Added low_battery system event, which is generated when low battery condition is detected. This is when the battery falls below the SoC threshold (default 10%, max settable 32%). The event can only be generated again if the system goes from a non-charging to charing state after the event is generated. The event doesn’t carry any data.
  • [PR #1144] [Docs] Added tracking of ACKs for published events (see WITH_ACK flag for Particle.publish())
  • [PR #1135] [Fixes #1116] [Fixes #965] [Docs] New Time API’s! Time.isValid() | Particle.syncTimePending() | Particle.syncTimeDone() | Particle.timeSyncedLast()
  • [PR #1127] [PR #1213] Added support for runtime logging configuration, which allows to enable logging on already running system via USB control requests. Disabled by default to save flash memory space. (note: this feature is not fully baked with tool support)
  • [PR #1120] [Implements #1059] [P1] [Docs] [Pinout] Added extra spare pin to P1 (P1S6) with GPIO and PWM support.
  • [PR #1204] [Implements #1113] [Docs] RGB LED pins can be mirrored to other PWM capable pins via RGB.mirrorTo(). Common Anode/Cathode LED and Bootloader compatible. See PR for usage.
  • [PR #1205] [Closes #569] [Closes #976] [Closes #1111] [Docs] By implementing a centralized LED service and theme “engine” for system LED signaling, giving users the ability to apply custom LED colors and patterns for system events.
  • [PR #1225] [Photon/P1/Electron] [Docs] Added support for custom LED colors in bootloader v11 (Safe Mode, DFU Mode, Firmware Reset).
  • [PR #1227] [Implements #961] [Electron] [Docs] Added new API for hostname IP address lookup IPAddress ip = Cellular.resolve(hostname)

ENHANCEMENTS

  • [PR #1191] Added more Arduino Library compatibility
  • [PR #1188] [Implements #1152] [Docs] Added SPI API’s: SPISettings | SPI.beginTransaction() | SPI.endTransaction()
  • [PR #1169] Updated system communication logging with new logging API
  • [PR #1160] [Electron] Modem USART paused via HW_FLOW_CONTROL (RTS) before going into sleep with SLEEP_NETWORK_STANDBY. Receives and buffers small messages while system sleeping.
  • [PR #1159] [Closes #1085] [Closes #1054] Added support for GCC 5.4.x
  • [PR #1151] [Closes #977] [Docs] Added System events for cloud/network connection state changes
  • [PR #1122] Attach to host even if Serial, USBSerial1 and Keyboard/Mouse are disabled, so that “Control Interface” that receives vendor requests is still accessible.
  • [PR #1097] [Implements #1032] When flashing (OTA/YModem) an invalid firmware binary (that the device ignores) it will post an event describing why the binary was not applied.
  • [PR #1203] [PR #1212] Automatic bootloader updates have returned to the Electron. v9 bootloader has been added to firmware release >=0.6.1-rc.1 for Photon/P1/Electron. After updating your system firmware, a new v9 bootloader will be applied to your device if required. v9 includes support for SETUP/MODE button and RGB LED mirroring at the bootloader level of operation. Also included are updates to USB DFU mode so that Windows users do not need to install separate drivers via Zadig. Bootloader GREEN and WHITE LED flashing speeds (Firmware Reset modes) are faster now as well (you won’t see these unless you have loaded user firmware to the Backup location). Note: this release 0.6.1 includes all of these changes as v11 which fixed some bugs in v9.
  • [PR #1125] Breaks on-going network connection when Sleep stop mode is called, thereby speeding up the time to entering sleep when using SYSTEM_THREAD(ENABLED).
  • [PR #1216] Improved Arduino Compatibility (now supported by default, added PARTICLE_NO_ARDUINO_COMPATIBILITY=y command line option for disabling)
  • [PR #1217] [Docs] Added Windows, Mac command, & Unix/Linux meta USB keyboard scancode definitions.
  • [PR #1224] Allow the compiler to garbage collect USBKeyboard and USBMouse implementations if they are not used in user code, saving flash space.
  • [PR #1225] [Photon/P1/Electron] Combined LEDStatus and LEDCustomStatus into a single class -> LEDStatus

BUG FIXES

  • [PR #1186] Fixed issue where USB Serial might deadlock when interrupts are disabled while using DEBUG_BUILD=y
  • [PR #1179] [Fixes #1178] [Fixes #1060] [Electron] Bootloader build was failing, fixed and added to CI.
  • [PR #1158] [Fixes #1133] [Electron] Before sleeping, now waits for server sent confirmable messages to be acknowledged, in addition to previous behavior of device generated confirmable messages being acknowledged. Reduces data usage.
  • [PR #1156] [Fixes #1155] System.sleep(30) wasn’t reapplying power to the network device after set time.
  • [PR #1147] [Electron] [Docs] Fixed approx. -0.1V offset on FuelGauge().getVCell() readings
  • [PR #1145] [Fixes #973] Particle.connect() now blocks loop() from running until Particle.connected() is true in single threaded SEMI_AUTOMATIC mode.
  • [PR #1140] [Fixes #1138] [Fixes #1104] [Electron] Fixed modem USART and buffer handling
  • [PR #1130] Particle.subscribe() used with same events but changing scope between PUBLIC and PRIVATE or vice versa would potentially result in non-registered subscriptions. This was also crashing the GCC virtual device with a segfault when subscription checksums were calculated.
  • [PR #1222] Fixed bug in String(const char* str, int len) constructor when the string is longer than the specified length.
  • [PR #1226] [Fixes #1181] [Photon/P1/Core] Process TCP DESCRIBE properly and return only one response, SYSTEM, APPLICATION, or COMBINED (ALL) describe message. Was sending separate SYSTEM and APPLICATION previously.

INTERNAL

  • [PR #1196] Re-enable GNU extensions for libc globally. Fixes build with ARM GCC 4.9.3 Q1.
  • [PR #1189] Typo caused a warning during compilation in wiring/no_fixture Cellular tests.
  • [PR #1184] [Electron] moved cellular HAL and its direct dependencies from module 2 to module 3 to free up space (this is system-part3 was reduced in size, while system-part1 was increased)
  • [PR #1167] [Fixes #1036] [GCC Virtual Device] workaround for 100% CPU usage problem.
  • [PR #1146] [Closes #1040] Added asserts for checking that network calls are run on system thread.
  • [PR #1134] [GCC Virtual Device] Error in socket_hal’s socket_receive() logic caused random cloud connection errors.

System Binaries (all devices) & Device Upgrader (Photon & Electron)


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Problem compiling RGBMATRIX lib on Desktop IDE
Particle Tools Changelog
Keepalives between sleep (stop mode) periods
#43

Hey gang!

Just a quick update that firmware repo branch latest has been deleted, and replaced by release/stable.

release/stable and master have been updated to point to release/v0.6.1

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Firmware Updates Thread


Update local build directory
#44

Firmware 0.6.2-rc.1 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers April 5, 2017

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.

062rc1

0.6.2-rc.1 Changelog

ENHANCEMENT / BUG FIX

:pencil: We have done extensive testing against all Particle Libraries currently published and if they were not compiling on 0.6.1, they are now compiling once again with 0.6.2-rc.1. Please give it a test and let us know if you find anything not working properly.


System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/spark/firmware/releases/tag/v0.6.2-rc.1


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


#45

Firmware 0.6.2-rc.2 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers April 27, 2017

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.

062rc2

0.6.2-rc.2 Changelog

FEATURES

  • [PR #1311] [Implements CH1537] [Electron] Added support for Twilio SIMs by default in system firmware.

BUG FIX

  • [PR #1310] Fixes a error when <algorithm> has already been included before the math.h header. Now we only include math.h when Arduino compatibility is requested. (math.h was not included in 0.6.0).

System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/spark/firmware/releases/tag/v0.6.2-rc.2


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


#46

Firmware 0.6.2 release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers May 3rd, 2017

Note: This is a Release and may be used for production. Any known issues are likely slated for 0.7.0-rc.1 (check Github issues). It is available by default for all devices. To use, select the 0.6.2 version dropdown from the devices drawer.

Note: If you have previously last used one of the prerelease versions of 0.6.2 on a Core/Photon/P1 device, please re-flash it with 0.6.2. You must upgrade (locally preferred) the Electron system firmware to 0.6.2 first before you can OTA new user apps.

Note: You must update your Electron to (v0.5.3, v0.5.3-rc.2, or v0.5.3-rc.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.2 directly, but make sure you have installed v1.22.0 of the CLI first.

Note: As a Product in the Console, when flashing a >= 0.6.0 user app, Electrons can now Safe Mode Heal from < 0.5.3 to >= 0.6.0 firmware. This will consume about 500KB of data as it has to transfer two 0.5.3 system parts and three >= 0.6.0 system parts. Devices will not automatically update system firmware if not added as a Product in Console.

062

0.6.2 Changelog

FEATURES

  • [PR #1311] [Implements CH1537] [Electron] Added support for Twilio SIMs by default in system firmware.

ENHANCEMENT / BUG FIX

BUG FIX

  • [PR #1310] Fixes a error when <algorithm> has already been included before the math.h header. Now we only include math.h when Arduino compatibility is requested. (math.h was not included in 0.6.0).

System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/spark/firmware/releases/tag/v0.6.2


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


#47

Firmware 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

:pencil: Please read all notes in the Notes Festival :tada: 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]: 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]: Downgrade in normal order with 0.6.2 system binaries: system-part3 -> system-part2 -> system-part1 -> bootloader (v11).

0.6.2 bootloaders have been added to this release below for convenience.

0.7.0-rc.1 Changelog

FEATURES

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 for Particle.publish() which enables logical OR’ed flag combinations PRIVATE | WITH_ACK
  • [PR #1247] Adds error checking to WiFi.setCredentials(), will return true if credentials has been stored successfully, or false otherwise.
  • [PR #1248] Added an overload to map() function that takes double arguments.
  • [PR #1296] [Photon/P1] [Docs] 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] Constrains WiFi.RSSI() to -1dBm max.
  • [PR #1270] Removes spark/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] Sanitized Particle.publish() overloads.
  • [PR #1237] Fixes potential memory leak and race condition issues in RGB.onChange() function.
  • [PR #1247] Previously no null pointer checks on password argument of WiFi.setCredentials().
  • [PR #1248] [Fixes #1193] Fixes divide by zero on incorrect parameters of map() function.
  • [PR #1254] [Fixes #1241] WiFi.connecting() was returning false while DHCP is resolving, will now remain true.
  • [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] Makes System.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] Renamed system_error enum to system_error_t to avoid conflicts with std::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)

https://github.com/spark/firmware/releases/tag/v0.7.0-rc.1


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
What is the Future API
Bug Bounty: Electron not booting after battery discharges completely
Electron Flashing Green - Will not connect until battery removed
#48

Firmware 0.7.0-rc.2 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers July 14th, 2017

:pencil: Please read all notes in the Notes Festival :tada: below

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: 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.2 to 0.6.2, photon/p1 firmware modules should be flashed in the following order with 0.6.2 system binaries: system-part2 -> bootloader (v0.6.2) -> system-part1.

Note about Downgrading [Electron] OTA: Downgrade in normal order with 0.6.2 system binaries: system-part3 -> system-part2 -> system-part1 -> bootloader (v11).

0.6.2 bootloaders have been added to this release below for convenience.

070rc2

0.7.0-rc.2 Changelog

ENHANCEMENTS

  • [PR #1357] Expands the device code from 4 digits to 6 digits for Photon/P1/Electron platforms

BUGFIX

  • [PR #1346] [Fixes #1344] [Photon/P1] When using SYSTEM_THREAD(ENABLED) the TCPServer and WPA Enterprise connections were broken.
  • [PR #1354] [Fixes #1062] A call to WiFi.scan() when Wi-Fi module is off or not ready was resulting in a hard fault.
  • [PR #1357] [Fixes #1348] SoftAP SSID was not respecting the string’s null terminator, 2 char SSID would appear as 4.
  • [PR #1355] When using WPA Enterprise access point and constantly reconnecting to it, heap was becoming fragmented which resulted in inability to connect to the access point anymore. Also reduced overall heap usage.

INTERNAL

  • [PR #1342] Removed the firmware-docs subtree from the firmware repo. Docs updates are made directly to docs repo again.
  • [PR #1352] Added test for RGB.onChange() handler leak
  • [PR #1358] Updates minimal ARM gcc version required to 5.3.1
  • [PR #1359] Fixes build with PLATFORM=gcc on OSX with clang’s gcc wrapper

System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/spark/firmware/releases/tag/v0.7.0-rc.2


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Cannot flash new code
Cannot flash new code
6 Digit Particle Photon WiFi Code (P1)
Particle Tools Changelog
Cannot flash new code
#49

Firmware 0.7.0-rc.3 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers August 15th, 2017

:pencil: Please read all notes in the Notes Festival :tada: below

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.3 to 0.6.2, photon/p1 firmware modules should be flashed in the following order with 0.6.2 system binaries: system-part2 -> bootloader (v0.6.2) -> 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 (v11).

:pencil2:0.6.2 bootloader binaries have been added to this release below (on github) convenience.

:pencil2: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.

070rc3

0.7.0-rc.3 Changelog

DEPRECATED API

[PR #1365] Beginning with 0.8.0 release, Particle.publish() and Particle.subscribe() methods will require event scope to be specified explicitly. Please update your apps now to include the event scope to avoid compilation errors in >=0.8.0.

BUGFIX

[PR #1362] [Fixes #1360] Fixed SoftAP HTTP usage hard faulting in 0.7.0-rc.1 and 0.7.0-rc.2


System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/spark/firmware/releases/tag/v0.7.0-rc.3


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Flash system FW from 0.7.0-rc.3 to 0.6.2 problem / Safemode
Particle Tools Changelog
[SoftAP] HTTP-based public-key command times out
Particle_using_deprecated_api
#50

##Firmware 0.5.4 release is out on the Web IDE for Core/Photon/P1/Electron
released on production servers September 28th, 2017

Note: This release is primarily for MFG. It is not necessary to upgrade to this version from 0.5.3 unless you would like the Firmware Reset feature, which is also available in >=0.6.0. Most devices are on >=0.6.2 with all platforms, so this is mostly a silent release. If you would like see the release, it is here: https://github.com/spark/firmware/releases/tag/v0.5.4


0.5.4 release vs 0.6.2
#51

Firmware 0.5.5 release is out on the Web IDE for Photon/P1/Electron. (None of the changes affect the Core.)

released on production servers November 7th, 2017

Note: This is a Release and may be used for production. It is available for all devices. To use, select the 0.5.5 version dropdown from the devices drawer.

ENHANCEMENTS

  • Downgrade bootloader when downgrading from 0.7.0 or newer. #1417

BUGFIXES


KRACK Patch ETA
Particle Tools Changelog
#52

Firmware 0.6.3 release is out on the Web IDE for Photon/P1/Electron. (None of the changes affect the Core.)

released on production servers November 7th, 2017

Note: This is a Release and may be used for production. It is available for all devices. To use, select the 0.6.3 version dropdown from the devices drawer.

image

ENHANCEMENTS

  • Downgrade bootloader when downgrading from 0.7.0 or newer. #1416

BUGFIXES


KRACK Patch ETA
Particle Tools Changelog
#53

Firmware 0.6.4 release is out on the Web IDE for Electron. (None of the changes affect the Core/P1 or Photon.)

released on production servers December 2nd, 2017

Note: This is a Release and may be used for production. It is available for all devices. To use, select the 0.6.4 version dropdown from the devices drawer.

image

BUGFIXES

  • Downgrade bootloader functionality in 0.6.3 would enter an infinite loop after flashing system part 1 0.7.0-rc.X using OTA/serial. particle flash --usb/DFU was not affected.

Remote Firmware Upgrade for Electron
#54

Firmware 0.7.0-rc.6 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

image

released on production servers December 12th, 2017

:pencil: Please read all notes in the Notes Festival :tada: below

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.

OTA or YModem transfer on Electron

  • update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to 0.7.0-rc.6.

Note that the upgrade sequences are only needed when updating with Over-the-Air updates or using YModem or particle flash --serial.

If you use DFU over USB (particle flash --usb), you can update to 0.7.0-rc.6 directly.

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.7.0-rc.6 Changelog

BUGFIX

  • [Electron] Add dependency in system-part-1 on 0.6.4 system-part-3 to prevent upgrades from 0.6.3 or earlier to avoid incompatibilities with these releases.
  • The device ID is output in lowercase in DFU mode. #1432
  • increase the DTLS buffer from 768 to 800 bytes, so that the system describe message is sent.
  • remove rigid dependency check in bootloader that was causing DCT functions to not load in 0.8.0-rc.1 #1436

System Binaries (all devices)


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


#55

Firmware 0.8.0-rc.1 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

:pencil: Please read all notes in the Notes Festival :tada: below

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.

image

Upgrading via particle flash --usb or Web IDE (OTA)

No special steps are necessary to upgrade to this release.

Upgrading via particle flash --serial or particle flash <device-id>

When you use YModem or OTA updates to update the device by hand, it’s necessary to follow an upgrade sequence so that the upgrade is successful. If the sequence is not followed, the upgrade will not happen and the version of system firmware will remain unchanged.

Electron

  • first, update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to this release, 0.8.0-rc.1.

Photon/P1

  • first, update to 0.7.0-rc.6 first
  • then update to this release, 0.8.0-rc.1

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.8.0-rc.1 Changelog

FEATURES

  • Low-latency interrupt handlers [#1394] (https://github.com/spark/firmware/pull/1394)
  • [Electron] Reworked power management #1412
  • Battery State diagnostics #1398
  • Battery charge diagnostics #1395
  • RAM usage diagnostic sources data #1411
  • Network Signal Quality/Strength rework and diagnostics #1423
  • System uptime diagnoatics #1393
  • Diagnostics for unacked messages and rate limited events #1391
  • Network and Cloud diagnostics #1424
  • Diagnostics service #1390

ENHANCEMENTS

  • [Photon/P1] Wi-FI firmware compression #1421
  • [Photon/P1] Moves Wi-Fi tester into application module #1378

BUGFIXES

  • Cloud random seed not working #1312
  • [Electron] Error handling in the data usage API #1435

System Binaries (all devices)

Available on the GitHub release page



Photon - Firmware After 0.6.3?
TlsTcpClient library 0.2.6 update
Particle Tools Changelog
#56

Firmware 0.7.0-rc.7 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

image

released on production servers February 7th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

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.

OTA or YModem transfer on Electron

  • update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to 0.7.0-rc.7.

Note that the upgrade sequences are only needed when updating with Over-the-Air updates or using YModem particle flash --serial.

If you use DFU over USB (particle flash --usb), you can update to 0.7.0-rc.7 directly.

P1/Photon Bootloader

The cloud will automatically update the bootloader on P1/Photon devices. If your device does not connect to the cloud, you should flash the bootloader to the device using particle flash --serial. This should be done after upgrading system firmware.

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.7.0-rc.7 Changelog

BUGFIX

  • [Photon] Regression with SoftAP and URL-encoded form query #1432
  • Particle.connect() hard blocking since 0.6.1-rc.1 #1399
  • [Electron] Cellular resolve does not return 0 / false when it receives bad DNS resolution related to bad cell service #1304
  • [Core] Use the device ID as the USB serial number #1367
  • [Electron] Fix heap bounds for system part 1 #1478
  • [Electron] connect_cancel() fix #1464
  • Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard #1372

Particle Tools Changelog
Photon stuck in safe mode while upgrading to 0.7.0
#57

Firmware 0.8.0-rc.2 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

image

:pencil: Please read all notes in the Notes Festival :tada: below

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.

Upgrading via particle flash --usb or Web IDE (OTA)

No special steps are necessary to upgrade to this release. When using the command-line, simply run the update commands in the correct order, updating system-part1, then system-part2 etc.

From the WebIDE, select the version of system firmware in the devices drawer for your selected device and flash an app to the device. The system firmware will be updated automatically.

Note: P1/Photon: the bootloader must be upgraded using either Serial or OTA update.

Upgrading via particle flash --serial or particle flash <device-id>

When you use YModem or OTA updates to update the device by hand, it’s necessary to follow an upgrade sequence so that the upgrade is successful. If the sequence is not followed, the upgrade will not happen and the version of system firmware will remain unchanged.

Electron

  • first, update to 0.5.3 (if the current version is less than that)
  • then update to 0.6.4 if the current version is less than that)
  • then update to this release, 0.8.0-rc.1.

Photon/P1

  • first, update to 0.7.0-rc.6 first
  • then update to this release, 0.8.0-rc.1

Note about Downgrading [Electron/Photon/P1] OTA or YModem transfer: You should downgrade to 0.6.4 to ensure that the bootloader downgrades automatically. When downgrading to other versions, you will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

0.8.0-rc.2 Changelog

FEATURES

  • USB request handlers #1444
  • Out of heap system event and heap fragmentation detection #1452
  • Network and cloud diagnostics #1424
  • [Photon/P1] TCPClient: non-blocking, blocking, blocking with timeout writes support #1485
  • [Electron] adds UPSV handling to cellular_hal #1480

ENHANCEMENTS

  • Serialize access to the CRC peripheral (STM32F2xx) #1465
  • System.sleep() wake up reason #1410
  • System.sleep(): support for multiple wake up pins #1405
  • Disable WKP pin waking device up from SLEEP_MODE_DEEP #1409
  • [Photon/P1] Increase maximum supported number of simultaneously active TCP connections #1350
  • [Photon/P1] WiFi.dnsServerIP()/WiFi.dhcpServerIP() support #1386
  • Generalize FuelGauge to also use alternative I2C interfaces. #1443
  • Firmware update and access to internal flash via USB requests #1456
  • Added docs on local build setup #1374
  • Use ‘using std::**’ instead of define * std::* #1258
  • Only remake $(TARGET_BASE).elf el al. if necessary #1223

BUGFIXES

  • [Electron] Fix heap bounds build for system part1 #1478
  • [Electron] Guard cellular_command() with a global lock #1415
  • [Electron] Fix caching of the description CRCs in the backup RAM #1413
  • [Electron] connect_cancel() fix #1464
  • [Electron] DCD fixes #1454
  • [Electron] moves some newlib functions into part1 #1471
  • [Core] Fixes I2C slave mode #1309
  • [Virtual] Fixes virtual device running with UDP protocol #1462
  • Fix usage of an incorrect prerequisite name in program-* targets #1463
  • Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard #1372

INTERNAL

  • Fixes some 0.8.0-rc.2 tests #1476
  • fixes the unit test build #1474
  • IS_CLAIMED request fixes #1472
  • Documents low level USB request completion notifications #1475
  • [Electron] Flash size optimizations #1469
  • Minor refactoring of the USB protocol implementation #1473

System and bootloader binaries


How to tell deep sleep wake up reason between rising signal on wake up pin and RTC clock time out?
Help choosing correct SLEEP mode w/ Asset Tracker v2
Was 0.7.0 ever released?
#58

Firmware 0.7.0 release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers March 26th, 2018

Note: This is a Release and may be used for production. Any known issues are likely slated for 0.8.0-rc.3 (check Github issues). It is available by default for all devices. To use, select the 0.7.0 version dropdown from the devices drawer. Downgrading back to a previous release info is at the bottom of this post.

Note: If you have previously last used one of the prerelease versions of 0.7.0 on a Core/Photon/P1 device, please re-flash it with 0.7.0. You must upgrade (locally preferred) the Electron system firmware to 0.7.0 first before you can OTA new user apps.

Note: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.3 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0.

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.7.0 directly, but make sure you have installed v1.30.0 of the CLI (check with particle --version) then run particle update.

Note: P1/Photon Bootloader
The cloud will automatically update the bootloader on P1/Photon devices. If your device does not connect to the cloud, you should flash the bootloader to the device using particle flash --serial. This should be done after upgrading system firmware.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.6.3(Photon/P1), 0.6.4(Electron) first, then to an older version such as 0.5.3. You will have to manually downgrade the bootloader as well (see release notes in previous 0.7.0-rc.3 release)

070

0.7.0 (see additional changelog 0.7.0-rc.1 ~ 0.7.0-rc.7)

BUGFIX

  • [Photon/Electron] WKP pin needs to be disabled as a wakeup source on boot to allow its normal operation #1496

0.7.0-rc.7 Changelog
0.7.0-rc.6 Changelog
0.7.0-rc.5 Changelog
0.7.0-rc.4 Changelog
0.7.0-rc.3 Changelog
0.7.0-rc.2 Changelog
0.7.0-rc.1 Changelog


System Binaries (all devices) & Device Upgrader (Photon & Electron)

https://github.com/particle-iot/firmware/releases/tag/v0.7.0


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Update to 0.7.0 goes wrong
0.7.0 Release Changelog, Please?
Photon stuck in safe mode while upgrading to 0.7.0
Particle Tools Changelog
Upgraded to 0.7.0, WiFi does not come on in SEMI_AUTOMATIC mode
#59

Hello Friends!

Just a quick update that firmware repo branches release/stable and master have been updated to point to release/v0.7.0

You can update your local versions with either of these commands:

git checkout release/stable && git pull
git checkout master && git pull

If you have any trouble with this, please reference this previous post Particle Firmware Updates Thread


#60

Firmware 0.8.0-rc.3 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers April 10th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

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: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.3

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.3 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

080rc3

0.8.0-rc.3 Changelog

ENHANCEMENTS

  • [Photon/P1] A number of networking-related fixes v2 #1500
  • [Photon/P1] Enables support for SHA384/SHA512 certificates for WPA Enterprise #1501

BUGFIXES

  • [Photon/P1] A number of networking-related fixes #1492
  • [Photon/P1] A number of networking-related fixes v2 #1500
  • [Photon/Electron] WKP pin needs to be disabled as a wakeup source on boot to allow its normal operation #1496
  • [Photon/P1/Electron] Recursive logging freezes the application thread while the LogHandler is trying to acquire a lock on the resource #1517

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.3


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


PaperTrail for electron
New library - Papertrail
Help!? UDP send in LogHandler hangs electron w/ 0.6.1
Particle Tools Changelog
#61

Firmware 0.8.0-rc.4 Pre-release is out on the Web IDE for Core/Photon/P1/Electron

released on production servers May 4th, 2018

:pencil: Please read all notes in the Notes Festival :tada: below

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: OTA or YModem transfer on Electron (sequence required)

  1. First Update to 0.5.5 (if the current version is less than that)
  2. Then update to 0.6.4 (if the current version is less than that)
  3. Then update to 0.7.0 (if the current version is less than that)
  4. Then update to 0.8.0-rc.4

Note: DFU over USB on Electron/Photon/P1 (sequence not required)

  • You may update to 0.8.0-rc.4 directly first, flash the system firmware (attached above) in order 1,2(,3) to the device using particle flash --usb <system-part.bin>. See the next note about the bootloader if you are offline!

Note: P1/Photon Bootloader
The Cloud will automatically update the bootloader on P1/Photon devices if your device is online. If your device does not connect to the cloud and it is offline, you should flash the bootloader to the device using particle flash --serial <bootloader.bin>. This should be done after upgrading system firmware. The Electron bootloader is applied automatically from it’s own system parts.

Note: Downgrading [Electron/Photon/P1] OTA or YModem transfer:
If you need to downgrade, you must downgrade to 0.7.0 and then 0.6.3(Photon/P1), 0.6.4(Electron) to ensure that the bootloader downgrades automatically. When downgrading to older versions, downgrade to 0.7.0 first, then 0.6.3(Photon/P1), 0.6.4(Electron), then to an older version such as 0.5.5.

080rc4

0.8.0-rc.4

ENHANCEMENTS

  • [Electron/Photon/P1] Increase Device OS API argument lengths. More data in Functions, Variables, Publish, Subscribe… oh my! #1537

BUGFIXES

  • [Electron] Particle.keepAlive() API was broken since v0.6.2-rc.2 firmware on Electron where the System would override an early set User ping interval. This required a workaround of updating the keepAlive after the System made a connection to the Cloud. See issue #1482 for workaround. #1536
  • [Electron] Fixes missing URCs for received data during TX or RX socket operations. This caused the modem not to be able to receive further data properly until it re-connected to the Cloud which it would do automatically but usually after a short or longer period of time. #1530

System Binaries (all devices)

https://github.com/particle-iot/firmware/releases/tag/v0.8.0-rc.4


Programming and Debugging

You can view specific programming and debugging notes for this version of firmware here.


Particle Tools Changelog
Connect and add new wifi via Particle.function
How to downgrade firmware