Particle Device OS Updates Thread


#17

#18

:particle: :particle: Firmware 0.4.9 has shipped!! :particle: :particle:

FEATURES

ENHANCEMENTS

  • System.freeMemory() shows an accurate value for free memory rather than the highwater mark for the heap.
  • [threading] Entering listening mode does not block the system thread. #788
  • [threading] System times out waiting for unresponsive application when attempting to reset. #763
  • [threading] Particle.publish() doesn’t block when in listening mode. #761
  • [threading]. delay()/Particle.process() pumps application events.
  • Serial, Serial1, SPI and EEPROM global objects guaranteed to be initialized before use. (Prevents White breathing LED if Serial used in a global instance constructor.)
  • Software Timers have an option for one-shot timers, and support class member function callbacks.

BUGFIXES

  • RSA key generation would sometimes produce invalid keys. #779
  • Static IP configuration was not being used.
  • Interrupt on WKP with class method as an ISR #819
  • Memory leak configuring WiFi credentials via SoftAP (TCP/HTTP)
  • SPI DMA transfer callback invoked too early #791
  • Unset wiced_result_t for tcp clients in socket_send. #773
  • Update bootloader to support System.enterSafeMode(). #751
  • [threading] WiFi.listen(false) remains in listen mode. #743
  • Factory Reset doesn’t clear WiFi credentials until network.connect(). #736
  • Comparison between IPAddress objects does not always work. #715
  • P1 dfu-util 0.8 does not read/write from External Flash. #706
  • DFU errors writing to flash silently ignored. #813
  • [threading] heap allocation not thread-safe. #826
  • System crash when button interrupt occurs during i2c transmission. #709
  • [photon] 'analogWrite()` to DAC pins. #671
  • [photon] analogWrite() to DAC pins requires pinMode() each time. #662
  • [photon] System.sleep(pin,edge) doesn’t wake. #655

Proper procedure to flash Electron core firmware to 0.5.0-rc1?
Photon interrupt latency
How to implement a similar pulseIn API for FW 0.4.6?
#19

#20

##:particle: :particle: Firmware 0.5.0-rc.1 Pre-release is out on the Build IDE for Core/Photon/P1/Electron :particle: :particle:

Note: This is a pre-release and is not intended for production yet. 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.

v0.5.0-rc.1 Changelog

FEATURES

ENHANCEMENTS

  • Compiler error with variable/function names that are too long. #883
  • DFU writes are verified #870
  • [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

  • targets program-cloud, program-dfu can be used without requiring all 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() after analogWrite() #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

INTERNALS

  • dynalib: compile-time check for certain types of ABI breaking changes #895

Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.0-rc.1 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.0-rc.1-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.0-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.0-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.0-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.11.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.0-rc.1-core.bin

Photon:

particle flash --usb system-part1-0.5.0-rc.1-photon.bin
particle flash --usb system-part2-0.5.0-rc.1-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.0-rc.1-p1.bin
particle flash --usb system-part2-0.5.0-rc.1-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.0-rc.1-electron.bin
particle flash --usb system-part2-0.5.0-rc.1-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.0-rc.1-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.0-rc.1-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.0-rc.1-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.0-rc.1-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.0-rc.1-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.0-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.0-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8080000:leave -D tinker-0.5.0-rc.1-electron.bin

Downgrading from 0.5.0-rc.x to current default firmware

Current defaults

Core: v0.4.9
Photon: v0.4.9
P1: v0.4.9
Electron: v0.4.8-rc.6

The easiest way to downgrade from a 0.5.0-rc.x prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.11.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.5.0-rc.x app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.5.0-rc.x pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


Custom Serial bit / parity with Spark Core (e.g. SERIAL_8N2)
[SOLVED] Blynk library causes panic in certain situations on 0.5.0rc1
Photon: Can the Photon be used as a SPI slave with the existing firmware primitives?
How to include libraires using Build?
How to include libraires using Build?
#21

##:particle: :particle: Firmware 0.5.0-rc.2 Pre-release is out on the Build IDE for Core/Photon/P1/Electron :particle: :particle:

Note: This is a pre-release and is not intended for production yet. 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.

v0.5.0-rc.2 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

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

BUGFIXES

  • Soft AP Claim code fix #956
  • Variable template fix #952
  • TCPClient on Electron not receiving all of the data for small files #896

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

Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.0-rc.2 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.0-rc.2-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.0-rc.2-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-rc.2-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.0-rc.2-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-rc.2-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.0-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.0-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.11.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.0-rc.2-core.bin

Photon:

particle flash --usb system-part1-0.5.0-rc.2-photon.bin
particle flash --usb system-part2-0.5.0-rc.2-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.0-rc.2-p1.bin
particle flash --usb system-part2-0.5.0-rc.2-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.0-rc.2-electron.bin
particle flash --usb system-part2-0.5.0-rc.2-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.0-rc.2-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.0-rc.2-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.0-rc.2-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.0-rc.2-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.0-rc.2-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.0-rc.2-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.0-rc.2-electron.bin

Downgrading from 0.5.0-rc.x to current default firmware

Current defaults

Core: v0.4.9
Photon: v0.4.9
P1: v0.4.9
Electron: v0.4.8-rc.6

The easiest way to downgrade from a 0.5.0-rc.x prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.11.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.5.0-rc.x app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.5.0-rc.x pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


Can a P1 be setup to connect to the internet without claiming it?
#22

##:particle: :particle: 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 :particle: :particle:

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

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 requiring all 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() after analogWrite() #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
  1. Make sure the device is in DFU mode and run:
particle update
  1. 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.


Particle dev , dfu-utility not work?
Electron enters safe mode after dfu but not with ota
Particle Device OS Updates: Comments
#23

##:particle: :particle: Firmware 0.5.1-rc.1 Pre-release is out on the Build IDE for Core/Photon/P1/Electron :particle: :particle:

Note: This is a pre-release and is not intended for production yet. 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.

v0.5.1-rc.1 Changelog

FEATURES

  • Wi-Fi Country Code can be set to configure the available channels and power transmission. #942

ENHANCEMENTS

  • ARM GCC 5.3.1 compiler support

BUGFIXES

  • [Photon/P1] Fix a timing-critical bug in WICED that causes system freeze. #877
  • Tone not available on A7 after stop-mode sleep. #938
  • Regression in EEPROM emulation size. #983
  • [Electron] Wrong bitmask is provided for 4208 setting in power management #987

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


Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.1-rc.1 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.1-rc.1-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.1-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.1-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.1-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.1-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.1-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.1-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.12.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.1-rc.1-core.bin

Photon:

particle flash --usb system-part1-0.5.1-rc.1-photon.bin
particle flash --usb system-part2-0.5.1-rc.1-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.1-rc.1-p1.bin
particle flash --usb system-part2-0.5.1-rc.1-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.1-rc.1-electron.bin
particle flash --usb system-part2-0.5.1-rc.1-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.1-rc.1-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.1-rc.1-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.1-rc.1-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.1-rc.1-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.1-rc.1-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.1-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.1-rc.1-electron.bin

Downgrading from 0.5.1-rc.1 to current default firmware

Current defaults

Core: v0.5.0
Photon: v0.5.0
P1: v0.5.0
Electron: v0.5.0

The easiest way to downgrade from a 0.5.1-rc.1 prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. 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 combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.5.1-rc.1 app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.5.1-rc.1 pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


#24

##:particle: :particle: Firmware 0.5.1 Release is out on the Build IDE for Core/Photon/P1/Electron - and the Particle CLI has been updated from 1.12.0 to 1.14.0 :particle: :particle:

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.1 version dropdown from the devices drawer. Please observe the warning below about downgrading.

Note: Some users previously had last used 0.5.1-rc.1 or 0.5.1-rc.2 on various platforms. Since these are no longer available, please re-flash your devices with 0.5.1. This is technically the same as 0.5.1-rc.2. As usual, you will have to locally upgrade the Electron system firmware to 0.5.1 first.

:warning: Caution: After upgrading to 0.5.1, DO NOT downgrade system firmware via OTA remotely

This will cause Wi-Fi credentials to be erased on the Photon and P1. This does not affect the Core or Electron. Feel free to downgrade locally with the understanding that you will have to re-enter Wi-Fi credentials. Also note that 0.5.1 fixes several important bugs, so there should be no reason you’d normally want to downgrade. :warning:

v0.5.1 Changelog

FEATURES

  • [Electron] Added support in HAL for a SMS received callback handler.
  • Wi-Fi Country Code can be set to configure the available channels and power transmission. #942

ENHANCEMENTS

  • ARM GCC 5.3.1 compiler support

BUGFIXES

  • [Photon/P1] Fix a timing-critical bug in WICED that causes system freeze. #877
  • Tone not available on A7 after stop-mode sleep. #938
  • Regression in EEPROM emulation size. #983
  • [Electron] Wrong bitmask is provided for 4208 setting in power management #987

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


Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.1 in the devices drawer. Update instructions for Core, Photon, P1 and Electron below. 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.1 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.14.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
  1. Make sure the device is in DFU mode and run:
particle update
  1. 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

The OTA method using Particle CLI

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 (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. Binaries are attached to the bottom of this release.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.1-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.1-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.1-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.1-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.1-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.1-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.14.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.1-core.bin

Photon:

particle flash --usb system-part1-0.5.1-photon.bin
particle flash --usb system-part2-0.5.1-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.1-p1.bin
particle flash --usb system-part2-0.5.1-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.1-electron.bin
particle flash --usb system-part2-0.5.1-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.1-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.1-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.1-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.1-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.1-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.1-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.


Where is the real documentation?
Electron always in safe mode
#25

Firmware 0.5.2-rc.1 Pre-release is out on the Build IDE for Core/Photon/P1/Electron :particle: :particle:

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.


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


v0.5.2-rc.1 Changelog

ENHANCEMENTS

  • [Photon/P1] Restores the default WICED country to Japan #1014

:white_check_mark: Upgrading to this version will now allow you to downgrade remotely OTA to v0.5.0 or earlier without erasing Wi-Fi credentials. There are still some cases where a downgrade will erase credentials, but only if you have explicitly set the country code to something other than the default or JP2. For example, if you set the country code to GB0 or US4, if you downgrade to v0.5.0 your Wi-Fi credentials will be erased. Leaving the country code at default or set to JP2 will not erase credentials when downgrading to v0.5.0. Do not downgrade to v0.5.1 first, and then v0.5.0… this will erase credentials in all cases.

BUGFIXES

  • .syncTime() and .unsubscribe() called on the system thread. Prevents issues when multiple threads try to send messages through the cloud connection or manage the network state shared memory. #1041

Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.2-rc.1 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.2-rc.1-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.2-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.2-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.2-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.2-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.2-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.2-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.12.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.2-rc.1-core.bin

Photon:

particle flash --usb system-part1-0.5.2-rc.1-photon.bin
particle flash --usb system-part2-0.5.2-rc.1-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.2-rc.1-p1.bin
particle flash --usb system-part2-0.5.2-rc.1-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.2-rc.1-electron.bin
particle flash --usb system-part2-0.5.2-rc.1-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.2-rc.1-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.2-rc.1-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.2-rc.1-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.2-rc.1-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.2-rc.1-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.2-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.2-rc.1-electron.bin

Downgrading from 0.5.2-rc.1 to current default firmware

Current defaults

Core: v0.5.1
Photon: v0.5.1
P1: v0.5.1
Electron: v0.5.1

The easiest way to downgrade from a 0.5.2-rc.1 prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.14.2. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.5.2-rc.1 app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.5.2-rc.1 pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


#26

Note: This is a Release and may be used for production. Any known issues are likely slated for 0.5.3-rc.1 and 0.6.0-rc.1 releases (check Github issues). It is available by default for all devices. To use, select the 0.5.2 version dropdown from the devices drawer. Please read the note below about downgrading.

Note: Some users previously had last used 0.5.2-rc.1 on Core/Photon/P1 devices. Since this target is no longer available for those devices, please re-flash them with 0.5.2. Pre-release 0.5.2-rc.1 is still available for the Electron since it may be more difficult or costly to upgrade these remote devices. Please do upgrade when you can to 0.5.2, however this is technically the same firmware as 0.5.2-rc.1. As usual, you will have to locally upgrade the Electron system firmware to 0.5.2 first. Electron system version identification has been improved. You should only need to refresh/reload the Build IDE to see the new version.
v0 5 2

v0.5.2 Changelog

ENHANCEMENTS

  • [Photon/P1] Restores the default WICED country to Japan #1014

:white_check_mark: Upgrading to this version will now allow you to downgrade remotely OTA to v0.5.0 or earlier without erasing Wi-Fi credentials. There are still some cases where a downgrade will erase credentials, but only if you have explicitly set the country code to something other than the default or JP2. For example, if you set the country code to GB0 or US4, if you downgrade to v0.5.0 your Wi-Fi credentials will be erased. Leaving the country code at default or set to JP2 will not erase credentials when downgrading to v0.5.0. Do not downgrade to v0.5.1 first, and then v0.5.0… this will erase credentials in all cases.

BUGFIXES

  • .syncTime() and .unsubscribe() called on the system thread. Prevents issues when multiple threads try to send messages through the cloud connection or manage the network state shared memory. #1041

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

located below


Particle CLI (easy method)

The easiest way to upgrade to 0.5.2 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.15.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
  1. Make sure the device is in DFU mode and run:
particle update
  1. 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

The OTA method using Particle CLI

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 (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. Binaries are attached to the bottom of this release.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.2-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.2-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.2-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.2-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.2-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.2-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.2-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.15.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.2-core.bin

Photon:

particle flash --usb system-part1-0.5.2-photon.bin
particle flash --usb system-part2-0.5.2-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.2-p1.bin
particle flash --usb system-part2-0.5.2-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.2-electron.bin
particle flash --usb system-part2-0.5.2-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.2-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.2-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.2-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.2-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.2-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.2-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.2-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.


#27

Hey all! Just wanted to give you an update and say that 0.5.1 build target is still available for all devices even though it should not be downgraded from with Wi-Fi devices Photon and P1 (credentials will be lost, upgrade to 0.5.2 first before downgrading to 0.5.0 or earlier).

Also 0.5.2-rc.1 pre-release is still available for the Electron since it may be more difficult or costly to upgrade these remote devices. Please do upgrade when you can to 0.5.2, however this is technically the same firmware as 0.5.2-rc.1.


#28

Firmware 0.5.3-rc.1 Pre-release is out on the Build IDE for Core/Photon/P1/Electron :particle:

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.
053rc1

v0.5.3-rc.1

BUGFIXES

  • SoftAP mode persisting when setup complete if Wi-Fi was off. #971
  • Free memory allocated for previous system interrupt handler #951 fixes #927
  • availableForWrite() was reporting bytes available instead of bytes available for write #1020 and #1017
  • millis()/micros() are now atomic to ensure monotonic values. Fixes #916, #925 and #1042
  • Fixes to I2C Slave mode implementation with clock stretching enabled #931
  • General I2C Improvements and MCP23017 tests #1047
  • Rebuilt Wiced_Network_LwIP_FreeRTOS.a WWD_for_SDIO_FreeRTOS.a on OSX #1057 fixes Local build stalling on object dump #1049
  • digitalRead() interfered with analogRead() #1006 fixes #993
  • Validates that module dependencies would still be satisfied after the module from the “ota_module” location is flashed (via OTA or YMODEM flashing) #1063

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


Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.3-rc.1 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.3-rc.1-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.3-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.3-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.3-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.3-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.3-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.3-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.12.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.3-rc.1-core.bin

Photon:

particle flash --usb system-part1-0.5.3-rc.1-photon.bin
particle flash --usb system-part2-0.5.3-rc.1-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.3-rc.1-p1.bin
particle flash --usb system-part2-0.5.3-rc.1-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.3-rc.1-electron.bin
particle flash --usb system-part2-0.5.3-rc.1-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.3-rc.1-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.3-rc.1-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.3-rc.1-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.3-rc.1-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.3-rc.1-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.3-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.3-rc.1-electron.bin

Downgrading from 0.5.3-rc.1 to current default firmware

Current defaults

Core: v0.5.2
Photon: v0.5.2
P1: v0.5.2
Electron: v0.5.2

The easiest way to downgrade from a 0.5.3-rc.1 prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.14.2. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.5.3-rc.1 app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.5.3-rc.1 pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


#29

More info on the digitalRead() interfering with analogRead() fix from changelog:

Updated notes in analogRead(), will be live in docs shortly.
https://docs.particle.io/reference/firmware/photon/#analogread-adc-

Before 0.5.3 Note: do not set the pinMode() with analogRead(). The pinMode() is automatically set to AN_INPUT the first time analogRead() is called for a particular analog pin. If you explicitly set a pin to INPUT or OUTPUT after that first use of analogRead(), it will not attempt to switch it back to AN_INPUT the next time you call analogRead() for the same analog pin. This will create incorrect analog readings.


Since 0.5.3 Note: you do not need to set the pinMode() with analogRead(). The pinMode() is automatically set to AN_INPUT any time analogRead() is called for a particular analog pin, if that pin is set to a pinMode other than AN_INPUT. If you explicitly set a pin to INPUT, INPUT_PULLUP, INPUT_PULLDOWN or OUTPUT before using analogRead(), it will switch it back to AN_INPUT before taking the reading. If you use digitalRead() afterwards, it will automatically switch the pinMode back to whatever you originally explicitly set it to.


#30

A post was merged into an existing topic: Particle Firmware Updates: Comments


#31

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

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.

v0.5.3-rc.2

FEATURE

  • DTR/RTS support (open/closed detection: Serial.isConnected()). #1073

ENHANCEMENTS

  • [Electron] System firmware is now aware of system-part3 to allow OTA/YModem upgrade from >=0.5.3-rc.2 to >=0.6.0-rc.1

BUGFIXES

  • added HAL_IsISR() which is used to skip calling the background loop from delay(). fixes #673
  • Fixes an issue of USB Serial erroneously switching to closed state. #1073
  • RTC wakeup time now calculated right before entering SLEEP_MODE_DEEP. Fixes #1043
  • STOP mode should retain user interrupt handler. Fixes #1029

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


Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.5.3-rc.2 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.5.3-rc.2-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.5.3-rc.2-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.3-rc.2-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.5.3-rc.2-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.3-rc.2-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.5.3-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.5.3-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.12.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.5.3-rc.2-core.bin

Photon:

particle flash --usb system-part1-0.5.3-rc.2-photon.bin
particle flash --usb system-part2-0.5.3-rc.2-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.5.3-rc.2-p1.bin
particle flash --usb system-part2-0.5.3-rc.2-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.5.3-rc.2-electron.bin
particle flash --usb system-part2-0.5.3-rc.2-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.5.3-rc.2-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.5.3-rc.2-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.5.3-rc.2-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.5.3-rc.2-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.5.3-rc.2-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part1-0.5.3-rc.2-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part2-0.5.3-rc.2-electron.bin

Downgrading from 0.5.3-rc.2 to current default firmware

Current defaults

Core: v0.5.2
Photon: v0.5.2
P1: v0.5.2
Electron: v0.5.2

The easiest way to downgrade from a 0.5.3-rc.2 prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.14.2. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.5.3-rc.2 app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.5.3-rc.2 pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


[RESOLVED]Web IDE - not verifying/compiling!
How can we select different serial configuration other than default, such as "8E1", is it supported?
#32

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

This is a big one!

  • The majority of Docs updates for 0.6.0 are going to roll out and be live between now and tomorrow sometime.
  • Please make sure to update your CLI to v1.16.0 for proper handling of 3 system parts for Electron.
  • You must update your Electron to v0.5.3-rc.2 first before attempting to use OTA or YModem transfer to update to v0.6.0-rc.1. If you use DFU over USB, you can update to v0.6.0-rc.1 directly, but make sure you have installed v1.16.0 of the CLI first.

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.
060rc1
(minor known issue with 060rc1 being located lower and out of order in the dropdown)

BREAKING CHANGES

  • UDP.flush() and TCP.flush() now conform to the Stream.flush() behavior from Arduino 1.0 Wiring. The current (correct) behavior is to wait
    until all data has been transmitted. Previous behavior discarded data in the buffer. #469

FEATURES

  • Logging library for flexible system and application logging. Docs
  • [Electron] Reduced data consumption connecting to the cloud with deep sleep. (See the Docs for how to gain the full data reduction.) #953
  • Can set Claim Code via the Serial interface (for use by the CLI.) #602
  • Device ID available via dfu-util. #949
  • [Electron] Firmware Reset now available. #975 and Docs
  • System Reset Reason #403 Docs
  • [Photon/Electron/P1] Composite USB device driver with HID Mouse & Keyboard implementation for STM32F2 #902 and #528
  • Exposes Device ID and Bootloader Version through USB descriptors while in DFU mode, Microsoft WCID support #1001
  • USB vendor-specific setup request handling #1010
  • [Electron] now allows OTA bootloader updates #1002
  • Added Daylight Saving Time support #1058 per proposed #211 Docs

ENHANCEMENTS

  • Local build warns if crc32 is not present. #941
  • [Photon/Core] MAC address is available immediately after WiFi.on() #879
  • [virtual device] support for TCP Server #1000
  • [virtual device] support for EEPROM emulation #1004
  • Low-level RTOS queues exposed in HAL #1018
  • USART LIN bus support. #930 Docs
  • USART added support for 7E1, 7E2, 7O1, 7O2 modes. #997 Docs
  • Configurable resolution for analogWrite (PWM and DAC) #991 analogWrite() Docs | analogWriteResolution() Docs | analogWriteMaxFrequency() Docs
  • System flag SYSTEM_FLAG_RESET_NETWORK_ON_CLOUD_ERRORS to control if the device resets the network when it cannot connect to the cloud. #946
  • [Photon] 1KB system backup memory added (same size as Electron) reducing user backup memory to 3KB (3068 bytes) #1046
  • Automatically adds vendored libraries from the lib directory for extended application projects #1053
  • Extended spi_master_slave tests with SPI_MODE0/1/2/3 and MSBFIRST/LSBFIRST testing #1056
  • [Electron] System parts reordered from 3,1,2 to 1,2,3 to preserve logical flashing order for OTA/YModem when upgrading. #1065

BUGFIXES

  • SoftAP mode persisting when setup complete if Wi-Fi was off. #971
  • Free memory allocated for previous system interrupt handler #951 fixes #927
  • Fixes to I2C Slave mode implementation with clock stretching enabled #931
  • millis()/micros() are now atomic to ensure monotonic values. Fixes #916, #925 and #1042
  • availableForWrite() was reporting bytes available instead of bytes available for write #1020 and #1017
  • digitalRead() interferes with analogRead() #993
  • USART 9-bit receiving. #968
  • Fix soft AP suffix broken by the addition of device id in DCT #1030
  • WKP pin should not be enabled as a wakeup source unconditionally for STOP mode #948 and #938
  • General I2C Improvements and MCP23017 tests #1047
  • Rebuilt Wiced_Network_LwIP_FreeRTOS.a WWD_for_SDIO_FreeRTOS.a on OSX #1057 fixes Local build stalling on object dump #1049
  • Validates that module dependencies would still be satisfied after the module from the “ota_module” location is flashed (via OTA or YMODEM flashing) #1063
  • System.sleep SLEEP_MODE_DEEP timing accuracy and sleep STOP mode retains user interrupt handler after resuming #1051 fixes #1043 and #1029

INTERNAL

  • [Electron] Use floating point arithmetic in PWM to save about 1KB of flash space #1027
  • Feature/vendorlibraries #1009
  • [Electron] Added a 3rd system module to provide room for additional system firmware #1035
  • Remove accidental SYSTEM_MODE(MANUAL) from pwm.cpp in wiring/no_fixture #1052

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


Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.6.0-rc.1 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.6.0-rc.1-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.6.0-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.6.0-rc.1-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.6.0-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.6.0-rc.1-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.6.0-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.6.0-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME system-part3-0.6.0-rc.1-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.16.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.6.0-rc.1-core.bin

Photon:

particle flash --usb system-part1-0.6.0-rc.1-photon.bin
particle flash --usb system-part2-0.6.0-rc.1-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.6.0-rc.1-p1.bin
particle flash --usb system-part2-0.6.0-rc.1-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.6.0-rc.1-electron.bin
particle flash --usb system-part2-0.6.0-rc.1-electron.bin
particle flash --usb system-part3-0.6.0-rc.1-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.6.0-rc.1-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.6.0-rc.1-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.6.0-rc.1-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.6.0-rc.1-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.6.0-rc.1-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8060000 -D system-part1-0.6.0-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part2-0.6.0-rc.1-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part3-0.6.0-rc.1-electron.bin

Downgrading from 0.6.0-rc.1 to current default firmware

Current defaults

Core: v0.5.2
Photon: v0.5.2
P1: v0.5.2
Electron: v0.5.2

The easiest way to downgrade from a 0.6.0-rc.1 prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.15.0. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.6.0-rc.1 app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.6.0-rc.1 pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


System.sleep and WKP Pin
Firmware Pre-Release Docs for v0.6.0-rc.2
How to use the lib directory in 0.6.0-rc1+
#33

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

More Updates!

  • Please make sure to update your CLI to >= v1.16.0 for proper handling of 3 system parts for Electron.
  • You must update your Electron to >= v0.5.3-rc.2 first before attempting to use OTA or YModem transfer to update to v0.6.0-rc.2. If you use DFU over USB, you can update to v0.6.0-rc.2 directly, but make sure you have installed >= v1.16.0 of the CLI first.

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.
0 6 0-rc 2

v0.6.0-rc.2

ENHANCEMENTS

  • USB HID enhancements, please see PR: #1110 for a list. Closes #1096

BUGFIX

  • Consecutive HID reports were overwriting previous the report before it was delivered to the host. Fixes #1090.
  • Disabling multiple USB configurations (normal/high power) as this breaks composite driver on Windows. Fixes #1089 Serial and USBSerial1 not working at same time on Windows 8.1 Pro.
  • Do not run the event loop from delay() when threading is enabled. Fixes #1055
  • Cancel current connection attempt before entering the listening mode with WiFi.listen(true) and also WiFi.off(). Fixes #1013

INTERNAL

  • Removed hardcoded server IP that was used when DNS resolution fails. Instead, the cloud connection is failed and the system will have to retry. This means DNS lookup failure is now consistent with other modes of connection failure. Addresses #139 Related to #1024

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


Updating System Firmware (and optionally adding Tinker)

To update your device, compile and flash your application in the Build IDE, selecting version 0.6.0-rc.2 (prerelease) in the devices drawer. Update instructions for Core, Photon, P1 and Electron below.

The OTA method using Particle CLI

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 (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.

Core:

particle flash YOUR_DEVICE_NAME tinker-0.6.0-rc.2-core.bin

Photon:

particle flash YOUR_DEVICE_NAME system-part1-0.6.0-rc.2-photon.bin
particle flash YOUR_DEVICE_NAME system-part2-0.6.0-rc.2-photon.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

P1:

particle flash YOUR_DEVICE_NAME system-part1-0.6.0-rc.2-p1.bin
particle flash YOUR_DEVICE_NAME system-part2-0.6.0-rc.2-p1.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

Electron:

particle flash YOUR_DEVICE_NAME system-part1-0.6.0-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME system-part2-0.6.0-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME system-part3-0.6.0-rc.2-electron.bin
particle flash YOUR_DEVICE_NAME tinker (optional)

The local method over USB using Particle CLI

This requires CLI version 1.16.0 or newer. You can check with particle --version.

If you have the Particle CLI installed already, make sure it is updated with the following command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

Core:

particle flash --usb tinker-0.6.0-rc.2-core.bin

Photon:

particle flash --usb system-part1-0.6.0-rc.2-photon.bin
particle flash --usb system-part2-0.6.0-rc.2-photon.bin
particle flash --usb tinker (optional)

P1:

particle flash --usb system-part1-0.6.0-rc.2-p1.bin
particle flash --usb system-part2-0.6.0-rc.2-p1.bin
particle flash --usb tinker (optional)

Electron:

particle flash --usb system-part1-0.6.0-rc.2-electron.bin
particle flash --usb system-part2-0.6.0-rc.2-electron.bin
particle flash --usb system-part3-0.6.0-rc.2-electron.bin
particle flash --usb tinker (optional)

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:

Core:

dfu-util -d 1d50:607f -a 0 -s 0x8005000:leave -D tinker-0.6.0-rc.2-core.bin

Photon:

dfu-util -d 2b04:d006 -a 0 -s 0x8020000 -D system-part1-0.6.0-rc.2-photon.bin
dfu-util -d 2b04:d006 -a 0 -s 0x8060000:leave -D system-part2-0.6.0-rc.2-photon.bin

P1:

dfu-util -d 2b04:d008 -a 0 -s 0x8020000 -D system-part1-0.6.0-rc.2-p1.bin
dfu-util -d 2b04:d008 -a 0 -s 0x8060000:leave -D system-part2-0.6.0-rc.2-p1.bin

Electron:

dfu-util -d 2b04:d00a -a 0 -s 0x8060000 -D system-part1-0.6.0-rc.2-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8020000 -D system-part2-0.6.0-rc.2-electron.bin
dfu-util -d 2b04:d00a -a 0 -s 0x8040000 -D system-part3-0.6.0-rc.2-electron.bin

Downgrading from 0.6.0-rc.2 to current default firmware

Current defaults

Core: v0.5.2
Photon: v0.5.2
P1: v0.5.2
Electron: v0.5.2

The easiest way to downgrade from a 0.6.0-rc.2 prerelease system firmware, is to use the CLI and run these commands in order. First put the Tinker back on the device, then downgrade the System firmware. This requires CLI version 1.15.0. You can check with particle --version.

If you have the Particle CLI installed already, you can update it with the following combined command. Make sure the device is in DFU mode and run:
sudo npm update -g particle-cli (note: you can try without sudo first if you wish)

  1. Make sure Tinker is installed, instead of a 0.6.0-rc.2 app that you may currently have running on your device. Have the device in DFU mode and run:
particle flash --usb tinker
  1. Make sure the device is in DFU mode and run:
particle update

This works for downgrading without specifying --target X.Y.Z because the 0.6.0-rc.2 pre-release firmware is not the default, and therefor particle update effectively downgrades your firmware.


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.


Safe mode explained
Cannot open DFU device! Electron
Electron stuck in safe mode after flashing
#34

Firmware 0.5.3 is out on the Web IDE for Core/Photon/P1/Electron - and the Particle CLI has been updated from 1.16.0 to 1.17.0

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.5.3 version dropdown from the devices drawer.

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

v0.5.3 Changelog

FEATURE

  • DTR/RTS support (open/closed detection: Serial.isConnected()). #1073

ENHANCEMENTS

  • Automatically adds vendored libraries from the lib directory for extended application projects #1053
  • [Electron] System firmware is now aware of system-part3 to allow OTA/YModem upgrade from >=0.5.3-rc.2 to >=0.6.0-rc.1

INTERNAL

  • Feature/vendorlibraries #1009

BUGFIXES

  • added HAL_IsISR() which is used to skip calling the background loop from delay(). fixes #673
  • Fixes an issue of USB Serial erroneously switching to closed state. #1073
  • RTC wakeup time now calculated right before entering SLEEP_MODE_DEEP. Fixes #1043
  • STOP mode should retain user interrupt handler. Fixes #1029
  • SoftAP mode persisting when setup complete if Wi-Fi was off. #971
  • Free memory allocated for previous system interrupt handler #951 fixes #927
  • availableForWrite() was reporting bytes available instead of bytes available for write #1020 and #1017
  • millis()/micros() are now atomic to ensure monotonic values. Fixes #916, #925 and #1042
  • Fixes to I2C Slave mode implementation with clock stretching enabled #931
  • General I2C Improvements and MCP23017 tests #1047
  • Rebuilt Wiced_Network_LwIP_FreeRTOS.a WWD_for_SDIO_FreeRTOS.a on OSX #1057 fixes Local build stalling on object dump #1049
  • digitalRead() interfered with analogRead() #1006 fixes #993
  • Validates that module dependencies would still be satisfied after the module from the “ota_module” location is flashed (via OTA or YMODEM flashing) #1063

System Binaries (all devices) & Firmware Manager (Photon & Electron)


Programming and Debugging

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


Electron Firmware and Dev
PHOTON HARD FAULT - not recover
Particle update command
#35

Hey all!

We just updated latest and master branches of the firmware repo to be current with release/v0.5.3.

Because we had to force push these changes, you’ll likely have merge conflicts if you git pull the latest changes for those branches. Because of this you will need to hard reset your local copy of each branch to match the remote.

:warning: Before doing this, make sure you save any changes you have been making in your local copy of latest or master (hopefully you are not doing that though and using a feature/branch based on these ;-))

Hard Reset Lastest

git checkout latest && git fetch origin && git reset --hard origin/latest

Hard Reset Master

git checkout master && git fetch origin && git reset --hard origin/master

You should now be sync’d up again with the most recent latest and master


Also, some changes to note:

The latest branch is being depreciated, and release/stable is taking it’s place. We will reiterate this during the 0.6.0 release which is coming.

We also have release/stable-0.5.x which is the latest 0.5.x default release (as of this post it’s 0.5.3)


Issue controlling 5 servos with a single Photon
#36

Firmware 0.6.0 is out on the Web IDE for Core/Photon/P1/Electron - and the Particle CLI has been updated to 1.18.0

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.0 version dropdown from the devices drawer.

Note: If you have previously last used one of the prerelease versions of 0.6.0 on a Core/Photon/P1 device, please re-flash it with 0.6.0. You must upgrade (locally preferred) the Electron system firmware to 0.6.0 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.0 directly, but make sure you have installed v1.18.0 of the CLI first.

0 6 0

v0.6.0 (same as v0.6.0-rc.2)

BREAKING CHANGES

  • UDP.flush() and TCP.flush() now conform to the Stream.flush() behavior from Arduino 1.0 Wiring. The current (correct) behavior is to wait
    until all data has been transmitted. Previous behavior discarded data in the buffer. #469

FEATURES

  • Logging library for flexible system and application logging. Docs
  • [Electron] Reduced data consumption connecting to the cloud with deep sleep. (See the Docs for how to gain the full data reduction.) #953
  • Can set Claim Code via the Serial interface (for use by the CLI.) #602
  • Device ID available via dfu-util. #949
  • [Electron] Firmware Reset now available. #975 and Docs
  • System Reset Reason #403 Docs
  • [Photon/Electron/P1] Composite USB device driver with HID Mouse & Keyboard implementation for STM32F2 #902 and #528
  • Exposes Device ID and Bootloader Version through USB descriptors while in DFU mode, Microsoft WCID support #1001
  • USB vendor-specific setup request handling #1010
  • [Electron] now allows OTA bootloader updates #1002
  • Added Daylight Saving Time support #1058 per proposed #211 Docs

ENHANCEMENTS

  • USB HID enhancements, please see PR: #1110 for a list. Closes #1096
  • Local build warns if crc32 is not present. #941
  • [Photon/Core] MAC address is available immediately after WiFi.on() #879
  • [virtual device] support for TCP Server #1000
  • [virtual device] support for EEPROM emulation #1004
  • Low-level RTOS queues exposed in HAL #1018
  • USART LIN bus support. #930 Docs
  • USART added support for 7E1, 7E2, 7O1, 7O2 modes. #997 Docs
  • Configurable resolution for analogWrite (PWM and DAC) #991 analogWrite() Docs | analogWriteResolution() Docs | analogWriteMaxFrequency() Docs
  • System flag SYSTEM_FLAG_RESET_NETWORK_ON_CLOUD_ERRORS to control if the device resets the network when it cannot connect to the cloud. #946
  • [Photon] 1KB system backup memory added (same size as Electron) reducing user backup memory to 3KB (3068 bytes) #1046
  • Automatically adds vendored libraries from the lib directory for extended application projects #1053
  • Extended spi_master_slave tests with SPI_MODE0/1/2/3 and MSBFIRST/LSBFIRST testing #1056
  • [Electron] System parts reordered from 3,1,2 to 1,2,3 to preserve logical flashing order for OTA/YModem when upgrading. #1065

BUGFIXES

  • Consecutive HID reports were overwriting previous the report before it was delivered to the host. Fixes #1090.
  • Disabling multiple USB configurations (normal/high power) as this breaks composite driver on Windows. Fixes #1089 Serial and USBSerial1 not working at same time on Windows 8.1 Pro.
  • Do not run the event loop from delay() when threading is enabled. Fixes #1055
  • Cancel current connection attempt before entering the listening mode with WiFi.listen(true) and also WiFi.off(). Fixes #1013
  • SoftAP mode persisting when setup complete if Wi-Fi was off. #971
  • Free memory allocated for previous system interrupt handler #951 fixes #927
  • Fixes to I2C Slave mode implementation with clock stretching enabled #931
  • millis()/micros() are now atomic to ensure monotonic values. Fixes #916, #925 and #1042
  • availableForWrite() was reporting bytes available instead of bytes available for write #1020 and #1017
  • digitalRead() interferes with analogRead() #993
  • USART 9-bit receiving. #968
  • Fix soft AP suffix broken by the addition of device id in DCT #1030
  • WKP pin should not be enabled as a wakeup source unconditionally for STOP mode #948 and #938
  • General I2C Improvements and MCP23017 tests #1047
  • Rebuilt Wiced_Network_LwIP_FreeRTOS.a WWD_for_SDIO_FreeRTOS.a on OSX #1057 fixes Local build stalling on object dump #1049
  • Validates that module dependencies would still be satisfied after the module from the “ota_module” location is flashed (via OTA or YMODEM flashing) #1063
  • System.sleep SLEEP_MODE_DEEP timing accuracy and sleep STOP mode retains user interrupt handler after resuming #1051 fixes #1043 and #1029

INTERNAL

  • Removed hardcoded server IP that was used when DNS resolution fails. Instead, the cloud connection is failed and the system will have to retry. This means DNS lookup failure is now consistent with other modes of connection failure. Addresses #139 Related to #1024
  • [Electron] Use floating point arithmetic in PWM to save about 1KB of flash space #1027
  • Feature/vendorlibraries #1009
  • [Electron] Added a 3rd system module to provide room for additional system firmware #1035
  • Remove accidental SYSTEM_MODE(MANUAL) from pwm.cpp in wiring/no_fixture #1052

System Binaries (all devices) & Firmware Manager (Photon & Electron)


Programming and Debugging

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


Particle Tools Changelog
Particle Dev Tips