# Espressif ESP8266 (AT) (group) **Module:** **[Supported Modules](group__group__supported__modules.html)** **/** **[Espressif AT](group__espressif__at.html)** **/** **[Espressif ESP8266 (AT)](group__espressif__esp8266.html)** Manufacturer: Espressif. Models: ESP8266 (AT firmware version ~2.3.0.0). Documentation for the ESP8266 AT firmware can be found here: [https://docs.espressif.com/projects/esp-at/en/release-v2.3.0.0_esp8266/Get_Started/index.html](https://docs.espressif.com/projects/esp-at/en/release-v2.3.0.0_esp8266/Get_Started/index.html) ## Connection Information - Combined TCP/SSL sockets: - 5 - Using more than 1 SSL socket at a time may cause the module to crash. - SSL contexts: - 2 - Socket Buffering: - The modem does **not** have an internal buffer for incoming data. - You must set the buffer size in this library to be larger than your largest expected incoming packet, or you will lose incoming data. - Socket Numbering: - The modem respects user-specified multiplexing channel numbers/identifiers for socket connections. ## Supported Public Functions - [TinyGsmESP8266](class_tiny_gsm_e_s_p8266.md) - GSM Modem Constructor - [TinyGsmESP8266(Stream& stream)](class_tiny_gsm_e_s_p8266.md#aafa76b341063e17c95b6155eab82d2ae) - Basic functions ([TinyGsmModem.tpp](_tiny_gsm_modem_8tpp.md)) - [begin(const char* pin=nullptr)](class_tiny_gsm_modem.md#ae4397a65939a770e478e29c718d13e59) - [init(const char* pin=nullptr)](class_tiny_gsm_modem.md#a27f7f71fb1a2008dc57f6d454564022c) - [sendAT(Args... cmd)](class_tiny_gsm_modem.md#afa190e606feb7831c86094577064d2e6) - [setBaud(uint32_t baud)](class_tiny_gsm_modem.md#a279bffb4e905f1150dadab726e8482f2) - [setDefaultBaud(uint32_t baud)](class_tiny_gsm_modem.md#ac0a4b1d359f20a7bf54667858141b591) - [forceModemBaud(StreamObject& at_serial, uint32_t targetBaud)](class_tiny_gsm_modem.md#a0ff68001b77fed375db7e048bc5ab5f4) - [testAT(uint32_t timeout_ms=10000L)](class_tiny_gsm_modem.md#a5bfedec6b19edfbcbc0a5832fff7d603) - [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)](class_tiny_gsm_modem.md#a4416426fc61492fcb761139b85f1535b) - [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)](class_tiny_gsm_modem.md#a5d04ca30762417cd04f0df3b620b6df7) - [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)](class_tiny_gsm_modem.md#ac8849ac15a91800244750682561c3938) - [getConfiguredModem()](class_tiny_gsm_modem.md#a2f9a76aa8ef51867e560196a8261c170) - [getModemInfo()](class_tiny_gsm_modem.md#a587c942eefa8b4905da4cfaf79d04c53) - [getModemName()](class_tiny_gsm_modem.md#a500246b8d736f654ffd91db17664e42a) - [getModemManufacturer()](class_tiny_gsm_modem.md#a3bf0eb3d18cefc70a0277103719873aa) - [getModemModel()](class_tiny_gsm_modem.md#ae0ca787c0bb16776f3b326a899c39d4e) - [getModemRevision()](class_tiny_gsm_modem.md#a748dce8b32f1a5d4ca0f9bf9a5ea55a2) - [getModemSerialNumber()](class_tiny_gsm_modem.md#a3a13f308ec6beb7e2a270d1ece67978e) - [factoryDefault()](class_tiny_gsm_modem.md#a229a18e6a1226a51301ba3a41f75947d) - Power functions ([TinyGsmModem.tpp](_tiny_gsm_modem_8tpp.md)) - [restart(const char* pin=nullptr)](class_tiny_gsm_modem.md#a986567555e19bc82fc3f4f154f89de40) - [powerOff()](class_tiny_gsm_modem.md#ac6d0ce36377992e00b0d38c5cb1a9126) - [sleepEnable(bool enable=true)](class_tiny_gsm_modem.md#ae293a3c9ef0c55ce7dbc05a29dd5c3a7) - [setPhoneFunctionality(uint8_t fun, bool reset=false)](class_tiny_gsm_modem.md#a496f2e6fb026bea432f2f3d31b50d2be) - Generic network functions ([TinyGsmModem.tpp](_tiny_gsm_modem_8tpp.md)) - [getRegistrationStatus()](class_tiny_gsm_modem.md#a75286fdda3bb1672f1c88a06d010c04d) - [isNetworkConnected()](class_tiny_gsm_modem.md#ac6923f6667d67ec47e88a15d34d365fe) - [waitForNetwork(uint32_t timeout_ms=60000L, bool check_signal=false)](class_tiny_gsm_modem.md#a8cdad3a71c520124dd1d5aed16ee726b) - [getSignalQuality()](class_tiny_gsm_modem.md#a714c21a155a823bb32a7be87fde815bd) - [getLocalIP()](class_tiny_gsm_modem.md#a69cbe284005cf8831b0155f5ba721d87) - [localIP()](class_tiny_gsm_modem.md#ab6aae9d6513ea9496f79704367eeff44) - WiFi functions ([TinyGsmWifi.tpp](_tiny_gsm_wifi_8tpp.md)) - [networkConnect(const char* ssid, const char* pwd)](class_tiny_gsm_wifi.md#afdbf9f1bbd066ebfe1733b65f1bd6571) - [networkDisconnect()](class_tiny_gsm_wifi.md#ad361ae16422d411d86dec9964678cb87) - Socket listening functions ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md)) - [maintain()](class_tiny_gsm_t_c_p.md#a35e2f8d26fd77dd0c217631b153d41bc) - Secure socket layer (SSL) certificate management functions ([TinyGsmSSL.tpp](_tiny_gsm_s_s_l_8tpp.md)) - [loadCertificate(const char* certificateName, GsmConstStr cert, const uint16_t len)](class_tiny_gsm_s_s_l.md#afa8ff0e3881bb5b025cb6daf2b4efa02) - NTP server functions ([TinyGsmNTP.tpp](_tiny_gsm_n_t_p_8tpp.md)) - [NTPServerSync(const char* server=](class_tiny_gsm_n_t_p.md#a72a863af36cd16f7f0211b1f1f5105e8)pool.ntp.org", int TimeZone=0)" - [NTPServerSync(const String& server, int TimeZone=0)](class_tiny_gsm_n_t_p.md#a8a9738236ba9b847613a48bac8c88bc4) - [waitForTimeSync(uint16_t timeout_s=120)](class_tiny_gsm_n_t_p.md#a50d239cdcd408a6448ab1e5e1b24504a) - Time functions ([TinyGsmTime.tpp](_tiny_gsm_time_8tpp.md)) - [getGSMDateTime(TinyGSMDateTimeFormat format)](class_tiny_gsm_time.md#adaaa4aba622ee5d874fcc2abc6109e84) - [getNetworkTime(int* year, int* month, int* day, int* hour, int* minute, int* second, float* timezone)](class_tiny_gsm_time.md#a68d9baf6ba1f006441b3d71e5e058cdb) - [getNetworkEpoch(TinyGSM_EpochStart epoch=TinyGSM_EpochStart::UNIX)](class_tiny_gsm_time.md#a96cf8b52cd88938c4211d17de826376e) - Time functions - [setTimeZone(int8_t timezone, bool enable_sync=true)](class_tiny_gsm_e_s_p8266.md#a631e967072c574296a60bceb53d1e0e2) - Utilities ([TinyGsmModem.tpp](_tiny_gsm_modem_8tpp.md)) - [streamPrint(T last)](class_tiny_gsm_modem.md#a03866a35c711956553c8acf7fd84aed4) - [streamPrint(T head, Args... tail)](class_tiny_gsm_modem.md#a571ab0adb68e9ccf086d93d13f8fa9f3) - [streamWrite(const char* data, uint16_t len)](class_tiny_gsm_modem.md#a2c3e4abbc6c1b8550bb216bc05dbc1e5) - [streamWrite(GsmConstStr data, uint16_t len)](class_tiny_gsm_modem.md#a2c3e4abbc6c1b8550bb216bc05dbc1e5) - [streamClear()](class_tiny_gsm_modem.md#a7879aad8a0f9def7cd8d7450800b2d64) - [streamDump(int16_t expected_len)](class_tiny_gsm_modem.md#a20ccc061bab4e038a8800c244e761ecd) - [GsmClientESP8266](class_tiny_gsm_e_s_p8266_1_1_gsm_client_e_s_p8266.md) - Client constructors and initialization - [GsmClientESP8266()](class_tiny_gsm_e_s_p8266_1_1_gsm_client_e_s_p8266.md#a28f445d0f0f1babfbe2ed614c768e998) - [GsmClientESP8266(TinyGsmESP8266& modem, uint8_t mux=0)](class_tiny_gsm_e_s_p8266_1_1_gsm_client_e_s_p8266.md#a5122816a1c1bb302a10fa547ab2e90e5) - [init(TinyGsmESP8266* modem, uint8_t mux=0)](class_tiny_gsm_e_s_p8266_1_1_gsm_client_e_s_p8266.md#a747a7e94d2ee21ceb3f094b9c5865f0d) - Arduino Client interface ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md)) - [connect(const char* host, uint16_t port, int timeout_s)](class_gsm_client.md#ac3343dcdf3ba62f63aeb3b0775e4a93a) - [connect(IPAddress ip, uint16_t port, int timeout_s)](class_gsm_client.md#aec4d4702d5652a7ccce867f0dcb1fd29) - [connect(const char* host, uint16_t port)](class_gsm_client.md#a6e86eac67796044a92dba6695e2f6f9f) - [connect(IPAddress ip, uint16_t port)](class_gsm_client.md#a19fa0b322c6fb17a1d0de28d747222ec) - [stop(uint32_t maxWaitMs)](class_gsm_client.md#a138ad35447383cc62d99c037743e4210) - [stop()](class_gsm_client.md#acac60bc3c9cb1e7d58e2b13833e4c720) - [write(const uint8_t* buf, size_t size)](class_gsm_client.md#a528d5a4c7d75a6951ec236b7b46fcedb) - [write(uint8_t c)](class_gsm_client.md#a3afda0b395cdc163a542915c90c3647b) - [available()](class_gsm_client.md#a5327499ee49bd0f7ca6ea292de7fe492) - [read(uint8_t* buf, size_t size)](class_gsm_client.md#a2cd9c417964981283684cdea7ac7d3c2) - [read()](class_gsm_client.md#af3b9f9b2908979e751098c222fc655d4) - [peek()](class_gsm_client.md#aa684170a2aa623822ccc3d428568913e) - [flush()](class_gsm_client.md#ad7f9b8cf52f29a390fafc3003f1ecd99) - [connected()](class_gsm_client.md#a5eb01b0909582692e00b07c41ec7bd22) - Extended Client API ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md)) - [getMux()](class_gsm_client.md#a9dc458d3a5eced0cfecdbdc72e06d6c0) - [getConnectionID()](class_gsm_client.md#a198f6e1698d43841c3a1ab287bca914d) - [beginWrite(uint16_t size)](class_gsm_client.md#a3faf91fd6a17294a5915ce57ac5bdc0d) - [endWrite(uint16_t expected_size=0)](class_gsm_client.md#a36e18c3adb596ab7d299796e658f42a5) - [GsmClientSecureESP8266](class_tiny_gsm_e_s_p8266_1_1_gsm_client_secure_e_s_p8266.md) - Secure client constructors and initialization ([TinyGsmSSL.tpp](_tiny_gsm_s_s_l_8tpp.md)) - [GsmClientSecureESP8266()](class_gsm_secure_client.md) - [GsmClientSecureESP8266(TinyGsmESP8266& modem, uint8_t mux=0)](class_gsm_secure_client.md) - [GsmClientSecureESP8266(TinyGsmESP8266& modem, uint8_t mux, uint8_t sslCtxIndex)](class_gsm_secure_client.md) - Secure client constructors and initialization - [GsmClientSecureESP8266()](class_gsm_client.md) - [GsmClientSecureESP8266(TinyGsmESP8266& modem, uint8_t mux=0)](class_gsm_client.md) - [init(TinyGsmESP8266* modem, uint8_t mux=0)](class_gsm_client.md#a3dc5e17ba6749c68983d3bf39fabb29e) - Secure client constructors and initialization ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md)) - [init(TinyGsmESP8266* modem, uint8_t mux)](class_gsm_client.md#a3dc5e17ba6749c68983d3bf39fabb29e) - Arduino Client interface ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md)) - [connect(const char* host, uint16_t port, int timeout_s)](class_gsm_client.md#ac3343dcdf3ba62f63aeb3b0775e4a93a) - [connect(IPAddress ip, uint16_t port, int timeout_s)](class_gsm_client.md#aec4d4702d5652a7ccce867f0dcb1fd29) - [connect(const char* host, uint16_t port)](class_gsm_client.md#a6e86eac67796044a92dba6695e2f6f9f) - [connect(IPAddress ip, uint16_t port)](class_gsm_client.md#a19fa0b322c6fb17a1d0de28d747222ec) - [stop(uint32_t maxWaitMs)](class_gsm_client.md#a138ad35447383cc62d99c037743e4210) - [stop()](class_gsm_client.md#acac60bc3c9cb1e7d58e2b13833e4c720) - [write(const uint8_t* buf, size_t size)](class_gsm_client.md#a528d5a4c7d75a6951ec236b7b46fcedb) - [write(uint8_t c)](class_gsm_client.md#a3afda0b395cdc163a542915c90c3647b) - [available()](class_gsm_client.md#a5327499ee49bd0f7ca6ea292de7fe492) - [read(uint8_t* buf, size_t size)](class_gsm_client.md#a2cd9c417964981283684cdea7ac7d3c2) - [read()](class_gsm_client.md#af3b9f9b2908979e751098c222fc655d4) - [peek()](class_gsm_client.md#aa684170a2aa623822ccc3d428568913e) - [flush()](class_gsm_client.md#ad7f9b8cf52f29a390fafc3003f1ecd99) - [connected()](class_gsm_client.md#a5eb01b0909582692e00b07c41ec7bd22) - Secure client configuration ([TinyGsmSSL.tpp](_tiny_gsm_s_s_l_8tpp.md)) - [setSSLContextIndex(uint8_t sslCtxIndex)](class_gsm_secure_client.md#a146822537a5ba062b71c5c87b8864440) - Extended Client API ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md)) - [getMux()](class_gsm_client.md#a9dc458d3a5eced0cfecdbdc72e06d6c0) - [getConnectionID()](class_gsm_client.md#a198f6e1698d43841c3a1ab287bca914d) - [beginWrite(uint16_t size)](class_gsm_client.md#a3faf91fd6a17294a5915ce57ac5bdc0d) - [endWrite(uint16_t expected_size=0)](class_gsm_client.md#a36e18c3adb596ab7d299796e658f42a5) - [GsmSecureContextESP8266](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md) - Secure context constructors and initialization ([TinyGsmSSL.tpp](_tiny_gsm_s_s_l_8tpp.md)) - [GsmSecureContextESP8266()](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, uint8_t contextIndex=TINY_GSM_DEFAULT_SSL_CTX)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, int contextIndex)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, SSLAuthMode sslAuthMode, SSLVersion sslVersion=SSLVersion::TLS1_2, const char* CAcertName=nullptr, const char* clientCertName=nullptr, const char* clientKeyName=nullptr)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, uint8_t contextIndex, SSLAuthMode sslAuthMode, SSLVersion sslVersion=SSLVersion::TLS1_2, const char* CAcertName=nullptr, const char* clientCertName=nullptr, const char* clientKeyName=nullptr)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, const char* pskIdent, const char* psKey, SSLVersion sslVersion=SSLVersion::TLS1_2)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, uint8_t contextIndex, const char* pskIdent, const char* psKey, SSLVersion sslVersion=SSLVersion::TLS1_2)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, const char* pskTableName, SSLVersion sslVersion=SSLVersion::TLS1_2)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, uint8_t contextIndex, const char* pskTableName, SSLVersion sslVersion=SSLVersion::TLS1_2)](class_gsm_secure_context.md) - [GsmSecureContextESP8266(TinyGsmESP8266& modem, int contextIndex, const char* pskTableName, SSLVersion sslVersion=SSLVersion::TLS1_2)](class_gsm_secure_context.md) - [init(TinyGsmESP8266* modem, uint8_t contextIndex=TINY_GSM_DEFAULT_SSL_CTX)](class_gsm_secure_context.md#a8fed605792bff749384631b9eee780f7) - [isAttached()](class_gsm_secure_context.md#a9dc81138f8352b3d99ac71ca2e37be75) - [getSSLContextIndex()](class_gsm_secure_context.md#ab51b6e334d3bd90ebd5484a051e50371) - Secure context configuration functions ([TinyGsmSSL.tpp](_tiny_gsm_s_s_l_8tpp.md)) - [setSSLAuthMode(SSLAuthMode mode)](class_gsm_secure_context.md#a83dfa7bb8b4a87131efa413e736fb0b7) - [setSSLVersion(SSLVersion version)](class_gsm_secure_context.md#a908d057993bfe10242450841b4fbaf41) - Secure context certificate assignment functions - [setCACertName(const char* CAcertName)](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md#a54a3032f7fb2ecfc05d7b7508ae73ad7) - [setCACertName(const String& CAcertName)](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md#a27b70855a8337ee34e5e33da3b116472) - [setClientCredentials(const char* clientCertName, const char* clientKeyName)](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md#a958674cce695632baf62d5cc57b2398a) - [setClientCredentials(const String& clientCertName, const String& clientKeyName)](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md#ae421141ba0d25a65bf64a7939d68028f) - [setCACertificateNumber(uint8_t certNumber)](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md#ab7bb7287db602f1853511b1be62d602e) - [setClientCredentialNumber(uint8_t certNumber)](class_tiny_gsm_e_s_p8266_1_1_gsm_secure_context_e_s_p8266.md#a1f0b3fc9c86148e27eb4e70e7a7d7097) - Secure context PSK assignment functions ([TinyGsmSSL.tpp](_tiny_gsm_s_s_l_8tpp.md)) - [setPSKTableName(const char* pskTableName)](class_gsm_secure_context.md#a8ebb32a5e43f68c78d870d0292296503) - [setPSKTableName(const String& pskTableName)](class_gsm_secure_context.md#a1c6ab7ee6482ea3eb205c4390e76ebe6) - [setPreSharedKey(const char* pskIdent, const char* psKey)](class_gsm_secure_context.md#ac352727e01f6988e25f5ffc740a0c4ce) - [setPreSharedKey(const String& pskIdent, const String& psKey)](class_gsm_secure_context.md#ab18a08cdd05b57ba0b62c9032a046a17) ## Classes | | Name | | --- | --- | | struct | **TinyGsmESP8266ModemConfig** | | struct | **TinyGsmESP8266TcpConfig** | | struct | **TinyGsmESP8266SslConfig** | | class | **TinyGsmESP8266** | | class | **TinyGsmESP8266::GsmClientESP8266** | | class | **TinyGsmESP8266::GsmClientSecureESP8266** | | class | **TinyGsmESP8266::GsmSecureContextESP8266** | ## Types | | Name | | --- | --- | | enum class | [ESP8266RegStatus](#ga330c8847c38a2c95ccfcb28d1dc9090c) { REG_UNINITIALIZED = 0, REG_UNREGISTERED = 1, REG_OK = 2, REG_CONNECTING = 3, REG_DISCONNECTING = 4, REG_UNKNOWN = 5 }
State: current Wi-Fi state. | ### ESP8266RegStatus ​ | Enumerator | Value | Description | | --- | --- | --- | | ​REG_UNINITIALIZED | 0 | ESP8266 station has not started any Wi-Fi connection. | | ​REG_UNREGISTERED | 1 | ESP8266 station has connected to an AP, but does not get an IPv4 address yet. | | ​REG_OK | 2 | ESP8266 station has connected to an AP, and got an IPv4 address. | | ​REG_CONNECTING | 3 | ESP8266 station is in Wi-Fi connecting or reconnecting state. | | ​REG_DISCONNECTING | 4 | ESP8266 station is in Wi-Fi disconnected state. | | ​REG_UNKNOWN | 5 | ESP8266 station is in an unknown state. | --- Generated by [Doxygen](https://www.doxygen.nl) and [m.css](https://mcss.mosra.cz/) with templates from [doxybook2](https://github.com/matusnovak/doxybook2)