# Neoway M590 (group)
**Module:** **[Supported Modules](group__group__supported__modules.html)** **/** **[Neoway](group__group__neoway.html)** **/** **[Neoway M590](group__neoway__m590.html)**
Manufacturer: Neoway. Models: M590.
## Connection Information
- TCP sockets:
- 2
- SSL is not supported
- 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.
**Todo**: [todo](todo.html#_todo000008)
## Supported Public Functions
- [TinyGsmM590](class_tiny_gsm_m590.md)
- GSM Modem Constructor
- [TinyGsmM590(Stream& stream)](class_tiny_gsm_m590.md#a35a3b5f3e1ec80252cff2404a8fb6ba7)
- 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)
- [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)
- [radioOff()](class_tiny_gsm_modem.md#a084efec47f33f71933c2084bf4c3fead)
- [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)
- SIM card functions ([TinyGsmCellularData.tpp](_tiny_gsm_cellular_data_8tpp.md))
- [simUnlock(const char* pin)](class_tiny_gsm_cellular_data.md#a46b40b70163ca37dd1883f6e1bec7272)
- [getSimCCID()](class_tiny_gsm_cellular_data.md#a2394167c2b2c642ace167c119c3deeb4)
- [getIMEI()](class_tiny_gsm_cellular_data.md#a3f0b243a229a2aff6734338079d2e4e0)
- [getIMSI()](class_tiny_gsm_cellular_data.md#a347b32fc42b5e83a9de8c1aed89f2b8f)
- [getSimStatus(uint32_t timeout_ms=10000L)](class_tiny_gsm_cellular_data.md#aa8dce718093a53a8be05dd75958f721b)
- Cellular data functions ([TinyGsmCellularData.tpp](_tiny_gsm_cellular_data_8tpp.md))
- [dataConnect(const char* apn, const char* user=nullptr, const char* pwd=nullptr)](class_tiny_gsm_cellular_data.md#a3f5c815c342ec843815275714f49ea38)
- [dataDisconnect()](class_tiny_gsm_cellular_data.md#a9cd2d7200cca08f6c77c5d0d7ad23297)
- [isDataConnected()](class_tiny_gsm_cellular_data.md#a1986a60dd0359e7f7fcc00714bb7b596)
- [gprsConnect(const char* apn, const char* user=nullptr, const char* pwd=nullptr)](class_tiny_gsm_cellular_data.md#a5e70cb2c0089d90785b4fbacad7d9cc6)
- [gprsDisconnect()](class_tiny_gsm_cellular_data.md#a9d9449ead109f7cd29c1f1a51b05262c)
- [isGprsConnected()](class_tiny_gsm_cellular_data.md#a5320772696eee50a92607c08aeffe4f5)
- [getOperator()](class_tiny_gsm_cellular_data.md#a9f2024e87d6ee10f9ba63ba2d3803d83)
- Socket listening functions ([TinyGsmTCP.tpp](_tiny_gsm_t_c_p_8tpp.md))
- [maintain()](class_tiny_gsm_t_c_p.md#a35e2f8d26fd77dd0c217631b153d41bc)
- Text messaging (SMS) functions ([TinyGsmSMS.tpp](_tiny_gsm_s_m_s_8tpp.md))
- [sendUSSD(const String& code)](class_tiny_gsm_s_m_s.md#a0d0e6c715e06650381620ec1417edcfd)
- [sendSMS(const String& number, const String& text)](class_tiny_gsm_s_m_s.md#afbbd31f4c58b16319bef3e3b9e42b5dd)
- [sendSMS_UTF16(const char* const number, const void* text, size_t len)](class_tiny_gsm_s_m_s.md#a430127e129d6fb41b643a0364deca94b)
- 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)
- 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)
- [GsmClientM590](class_tiny_gsm_m590_1_1_gsm_client_m590.md)
- Client constructors and initialization
- [GsmClientM590()](class_tiny_gsm_m590_1_1_gsm_client_m590.md#ad1808b1c21a23ba60905ae58115b8cb5)
- [GsmClientM590(TinyGsmM590& modem, uint8_t mux=0)](class_tiny_gsm_m590_1_1_gsm_client_m590.md#a585a7340a9fcc826fbad9d6f54830c95)
- [init(TinyGsmM590* modem, uint8_t mux=0)](class_tiny_gsm_m590_1_1_gsm_client_m590.md#a5bea986ac314c7fb6a561c2aab34abab)
- 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)
## Classes
| | Name |
| --- | --- |
| struct | **TinyGsmM590ModemConfig** |
| struct | **TinyGsmM590TcpConfig** |
| class | **TinyGsmM590** |
| class | **TinyGsmM590::GsmClientM590** |
## Types
| | Name |
| --- | --- |
| enum class | [M590RegStatus](#ga0489bf124b54370a8518222912d9e6ea) { REG_NO_RESULT = -1, REG_UNREGISTERED = 0, REG_SEARCHING = 3, REG_DENIED = 2, REG_OK_HOME = 1, REG_OK_ROAMING = 5, REG_UNKNOWN = 4 }
Neoway M590 Registration status. |
### M590RegStatus
| Enumerator | Value | Description |
| --- | --- | --- |
| REG_NO_RESULT | -1 | No result yet. |
| REG_UNREGISTERED | 0 | Not registered. |
| REG_SEARCHING | 3 | Searching for network. |
| REG_DENIED | 2 | Registration denied. |
| REG_OK_HOME | 1 | Registered, home network. |
| REG_OK_ROAMING | 5 | Registered, roaming. |
| REG_UNKNOWN | 4 | Unknown registration status. |
> [!TIP]
> The Neoway M590 uses different numbers for registration status than most other modules.
---
Generated by [Doxygen](https://www.doxygen.nl) and [m.css](https://mcss.mosra.cz/) with templates from [doxybook2](https://github.com/matusnovak/doxybook2)