SIM900 Driver for KEIL MDK-Network (PPP interface for TCP/IP)

I choose to use LPC4337 and the Cortex-M4 core. No particular preference, only that it was on my desk at the time I chose to write this post. Also, I bought this developer board here. The network driver is documented at length by Keil/ARM here, in case you need to familiarize yourself with it before proceeding.

There are 15 commits up to this one that detail the steps on how code changed through the process.

Communication for IoT or Embedded applications

Communication for IoT or Embedded applications

There is really a lot of talk about IoT and how many billion dollars it will be worth in the future. However, unless we solve actual problems that we face, that might be a dream that will only connect a bunch of toys to the internet without much of information for our use. One of those problems is connectivity.

Most examples available online from hardware manufacturers, for development kits, and from cloud service providers will only describe the connection to the internet via ethernet. If they do not show ethernet, the application is most likely a Bluetooth Smart client app that does not connect directly to the internet but via a host like a mobile phone. Using a mobile phone is not always the best option unless it is a wearable. There are many of those nowadays. You also cannot use ethernet everywhere you want. Your piece of hardware is grounded.

SIM900 Dial-up Connection Setup

SIM900 Dial-up Connection Setup

SIMCOM's SIM900 is the most common GSM/GPRS modules in the maker/hobbyist community. It is of course not the best and the experience people have had with it varies. Most people use this for simple tasks like SMS sending and receiving making the experience people have had largely positive. The module is also cheap and readily available. Compared to building your own baseband module, you get some advantages:

a) Certification of by regulatory institutions like FCC, CE, etc. is already done.

b) The software stack is already done. The only thing you have to worry about is the command protocol otherwise known as AT command set. The software stack is very deep and complicated and there are very few resources you will find online for this kind of work.

The list goes on...

Worth noting is that these benefits apply to almost all GSM module and so does most of the post below.