--- title: SIMCom SIM800, SIM900 and variants --- # SIMCom SIM800, SIM900 and variants (group) **Module:** **[Supported Modules](group__group__supported__modules.html)** **/** **[SIMCom](group__group__simcom.html)** **/** **[SIMCom SIM800, SIM900 and variants](group__simcom__sim800.html)** Manufacturer: SIMCom. Models: SIM800 series, SIM900. ## Connection Information - TCP sockets: - 8 - SSL sockets: - 5 - Socket Buffering: - The modem has an internal buffer for incoming data. - Socket Numbering: - The modem respects user-specified multiplexing channel numbers/identifiers for socket connections. ## Supported Public Functions - [TinyGsmSim800](../classes/class_tiny_gsm_sim800.md) - GSM Modem Constructor - [TinyGsmSim800(Stream& stream)](../classes/class_tiny_gsm_sim800.md#aa9b0849730cccf194afd299b0fe36cf5) - Basic functions ([TinyGsmModem.tpp](../files/_tiny_gsm_modem_8tpp.md)) - [begin(const char* pin = nullptr)](../classes/class_tiny_gsm_modem.md#ae4397a65939a770e478e29c718d13e59) - [init(const char* pin = nullptr)](../classes/class_tiny_gsm_modem.md#a27f7f71fb1a2008dc57f6d454564022c) - [sendAT(Args... cmd)](../classes/class_tiny_gsm_modem.md#afa190e606feb7831c86094577064d2e6) - [setBaud(uint32_t baud)](../classes/class_tiny_gsm_modem.md#a279bffb4e905f1150dadab726e8482f2) - [forceModemBaud(StreamObject& at_serial, uint32_t targetBaud)](../classes/class_tiny_gsm_modem.md#a0ff68001b77fed375db7e048bc5ab5f4) - [testAT(uint32_t timeout_ms = 10000L)](../classes/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)](../classes/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)](../classes/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)](../classes/class_tiny_gsm_modem.md#ac8849ac15a91800244750682561c3938) - [getConfiguredModem()](../classes/class_tiny_gsm_modem.md#a2f9a76aa8ef51867e560196a8261c170) - [getModemInfo()](../classes/class_tiny_gsm_modem.md#a587c942eefa8b4905da4cfaf79d04c53) - [getModemName()](../classes/class_tiny_gsm_modem.md#a500246b8d736f654ffd91db17664e42a) - [getModemManufacturer()](../classes/class_tiny_gsm_modem.md#a3bf0eb3d18cefc70a0277103719873aa) - [getModemModel()](../classes/class_tiny_gsm_modem.md#ae0ca787c0bb16776f3b326a899c39d4e) - [getModemRevision()](../classes/class_tiny_gsm_modem.md#a748dce8b32f1a5d4ca0f9bf9a5ea55a2) - [getModemSerialNumber()](../classes/class_tiny_gsm_modem.md#a3a13f308ec6beb7e2a270d1ece67978e) - [factoryDefault()](../classes/class_tiny_gsm_modem.md#a229a18e6a1226a51301ba3a41f75947d) - Power functions ([TinyGsmModem.tpp](../files/_tiny_gsm_modem_8tpp.md)) - [restart(const char* pin = nullptr)](../classes/class_tiny_gsm_modem.md#a986567555e19bc82fc3f4f154f89de40) - [powerOff()](../classes/class_tiny_gsm_modem.md#ac6d0ce36377992e00b0d38c5cb1a9126) - [radioOff()](../classes/class_tiny_gsm_modem.md#a084efec47f33f71933c2084bf4c3fead) - [sleepEnable(bool enable = true)](../classes/class_tiny_gsm_modem.md#ae293a3c9ef0c55ce7dbc05a29dd5c3a7) - [setPhoneFunctionality(uint8_t fun, bool reset = false)](../classes/class_tiny_gsm_modem.md#a496f2e6fb026bea432f2f3d31b50d2be) - Generic network functions ([TinyGsmModem.tpp](../files/_tiny_gsm_modem_8tpp.md)) - [getRegistrationStatus()](../classes/class_tiny_gsm_modem.md#a75286fdda3bb1672f1c88a06d010c04d) - [isNetworkConnected()](../classes/class_tiny_gsm_modem.md#ac6923f6667d67ec47e88a15d34d365fe) - [waitForNetwork(uint32_t timeout_ms = 60000L, bool check_signal = false)](../classes/class_tiny_gsm_modem.md#a8cdad3a71c520124dd1d5aed16ee726b) - [getSignalQuality()](../classes/class_tiny_gsm_modem.md#a714c21a155a823bb32a7be87fde815bd) - [getLocalIP()](../classes/class_tiny_gsm_modem.md#a69cbe284005cf8831b0155f5ba721d87) - [localIP()](../classes/class_tiny_gsm_modem.md#ab6aae9d6513ea9496f79704367eeff44) - SIM card functions ([TinyGsmGPRS.tpp](../files/_tiny_gsm_g_p_r_s_8tpp.md)) - [simUnlock(const char* pin)](../classes/class_tiny_gsm_g_p_r_s.md#a466fae623fa90d89e3b899f8ad9b6770) - [getSimCCID()](../classes/class_tiny_gsm_g_p_r_s.md#a8ba9e16bbba657b10ebb7da122c21d54) - [getIMEI()](../classes/class_tiny_gsm_g_p_r_s.md#a27acb4e97886f54e2d741c5554a25aa4) - [getIMSI()](../classes/class_tiny_gsm_g_p_r_s.md#a33c0b782e1076262c262063857d648a2) - [getSimStatus(uint32_t timeout_ms = 10000L)](../classes/class_tiny_gsm_g_p_r_s.md#a04fe0ca24dc592e8e564c9669fd4a314) - GPRS functions ([TinyGsmGPRS.tpp](../files/_tiny_gsm_g_p_r_s_8tpp.md)) - [gprsConnect(const char* apn, const char* user = nullptr, const char* pwd = nullptr)](../classes/class_tiny_gsm_g_p_r_s.md#a23ddc191f39cb31d183d91bc89b4bd44) - [gprsDisconnect()](../classes/class_tiny_gsm_g_p_r_s.md#aa6decbde976ddbdee7e0d5a0047f46da) - [isGprsConnected()](../classes/class_tiny_gsm_g_p_r_s.md#a047ca5d9e0d99bcc87e5dbce11403aec) - [getOperator()](../classes/class_tiny_gsm_g_p_r_s.md#aa80d4559b92f4ab0d4a1142013364821) - [getProvider()](../classes/class_tiny_gsm_g_p_r_s.md#ab7e7f9a40980a4430c9320f307c0713d) - Socket listening functions ([TinyGsmTCP.tpp](../files/_tiny_gsm_t_c_p_8tpp.md)) - [maintain()](../classes/class_tiny_gsm_t_c_p.md#a35e2f8d26fd77dd0c217631b153d41bc) - Phone call functions ([TinyGsmCalling.tpp](../files/_tiny_gsm_calling_8tpp.md)) - [callAnswer()](../classes/class_tiny_gsm_calling.md#a6b4a239a88045684c75450ba1fed7357) - [callNumber(const String& number)](../classes/class_tiny_gsm_calling.md#ac37617522cec7757a026ff4afde827e2) - [callHangup()](../classes/class_tiny_gsm_calling.md#ad526aeba6fa6c5cadfc62bf0be261cb7) - [dtmfSend(char cmd, int duration_ms = 100)](../classes/class_tiny_gsm_calling.md#a8bcc2a98729f0c4fe2b4a67d1a1e3cfc) - Phone call functions - [setGsmBusy(bool busy = true)](../classes/class_tiny_gsm_sim800.md#ab50fcc1cb5e17a67b05c379bce14ed8f) - Audio functions - [setVolume(uint8_t volume = 50)](../classes/class_tiny_gsm_sim800.md#af90e2d9affce2b1e45fbee44083f5d7f) - [getVolume()](../classes/class_tiny_gsm_sim800.md#a7eb9b9d8a54d51b01468fdc752a2c703) - [setMicVolume(uint8_t channel, uint8_t level)](../classes/class_tiny_gsm_sim800.md#af9ee2a26211513e6b6d7892da09438f1) - [setAudioChannel(uint8_t channel)](../classes/class_tiny_gsm_sim800.md#a2daf484d10571169f2d586caf350dbf9) - [playToolkitTone(uint8_t tone, uint32_t duration)](../classes/class_tiny_gsm_sim800.md#a14786546fcbd388593e2ba8f77880cbb) - Text messaging (SMS) functions ([TinyGsmSMS.tpp](../files/_tiny_gsm_s_m_s_8tpp.md)) - [sendUSSD(const String& code)](../classes/class_tiny_gsm_s_m_s.md#a0d0e6c715e06650381620ec1417edcfd) - [sendSMS(const String& number, const String& text)](../classes/class_tiny_gsm_s_m_s.md#afbbd31f4c58b16319bef3e3b9e42b5dd) - [sendSMS_UTF16(const char* const number, const void* text, size_t len)](../classes/class_tiny_gsm_s_m_s.md#a430127e129d6fb41b643a0364deca94b) - GSM location functions ([TinyGsmGSMLocation.tpp](../files/_tiny_gsm_g_s_m_location_8tpp.md)) - [getGsmLocationRaw()](../classes/class_tiny_gsm_g_s_m_location.md#af00b039ec514996fda8e509f84c48066) - [getGsmLocation()](../classes/class_tiny_gsm_g_s_m_location.md#a58c3f3447ffd2b0971193c01cd3b249c) - [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)](../classes/class_tiny_gsm_g_s_m_location.md#afbf9f143d98c93d4c19e18655ce51d6d) - [getGsmLocationTime(int* year, int* month, int* day, int* hour, int* minute, int* second)](../classes/class_tiny_gsm_g_s_m_location.md#ad75df6e99b6198fa36a881747526b86b) - NTP server functions ([TinyGsmNTP.tpp](../files/_tiny_gsm_n_t_p_8tpp.md)) - [NTPServerSync(const char* server =](../classes/class_tiny_gsm_n_t_p.md#a72a863af36cd16f7f0211b1f1f5105e8)pool.ntp.org", int TimeZone = 0)" - [NTPServerSync(const String& server, int TimeZone = 0)](../classes/class_tiny_gsm_n_t_p.md#a8a9738236ba9b847613a48bac8c88bc4) - [waitForTimeSync(uint16_t timeout_s = 120)](../classes/class_tiny_gsm_n_t_p.md#a50d239cdcd408a6448ab1e5e1b24504a) - Time functions ([TinyGsmTime.tpp](../files/_tiny_gsm_time_8tpp.md)) - [getGSMDateTime(TinyGSMDateTimeFormat format)](../classes/class_tiny_gsm_time.md#adaaa4aba622ee5d874fcc2abc6109e84) - [getNetworkTime(int* year, int* month, int* day, int* hour, int* minute, int* second, float* timezone)](../classes/class_tiny_gsm_time.md#a68d9baf6ba1f006441b3d71e5e058cdb) - [getNetworkEpoch(TinyGSM_EpochStart epoch = TinyGSM_EpochStart::UNIX)](../classes/class_tiny_gsm_time.md#a96cf8b52cd88938c4211d17de826376e) - Battery functions ([TinyGsmBattery.tpp](../files/_tiny_gsm_battery_8tpp.md)) - [getBattVoltage()](../classes/class_tiny_gsm_battery.md#af41311b4c55dea716a0ef6afd14846ac) - [getBattPercent()](../classes/class_tiny_gsm_battery.md#a349ded65e22bc04beb5dd320b58965d6) - [getBattChargeState()](../classes/class_tiny_gsm_battery.md#ac2179871063de50df9e3134a049f68b0) - [getBattStats(int8_t& chargeState, int8_t& percent, int16_t& milliVolts)](../classes/class_tiny_gsm_battery.md#a0aeea9308d460dcd811089c5821eada3) - Utilities ([TinyGsmModem.tpp](../files/_tiny_gsm_modem_8tpp.md)) - [streamWrite(T last)](../classes/class_tiny_gsm_modem.md#aa03b38efd4eb8437c9e5ed92aac89742) - [streamWrite(T head, Args... tail)](../classes/class_tiny_gsm_modem.md#a6f0a60b7020372ab7e7605f90d5eb2a5) - [streamClear()](../classes/class_tiny_gsm_modem.md#a7879aad8a0f9def7cd8d7450800b2d64) - [streamDump(int16_t expected_len)](../classes/class_tiny_gsm_modem.md#a20ccc061bab4e038a8800c244e761ecd) - [GsmClientSim800](../classes/class_tiny_gsm_sim800_1_1_gsm_client_sim800.md) - Arduino Client interface ([TinyGsmTCP.tpp](../files/_tiny_gsm_t_c_p_8tpp.md)) - [connect(const char* host, uint16_t port, int timeout_s)](../classes/class_gsm_client.md#ac3343dcdf3ba62f63aeb3b0775e4a93a) - [connect(IPAddress ip, uint16_t port, int timeout_s)](../classes/class_gsm_client.md#aec4d4702d5652a7ccce867f0dcb1fd29) - [connect(const char* host, uint16_t port)](../classes/class_gsm_client.md#a6e86eac67796044a92dba6695e2f6f9f) - [connect(IPAddress ip, uint16_t port)](../classes/class_gsm_client.md#a19fa0b322c6fb17a1d0de28d747222ec) - [stop(uint32_t maxWaitMs)](../classes/class_gsm_client.md#a138ad35447383cc62d99c037743e4210) - [stop()](../classes/class_gsm_client.md#acac60bc3c9cb1e7d58e2b13833e4c720) - [write(const uint8_t* buf, size_t size)](../classes/class_gsm_client.md#a528d5a4c7d75a6951ec236b7b46fcedb) - [write(uint8_t c)](../classes/class_gsm_client.md#a3afda0b395cdc163a542915c90c3647b) - [available()](../classes/class_gsm_client.md#a5327499ee49bd0f7ca6ea292de7fe492) - [read(uint8_t* buf, size_t size)](../classes/class_gsm_client.md#a2cd9c417964981283684cdea7ac7d3c2) - [read()](../classes/class_gsm_client.md#af3b9f9b2908979e751098c222fc655d4) - [peek()](../classes/class_gsm_client.md#aa684170a2aa623822ccc3d428568913e) - [flush()](../classes/class_gsm_client.md#ad7f9b8cf52f29a390fafc3003f1ecd99) - [connected()](../classes/class_gsm_client.md#a5eb01b0909582692e00b07c41ec7bd22) - Extended Client API ([TinyGsmTCP.tpp](../files/_tiny_gsm_t_c_p_8tpp.md)) - [getMux()](../classes/class_gsm_client.md#a9dc458d3a5eced0cfecdbdc72e06d6c0) - [getConnectionID()](../classes/class_gsm_client.md#a198f6e1698d43841c3a1ab287bca914d) - [beginWrite(uint16_t size)](../classes/class_gsm_client.md#a3faf91fd6a17294a5915ce57ac5bdc0d) - [endWrite(uint16_t expected_size = 0)](../classes/class_gsm_client.md#a36e18c3adb596ab7d299796e658f42a5) - [GsmClientSecureSim800](../classes/class_tiny_gsm_sim800_1_1_gsm_client_secure_sim800.md) - Client constructors and initialization - [GsmClientSecureSim800()](../classes/class_tiny_gsm_sim800_1_1_gsm_client_secure_sim800.md#acb701c59af2b32b0d1da4d0824f0852a) - [GsmClientSecureSim800(TinyGsmSim800& modem, uint8_t mux = 0)](../classes/class_tiny_gsm_sim800_1_1_gsm_client_secure_sim800.md#a3ac5a8b5912a9d9dfd1aca03fa2710e4) - Arduino Client interface ([TinyGsmTCP.tpp](../files/_tiny_gsm_t_c_p_8tpp.md)) - [connect(const char* host, uint16_t port, int timeout_s)](../classes/class_gsm_client.md#ac3343dcdf3ba62f63aeb3b0775e4a93a) - [connect(IPAddress ip, uint16_t port, int timeout_s)](../classes/class_gsm_client.md#aec4d4702d5652a7ccce867f0dcb1fd29) - [connect(const char* host, uint16_t port)](../classes/class_gsm_client.md#a6e86eac67796044a92dba6695e2f6f9f) - [connect(IPAddress ip, uint16_t port)](../classes/class_gsm_client.md#a19fa0b322c6fb17a1d0de28d747222ec) - [stop(uint32_t maxWaitMs)](../classes/class_gsm_client.md#a138ad35447383cc62d99c037743e4210) - [stop()](../classes/class_gsm_client.md#acac60bc3c9cb1e7d58e2b13833e4c720) - [write(const uint8_t* buf, size_t size)](../classes/class_gsm_client.md#a528d5a4c7d75a6951ec236b7b46fcedb) - [write(uint8_t c)](../classes/class_gsm_client.md#a3afda0b395cdc163a542915c90c3647b) - [available()](../classes/class_gsm_client.md#a5327499ee49bd0f7ca6ea292de7fe492) - [read(uint8_t* buf, size_t size)](../classes/class_gsm_client.md#a2cd9c417964981283684cdea7ac7d3c2) - [read()](../classes/class_gsm_client.md#af3b9f9b2908979e751098c222fc655d4) - [peek()](../classes/class_gsm_client.md#aa684170a2aa623822ccc3d428568913e) - [flush()](../classes/class_gsm_client.md#ad7f9b8cf52f29a390fafc3003f1ecd99) - [connected()](../classes/class_gsm_client.md#a5eb01b0909582692e00b07c41ec7bd22) - Extended Client API ([TinyGsmTCP.tpp](../files/_tiny_gsm_t_c_p_8tpp.md)) - [getMux()](../classes/class_gsm_client.md#a9dc458d3a5eced0cfecdbdc72e06d6c0) - [getConnectionID()](../classes/class_gsm_client.md#a198f6e1698d43841c3a1ab287bca914d) - [beginWrite(uint16_t size)](../classes/class_gsm_client.md#a3faf91fd6a17294a5915ce57ac5bdc0d) - [endWrite(uint16_t expected_size = 0)](../classes/class_gsm_client.md#a36e18c3adb596ab7d299796e658f42a5) ## Classes | | Name | | -------------- | -------------- | | struct | **TinyGsmSim800ModemConfig**
Basic modem configurations for SIMCom SIM800 variants. | | struct | **TinyGsmSim800TcpConfig**
TCP behavior and limits for SIMCom SIM800 variants. | | class | **TinyGsmSim800**
Class for the SIMCOM SIM800 and SIM900 (with some limitations). | | class | **TinyGsmSim800::GsmClientSim800**
Inner client. | | class | **TinyGsmSim800::GsmClientSecureSim800**
Inner secure client. | ## Types | | Name | | -------------- | -------------- | | enum class | [Sim800RegStatus](#gad0290ebdedc8f50a17bb6b2fe74fadb0) { REG_NO_RESULT = -1, REG_UNREGISTERED = 0, REG_SEARCHING = 2, REG_DENIED = 3, REG_OK_HOME = 1, REG_OK_ROAMING = 5, REG_UNKNOWN = 4 }
Registration status. | ### Sim800RegStatus | Enumerator | Value | Description | | ---------- | ----- | ----------- | | REG_NO_RESULT | -1 | No registration result. | | REG_UNREGISTERED | 0 | Not registered on the network. | | REG_SEARCHING | 2 | Searching for network. | | REG_DENIED | 3 | Registration denied. | | REG_OK_HOME | 1 | Registered on the home network. | | REG_OK_ROAMING | 5 | Registered on a roaming network. | | REG_UNKNOWN | 4 | Unknown registration status. | ------------------------------- Generated by [Doxygen](https://www.doxygen.nl) and [m.css](https://mcss.mosra.cz/) with templates from [doxybook2](https://github.com/matusnovak/doxybook2) Updated on 2026-09-11