Skip to content

change_log

Sara Damiano edited this page Sep 11, 2026 · 1 revision

title: ChangeLog

ChangeLog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and its stricter, better defined, brother Common Changelog.

This project adheres to Semantic Versioning.


Unreleased

GitHub Release: [Unreleased]

Changed

  • BREAKING Rewrote SSL support module!
    • All function names have changed!
      • Modem functions have been renamed to "load" instead of "set" to clarify that the certificate data is being loaded into the flash of the module rather than being used somewhere in the library code.
      • Client functions have been renamed to "setXXName" to clarify that what you are selecting is the file name of a certificate that has been pre-loaded onto the module, not the certificate data itself.
      • A new parent class has been created for sockets
      • All enums have been moved into a separate file
  • BREAKING Made date/time enums and SSL enums enum classes, requiring the class name to be included when calling them.
  • Separated Espressif into 3 modules:
    • the ESP32 (requiring AT firmware >= 3.2),
    • the ESP8266 using the final release of its AT firmware (v2.2.1_esp8266),
    • and the ESP8266 using the original "non-OS" firmware that the first version of this library was written for.
  • Created missing interface for CRTP for the client related modem functions
  • Made adjustments and corrections to the A7672x based on similar functionality of the SIM7600.
  • Fixed various compiler warnings, where possible
  • Increased max baud rate for autobauding.
  • Minor changes in notes and comments
  • BREAKING Corrected the spelling of the function setRadioAccessTecnology to setRadioAccessTechnology and getCurrentRadioAccessTecnology to getCurrentRadioAccessTechnology for generic u-blox modules.
  • BREAKING Renamed the function setURAT to setRadioAccessTechnology for u-blox SARA R4 modules.
  • BREAKING Changed the inputs and outputs of getCurrentRadioAccessTechnology for the u-blox SARA R5 modules and made functional.
  • Potentially breaking Changed the response type of NTPServerSync from a byte with inconsistent meaning to a boolean indicating success. Using a boolean test against this may now return inverted results. Previously, Espressif and BG96 modules returned a falsy '0' byte indicating success, but SIMCom modules returned a truthy '1' byte for success.

Added

  • Added support for selecting SSL version and authentication types on select modules
  • Added support for writing/loading certificates on select modules
  • Added support for selecting specific certificates for specific connections on select modules
    • This includes both CA and client certs
  • Added SSL support for the SIM7600 by @floBik
  • Added functions beginWrite and endWrite to directly write into the modem's send buffer to help ensure that an entire request is sent in one chunk.
    • WARNING: These functions will NOT warn you or prevent you from writing more to the modem's send buffer than it is possible for the modem to receive
      • Prior to this version of the library, there wasn't any support for limiting requests to the modem's built-in limits on any functions. There now is.
    • These functions are directly analogous to the beginPublish and endPublish functions within PubSubClient and should be usable in combination with them.
gsmClient.beginWrite(topic_len + msg_len + MQTT_MAX_HEADER_SIZE);
// NOTE: total length _**MUST**_ be less than the specific module's maximum send size
// You can call TINY_GSM_SEND_MAX_SIZE to verify you haven't exceeded the maximum
mqttClient.beginPublish(topic, msg_len, false);
gsmClient.write((uint8_t*)message, strlen(message));
// or mqttClient.write(...) or stream.write(...)
// print/println functions should also work here
mqttClient.endPublish();
gsmClient.endWrite(strlen(request));
  • Added an example connecting to AWS IoT Core with mutual authentication.
  • Added an example using multiple connections at once
  • Added an "is_secure" property to all clients to help differentiate them
  • Added a function (setDefaultBaud(uint32_t baud)) to set default baud rate, currently only available on Espressif modules
  • Added defines for the frequency of checking for lost incoming message notifications (<a href="_tiny_gsm_common_8h.html#a7960b3b4309feff8ac36ba70edd161ab" class="m-doc">TINY_<wbr />GSM_<wbr />UNREAD_<wbr />CHECK_<wbr />MS</a>)
    • This can be used as an external build flag.
  • Added defines for the maximum size each modem accepts in a single send command (TINY_GSM_SEND_MAX_SIZE)
    • This is only to be used internally
    • Implemented support for breaking all send calls into chunks less than the specified TINY_GSM_SEND_MAX_SIZE for each module.
  • Added defines for the number of secure sockets (TINY_GSM_SECURE_MUX_COUNT)
    • This is only for reference to be used internally
  • Added defines TINY_GSM_MUX_DYNAMIC and TINY_GSM_MUX_STATIC to be used internally to help build module support
    • Implemented use of these for all modules.
  • Implemented a function (moveCharsFromStreamToFifo) for transferring a stream of characters from the modem stream into the fifo.
    • Implemented use of this function for all modules.
  • Added compile-time modem capability detection for networking, GPS, SSL, SMS, calling, battery, temperature, Bluetooth, and more and an example demonstrating its use.
  • Added a function getConfiguredModem() to return information about the compiled modem without communicating with the modem.
  • Added complete Doxygen-style documentation to all functions and created scripts to update the internal lists of available functions for each modem.
  • Added new powerOff() function as the preferred naming convention; deprecated poweroff() in favor of the new camelCase naming.

Removed

  • BREAKING Removed the ShowNTPError function.
  • Removed certificate arrays from the modem objects
  • Only include the SSL template on the modules that support the SSL enhancements and certificate management instead of a bare flag for security.

Fixed

  • Don't force the maintain function to call modemGetAvailable if the sock_available is already non-zero
  • Don't repeatedly call for sock_connected and sock_available for each socket on espressif modules when the response always includes all sockets.
  • Fixes to stop logic on Espressif and SIM7080
  • Modified HTTP examples to attempt to connect to a site that doesn't require SSL.
    • @vshymanskyy's site which displays the TinyGSM logo now requires SSL.
  • The Arduino keywords file now contains all relevant Doxygen-derived keywords.

v0.12.0

GitHub Release: [v0.12.0]

Changed

  • Moved bulk of waitResponse function to modem template and gave modems handleURCs fxn
  • Moved option in waitResponse for verbose outputs.
  • setBaud now returns a bool
  • Replace new line consts with defines and renamed to AT_NL
  • Renamed all RegStatus enums to be unique
  • Replaced NULL with nullptr and replaced c-style casts.
  • Moved setCertificates function and the certificate name matrix to the SSL template.
  • Changed inputs for (unimplemented) SSL certificate functions.
  • All modems will now return the pre-defined manufacturer and model in the name if the function to get the internal name fails.
  • Cleaned up code for getting modem names.
  • Made battery return types signed.

Added

  • Added support for SSL for the Quectel BG95 and BG96 from Aurelien BOUIN and George O'Connor
  • Added support for UBLOX SARA-R5 from Sebastian Bergner
  • Added support for SIMCOM A7672x from Giovanni de Rosso Unruh
  • Added SIM5320 GPS location from Bengarman
  • Added functions getModemSerialNumber, getModemModel, and getModemRevision.
  • Added deep debugging option
  • Added documentation to the FIFO class

Removed

  • Removed non-functional factory reset from SIM70xx series

Fixed

  • Removed extra wait on SIM7000 from Mikael Fredriksson
  • Fix status returns on ESP8266/ESP32 AT commands
  • Fix length of HEX for Sequans Monarch
  • Fix SIM7600 password then user when cid is set from github0013
  • Fix cardinal points in location by gps for SIM7600 from Juxn3
  • Fix NTP server sync for SIM70xx models from Gonzalo Brusco
  • Fixed SIM70xx inheritance


Generated by Doxygen and m.css with templates from doxybook2 Updated on 2026-09-11

Clone this wiki locally