BG96 Cat.M1 basic sample for WIZnet IoT Shield based on Mbed-OS Cellular APIs (SK telecom network in Korea)

Overview

This code could be access via Cat.M1(BG96 module) of SK telecom network in Korea. Need a WIZnet IoT Shield BG96 board and development board. The code forked Daniel_Lee's mbed-os-example-cellular-BG96 repository and added some features.

/media/uploads/hkjung/wiznetiotshield_bg96_nucleo-l476rg_stacking.png /media/uploads/hkjung/wiznetiotshield_bg96_nucleo-l476rg_separate.png

Tested with

  • NUCLEO_L476RG
  • DISCO_L475VG_IOT01A
  • K64F

Example functionality

This example showcases the following device functionality:

1. Import the application into your desktop:

mbed import https://os.mbed.com/users/hkjung/code/mbed-os-example-cellular-BG96/
 
cd mbed-os-example-cellular-BG96

2. Compile and program:

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

(supported toolchains : GCC_ARM / ARM / IAR)

3. Download binary to a target board

If need more information such as how to test, please look at https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-cellular/.

Files at this revision

API Documentation at this revision

Comitter:
hkjung
Date:
Mon Apr 29 00:37:57 2019 +0000
Parent:
37:84cc2e107564
Commit message:
Added hardware reset function for WIZnet IoT Shield BG96

Changed in this revision

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
diff -r 84cc2e107564 -r 8e4d8ba30f9f main.cpp
--- a/main.cpp	Thu Apr 25 08:19:34 2019 +0000
+++ b/main.cpp	Mon Apr 29 00:37:57 2019 +0000
@@ -19,6 +19,15 @@
 #include "UDPSocket.h"
 #include "CellularLog.h"
 
+/* Pin configuraiton */
+// Cat.M1
+#define MBED_CONF_IOTSHIELD_CATM1_RESET             D7
+#define MBED_CONF_IOTSHIELD_CATM1_PWRKEY            D9
+// On-board sensors
+#define MBED_CONF_IOTSHIELD_SENSOR_CDS              A0
+#define MBED_CONF_IOTSHIELD_SENSOR_TEMP             A1
+
+
 #define UDP 0
 #define TCP 1
 
@@ -35,6 +44,24 @@
 
 static rtos::Mutex trace_mutex;
 
+void iotshield_modem_init(void)
+{
+    DigitalOut _RESET_IOTSHIELD(MBED_CONF_IOTSHIELD_CATM1_RESET);
+    DigitalOut _PWRKEY_IOTSHIELD(MBED_CONF_IOTSHIELD_CATM1_PWRKEY);
+
+    _RESET_IOTSHIELD = 1;
+    _PWRKEY_IOTSHIELD = 1;
+    wait_ms(300);
+
+    _RESET_IOTSHIELD = 0;
+    _PWRKEY_IOTSHIELD = 0;
+    wait_ms(400);
+
+    _RESET_IOTSHIELD = 1;
+    wait_ms(1000);
+}
+
+
 #if MBED_CONF_MBED_TRACE_ENABLE
 static void trace_wait()
 {
@@ -219,6 +246,9 @@
     dot_thread.start(dot_event);
 #endif // #if MBED_CONF_MBED_TRACE_ENABLE
 
+    // Cat.M1 module init: Hardware reset and power on
+    iotshield_modem_init();
+
     // sim pin, apn, credentials and possible plmn are taken atuomtically from json when using get_default_instance()
     iface = NetworkInterface::get_default_instance();
     MBED_ASSERT(iface);
diff -r 84cc2e107564 -r 8e4d8ba30f9f mbed_app.json
--- a/mbed_app.json	Thu Apr 25 08:19:34 2019 +0000
+++ b/mbed_app.json	Mon Apr 29 00:37:57 2019 +0000
@@ -20,7 +20,7 @@
             "target.network-default-interface-type": "CELLULAR",
             "target.features_add": ["LWIP"],
             "mbed-trace.enable": true,
-            "lwip.ipv4-enabled": true,
+            "lwip.ipv4-enabled": false,
             "lwip.ipv6-enabled": true,
             "lwip.ethernet-enabled": false,
             "lwip.ppp-enabled": false,
@@ -35,9 +35,9 @@
             "nsapi.default-cellular-apn": "\"lte-internet.sktelecom.com\"",
             "nsapi.default-cellular-username": 0,
             "nsapi.default-cellular-password": 0,
-            "QUECTEL_BG96.tx": "D1",
-            "QUECTEL_BG96.rx": "D0",
+            "QUECTEL_BG96.tx": "D8",
+            "QUECTEL_BG96.rx": "D2",
             "QUECTEL_BG96.provide-default": true
         }
     }
-}
\ No newline at end of file
+}