New libraries: ESP8266 AT, GSM AT and GPS NMEA parsers

In the past few weeks, I was working on 3 new generic libraries, specially intended for embedded systems.

Libraries are:

  • ESP8266 AT parser version 2
  • GSM AT parser for SIMcom modules (SIM800, SIM900, etc)
  • GPS NMEA parser for parsing NMEA statements from GPS output

Each library is written in a way where user must prepare additional coding to support arhitecture where it is used. They are written in ANSII C and will work on any compiler which is in ANSII C89 standard. Below is a brief description of each library.

Each library has its own documentation page and Github repository with examples. Please take a look at reading below and check if it fits your needs.

You are welcome to report a bug, suggest a feature or ask other question. Please use official repositories for this purpose.

ESP8266 AT parser

After first version in January 2016, I decided to rewrite entire library to be more user friendy for future upgrades and to allow easier parsing without unexpected problems as that was in first version. It features less RAM usability than first library version. Other specs are:

  • Supports official AT commands software from Espressif Systems
  • Supports different platforms (written in ANSI C)
  • Supports RAM limited embedded systems
  • Event based system with callback functions. Almost none blocking functions except one which are needed
  • Supports multiple connections at the same time (TCP, UPD, SSL)
  • Supports client and/or server mode
  • Supports station and softAP mode
  • Supports ping to other server
  • Free to use
  • Documentation, reposiroty and download

GSM AT parser

GSM AT parser is a new and fresh library, build with the exactly same principle as ESP8266 AT parser. It works with SIMcom GSM modules because of their powerful features in simple low-cost modules.

  • Supports official AT commands from SIMcom modules
  • Supports RAM limited embedded systems
  • Supports CALL, SMS, GPRS, TCP/UDP CLIENT, HTTP, PHONEBOOK and others parts, which are all supported directly using AT commands
  • Supports different platforms (written in ANSI C)
  • Supports RAM limited embedded systems
  • RTOS first written with support for blocking or non-blocking (non RTOS) API function calls
  • Free to use
  • Documentation, repository and download

GPS NMEA parser

GPS NMEA parser will process standard NMEA 0183 output format from GPS devices. It features basic 4 statement parsing as well as user defined custom statements when required for other application usage.

Library is totally independent of platform, can be used on PC easily. It consist of one input function, processing function and output data structure. There is no communication dependance

  • Platform independent, easy to port
  • Written in ANSI C89
  • Parser has built-in support for 4 GPS statements
    • GPGGA: GPS fix data
    • GPGSA: GPS active satellites and dillusion of position
    • GPGSV: List of satellites in view zone
    • GPRMC: Recommended minimum specific GPS/Transit data
  • Support for custom GPS statements for user specific applications
  • Low-level layer is separated from application layer, thus allows you to add custom communication with GPS device
  • Free of charge
  • Documentation, repository and download

tilz0R

Owner of this site. Also electronic enthusiasts, web developer, 3D printer fan, handball player and more. Big fan of STM32F4 devices. In anticipation of the new Discovery board for STM32F7 lines.

You may also like...

Read before commenting!

Before you make a new comment, make sure you agree with things listed below:

  • - Read post to make sure if it is already posted what you are asking for,
  • - Make sure you have the latest version of libraries used in your project,
  • - Make a clean and grammatically correct written message,
  • - Report as many details as possible, including what have you done so far,
  • - Do NOT post any code here. Use Pastebin,
  • - Do NOT post any error codes here. Use Pastebin,
  • - Specify STM32Fxxx family and used Discovery/EVAL/Nucleo or custom made board,
  • - Make sure your clock is set correct for PLL,
  • - If you are using my HAL drivers, please check this post how to start.
Comment will be deleted on breaking these rules without notification!
  • radipta ady

    morning sir, I am new to stm32f4 programming. currently I am learning with stdperipheral library and now I have some school project with stm32f4 and sim800l module. what I wanna ask, is this library use a HAL library or STDperiph ? because for now I use stdperiph in all my project.
    thank you

    • It is mentioned that it is platform independent so use what you want.

      • radipta ady

        so it is okay to use it with program that builded with stdperiph library , thank for the answer. it will help me a lot