Skip to content

supported_module_functions_supported module functions

Sara Damiano edited this page Oct 27, 2026 · 1 revision

Supported Module Functions

Modem - GSM Modem Constructor

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
TinyGsm(Stream& stream) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
TinyGsm(Stream& stream, int8_t resetPin) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌

Modem - Basic functions

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
begin(const char* pin=nullptr) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
init(const char* pin=nullptr) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
sendAT(Args... cmd) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
setBaud(uint32_t baud) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
setDefaultBaud(uint32_t baud) ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
forceModemBaud(StreamObject& at_serial, uint32_t targetBaud) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
testAT(uint32_t timeout_ms=10000L) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
waitResponse(uint32_t timeout_ms, String& data, GsmConstStr r1=GFP(ModemConfig::GSM_OK), GsmConstStr r2=GFP(ModemConfig::GSM_ERROR), GsmConstStr r3=nullptr, GsmConstStr r4=nullptr, GsmConstStr r5=nullptr, GsmConstStr r6=nullptr, GsmConstStr r7=nullptr, GsmConstStr r8=nullptr) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
waitResponse(uint32_t timeout_ms, GsmConstStr r1=GFP(ModemConfig::GSM_OK), GsmConstStr r2=GFP(ModemConfig::GSM_ERROR), GsmConstStr r3=nullptr, GsmConstStr r4=nullptr, GsmConstStr r5=nullptr, GsmConstStr r6=nullptr, GsmConstStr r7=nullptr, GsmConstStr r8=nullptr) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
waitResponse(GsmConstStr r1=GFP(ModemConfig::GSM_OK), GsmConstStr r2=GFP(ModemConfig::GSM_ERROR), GsmConstStr r3=nullptr, GsmConstStr r4=nullptr, GsmConstStr r5=nullptr, GsmConstStr r6=nullptr, GsmConstStr r7=nullptr, GsmConstStr r8=nullptr) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getConfiguredModem() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getModemInfo() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getModemName() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getModemManufacturer() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getModemModel() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getModemRevision() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getModemSerialNumber() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
factoryDefault() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - Power functions

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) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - Generic network functions

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
getLocalIPSecure() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
getRegistrationStatus() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
isNetworkConnected() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
waitForNetwork(uint32_t timeout_ms=60000L, bool check_signal=false) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getSignalQuality() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getLocalIP() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
localIP() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - Network mode / type / technology functions

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
getNetworkModes() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setRadioAccessTechnology(uint8_t, uint8_t) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅
getCurrentRadioAccessTechnology() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ✅
getNetworkMode() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setNetworkMode(uint8_t mode) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
getPreferredModes() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
getPreferredMode() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
setPreferredMode(uint8_t mode) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
getNetworkSystemMode(bool& n, int16_t& stat) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setNetworkSystemMode(bool n) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌

Modem - SIM card functions

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) ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - Cellular data functions

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
dataConnect(const charapn, const char user=nullptr, const char* pwd=nullptr) ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
dataDisconnect() ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
isDataConnected() ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
gprsConnect(const charapn, const char user=nullptr, const char* pwd=nullptr) ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
gprsDisconnect() ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
isGprsConnected() ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getOperator() ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
getProvider() ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌

Modem - WiFi functions

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 charssid, const char pwd) ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
networkDisconnect() ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌

Modem - Socket listening functions

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() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - Secure socket layer (SSL) certificate management functions

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
loadCACert(uint8_t certNumber, const char* cert, const uint16_t len) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
loadCertificate(const charcertificateName, const char cert, const uint16_t len) ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
loadCertificate(const char* certificateName, GsmConstStr cert, const uint16_t len) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
loadClientCert(uint8_t certNumber, const char* cert, const uint16_t len) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
loadCertificate(const String& certificateName, const String& 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) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
loadCertificateByNumber(CertificateType cert_type, uint8_t certNumber, GsmConstStr cert, const uint16_t len) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
printCertificate(const char* filename, Stream& print_stream) ❌ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
deleteCertificateByNumber(CertificateType cert_type, uint8_t certNumber) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
printCertificate(const String& filename, Stream& print_stream) ❌ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertCertificate(CertificateType cert_type, const char* filename) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
printCertificateByNumber(CertificateType cert_type, uint8_t certNumber, Stream& print_stream) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
convertCertificate(CertificateType cert_type, const String& filename) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertCACertificate(const char* ca_cert_name) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertCACertificate(const String& ca_cert_name) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertClientCertificates(const charclient_cert_name, const char client_cert_key) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertClientCertificates(const String& client_cert_name, const String& client_cert_key) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertPSKTable(const char* psk_table_name) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
convertPSKTable(const String& psk_table_name) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌

Modem - SSL context functions

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, SSLAuthMode sslAuthMode, SSLVersion sslVersion) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
configureSSLContext(uint8_t context_id, SSLAuthMode sslAuthMode, SSLVersion sslVersion, const charCAcertName, const char clientCertName, const char* clientKeyName) ❌ ✅ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌
configureSSLContext(uint8_t context_id) ❌ ✅ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
configureSSLSNI(uint8_t context_id, const char* sni) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
applySSLCertificates(uint8_t mux, uint8_t context_id, SSLAuthMode sslAuthMode, const charCAcertName, const char clientCertName, const char* clientKeyName) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
applySSLCertificates(uint8_t mux, uint8_t context_id) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
applySSLPSK(uint8_t mux, uint8_t context_id, const char* pskTableName) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
applySSLPSK(uint8_t mux, uint8_t context_id) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌
linkSSLContext(uint8_t mux, uint8_t context_id) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌

Modem - Phone call functions

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() ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ✅ ❌ ✅
setGsmBusy(bool busy=true) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
callNumber(const String& number) ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ✅
callHangup() ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ✅
dtmfSend(char cmd, int duration_ms=100) ✅ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ❌ ✅

Modem - Audio functions

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() ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
setVolume(uint8_t volume=50) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
audioSetSpeaker() ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
getVolume() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
audioMuteMic(bool mute) ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
setMicVolume(uint8_t channel, uint8_t level) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
setAudioChannel(uint8_t channel) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌
playToolkitTone(uint8_t tone, uint32_t duration) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌

Modem - Text messaging (SMS) functions

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) ✅ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅
deleteAllSMS() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
sendSMS(const String& number, const String& text) ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
sendSMS_UTF16(const charconst number, const void text, size_t len) ✅ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - GSM location functions

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(floatlat, float lon, floataccuracy=0, int year=0, intmonth=0, int day=0, inthour=0, int minute=0, int* second=0) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ ✅
getGsmLocationTime(intyear, int month, intday, int hour, intminute, int second) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ ✅

Modem - GPS (GNSS, GLONASS) functions

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(floatlat, float lon, floatspeed=0, float alt=0, intvsat=0, int usat=0, floataccuracy=0, int year=0, intmonth=0, int day=0, inthour=0, int minute=0, int* second=0) ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ ✅
getGPSTime(intyear, int month, intday, int hour, intminute, int second) ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ ✅
setGNSSMode(uint8_t mode, bool dpo) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌
getGNSSMode() ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌

Modem - NTP server functions

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) ❌ ❌ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ ❌

Modem - Time functions

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) ✅ ❌ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
setTimeZone(int8_t timezone, bool enable_sync=true) ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
getNetworkTime(intyear, int month, intday, int hour, intminute, int second, float* timezone) ✅ ❌ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
setTimeSyncInterval(uint16_t seconds) ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
getNetworkUTCTime(intyear, int month, intday, int hour, intminute, int second, float* timezone) ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
getNetworkEpoch(TinyGSM_EpochStart epoch=TinyGSM_EpochStart::UNIX) ✅ ❌ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - Battery functions

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) ✅ ✅ ❌ ❌ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ ✅

Modem - Temperature functions

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() ❌ ✅ ❌ ❌ ❌ ❌ ✅ ✅ ❌ ✅ ✅ ❌ ❌ ❌ ✅ ❌ ✅ ❌ ✅ ❌

Modem - Utilities

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
streamPrint(T last) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
streamPrint(T head, Args... tail) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
streamWrite(const char* data, uint16_t len) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
streamWrite(GsmConstStr data, uint16_t len) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
streamClear() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
streamDump(int16_t expected_len) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Modem - XBee identifier functions

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) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌

Modem - XBee specific utilities

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=1000L) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
readResponseInt(uint32_t timeout_ms=1000L) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
sendATGetString(GsmConstStr cmd) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
changeSettingIfNeeded(commandType cmd, uint16_t newValue, uint32_t timeout_ms=1000L) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
changeSettingIfNeeded(commandType cmd, String newValue, uint32_t timeout_ms=1000L) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌

TCP Client - Client constructors and initialization

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
TinyGsmClient() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
TinyGsmClient(TinyGsm& modem) ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅
TinyGsmClient(TinyGsm& modem, uint8_t mux=0) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
init(TinyGsm* modem) ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅
init(TinyGsm* modem, uint8_t mux) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
init(TinyGsm* modem, uint8_t mux=0) ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌

TCP Client - Arduino Client interface

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() ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

TCP Client - Extended Client API

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) ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Secure Client - Constructors and initialization

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
TinyGsmClientSecure() ❌ ✅ ✅ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
TinyGsmClientSecure(TinyGsm& modem) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅
TinyGsmClientSecure(TinyGsm& modem, uint8_t mux=0) ❌ ✅ ✅ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
TinyGsmClientSecure(TinyGsm& modem, uint8_t mux, uint8_t sslCtxIndex) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
init(TinyGsm* modem) ❌ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ✅ ✅
init(TinyGsm* modem, uint8_t mux) ❌ ✅ ✅ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
init(TinyGsm* modem, uint8_t mux=0) ❌ ❌ ✅ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌

Secure Client - Arduino Client interface

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() ❌ ✅ ✅ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Secure Client - Configuration

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) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setStrictSSL(bool strict) ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ✅ ❌ ❌ ❌

Secure Client - Extended Client API

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) ❌ ✅ ✅ ✅ ✅ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

Secure Context - Constructors and initialization

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
TinyGsmSecureContext() ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, uint8_t contextIndex=TINY_GSM_DEFAULT_SSL_CTX) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, int contextIndex) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, SSLAuthMode sslAuthMode, SSLVersion sslVersion=SSLVersion::TLS1_2, const charCAcertName=nullptr, const char clientCertName=nullptr, const char* clientKeyName=nullptr) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, uint8_t contextIndex, SSLAuthMode sslAuthMode, SSLVersion sslVersion=SSLVersion::TLS1_2, const charCAcertName=nullptr, const char clientCertName=nullptr, const char* clientKeyName=nullptr) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, const charpskIdent, const char psKey, SSLVersion sslVersion=SSLVersion::TLS1_2) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, uint8_t contextIndex, const charpskIdent, const char psKey, SSLVersion sslVersion=SSLVersion::TLS1_2) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, const char* pskTableName, SSLVersion sslVersion=SSLVersion::TLS1_2) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, uint8_t contextIndex, const char* pskTableName, SSLVersion sslVersion=SSLVersion::TLS1_2) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
TinyGsmSecureContext(TinyGsm& modem, int contextIndex, const char* pskTableName, SSLVersion sslVersion=SSLVersion::TLS1_2) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
init(TinyGsm* modem, uint8_t contextIndex=TINY_GSM_DEFAULT_SSL_CTX) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
isAttached() ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
getSSLContextIndex() ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌

Secure Context - Configuration functions

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
setSSLAuthMode(SSLAuthMode mode) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setSSLVersion(SSLVersion version) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌

Secure Context - Certificate assignment functions

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) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setClientCredentials(const charclientCertName, const char clientKeyName) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setClientCredentials(const String& clientCertName, const String& clientKeyName) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setCACertificateNumber(uint8_t certNumber) ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
setClientCredentialNumber(uint8_t certNumber) ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌

Secure Context - PSK assignment functions

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 charpskIdent, const char psKey) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌
setPreSharedKey(const String& pskIdent, const String& psKey) ❌ ✅ ✅ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ❌ ❌ ✅ ✅ ✅ ❌ ❌ ❌ ❌ ❌

Generated by Doxygen and m.css with templates from doxybook2

Clone this wiki locally