A post was merged into an existing topic: Particle Firmware Updates: Comments
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)
- 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
- 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.
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.
(minor known issue with 060rc1 being located lower and out of order in the dropdown)
BREAKING CHANGES
UDP.flush()
andTCP.flush()
now conform to theStream.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 withanalogRead()
#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)
- 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
- 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.
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.
v0.6.0-rc.2
ENHANCEMENTS
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)
- 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
- 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.
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.
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 withanalogRead()
#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.
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.
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)
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.
v0.6.0 (same as v0.6.0-rc.2)
BREAKING CHANGES
UDP.flush()
andTCP.flush()
now conform to theStream.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 withanalogRead()
#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.
Hey all!
We updated release/stable
and master
branches of the firmware
repo to be current with release/v0.6.0
.
release/stable
is taking the place of latest
which will be deleted
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.
Before doing this, make sure you save any changes you have been making in your local copy of release/stable
or master
(hopefully you are not doing that though and using a feature/branch
based on these ;-))
Hard Reset release/stable
git checkout release/stable && git fetch origin && git reset --hard origin/release/stable
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 release/stable
and master
, you will see:
HEAD is now at d17554a automate the Core build and binary collection
Just to reiterate from last time:
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)
Firmware 0.6.1-rc.1 Pre-release is out on the Web 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.
0.6.1-rc.1 Changelog
FEATURES
- [PR #1190] [Implements #1114] 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] 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] Added tracking of ACKs for published events (see
WITH_ACK
flag forParticle.publish()
) - [PR #1135] [Fixes #1116] [Fixes #965] 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] Added extra spare pin to P1 (P1S6) with GPIO and PWM support.
- [PR #1204] [Implements #1113] 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] 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.
ENHANCEMENTS
- [PR #1191] Added more Arduino Library compatibility
- [PR #1188] [Implements #1152] 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] 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).
- [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).
BUGFIX
- [PR #1186] Fixed issue where USB
Serial
might deadlock when interrupts are disabled while usingDEBUG_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] Fixed approx. -0.1V offset on FuelGauge().getVCell() readings
- [PR #1145] [Fixes #973]
Particle.connect()
now blocksloop()
from running untilParticle.connected()
istrue
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.
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)
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
Hey all!
I’m working on releasing 0.6.1-rc.1 firmware docs to the prerelease-docs site, and I had some troubles with git subtrees. Maybe some of you feel my pain if you’ve used subtrees
If you use the develop branch of the firmware repo, read on… otherwise please disregard below the fold.
I just had to force push develop back to the way it was earlier today. Because of this you’ll likely have merge conflicts if you git pull the latest changes from develop. You will need to hard reset your local copy of develop to match the remote.
Before doing this, make sure you save any changes you have been making in your local copy of develop (hopefully you are not doing that though and using a feature/branch based on these ;-))
Hard Reset develop
git checkout develop && git fetch origin && git reset --hard origin/develop
You should now be sync’d up again with the most recent develop, you will see:
HEAD is now at b82c352 added LED Themes to 0.6.1-rc.1 Changelog [ci skip]
Firmware 0.6.1-rc.2 Pre-release is out on the Web IDE for Core/Photon/P1/Electron
released on production servers January 23, 2017
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 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.18.0 of the CLI first.
0.6.1-rc.2 Changelog
FEATURES
- [PR #1225] [Photon/P1/Electron] Added support for custom LED colors in bootloader v11 (Safe Mode, DFU Mode, Firmware Reset).
- [PR #1227] [Implements #961] [Electron] Added new API for hostname IP address lookup
IPAddress ip = Cellular.resolve(hostname)
ENHANCEMENTS
- [PR #1216] Improved Arduino Compatibility (now supported by default, added PARTICLE_NO_ARDUINO_COMPATIBILITY=y command line option for disabling)
- [PR #1217] 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
andLEDCustomStatus
into a single class ->LEDStatus
BUG FIXES
- [PR #1221] [Fixes #1220] [Electron] TIM8 PWM pins (B0, B1) did not work correctly in bootloader with
RGB.mirrorTo()
- [PR #1222] Fixed bug in
String(const char* str, int len)
constructor when the string is longer than the specified length. - [PR #1225] [Photon/P1/Electron] Fixed LED indication shown during device key generation (blinking white) introduced in 0.6.1-rc.1
- [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. - [PR #1230] Safe Mode event was being published unconditionally introduced in 0.6.1-rc.1
- [PR #1231] [Electron] fixes double newline parser issue on G350 introduced in 428835a 0.6.1-rc.1
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.
Firmware 0.6.1 release is out on the Web IDE for Core/Photon/P1/Electron
released on production servers March 1, 2017
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.
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 forParticle.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 lookupIPAddress 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
andLEDCustomStatus
into a single class ->LEDStatus
BUG FIXES
- [PR #1186] Fixed issue where USB
Serial
might deadlock when interrupts are disabled while usingDEBUG_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 blocksloop()
from running untilParticle.connected()
istrue
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.
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
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.
0.6.2-rc.1 Changelog
ENHANCEMENT / BUG FIX
[PR #1283]
[Implements #1278]
Restores 0.6.0-style Arduino compatibility by default, full Arduino compatibility when including Arduino.h
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)
Release 0.6.2-rc.1 Prerelease (Core/Photon/P1/Electron) · particle-iot/device-os · GitHub
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
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.
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 themath.h
header. Now we only includemath.h
when Arduino compatibility is requested. (math.h was not included in 0.6.0).
System Binaries (all devices) & Device Upgrader (Photon & Electron)
Release 0.6.2-rc.2 Prerelease (Core/Photon/P1/Electron) · particle-iot/device-os · GitHub
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
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.
0.6.2 Changelog
FEATURES
[PR #1311]
[Implements CH1537] [Electron]
Added support for Twilio SIMs by default in system firmware.
ENHANCEMENT / BUG FIX
[PR #1283]
[Implements #1278]
Restores 0.6.0-style Arduino compatibility by default, full Arduino compatibility when including Arduino.h
BUG FIX
[PR #1310]
Fixes a error when<algorithm>
has already been included before themath.h
header. Now we only includemath.h
when Arduino compatibility is requested. (math.h was not included in 0.6.0).
System Binaries (all devices) & Device Upgrader (Photon & Electron)
Release 0.6.2 Release (Core/Photon/P1/Electron) · particle-iot/device-os · GitHub
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
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
Please read all notes in the Notes Festival below
Note: There are 2 known issues with 0.7.0-rc.1 where when using
SYSTEM_THREAD(ENABLE)
that are already fixed and will be released in 0.7.0-rc.2. See details here to see if it will affect you.
Note: This is a pre-release and is not intended for production yet. We've tested this pre-release to the best of our ability and we want to know what you think now! Please understand that some care and attention is necessary when testing this pre-release, and be sure to upgrade to the final release when it's available. It will not be available by default. To use you must select the version dropdown from the devices drawer. Downgrading back to the current release info is at the bottom of this post.
Note: You must update your Electron to v0.5.3 first before attempting to use OTA or YModem transfer to update to >= v0.6.0. If you use DFU over USB, you can update to >= v0.6.0 directly, but make sure you have installed >= v1.21.0 of the CLI first.
Note about Downgrading [Photon/P1]: 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
[PR #1245]
Particle.publish()
now able to use Future API[PR #1289]
[Implements #914]
[Photon/P1]
[Setup Docs]
[setCredentials()]
[WiFiCredentials class]
WPA/WPA2 Enterprise support added (PEAP/MSCHAPv2 and EAP-TLS)! [Photon/P1] Automatic cipher/security detection when configuring WiFi settings over Serial.
ENHANCEMENTS
[PR #1242]
[Photon/P1/Electron]
DFU transfer speeds increased! v100 bootloader is now 41% faster than v7 and 60% faster than the latest v11.[PR #1236]
[Fixes #1201]
[Fixes #1194]
Added type-safe wrapper for enum-based flags forParticle.publish()
which enables logical OR'ed flag combinationsPRIVATE | WITH_ACK
[PR #1247]
Adds error checking toWiFi.setCredentials()
, will returntrue
if credentials has been stored successfully, orfalse
otherwise.[PR #1248]
Added an overload tomap()
function that takesdouble
arguments.[PR #1296]
[Photon/P1]
[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]
ConstrainsWiFi.RSSI()
to -1dBm max.[PR #1270]
Removesspark/device/ota_result
event and instead sends OTA'd module info as a payload in UpdateDone message, or as an ACK to UpdateDone.[PR #1300]
Restores public server key and server address if missing[PR #1325]
Use backup registers instead of DCT to store system flags to avoid chance of a DCT corruption.[PR #1306]
Bootloader module dependency and integrity checks have been added to system-part2. If they fail, the device is forced into safe mode and a new bootloader will be OTA transferred to the device.[PR #1329]
Adds a verification and retry scheme to the bootloader flashing routine.[PR #1330]
[Electron]
Added CRC checking to the Electron DCD implementation so that write errors are detected. Added a critical section around flash operations and around DCD operations to make them thread safe.[PR #1307]
[Photon/P1]
New version of WICED adds CRC checking to the DCT implementation so that write errors are detected. Added a critical section around flash operations and around DCT operations to make them thread safe.[PR #1269]
[Closes #1165]
Cloud connection can be closed gracefully allowing confirmable messages to reach the cloud before the connection is terminated
BUGFIX
[PR #1246]
Fixes possible corruption of event data in multi-threaded firmware[PR #1234]
[Fixes #1139]
[Electron]
spark/hardware/max_binary
event was sent in error, adding 69 more bytes of data to handshake (full or session resume). Also fixes other preprocessor errors.[PR #1236]
[Fixes #1201]
[Fixes #1194]
SanitizedParticle.publish()
overloads.[PR #1237]
Fixes potential memory leak and race condition issues inRGB.onChange()
function.[PR #1247]
Previously no null pointer checks on password argument ofWiFi.setCredentials()
.[PR #1248]
[Fixes #1193]
Fixes divide by zero on incorrect parameters ofmap()
function.[PR #1254]
[Fixes #1241]
WiFi.connecting()
was returningfalse
while DHCP is resolving, will now remaintrue
.[PR #1296]
[Fixes #1251]
[Photon/P1]
Default Wi-Fi DNS hostname changed to device ID, to avoid spaces in name which may cause issues.[PR #1255]
[Fixes #1136]
[Core]
Interrupts were disabled by default.[PR #1259]
[Fixes #1176]
MakesSystem.sleep(mode, seconds)
a synchronous operation in multithreaded firmware. This ensures the device is in a well-defined state before entering sleep mode.[PR #1315]
Fixes Particle Publish flag implicit conversion issue. e.g.Particle.publish("event", "data", NO_ACK);
was previously changing event's TTL instead disabling acknowledgement of the event)[PR #1316]
Fixes LED indication when network credentials are cleared by holding the SETUP button for >10 seconds.[PR #1270]
[Fixes #1240]
TCP Firmware will not ACK every chunk in Fast OTA mode now.[PR #1302]
[Fixes #1282]
[Electron]
Wire1
was not working correctly.[PR #1326]
Renamedsystem_error
enum tosystem_error_t
to avoid conflicts withstd::system_error
class.[PR #1286]
Improves stability of TCP server implementation: 1) Update server's list of clients on a client destruction (thanks @tlangmo!), 2) TCPClient now closes underlying socket on destruction.[PR #1327]
[Fixes #1098]
[Photon/P1] Previously, when entering Sleep-stop mode:System.sleep(D1, RISING, 60);
while in the process of making a Wi-Fi connection resulted in some parts of the radio still being initialized, consuming about 10-15mA more than normal.[PR #1336]
Fixes an issue with Serial when receiving consecutive multiple 64-byte transmissions from Host[PR #1337]
Fixed system attempting to enter listening mode every 1ms when the SETUP button is pressed.[PR #1289]
Fixes a stack overlap with system-part2 static RAM on Photon/P1[PR #1289]
Fixes a memory leak when Thread is terminated[PR #1289]
Fixes a deadlock in SoftAP, when connection is terminated prematurely[PR #1340]
[Electron]
Fixes the monolithic build
INTERNAL
[PR #1313]
Compilation fixes for GCC platform[PR #1323]
USB vendor requests should be executed on system thread instead of being processed in ISR.[PR #1338]
Do not read or write feature flags from an ISR
System Binaries (all devices) & Device Upgrader (Photon & Electron)
Release 0.7.0-rc.1 Prerelease (Core/Photon/P1/Electron) · particle-iot/device-os · GitHub
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
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
Please read all notes in the Notes Festival 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.
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 usingSYSTEM_THREAD(ENABLED)
the TCPServer and WPA Enterprise connections were broken.[PR #1354]
[Fixes #1062]
A call toWiFi.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 thefirmware-docs
subtree from thefirmware
repo. Docs updates are made directly todocs
repo again.[PR #1352]
Added test forRGB.onChange()
handler leak[PR #1358]
Updates minimal ARM gcc version required to 5.3.1[PR #1359]
Fixes build withPLATFORM=gcc
on OSX with clang's gcc wrapper
System Binaries (all devices) & Device Upgrader (Photon & Electron)
Release 0.7.0-rc.2 Prerelease (Core/Photon/P1/Electron) · particle-iot/device-os · GitHub
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.
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
Please read all notes in the Notes Festival 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).
0.6.2 bootloader binaries have been added to this release below (on github) convenience.
You can only flash the bootloader OTA or YModem over USB. DFU mode over USB will fail because it uses the bootloader itself for that mode of operation.
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)
Release 0.7.0-rc.3 Prerelease (Core/Photon/P1/Electron) · particle-iot/device-os · GitHub
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.