You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FreeRTOS offers a suite of networking stacks designed for IoT applications. Applications can access communication protocols at different levels - MQTT, HTTP, Secure Sockets, etc. Common connectivity technologies such as Ethernet, Wi-Fi and BLE have been integrated with the networking stacks of FreeRTOS, with [a wide selection of microcontrollers and modules](https://devices.amazonaws.com/search?page=1&sv=freertos) pre-integrated.
6
-
7
-
The demos in this project demonstrate how to establish mutually authenticated MQTT connections to MQTT brokers, such as AWS IoT Core, by using cellular connectivity. The demos use the [Cellular Library](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Library/raw/main/doc/document/cellular.zip) sub-moduled from an external project. The FreeRTOS Cellular Library exposes the capability of a few popular cellular modems through a uniform API.
5
+
FreeRTOS offers a suite of networking stacks designed for IoT applications.
6
+
Applications can access communication protocols at different levels - MQTT, HTTP,
7
+
Secure Sockets, etc. Common connectivity technologies such as Ethernet, Wi-Fi and
8
+
BLE have been integrated with the networking stacks of FreeRTOS, with
9
+
[a wide selection of microcontrollers and modules](https://devices.amazonaws.com/search?page=1&sv=freertos)
10
+
pre-integrated.
11
+
12
+
FreeRTOS supported demos for FreeRTOS cellular interface can be found in the [FreeRTOS repository](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator).
13
+
This repository contains community supported demos. The demos in this project
14
+
demonstrate how to establish mutually authenticated MQTT connections to MQTT brokers,
15
+
such as AWS IoT Core, by using cellular connectivity. The demos use the
The MQTT and HTTP libraries of FreeRTOS use an abstract [Transport Interface](https://github.com/FreeRTOS/coreMQTT/blob/main/source/interface/transport_interface.h) to send/receive data in a generic way. The demos in this project offer a [implementation](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/master/source/coreMQTT/using_mbedtls.c) of the Transport Interface on top of the uniform API exposed by the FreeRTOS Cellular Library.
23
+
The MQTT and HTTP libraries of FreeRTOS use an abstract [Transport Interface](https://github.com/FreeRTOS/coreMQTT/blob/main/source/interface/transport_interface.h) to send/receive data in a generic way. The demos in this project offer a [implementation](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/master/source/coreMQTT/using_mbedtls.c) of the Transport Interface on top of the uniform API exposed by the FreeRTOS Cellular Interface.
13
24
14
25
## Hardware Setup
15
26
16
27
The demos in this project can be run in the [FreeRTOS Windows Simulator](https://freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html). You will need a Windows PC and one of the supported cellular modems to run a demo. A version of Visual Studio, such as the free Community version of [Visual Studios](https://visualstudio.microsoft.com/vs/community/), will be needed for building the demos.
17
28
18
-
FreeRTOS Windows simulator make use of COM port to communicate with cellular module. Setup you cellular module communication with the following steps.
29
+
FreeRTOS Windows simulator make use of COM port to communicate with cellular module. Setup your cellular module communication with the following steps.
19
30
20
31
1. Connect the cellular module to PC. Most cellular dev kits have USB, in that case, just connect it to PC’s USB port and look for the COM port in Window’s Device Manager. For example, you will see a new COM69 showing up when you connect the modem like below. If your cellular dev kit does not have USB, use a USB adaptor [like these](https://www.amazon.com/Serial-Usb-Adapter/s?k=Serial+To+Usb+Adapter).
21
32
@@ -43,14 +54,14 @@ Figure 1. Components and Interfaces</p>
43
54
44
55
The other components shown as blue boxes and dotted lines are implemented by this project:
45
56
46
-
* The [Demo Application](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source). It is largely the same as the [coreMQTT demo](https://github.com/FreeRTOS/FreeRTOS/tree/master/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth), with added logic to set up cellular as the transport. (The original coreMQTT demo was designed for Wi-Fi on FreeRTOS Windows Simulator.) There is also a demo application that integrates [1nce Zero Touch Provisioning](https://1nce.com/en/help-center/tutorials-documentations/1nce-connectivity-suite/) with the FreeRTOS Cellular Library and coreMQTT for connecting to AWS IoT Core.
57
+
* The [Demo Application](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source). It is largely the same as the [coreMQTT demo](https://github.com/FreeRTOS/FreeRTOS/tree/master/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth), with added logic to set up cellular as the transport. (The original coreMQTT demo was designed for Wi-Fi on FreeRTOS Windows Simulator.) There is also a demo application that integrates [1nce Zero Touch Provisioning](https://1nce.com/en/help-center/tutorials-documentations/1nce-connectivity-suite/) with the FreeRTOS Cellular Interface and coreMQTT for connecting to AWS IoT Core.
47
58
* The [Transport Interface](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/coreMQTT/using_mbedtls.c) is needed by the MQTT library (sub-moduled from the [coreMQTT](https://github.com/freertos/coreMQTT) project) to send and receive packets.
48
59
* The[TLS porting interface](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/mbedtls/mbedtls_freertos_port.c) is needed by the mbedTLS library to run on FreeRTOS.
49
-
* The [Comm Interface](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/comm_if_windows.c) is used by the FreeRTOS Cellular Library to communicate with the cellular modems over UART connections.
60
+
* The [Comm Interface](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/comm_if_windows.c) is used by the FreeRTOS Cellular Interface to communicate with the cellular modems over UART connections.
50
61
51
62
## Developer References and API Documents
52
63
53
-
Please refer to [FreeRTOS Cellular Library API document](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Library/raw/main/doc/document/cellular.zip).
64
+
Please refer to [FreeRTOS Cellular Interface API document](https://www.freertos.org/Documentation/api-ref/cellular/index.html).
54
65
55
66
56
67
## Download the source code
@@ -90,32 +101,29 @@ There is also a demo for 1nce zero touch provisioning with Quectel BG96 & GSM Mo
└── source ( common source files to adapt libraries )
103
117
├── cellular
104
-
│ └── ( code for adapting FreeRTOS Cellular Library with this demo )
118
+
│ └── ( code for adapting FreeRTOS Cellular Interface with this demo )
105
119
├── coreMQTT
106
120
│ └── ( code for adapting coreMQTT with this demo )
107
-
├── FreeRTOS
108
-
│ └── ( code for adapting FreeRTOS with this demo )
109
121
├── mbedtls
110
122
│ └── ( code for adapting mbedtls with this demo )
111
-
├── main.c
112
-
├── cellular_setup.c
113
-
├── MutualAuthMQTTExample.c
114
-
├── demo_config.h
115
-
├── logging_levels.h
116
-
├── logging_stack.h
117
-
├── 1nce_zero_touch_provisioning.h
118
-
└── 1nce_zero_touch_provisioning.c
123
+
├── Logging
124
+
│ └── ( code for FreeRTOS logging )
125
+
└── cellular_setup.c
126
+
119
127
```
120
128
121
129
@@ -124,7 +132,9 @@ There is also a demo for 1nce zero touch provisioning with Quectel BG96 & GSM Mo
124
132
125
133
### **Configure cellular network**
126
134
127
-
The following parameters in the cellular configuration, [cellular_config.h](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/tree/main/source/cellular), (located in "source/cellular/<cellular_module>/cellular_config.h”) must be modified for your network environment.
135
+
The following parameters in the cellular configuration,
@@ -137,15 +147,16 @@ The following parameters in the cellular configuration, [cellular_config.h](http
137
147
138
148
### **Configure MQTT broker**
139
149
140
-
The configuration for connecting to a MQTT broker can be found in “[source/demo_config.h](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/demo_config.h)”. Refer to the [documentation](https://www.freertos.org/mqtt/mutual-authentication-mqtt-example.html#configuration) for more information about the settings.
150
+
The configuration for connecting to a MQTT broker can be found in <b>"projects/\<project_name\>/demo_config.h"</b> for more information about the settings.
141
151
142
152
### Configure COM port settings
143
153
144
154
Reference the cellular module documentation for COM port settings. Update the [comm_if_windows.c](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/cellular/comm_if_windows.c) if necessary.
145
155
146
156
### **Configure other sub-modules**
147
157
148
-
[“source/FreeRTOS/FreeRTOSConfig.h](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/FreeRTOS/FreeRTOSConfig.h)”, “[source/mbedtls/mbedtls_config.h](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/master/source/mbedtls/mbedtls_config.h)” and “[source/coreMQTT/core_mqtt_config.h](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Demo/blob/main/source/coreMQTT/core_mqtt_config.h)” are configurations for the corresponding sub-modules.
158
+
<b>"projects/\<project_name\>/FreeRTOSConfig.h"</b>, <b>"projects/\<project_name\>/mbedtls_config.h"</b> and <b>"projects/\<project_name\>/core_mqtt_config.h"</b>,
159
+
are configurations for the corresponding sub-modules.
0 commit comments