Configuring the coreMQTT library
Devices on the edge can use the MQTT protocol to communicate with the AWS Cloud. AWS IoT hosts an MQTT broker that sends and receives messages to and from connected devices at the edge.
The coreMQTT library implements the MQTT protocol for devices running FreeRTOS. The coreMQTT library doesn't need to be ported, but your device's test project must pass all MQTT tests for qualification. For more information, see coreMQTT Library in the FreeRTOS User Guide.
Prerequisites
To set up the coreMQTT library tests, you need a network transport interface port. See Porting the Network Transport Interface to learn more.
Testing
Run coreMQTT Integration tests:
Register your client certificate with MQTT broker.
Set the broker endpoint in
config
and run the integration tests.
Create reference MQTT demo
We recommend using the coreMQTT agent to handle thread safety for all MQTT operations. The user will also need publish and subscribe tasks, and Device Advisor tests to validate if the application integrates TLS, MQTT and other FreeRTOS libraries effectively.
To officially qualify a device for FreeRTOS, validate your integration project with AWS IoT Device Tester MQTT test cases. See AWS IoT Device Advisor workflow for instructions to set up and test. Mandated test cases for TLS and MQTT are listed below:
Test Case | Test cases | Required tests |
---|---|---|
TLS | TLS Connect | Yes |
TLS | TLS Support AWS IoT Cipher Suites | A recommended cipher suite |
TLS | TLS Unsecure Server Cert | Yes |
TLS | TLS Incorrect Subject Name Servr Cert | Yes |
Test Case | Test cases | Required tests |
---|---|---|
MQTT | MQTT Connect | Yes |
MQTT | MQTT Connect Jitter Retries | Yes without warnings |
MQTT | MQTT Subscribe | Yes |
MQTT | MQTT Publish | Yes |
MQTT | MQTT ClientPuback QoS1 | Yes |
MQTT | MQTT No Ack PingResp | Yes |