- #1929 This release brings the following changes:
-
Include 202406.01-LTS versions of coreMQTT, corePKCS11, coreHTTP, coreJSON, backoffAlgorithm, AWS IoT Device Shadow, AWS IoT Jobs, AWS IoT Device Defender, AWS IoT Fleet Provisioning and SigV4 libraries.
-
Remove the OTA library and its associated demo.
NOTE: We recommend transitioning to the new modular and composable OTA approach . To get started, see the new OTA reference demo.
-
Update MbedTLS version to v3.5.1
-
Update readme instructions for demos for better user experience.
-
- #1843, #1848, #1860, #1859, #1861, #1870, #1845 Minor bug fixes and improvements.
- #1850 Remove installation instructions.
- #1850 Add CI Workflows to build the non-aws demos on incoming pull-requests.
- #1844 Update doxygen to 1.9.6.
- #1875 Add a Fleet provisioning demo to get certificate and private key via CreateKeysAndCertificate API.
- #1899 Add Tunnelmole as an open source tunneling option in addition to ngrok.
- #1901 Add a HTTP demo to generate a pre-signed URL to an S3 object file.
- This release includes an update to how the Coverity static analysis scans are performed. There is now a tools/coverity/README.md file in each library with instructions on how to perform a scan with 0 MISRA coding standard warnings or errors.
- #1823 Update library submodule pointers to use the same versions used in FreeRTOS LTS 202210.01-LTS. The versions of the libraries used for this release went through extensive testing as described in the LTS Code Quality Checklist. Further information about the changes can be found in the CHANGELOG.md file in each library.
- #1779 Update version of MbedTLS from v2.26.0 to v2.28.0
- #1831 Create a demo for connecting a device to a Greengrass core using the new feature that allows using custom CAs.
- #1826 Adds a test to verify multiple subscription and unsubscribe requests succeed when done through a single API call.
- #1809 Reduce the likelihood of encountering transient connection issues by setting TRANSPORT_SEND_RECV_TIMEOUT_MS to a minimum of 1000ms in all tests and demos.
- This release introduces the refactored AWS IoT Fleet Provisioning library and AWS SigV4 library. These libraries have gone through code quality checks including verification that no function has a GNU Complexity score greater than 8, checks against deviations from the mandatory rules in the MISRA coding standard, static code analysis from Coverity static analysis and validation of memory safety through the CBMC automated reasoning tool.
- #1692 Update the existing HTTP S3 download demo to obtain temporary credentials from AWS IoT Credential Provider and use the the new AWS SigV4 library to sign HTTP requests with those credentials for authenticating with AWS S3 service.
- #1688 Add Demo to showcase use of AWS IoT Fleet Provisioning library using the "Provisioning by Claim" workflow of the Fleet Provisioning feature of AWS IoT Core.
- #1680 Add new transport interface implementation using Mbed TLS (for TLS stack) and corePKCS11 (for credential management).
- #1670 Update corePKCS11 demo to read the public key as the private key was being used to both sign and verify
- #1596 Make
THING_NAME
an alias forCLIENT_IDENTIFIER
in MQTT-related demos - #1593 Initialize MQTT status return code in OTA demos mqtt_publish
- #1599 Checking execution status of demo loop before calling pthread_join in OTA demos
- Changes brought through submodule update of libraries:
- AWS IoT Over-the-air Update library v3.0.0 is now generally available.
- Updated AWS IoT Device Shadow library to support named shadow, a feature of the AWS IoT Device Shadow service that allows you to create multiple shadows for a single IoT device.
- Updated AWS IoT Device Defender library to support custom metrics, a feature that helps you monitor operational health metrics that are unique to your fleet or use case.
- Changes brought through pushing commits to AWS IoT Device SDK for Embedded C:
- #1547 Update the Device Defender demo to showcase reporting of custom metrics to the AWS IoT Device Defender service.
- AWS IoT Over-the-air Update library v3.0.0 is now generally available.
- #1529, #1532 Update Jobs demo to use DescribeJobExecution API instead of StartNextPendingJobExecution API, and disable functionality of periodic job updates by default.
- #1519 Add an
install
target for installing libraries and headers in file system.
- #1511 Fix memory leak in PKCS #11 test.
- #1539 Add retries for MQTT publishing with the backoffAlgorithm library.
- #1516, #1538, #1540, #1487 Minor bugfixes and refactoring of the OTA demos and OTA PAL for POSIX.
- #1552 Update broken links in demo comments and documentation.
- # #1599 In OTA demo add check before calling pthread_join.
-
This release introduces the AWS IoT Over-the-air Update library(Release Candidate), backoffAlgorithm library, and PKCS #11 library. These libraries have gone through code quality checks including verification that no function has a GNU Complexity score greater than 8, checks against deviations from the mandatory rules in the MISRA coding standard, and static code analysis from Coverity statical analysis. In addition, PKCS11 library has also undergone validation of memory safety through the CBMC automated reasoning tool.
-
This release uses submodule references to the following new individual repositories for the AWS IoT Over-the-air Update, backoffAlgorithm, and PKCS11 libraries under the
libraries
folder:- aws/ota-for-aws-iot-embedded-sdk for the AWS IoT Over-the-air Update library.
- FreeRTOS/backoffAlgorithm for the backoffAlgorithm library.
- FreeRTOS/corePKCS11 for the PKCS11 library.
-
This release introduces the re-factored HTTP client library, AWS IoT Device Defender client library, and AWS IoT Jobs client library. These libraries have gone through code quality checks including verification that no function has a GNU Complexity score greater than 8, and checks against deviations from the mandatory rules in the MISRA coding standard. These libraries have also undergone both static code analysis from Coverity statical analysis and validation of memory safety through the CBMC automated reasoning tool.
-
This release uses submodule references to the following new individual repositories for the HTTP, AWS IoT Device Defender client, and AWS IoT Jobs client libraries under the
libraries
folder:- FreeRTOS/coreHTTP for the HTTP client library
- aws/device-defender-for-aws-iot-embedded-sdk for the AWS IoT Device Defender client library.
- aws/jobs-for-aws-iot-embedded-sdk for the AWS IoT Jobs client library.
-
This release introduces the re-factored MQTT client library, JSON parser library, and AWS IoT Device Shadow client library. These libraries have gone through code quality checks including verification that no function has a GNU Complexity score greater than 8, and checks against deviations from the mandatory rules in the MISRA coding standard. These libraries have also undergone both static code analysis from Coverity statical analysis and validation of memory safety through the CBMC automated reasoning tool.
-
This release uses submodule references to the following new individual repositories for the MQTT, JSON, and AWS IoT Device Shadow client libraries under the
libraries
folder:- FreeRTOS/coreMQTT for the MQTT client library
- FreeRTOS/coreJSON for the JSON parser library
- aws/device-shadow-for-aws-iot-embedded-sdk for the AWS IoT Device Shadow client library.
-
With this release, we are introducing a date-based versioning scheme.
Note: This release is NOT backwards compatible with the v3 version of AWS IoT Device SDK for Embedded C.
3.1.0 (September 08, 2020)
This represents the last tag for the v3 version of AWS IoT Device SDK for Embedded C.
Bugfixes:
- #205 Fix IAR compiler error about missing function prototypes.
- #241 Fix command-line argument processing in Shadow demo.
- #244 Fix parsing of metadata object in delta callback.
- #854 Fix doxygen errors in v3 MQTT documentation.
- #895 Fix issues reported by clang static analysis.
- #1006 Fix application hang when network is lost during QoS0 publish loop.
- #1070 Fix typo in job's status strings.
3.0.1 (May 10, 2018)
Bugfixes:
- #167, #168 Fixed issues reported by Coverity Scan.
- #177 Fixes a memory corruption bug and handling of timeouts.
Other:
- Add .travis.yml for Travis CI.
- Removed C++ sample.
- Removed includes of
inttypes.h
, which doesn't exist on some systems. - #175 Added comments on static allocation of MQTT topics.
3.0.0 (Apr 17, 2018)
Bugfixes:
- #152 Fixes potential buffer overflows in
parseStringValue
by requiring a size parameter injsonStruct_t
. - #155 Fixes other memory corruption bugs; also improves stability.
The two bug fixes above are not backwards compatible with v2.3.0. Please see README.md for details on migrating to v3.0.0.
2.3.0 (Mar 21, 2018)
New Features:
- Add AWS IoT Jobs support.
- Use AWS IoT Core support for MQTT over port 443. MQTT connection now defaults to port 443.
Pull requests:
- #124 - Thing Shadow: Fix potential shadow buffer overflow
- #135 - mbedtls_wrap: Fix unintialized variable usage
- Fix bugs in long-running integration tests.
2.2.1 (Dec 26, 2017)
Bugfixes:
- #115 - Issue with new client metrics
Pull requests:
- #112 - Initialize msqParams.isRetained to 0 in publishToShadowAction()
- #118 - mqttInitParams.mqttPacketTimeout_ms initialized
2.2.0 (Nov 22, 2017)
New Features:
- Added SDK metrics string into connect packet
Bugfixes:
- #49 - Add support for SHADOW_JSON_STRING as supported value
- #57 - remove unistd.h
- #58 - Fix return type of aws_iot_mqtt_internal_is_topic_matched
- #59 - Fix extraneous assignment
- #62 - Clearing SubscriptionList entries in shadowActionAcks after subscription failure
- #63 - Stack overflow when IOT_DEBUG is enabled
- #66 - Bug in send packet function
- #69 - Fix for broken deleteActionHandler in shadow API
- #71 - Prevent messages on /update/accepted from incrementing shadowJsonVersionNum in delta
- #73 - wait for all messages to be received in subscribe publish sample
- #96 - destroy TLS instance even if disconnect send fails
- Fix for aws_iot_mqtt_resubscribe not properly resubscribing to all topics
- Update MbedTLS Network layer Readme to remove specific version link
- Fix for not Passing througheError code on aws_iot_shadow_connect failure
- Allow sending of SHADOW_JSON_OBJECT to the shadow
- Ignore delta token callback for metadata
- Fix infinite publish exiting early in subscribe publish sample
Improvements:
- Updated jsmn to latest commit
- Change default keepalive interval to 600 seconds
Pull requests:
- #29 - three small fixes
- #59 - Fixed MQTT header constructing and parsing
- #88 - Fix username and password are confused
- #78 - Fixed compilation warnings
- #102 - Corrected markdown headers
- #105 - Fixed warnings when compiling
2.1.1 (Sep 5, 2016)
Bugfixes/Improvements:
- Network layer interface improvements to address reported issues
- Incorporated GitHub pull request #41
- Bugfixes for issues #36 and #33
2.1.0 (Jun 15, 2016)
New features:
- Added unit tests, further details can be found in the testing readme
- Added sample to demonstrate building the SDK as library
- Added sample to demonstrate building the SDK in C++
Bugfixes/Improvements:
- Increased default value of Maximum Reconnect Wait interval to 128 secs
- Increased default value of MQTT Command Timeout in Shadow Connect to 20 secs
- Shadow null/length checks
- Client Id Length not passed correctly in shadow connect
- Add extern C to headers and source files, added sample to demonstrate usage with C++
- Delete/Accepted not being reported, callback added for delete/accepted
- Append IOT_ to all Debug macros (eg. DEBUG is now IOT_DEBUG)
- Fixed exit on error for subscribe_publish_sample
2.0.0 (April 28, 2016)
New features:
- Refactored API to make it instance specific. This is a breaking change in the API from 1.x releases because a Client Instance parameter had to be added to all APIs
- Added Threading library porting layer wrapper
- Added support for multiple connections from one application
- Shadows and connections de-linked, connection needs to be set up separately, can be used independently of shadow
- Added integration tests for testing SDK functionality
Bugfixes/Improvements:
- Yield cannot be called again while waiting for application callback to return
- Fixed issue with TLS layer handles not being cleaned up properly on connection failure reported here
- Renamed timer_linux.h to timer_platform.h as requested here
- Adds support for disconnect handler to shadow. A similar pull request can be found here
- New SDK folder structure, cleaned and simplified code structure
- Removed Paho Wrapper, Merge MQTT into SDK code, added specific error codes
- Refactored Network and Timer layer wrappers, added specific error codes
- Refactored samples and makefiles
1.1.2 (April 22, 2016)
Bugfixes/Improvements:
- Signature mismatch in MQTT library file fixed
- Makefiles have a protective target on the top to prevent accidental execution
1.1.1 (April 1, 2016)
Bugfixes/Improvements:
- Removing the Executable bit from all the files in the repository. Fixing this issue
- Refactoring MQTT client to remove declaration after statement warnings
- Fixing this bug
1.1.0 (February 10, 2016)
Features:
- Auto Reconnect and Resubscribe
Bugfixes/Improvements:
- MQTT buffer handling incase of bigger message
- Large timeout values converted to seconds and milliseconds
- Dynamic loading of Shadow parameters. Client ID and Thing Name are not hard-coded
- MQTT Library refactored
1.0.1 (October 21, 2015)
Bugfixes/Improvements:
- Paho name changed to Eclipse Paho
- Renamed the Makefiles in the samples directory
- Device Shadow - Delete functionality macro fixed
subscribe_publish_sample
updated
1.0.0 (October 8, 2015)
Features:
- Release to github
- SDK tarballs made available for public download
Bugfixes/Improvements:
- Updated API documentation
Features:
- Thing Shadow Actions - Update, Delete, Get for any Thing Name
- aws_iot_config.h file for easy configuration of parameters
- Sample app for talking with console's Interactive guide
- disconnect handler for the MQTT client library
Bugfixes/Improvements:
- mbedTLS read times out every 10 ms instead of hanging for ever
- mbedTLS handshake failure handled
Features:
- Testing with mbedTLS, prepping for relase
Bugfixes/Improvements:
- Refactored to break out timer and network interfaces
Features:
- Added initial Shadow implementation + example
- Added hostname verification to OpenSSL example
- Added iot_log interface
- Initial API Docs (Doxygen)
Bugfixes/Improvements:
- Fixed yield timeout
- Refactored APIs to pass by reference vs value
Features:
- Initial beta release
- MQTT Publish and Subscribe
- TLS mutual auth on linux with OpenSSL
Bugfixes/Improvements: - N/A