-
Notifications
You must be signed in to change notification settings - Fork 793
page_supported_module_functions
Sara Damiano edited this page Sep 11, 2026
·
1 revision
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TinyGsmXBee(Stream& stream, int8_t resetPin) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| TinyGsm(Stream& stream) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restart(const char* pin = nullptr) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| powerOff() | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| radioOff() | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| sleepEnable(bool enable = true) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| setPhoneFunctionality(uint8_t fun, bool reset = false) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getRegistrationStatus() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| isNetworkConnected() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| waitForNetwork(uint32_t timeout_ms = 60000L, bool check_signal = false) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getSignalQuality() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getLocalIP() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| localIP() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getLocalIPSecure() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getPreferredModes() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getPreferredMode() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setPreferredMode(uint8_t mode) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setNetworkSystemMode(bool n) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setRadioAccessTechnology(uint8_t urat, uint8_t) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ |
| setRadioAccessTechnology(uint8_t selected, uint8_t preferred) | ✅ | ✅ | ||||||||||||||||||
| getCurrentRadioAccessTechnology() | ✅ | ✅ | ||||||||||||||||||
| getNetworkModes() | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||
| getNetworkMode() | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||
| setNetworkMode(uint8_t mode) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||
| getNetworkSystemMode(bool& n, int16_t& stat) | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| simUnlock(const char* pin) | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getSimCCID() | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getIMEI() | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getIMSI() | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getSimStatus(uint32_t timeout_ms = 10000L) | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gprsConnect(const char* apn, const char* user = nullptr, const char* pwd = nullptr) | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ |
| gprsDisconnect() | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| isGprsConnected() | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getOperator() | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getProvider() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| networkConnect(const char* ssid, const char* pwd) | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| networkDisconnect() | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| maintain() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TinyGsmSSL() | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| TinyGsmSSL(modemType& , uint8_t = 0) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| loadCertificate(const char* certificateName, const char* cert, const uint16_t len) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| loadCertificate(const String& certificateName, const String& cert, const uint16_t len) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| deleteCertificate(const String& filename) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| printCertificate(const char* filename, Stream& print_stream) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| printCertificate(const String& filename, Stream& print_stream) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertCertificate(CertificateType cert_type, const char* filename) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertCertificate(CertificateType cert_type, const String& filename) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertCACertificate(const char* ca_cert_name) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertCACertificate(const String& ca_cert_name) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertClientCertificates(const char* client_cert_name, const char* client_cert_key) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertClientCertificates(const String& client_cert_name, const String& client_cert_key) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertPSKandID(const String& psk, const String& pskIdent) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertPSKTable(const char* psk_table_name) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| convertPSKTable(const String& psk_table_name) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| loadCACert(uint8_t certNumber, const char* cert, const uint16_t len) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| loadClientCert(uint8_t certNumber, const char* cert, const uint16_t len) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| loadPrivateKey(uint8_t keyNumber, const char* key, const uint16_t len) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| loadCertificateByNumber(CertificateType cert_type, uint8_t certNumber, const char* cert, const uint16_t len) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| deleteCertificateByNumber(CertificateType cert_type, uint8_t certNumber) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| printCertificateByNumber(CertificateType cert_type, uint8_t certNumber, Stream& print_stream) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| configureSSLContext(uint8_t context_id, const char* sni, SSLAuthMode sslAuthMode, SSLVersion sslVersion) | ✅ | ✅ | ||||||||||||||||||
| applySSLCertificates(uint8_t mux, SSLAuthMode sslAuthMode, const char* CAcertName, const char* clientCertName, const char* clientKeyName) | ✅ | ✅ | ||||||||||||||||||
| applySSLPSK(uint8_t mux, const char* pskTableName) | ✅ | ✅ | ||||||||||||||||||
| configureSSLContext(uint8_t context_id, SSLAuthMode sslAuthMode, SSLVersion sslVersion, const char* CAcertName, const char* clientCertName, const char* clientKeyName) | ✅ | ✅ | ✅ | |||||||||||||||||
| linkSSLContext(uint8_t mux, uint8_t context_id) | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| callAnswer() | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ✅ |
| callNumber(const String& number) | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ |
| callHangup() | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ |
| dtmfSend(char cmd, int duration_ms = 100) | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ |
| setGsmBusy(bool busy = true) | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| audioSetHeadphones() | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| audioSetSpeaker() | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| audioMuteMic(bool mute) | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setVolume(uint8_t volume = 50) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| getVolume() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| setMicVolume(uint8_t channel, uint8_t level) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| setAudioChannel(uint8_t channel) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| playToolkitTone(uint8_t tone, uint32_t duration) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sendUSSD(const String& code) | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ |
| sendSMS(const String& number, const String& text) | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| sendSMS_UTF16(const char* const number, const void* text, size_t len) | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| deleteAllSMS() | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getGsmLocationRaw() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| getGsmLocation() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| getGsmLocation(float* lat, float* lon, float* accuracy = 0, int* year = 0, int* month = 0, int* day = 0, int* hour = 0, int* minute = 0, int* second = 0) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| getGsmLocationTime(int* year, int* month, int* day, int* hour, int* minute, int* second) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| enableGPS() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ |
| disableGPS() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ |
| getGPSraw() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ |
| getGPS(float* lat, float* lon, float* speed = 0, float* alt = 0, int* vsat = 0, int* usat = 0, float* accuracy = 0, int* year = 0, int* month = 0, int* day = 0, int* hour = 0, int* minute = 0, int* second = 0) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ |
| getGPSTime(int* year, int* month, int* day, int* hour, int* minute, int* second) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ |
| setGNSSMode(uint8_t mode, bool dpo) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getGNSSMode() | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NTPServerSync(const char* server =pool.ntp.org", int TimeZone = 0)" | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| NTPServerSync(const String& server, int TimeZone = 0) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| waitForTimeSync(uint16_t timeout_s = 120) | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getGSMDateTime(TinyGSMDateTimeFormat format) | ✅ | ❌️ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getNetworkTime(int* year, int* month, int* day, int* hour, int* minute, int* second, float* timezone) | ✅ | ❌️ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getNetworkUTCTime(int* year, int* month, int* day, int* hour, int* minute, int* second, float* timezone) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getNetworkEpoch(TinyGSM_EpochStart epoch = TinyGSM_EpochStart::UNIX) | ✅ | ❌️ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| setTimeZone(int8_t timezone, bool enable_sync = true) | ✅ | ✅ | ||||||||||||||||||
| setTimeSyncInterval(uint16_t seconds) | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getBattVoltage() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| getBattPercent() | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| getBattChargeState() | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ |
| getBattStats(int8_t& chargeState, int8_t& percent, int16_t& milliVolts) | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getTemperature() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ✅ | ❌️ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ✅ | ❌️ | ✅ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| streamWrite(T last) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| streamWrite(T head, Args... tail) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| streamClear() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| streamDump(int16_t expected_len) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| streamClear(void) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| getBeeType() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getBeeName() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getSeries(void) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| commandMode(uint8_t retries = 5) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| writeChanges(void) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| exitCommand(void) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| exitAndFail(void) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| readResponseString(uint32_t timeout_ms = 1000) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| readResponseInt(uint32_t timeout = 1000L) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| sendATGetString(GsmConstStr cmd) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| changeSettingIfNeeded(GsmConstStr cmd, int16_t newValue, uint32_t timeout_ms = 1000L) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| changeSettingIfNeeded(GsmConstStr cmd, String newValue, uint32_t timeout_ms = 1000L) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| gotIPforSavedHost() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GsmClient() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| GsmClient(TinyGsm& modem, uint8_t mux) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| init(modemType* modem, uint8_t mux) | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(const char* host, uint16_t port, int timeout_s) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ |
| connect(IPAddress ip, uint16_t port, int timeout_s) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connect(const char* host, uint16_t port) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connect(IPAddress ip, uint16_t port) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| stop(uint32_t maxWaitMs) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| write(const uint8_t* buf, size_t size) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| write(uint8_t c) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| available() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| read(uint8_t* buf, size_t size) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| read() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| peek() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| flush() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connected() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| GsmClientSecure() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| GsmClientSecure(TinyGsm& modem, uint8_t mux) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| GsmClientSecure(TinyGsm& modem, SSLAuthMode sslAuthMode, SSLVersion sslVersion, const char* CAcertName, const char* clientCertName, const char* clientKeyName) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
| GsmClientSecure(TinyGsm& modem, uint8_t mux, SSLAuthMode sslAuthMode, SSLVersion sslVersion, const char* CAcertName, const char* clientCertName, const char* clientKeyName) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
| GsmClientSecure(TinyGsm& modem, const char* pskIdent, const char* psKey, SSLVersion sslVersion) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
| GsmClientSecure(TinyGsm& modem, uint8_t mux, const char* pskIdent, const char* psKey, SSLVersion sslVersion) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
| GsmClientSecure(TinyGsm& modem, const char* pskTableName, SSLVersion sslVersion) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
| GsmClientSecure(TinyGsm& modem, uint8_t mux, const char* pskTableName, SSLVersion sslVersion) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GsmSecureClient() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| setSSLContextIndex(uint8_t sslCtxIndex) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setSSLAuthMode(SSLAuthMode mode) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setSSLVersion(SSLVersion version) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setStrictSSL(bool strict) | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| connect(const char* host, uint16_t port, int timeout_s) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| connect(IPAddress ip, uint16_t port, int timeout_s) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(const char* host, uint16_t port) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(IPAddress ip, uint16_t port) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| stop(uint32_t maxWaitMs) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| stop() | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| write(const uint8_t* buf, size_t size) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| write(uint8_t c) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| available() | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| read(uint8_t* buf, size_t size) | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| read() | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| peek() | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| flush() | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connected() | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| setCACertName(const char* CAcertName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setCACertName(const String& CAcertName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setClientCertName(const char* clientCertName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setClientCertName(const String& clientCertName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setPrivateKeyName(const char* clientKeyName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setPrivateKeyName(const String& clientKeyName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setCACertificateNumber(uint8_t certNumber) | ✅ | ✅ | ||||||||||||||||||
| setClientCertificateNumber(uint8_t certNumber) | ✅ | ✅ | ||||||||||||||||||
| setPrivateKeyNumber(uint8_t keyNumber) | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| setPSKTableName(const char* pskTableName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setPSKTableName(const String& pskTableName) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setPreSharedKey(const char* pskIdent, const char* psKey) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| setPreSharedKey(const String& pskIdent, const String& psKey) | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| remoteIP() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getMux() | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getConnectionID() | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| beginWrite(uint16_t size) | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| endWrite(uint16_t expected_size = 0) | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ❌️ | ❌️ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GsmClient() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| GsmClient(TinyGsm& modem, uint8_t mux) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| init(modemType* modem, uint8_t mux) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(const char* host, uint16_t port, int timeout_s) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connect(IPAddress ip, uint16_t port, int timeout_s) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connect(const char* host, uint16_t port) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connect(IPAddress ip, uint16_t port) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| stop(uint32_t maxWaitMs) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| write(const uint8_t* buf, size_t size) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| write(uint8_t c) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| available() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| read(uint8_t* buf, size_t size) | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| read() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| peek() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| flush() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| connected() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| connect(const char* host, uint16_t port, int timeout_s) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(IPAddress ip, uint16_t port, int timeout_s) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(const char* host, uint16_t port) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connect(IPAddress ip, uint16_t port) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| stop(uint32_t maxWaitMs) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| stop() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| write(const uint8_t* buf, size_t size) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| write(uint8_t c) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| available() | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| read(uint8_t* buf, size_t size) | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| read() | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| peek() | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| flush() | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| connected() | ✅ | ❌️ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ai-Thinker A6 | Digi XBee | Espressif ESP32 | Espressif ESP8266 | Espressif ESP8266 (NonOS) | Neoway M590 | Quectel BG96 | Quectel M95 | Quectel MC60 | SIMCom A7672x | SIMCom SIM5360 | SIMCom SIM7000 | SIMCom SIM7000 (SSL) | SIMCom SIM7080 | SIMCom SIM7600 | SIMCom SIM800 | Sequans Monarch | u-blox 2G and 3G modules | u-blox SARA-R4 | u-blox SARA-R5 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| remoteIP() | ❌️ | ✅ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ | ❌️ |
| getMux() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| getConnectionID() | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| beginWrite(uint16_t size) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
| endWrite(uint16_t expected_size = 0) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌️ | ✅ | ✅ | ✅ |
Generated by Doxygen and m.css with templates from doxybook2 Updated on 2026-09-11
If you like TinyGSM library - give it a star, or fork it and contribute!