Library for controlling the WNC 14A2A from the K64F Freedom Board. It fulfills platform specific pure virtual methods from the WncControllerLibrary.

Dependencies:   WncControllerLibrary

Dependents:   WNC14A2AInterface

Fork of WncControllerK64F by Fred Kellerman

Use this interface to connect to and interact with the WNC M14A2A LTE Cellular Data Module which is provided by Wistron NeWeb Corporation (WNC) when using ARMmbed v5. The interface provides a Networking interface that can be used with the AT&T Cellular IoT Starter Kit that is sold by Avnet (

To demonstrate the use of the Interface, a series of example programs have been provided. Links to these examples are provided below. All examples can be compiled using both the on-line compiler and the ARMmbed CLI (command line interface, see

NOTE: This library/class is specific to the AT&T Cellular IoT Starter Kit which uses a FRDM-K64F. The users compiler should be configured to use the FRDM-K64F platform.

Example Programs

Import the example programs below and follow the in each to run the example program.

  • several examples of the interface using easy_connect.
  • SMS demonstration program that demonstrates SMS usage
  • Sockets demonstration program demonstrating using TCP sockets to interact with others
  • As new example program are developed, this README will be updated


The WNCInterface class currently supports the following version(s):

  • MPSS: M14A2A_v11.21.162331 APSS: M14A2A_v11.27.162331


This library is released under the Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License and may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

diff -r 11d88f24cde3 -r d9558aefb9e0 WncControllerK64F.h
--- a/WncControllerK64F.h	Thu Apr 06 21:43:07 2017 -0400
+++ b/WncControllerK64F.h	Mon Apr 17 23:58:40 2017 +0000
@@ -32,7 +32,7 @@
 #include <string>
 #include <stdint.h>
 #include "mbed.h"
-#include "Serial.h"
+#include "BufferedSerial.h"
 #include "WncController.h"
 namespace WncControllerK64F_fk {
@@ -77,7 +77,7 @@
      * @param wnc_uart - a pointer to the serial uart that is used to communicate with the WNC modem.
      * @param debug_uart - a pointer to a serial uart for the debug output to go out of, if NULL debug will not be output.
-    WncControllerK64F(struct WncGpioPinListK64F * pPins, Serial * wnc_uart, Serial * debug_uart = NULL);
+    WncControllerK64F(struct WncGpioPinListK64F * pPins, BufferedSerial * wnc_uart, BufferedSerial * debug_uart = NULL);
@@ -90,7 +90,7 @@
      * @param pUart - a pointer to a uart to use to collect the user input and put the output from the WNC.
      * @param echoOn - set to true to echo what is input back to the output of pUart.
-    bool enterWncTerminalMode(Serial *pUart, bool echoOn);
+    bool enterWncTerminalMode(BufferedSerial *pUart, bool echoOn);
@@ -116,8 +116,8 @@
     virtual void stopTimerB(void);
     virtual int  getTimerTicksB_mS(void);
-    Serial * m_pDbgUart;
-    Serial * m_pWncUart;
+    BufferedSerial * m_pDbgUart;
+    BufferedSerial * m_pWncUart;
     WncGpioPinListK64F m_gpioPinList;
     Timer m_logTimer;
     Timer m_timerA;