0.6.1-rc.1 Pre-release (Core/Photon/P1/Electron)
Pre-releaseFirmware 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.
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.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) & Device Upgrader (Photon & Electron)
located below
Programming and Debugging
You can view specific programming and debugging notes for this version of firmware here.