finds.dev← search

// the find

vshymanskyy/TinyGSM

★ 2,219 · C++ · LGPL-3.0 · updated Jul 2026

A small Arduino library for GSM modules, that just works

TinyGSM is an Arduino library that wraps the AT command sets of dozens of GSM/cellular modem families (SIM800/900/7000/7600, u-blox, Quectel, XBee, plus ESP8266/ESP32 AT mode) into a single standard Arduino Client interface. It's for embedded developers building cellular or GPRS-connected devices on constrained MCUs like an Uno or Nano.

Normalizes wildly inconsistent AT command dialects across dozens of modem chips so a sketch written for HTTP/MQTT/Blynk over Ethernet or WiFi ports over almost unchanged. Genuinely small footprint — 15KB flash and 574B RAM in the WebClient example, smaller than Arduino's own GSM library. Broad, actively maintained modem matrix with per-chip capability documentation (simultaneous TCP connections, SSL support, GPS, USSD) so you know upfront what a given modem can't do. Diagnostics and FactoryReset sketches plus StreamDebugger integration make bring-up on flaky serial hardware far less painful than debugging raw AT commands by hand.

Entirely blocking I/O — gprsConnect() and client.connect() can stall for minutes on poor signal, which is a real constraint if the sketch needs to do anything else concurrently. No SMS receiving, no UDP, and SSL/voice/USSD support varies per modem, so you have to cross-check the support matrix before picking hardware. No abstraction for module power sequencing or reset pins; the README itself admits power supply issues are the most common cause of failures, and you're left to write that logic yourself. LGPL-3.0 licensing is friction for anyone shipping closed firmware without dynamic linking, unlike the MIT/Apache norm for most Arduino libraries.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →