diff --git a/README.md b/README.md index 7124872..4c604b0 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,7 @@ The general flow of your code should be: - ```modem.simUnlock(GSM_PIN)``` - If using **WiFi**, specify your SSID information: - ```modem.networkConnect(wifiSSID, wifiPass)``` + - Network registration should be automatic on cellular modules - Wait for network registration to be successful - ```modem.waitForNetwork(600000L)``` - If using cellular, establish the GPRS or EPS data connection _after_ your are successfully registered on the network @@ -252,6 +253,24 @@ Improving the power supply actually solves stability problems in **many** cases! - Do not put your wires next to noisy signal sources (buck converters, antennas, oscillators etc.) - If everything else seems to be working but you are unable to connect to the network, check your power supply! +### Broken initial configuration + +Sometimes (especially if you played with AT commands), your module configuration may become invalid. +This may result in problems such as: + + * Can't connect to the GPRS network + * Can't connect to the server + * Sent/received data contains invalid bytes + * etc. + +To return module to **Factory Defaults**, use this sketch: + File -> Examples -> TinyGSM -> tools -> [FactoryReset](https://github.com/vshymanskyy/TinyGSM/blob/master/tools/FactoryReset/FactoryReset.ino) + +In some cases, you may need to set an initial APN to connect to the cellular network. +Try using the ```gprsConnect(APN)``` function to set an initial APN if you are unable to register on the network. +You may need set the APN again after registering. +(In most cases, you should set the APN after registration.) + ### Diagnostics sketch Use this sketch to help diagnose SIM card and GPRS connection issues: @@ -285,13 +304,13 @@ This library opens a TCP (or SSL) connection to a server. In the [OSI model](https://en.wikipedia.org/wiki/OSI_model), that's [layer 4](http://www.tcpipguide.com/free/t_TransportLayerLayer4.htm) (or 5 for SSL). HTTP (GET/POST), MQTT, and most of the other functions you probably want to use live up at [layer 7](http://www.tcpipguide.com/free/t_ApplicationLayerLayer7.htm). This means that you need to either manually code the top layer or use another library (like [HTTPClient](https://github.com/arduino-libraries/ArduinoHttpClient) or [PubSubClient](https://pubsubclient.knolleary.net/)) to do it for you. -Tools like PostMan also works at layer 7, not layer 4/5 like TinyGSM. +Tools like [PostMan](https://www.postman.com/) also show layer 7, not layer 4/5 like TinyGSM. If you are successfully connecting to a server, but getting responses of "bad request" (or no response), the issue is probably your formatting. Here are some tips for writing layer 7 (particularly HTTP request) manually: - Look at the "WebClient" example - Make sure you are including all required headers. - - If you use PostMan, make sure you un-hide and look at the "auto-generated" headers; you'll probably be surprised by how many of them there are. -- Use ```client.print("")```, or ```client.write(buf, #)```, or even ```client.write(String(""))```, not ```client.write("")``` to help prevent text being send out one character at a time (typewriter style) + - If you are testing with PostMan, make sure you un-hide and look at the "auto-generated" headers; you'll probably be surprised by how many of them there are. +- Use ```client.print("...")```, or ```client.write(buf, #)```, or even ```client.write(String("..."))```, not ```client.write("...")``` to help prevent text being sent out one character at a time (typewriter style) - Enclose the entirety of each header or line within a single string or print statement - use ```cpp @@ -330,19 +349,6 @@ You will not be able to compile the HttpClient or HttpsClient examples with ESP3 When using SAMD21-based boards, you may need to use a sercom uart port instead of `Serial1`. Please [refer to this comment](https://github.com/vshymanskyy/TinyGSM/issues/102#issuecomment-345548941). -### Broken initial configuration - -Sometimes (especially if you played with AT commands), your module configuration may become invalid. -This may result in problems such as: - - * Can't connect to the GPRS network - * Can't connect to the server - * Sent/received data contains invalid bytes - * etc. - -To return module to **Factory Defaults**, use this sketch: - File -> Examples -> TinyGSM -> tools -> [FactoryReset](https://github.com/vshymanskyy/TinyGSM/blob/master/tools/FactoryReset/FactoryReset.ino) - ### Goouuu Tech IOT-GA6 vs AI-Thinker A6 confusion It turns out that **Goouuu Tech IOT-GA6** is not the same as **AI-Thinker A6**. Unfortunately IOT-GA6 is not supported out of the box yet. There are some hints that IOT-GA6 firmware may be updated to match A6... See [this topic](https://github.com/vshymanskyy/TinyGSM/issues/164).