diff --git a/CHANGELOG.md b/CHANGELOG.md index 487179a0cb..2a9a536d8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,94 @@ - `wiring/no_fixture` test adjustments for Gen 2 and Gen 3 platforms [#1898](https://github.com/particle-iot/device-os/pull/1898) - Coveralls test coverage reports generated by Travis [#1896](https://github.com/particle-iot/device-os/pull/1896) +## 1.3.1 + +>**Note:** If your Gen 2 Photon/P1 or Gen 3 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with `particle flash --serial bootloader.bin` (bootloaders found in Github release). +> +>This release contains v401 bootloaders. + +### FEATURES + +- [gen 3] Nordic SoftDevice update support [#1816](https://github.com/particle-iot/device-os/pull/1816) +- [gen 3] API for selecting BLE antenna for BLE radio [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API for setting/getting BLE device name [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API for setting BLE device address [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API for manually discovering peer device's BLE services and characteristics [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API for fetching discovered peer's services and characteristics [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API in BlePeerDevice for establishing BLE connection without scanning required [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API for manually subscribing/unsubscribing peer characteristic's notification [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] API for disconnecting all on-going BLE connections [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] BLE support [#1740](https://github.com/particle-iot/device-os/pull/1740) +- [gen 3] NFC support [#1606](https://github.com/particle-iot/device-os/pull/1606) + +### ENHANCEMENTS + +- [Boron/BSoM] power: Increases charging current to 900mA when powered through VIN (VUSB) pin [#1846](https://github.com/particle-iot/device-os/pull/1846) +- Cancel network connection when processing a USB request that resets the device [#1830](https://github.com/particle-iot/device-os/pull/1830) +- Particle.connected() should return true only after handshake messages are acknowledged [#1825](https://github.com/particle-iot/device-os/pull/1825) +- [gen 3] USB state tracking enhancements [#1871](https://github.com/particle-iot/device-os/pull/1871) +- [gen 3] Adds timeouts to I2C HAL operations [#1875](https://github.com/particle-iot/device-os/pull/1875) +- [gen 3] Refactors BLE event dispatching [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] Decreases BLE runtime RAM consumption [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] Supports up to 23 local characteristics, 20 of them are available for user application [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] Supports up to 3 central links [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] More convenient methods provided in BleUuid class [#1847](https://github.com/particle-iot/device-os/pull/1847) +- ensures AT interface is responsive [#1886](https://github.com/particle-iot/device-os/pull/1886) +- [enhancement] Cache cellular diagnostics [#1810](https://github.com/particle-iot/device-os/pull/1810) +- [enhancement] allow the bootloader to be flashed over DFU [#1788](https://github.com/particle-iot/device-os/pull/1788) + +### BUG FIXES + +- [Gen 3] Fixes heap and application static RAM overlap introduced in 1.3.0-rc.1 [#1898](https://github.com/particle-iot/device-os/pull/1898) +- Fixes tinker build errors when building with `LOG_SERIAL=y` [#1898](https://github.com/particle-iot/device-os/pull/1898) +- Fixes dynalib alignment issue when compiling relatively large applications potentially due to an unconfirmed bug in GCC by moving the dynalib into a separate section (`.dynalib`) [#1894](https://github.com/particle-iot/device-os/pull/1894) +- [Gen 3] Fixes incorrect handling of `MODULE_INFO_FLAG_DROP_MODULE_INFO` in the bootloader [#1897](https://github.com/particle-iot/device-os/pull/1897) +- [Gen 3] Adds a dummy suffix to the NCP and SoftDevice modules' module info with unique SHA to cause the communication layer to detect the change in SYSTEM DESCRIBE after NCP or SoftDevice update [#1897](https://github.com/particle-iot/device-os/pull/1897) +- Fixes a regression introduced in 1.1.0 where the system layer was always sending its handshake messages even if the session was resumed causing increased data usage [#1905](https://github.com/particle-iot/device-os/pull/1905) +- Properly seeds `rand()` in multiple threads including system thread. Fixes ephemeral port allocation in LwIP on Gen 3 platforms [#1905](https://github.com/particle-iot/device-os/pull/1905) +- Control requests that reset the device (e.g. `particle usb dfu`) no longer cause unnecessary reconnection to the cloud [#1905](https://github.com/particle-iot/device-os/pull/1905) +- Initialize user module in monolithic builds [#1905](https://github.com/particle-iot/device-os/pull/1905) +- fixes RSSI regression on G350 (2G) devices [#1841](https://github.com/particle-iot/device-os/pull/1841) +- [electron, gen3] Temporarily increase IDLE task priority whenever a thread exits (calls vTaskDelete) to resolve a memory leak that resulted in device being stuck "blinking green" until reset in some cases. [#1862](https://github.com/particle-iot/device-os/pull/1862) +- [gen 3] Fixes mesh pub/sub socket consuming all packet buffers [#1839](https://github.com/particle-iot/device-os/pull/1839) +- [Photon/P1] Bootloader correctly re-imports the DCT functions from system firmware after its modification through DFU [#1868](https://github.com/particle-iot/device-os/pull/1868) +- [gen 3] `Mesh.off()` disconnects the cloud. Resolves an issue with `loop()` not being executed in `SEMI_AUTOMATIC` mode after `Mesh.off()` [#1857](https://github.com/particle-iot/device-os/pull/1857) +- [Argon] Fixes the issue being unable to reset the device through RST pin by changing the ESPEN mode to `OUTPUT_OPEN_DRAIN` [#1870](https://github.com/particle-iot/device-os/pull/1870) +- [Electron/LTE] devices drop Cloud connection every time user firmware opens and closes a TCP socket [ch34976]() [#1854](https://github.com/particle-iot/device-os/pull/1854) +- [gen 2] Fixes an issue with clock stretching in I2C slave mode with underrun reads with certain I2C masters (e.g. Gen 3 devices) [#1829](https://github.com/particle-iot/device-os/pull/1829) +- Fix to ensure device resets after bootloader update [#1873](https://github.com/particle-iot/device-os/pull/1873) +- Fixes boot issue for Core introduced in 1.2.1-rc.3 [#1873](https://github.com/particle-iot/device-os/pull/1873) +- [gen 3] Resolved a HardFault after USB cable is unplugged under certain conditions [#1871](https://github.com/particle-iot/device-os/pull/1871) +- [gen 3] BLE advertising parameters didn't apply, issue #1874 [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] BLE scanning parameters didn't apply, issue #1859 and #1855 [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] Local characteristic notification causes SOS: [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gen 3] BLE address order reversed [#1847](https://github.com/particle-iot/device-os/pull/1847) +- [gcc] fixes virtual platform exception on startup [#1878](https://github.com/particle-iot/device-os/pull/1878) +- Add two-digit mnc diagnostic flag [#1804](https://github.com/particle-iot/device-os/pull/1807) +- BLE fixes from 1.3.0-alpha.1 [#1817](https://github.com/particle-iot/device-os/pull/1817) +- NFC Context parameter is missing and NFC.update() will remove callback, fixes from 1.3.0-alpha.1 [#1818](https://github.com/particle-iot/device-os/pull/1818) +- [lte] cellular fixes [#1824](https://github.com/particle-iot/device-os/pull/1824) +- fixes #1811 - increases the number of event handlers to 6 [#1822](https://github.com/particle-iot/device-os/pull/1822) +- [gen 3] fixes memory usage diagnostics (reported negative values in safe mode) [#1819](https://github.com/particle-iot/device-os/pull/1819) +- System.disableUpdates() operates asynchronously [#1801](https://github.com/particle-iot/device-os/pull/1801) +- [gen 3] [bsom] Building platform BSOM results flash overflow. [#1802](https://github.com/particle-iot/device-os/pull/1802) +- [gen 3] [hal] fixes early wakeup by RTC from STOP sleep mode [#1803](https://github.com/particle-iot/device-os/pull/1803) + +### INTERNAL + +- Adjusts on-device tests [#1898](https://github.com/particle-iot/device-os/pull/1898) +- Add coverage to CMake unit-tests [#1860](https://github.com/particle-iot/device-os/pull/1860) +- Pull test implementation out of source file [#1867](https://github.com/particle-iot/device-os/pull/1867) +- [gen 3] Changes WKP pin to A7 for SoM platforms to avoid an overlap with Ethernet chip on EVB ESPEN mode to `OUTPUT_OPEN_DRAIN` [#1837](https://github.com/particle-iot/device-os/pull/1837) +- [hal] Fixes WIFIEN pin mode for ASoM [#1889](https://github.com/particle-iot/device-os/pull/1889) +- Refactor/move catch test [#1869](https://github.com/particle-iot/device-os/pull/1869) +- fixes to communications public interface [#1863](https://github.com/particle-iot/device-os/pull/1863) +- Refactors platform pinmap to be in platform-specific headers [#1838](https://github.com/particle-iot/device-os/pull/1838) +- Improve compatibility with recent versions of GCC [#1806](https://github.com/particle-iot/device-os/pull/1806) +- Set path to Boost libraries [#1872](https://github.com/particle-iot/device-os/pull/1872) +- [docs] Updates `spark_publish_vitals` and build scripts documentation. [#1800](https://github.com/particle-iot/device-os/pull/1800) +- [docs] update the test documentation [#1683](https://github.com/particle-iot/device-os/pull/1683) + ## 1.3.1-rc.1 >**Note:** If your Gen 2 device does not have a Cloud connection, it is recommended to update system firmware, and then the bootloader via CLI with `particle flash --serial bootloader.bin` (bootloaders found in Github release). Gen 3 devices should not need an updated bootloader this release. diff --git a/system/inc/system_version.h b/system/inc/system_version.h index bf3c64e5fc..2d7e2b7af2 100644 --- a/system/inc/system_version.h +++ b/system/inc/system_version.h @@ -133,6 +133,7 @@ extern "C" { #define SYSTEM_VERSION_v130ALPHA1 SYSTEM_VERSION_ALPHA(1, 3, 0, 1) #define SYSTEM_VERSION_v130RC1 SYSTEM_VERSION_RC(1, 3, 0, 1) #define SYSTEM_VERSION_v131RC1 SYSTEM_VERSION_RC(1, 3, 1, 1) +#define SYSTEM_VERSION_v131 SYSTEM_VERSION_DEFAULT(1, 3, 1) #define SYSTEM_VERSION_v140RC1 SYSTEM_VERSION_RC(1, 4, 0, 1) #define SYSTEM_VERSION SYSTEM_VERSION_v140RC1 @@ -232,6 +233,7 @@ extern "C" { #define SYSTEM_VERSION_130ALPHA1 #define SYSTEM_VERSION_130RC1 #define SYSTEM_VERSION_131RC1 +#define SYSTEM_VERSION_131 #define SYSTEM_VERSION_140RC1 typedef struct __attribute__((packed)) SystemVersionInfo diff --git a/system/system-versions.md b/system/system-versions.md index 4857ee8302..baaf4daf8c 100644 --- a/system/system-versions.md +++ b/system/system-versions.md @@ -99,6 +99,7 @@ | 311 | 1300 | 1.3.0-alpha.1 | Core, Photon, P1, Electron, Xenon, Argon, Boron, X SoM, A SoM, B SoM | | 311 | 1301 | 1.3.0-rc.1 | Core, Photon, P1, Electron, Xenon, Argon, Boron, X SoM, A SoM, B SoM | | 400 | 1320 | 1.3.1-rc.1 | Core, Photon, P1, Electron, Xenon, Argon, Boron, X SoM, A SoM, B SoM | +| 401 | 1321 | 1.3.1 | Core, Photon, P1, Electron, Xenon, Argon, Boron, X SoM, A SoM, B SoM | | 500 | 1400 | 1.4.0-rc.1 | Core, Photon, P1, Electron, Xenon, Argon, Boron, X SoM, A SoM, B SoM | [1] For 0.8.0-rc.1, The v101 bootloader was also released in the Github releases as v200. Thus the next released bootloader in the 0.8.x line should be v201. As of 4/5/2018: 22 device had v200 bootloaders.