Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESP
  3. TinyGSM

TinyGSM

LGPL-3.0C++v0.12.0

A lightweight Arduino library for GSM, LTE, and WiFi modules that provides a simple client interface for IoT connectivity.

GitHubGitHub
2.2k stars797 forks0 contributors

What is TinyGSM?

TinyGSM is an Arduino library that enables communication with GSM, LTE, and WiFi modules via AT commands. It provides a unified client interface for connecting IoT devices to the internet over cellular or WiFi networks, handling data connections, SMS, and more. The library solves the complexity of interacting with diverse modem hardware by abstracting AT command sequences into simple Arduino functions.

Target Audience

Arduino developers and IoT hobbyists building projects that require cellular or WiFi connectivity, especially those working with resource-constrained microcontrollers and needing a lightweight, reliable library.

Value Proposition

Developers choose TinyGSM for its broad modem support, low memory usage, and straightforward Arduino Client API, which reduces integration effort compared to writing custom AT command handlers or using heavier alternatives.

Overview

A small Arduino library for GSM modules, that just works

Use Cases

Best For

  • Adding cellular connectivity to Arduino-based IoT sensors
  • Building battery-powered field devices that send data via GSM/LTE
  • Creating MQTT clients for remote monitoring over cellular networks
  • Prototyping IoT projects with various GSM module brands
  • Developing low-memory applications requiring internet access on Arduino Uno
  • Integrating SMS alerts or GPS location into embedded systems

Not Ideal For

  • Projects requiring UDP communication for real-time data streaming
  • Applications with strict non-blocking operation needs, such as real-time control systems
  • Teams using modems not explicitly listed or in alpha support, like Goouuu Tech IOT-GA6

Pros & Cons

Pros

Wide Modem Support

Compatible with over 30 modems from major manufacturers like SIMCom, Quectel, u-blox, and ESP8266/ESP32, as detailed in the Supported modems list, reducing vendor lock-in.

Minimal Resource Footprint

Optimized for small memory usage; the WebClient example uses only 15022 bytes (46%) on Arduino Uno, leaving more space for application code, as shown in the 'TinyGSM is tiny' section.

Unified Client API

Wraps modem AT commands into the standard Arduino Client interface, enabling easy integration with libraries like PubSubClient for MQTT and HTTPClient, mentioned in Arduino Client interface support.

Additional Functionality

Includes support for SMS, USSD, voice calls, and GPS on supported hardware, enhancing features beyond basic data connectivity, as outlined in the Features section.

Cons

Incomplete Protocol Support

UDP is not yet supported on any module, and SSL/TLS implementation is inconsistent—some modems like SIM900 and A6/A7 lack it entirely, limiting secure or real-time applications.

Blocking Architecture

Functions like gprsConnect() block execution for up to several minutes in poor service areas, as noted in 'How does it work?', hindering responsive or time-sensitive code.

Demanding Power Needs

Modules require up to 2A for stable operation, four times a standard USB supply, leading to connectivity issues if not properly powered, as warned in the troubleshooting section.

Configuration Challenges

Setup involves managing baud rates, network settings, and firmware quirks, with extensive troubleshooting for issues like broken initial configuration and SoftwareSerial problems.

Frequently Asked Questions

Quick Stats

Stars2,222
Forks797
Contributors0
Open Issues308
Last commit2 months ago
CreatedSince 2016

Tags

#at-commands#embedded-systems#low-memory#mqtt#mqtt-client#lte#iot-connectivity#arduino#sim800#http-client#arduino-library#gprs

Built With

A
Arduino

Included in

ESP2.3k
Auto-fetched 16 hours ago

Related Projects

Wasm3Wasm3

🚀 A fast WebAssembly interpreter and the most universal WASM runtime

Stars8,046
Forks536
Last commit11 days ago
IRremoteESP8266IRremoteESP8266

Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/

Stars3,627
Forks938
Last commit1 month ago
ESPAudioESPAudio

Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, OGG/Opus, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32 and Pico

Stars2,405
Forks472
Last commit4 days ago
HomeSpanHomeSpan

HomeKit Library for the Arduino-ESP32

Stars2,182
Forks202
Last commit27 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub