This is an example based on mbed-os cellular APIs that demonstrates a TCP or UDP echo transaction with a public echo server. Included TPB23 NB-IoT module which is can use LGU+ in Korea.

This example is showing how to use the NB-IoT(SECOM TPB23 module) of LGU plus network in Korea. The NB-IoT module' seller provided a document on how to start based on Mbed OS 5.11. (Created by CodeZoo) This guide has been supported to the latest os version which included 5.12 ~ 5.15.

  • if you need specific version of Mbed OS, please revision of TPB23_Driver and check it out.
  • Pelion ready example code is here!

Requirement

462 320 320

320

Tested with

1. Import the application into your desktop

mbed import http://os.mbed.com/users/Daniel_Lee/code/mbed-os-example-cellular-TPB23/

cd mbed-os-example-cellular-TPB23

2. Compile and program

mbed compile -t <toolchain> -m <TARGET_BOARD>

(supported toolchains : GCC_ARM / ARM / IAR)

3. Download binary to a target board

4. Result

mbed-os-example-cellular


Built: Aug  7 2019, 06:10:47


[MAIN], plmn: NULL
Establishing connection
[00000001ms][INFO][CELL]: New CellularContext  (20000a08)
[00000002ms][INFO][CELL]: CellularContext plmn NULL
[00000003ms][INFO][CELL]: CellularContext connect
[00000036ms][INFO][CELL]: RSSI -69 dBm
[00000036ms][INFO][CELL]: Start connecting (timeout 1 s)
[00000087ms][INFO][CELL]: RSSI -69 dBm
[00000116ms][INFO][CELL]: Modem ready
[00000146ms][INFO][CELL]: RSSI -69 dBm
[00000146ms][INFO][CELL]: Setup SIM (timeout 1 s)
[00001233ms][INFO][CELL]: Looked up APN internet
[00001362ms][ERR ][CELL]: AT error code 50
[00001362ms][WARN][CELL]: Packet domain event reporting set failed!
[00001393ms][INFO][CELL]: RSSI -65 dBm
[00001393ms][INFO][CELL]: Network registration (timeout 180 s)
[00001443ms][INFO][CELL]: Registering network => Attaching network
[00001473ms][INFO][CELL]: RSSI -65 dBm
[00001473ms][INFO][CELL]: Attaching network (timeout 60 s)
[00001601ms][INFO][CELL]: Found PDP context 1
[00001649ms][INFO][CELL]: Activate PDP context 1


Connection Established.
[00001671ms][INFO][CELL]: Socket 0 open
[00001707ms][INFO][CELL]: Socket 1 open
[00001748ms][INFO][CELL]: Socket create id: 1
[00001883ms][INFO][CELL]: Socket 1 sent 43 bytes to 8.8.8.8 port 53
[00004311ms][INFO][CELL]: Socket 1 recv 59 bytes from 8.8.8.8 port 53
[00004331ms][INFO][CELL]: Close socket: 1 error: 0
[00004331ms][INFO][CELL]: Socket 1 closed
[00004373ms][INFO][CELL]: Socket create id: 1
TCP: connected with echo.mbedcloudtesting.com server
[00004448ms][INFO][CELL]: Socket 0 sent 4 bytes to 52.215.34.155 port 7
TCP: Sent 4 Bytes to echo.mbedcloudtesting.com
[00007560ms][INFO][CELL]: Socket 0 recv 4 bytes
[00007580ms][INFO][CELL]: Close socket: 1 error: 0
[00007580ms][INFO][CELL]: Socket 0 closed
Received from echo server 4 Bytes
[00007581ms][INFO][CELL]: CellularContext disconnect()
[00007630ms][INFO][CELL]: cb: CellularContext disconnected


Success. Exiting

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Tue Nov 20 09:45:32 2018 +0000
Parent:
25:c891a7063581
Child:
27:97054be1a741
Commit message:
Merge pull request #109 from ARMmbed/minor_fixes

Minor fixes, added disconnect and readme update.
.
Commit copied from https://github.com/ARMmbed/mbed-os-example-cellular

Changed in this revision

README.md Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed_app.json Show annotated file Show diff for this revision Revisions of this file
--- a/README.md	Mon Nov 19 07:00:32 2018 +0000
+++ b/README.md	Tue Nov 20 09:45:32 2018 +0000
@@ -6,11 +6,11 @@
 
 This particular cellular application uses a cellular network and network-socket APIs that are part of [`mbed-os`](https://github.com/ARMmbed/mbed-os).
 
-The program uses a [generic cellular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/netsocket/cellular/generic_modem_driver) using an external IP stack (LWIP) standard 3GPP AT 27.007 AT commands to setup the cellular modem and registers to the network.
+The program uses a [cellular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/cellular/framework/API) using an external IP stack (LWIP) standard 3GPP AT 27.007 AT commands to setup the cellular modem and registers to the network.
 
 After registration, the driver opens a point-to-point protocol (PPP) pipe using LWIP with the cellular modem and connects to internet. This driver currently supports UART data connection type only between your cellular modem and MCU.
 
-For more information on Arm Mbed OS cellular APIs and porting guide, please visit the [Mbed OS cellular API](https://os.mbed.com/docs/latest/reference/cellular-api.html) and [contributing documentation](https://os.mbed.com/docs/latest/reference/contributing-connectivity.html#cellularinterface).
+For more information on Arm Mbed OS cellular APIs and porting guide, please visit the [Mbed OS cellular API](https://os.mbed.com/docs/latest/reference/cellular.html) and [contributing documentation](https://os.mbed.com/docs/latest/reference/contributing.html).
 
 ### Download the application
 
@@ -88,11 +88,11 @@
 
 ### Board support
 
-The [generic cellular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/netsocket/cellular/generic_modem_driver) this application uses was written using only a standard AT command set. It uses PPP with an Mbed-supported external IP stack. These abilities make the driver essentially generic, or nonvendor specific. However, this particular driver is for onboard-modem types. In other words, the modem exists on the Mbed Enabled target as opposed to plug-in modules (shields). For more details, please see our [Mbed OS cellular documentation](https://os.mbed.com/docs/latest/reference/cellular-api.html).
+The [cellular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/cellular/framework/API) in this example uses PPP with an Mbed-supported external IP stack. It supports targets when modem exists on the Mbed Enabled target as opposed to plug-in modules (shields). For more details, please see our [Mbed OS cellular documentation](https://os.mbed.com/docs/latest/reference/cellular-api.html).
 
 Currently supported boards with onboard modem chips are:
 
-[u-blox C027](https://os.mbed.com/platforms/u-blox-C027/)  
+[u-blox C027](https://os.mbed.com/platforms/u-blox-C027/)
 [MultiTech MTS Dragonfly](https://os.mbed.com/platforms/MTS-Dragonfly/)
 
 
--- a/main.cpp	Mon Nov 19 07:00:32 2018 +0000
+++ b/main.cpp	Tue Nov 20 09:45:32 2018 +0000
@@ -105,7 +105,7 @@
 void dot_event()
 {
     while (true) {
-        Thread::wait(4000);
+        ThisThread::sleep_for(4000);
         if (iface && iface->is_connected()) {
             break;
         } else {
@@ -244,13 +244,20 @@
         retcode = test_send_recv();
     }
 
+    if (iface->disconnect() != NSAPI_ERROR_OK) {
+        print_function("\n\n disconnect failed.\n\n");
+    }
+
     if (retcode == NSAPI_ERROR_OK) {
         print_function("\n\nSuccess. Exiting \n\n");
     } else {
         print_function("\n\nFailure. Exiting \n\n");
     }
+
 #if MBED_CONF_MBED_TRACE_ENABLE
     trace_close();
+#else
+    dot_thread.terminate();
 #endif // #if MBED_CONF_MBED_TRACE_ENABLE
 
     return 0;
--- a/mbed_app.json	Mon Nov 19 07:00:32 2018 +0000
+++ b/mbed_app.json	Tue Nov 20 09:45:32 2018 +0000
@@ -33,7 +33,6 @@
   },
     "target_overrides": {
         "*": {
-            "target.features_add": ["LWIP"],
             "mbed-trace.enable": false,
             "lwip.ipv4-enabled": true,
             "lwip.ethernet-enabled": false,