8
.github/ISSUE_TEMPLATE.md
vendored
8
.github/ISSUE_TEMPLATE.md
vendored
@@ -10,18 +10,21 @@ Please do ensure that your modem is properly powered and able to communicate
|
|||||||
with your board before submitting any issues.
|
with your board before submitting any issues.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
[ ] I have read the Troubleshooting section of the ReadMe
|
||||||
|
|
||||||
## What type of issues is this?
|
## What type of issues is this?
|
||||||
|
|
||||||
[ ] Request to support a new module
|
[ ] Request to support a new module
|
||||||
<!-- Please, consider forking and submitting a pull request! -->
|
<!-- Please, consider forking and submitting a pull request! -->
|
||||||
[ ] Bug or problem compiling the library
|
[ ] Bug or problem compiling the library
|
||||||
[ ] Bug or issue with library functionality (ie, sending data over TCP/IP)
|
[ ] Bug or issue with library functionality (ie, sending data over TCP/IP)
|
||||||
|
[ ] Question or request for help
|
||||||
|
|
||||||
|
|
||||||
### What are you working with?
|
### What are you working with?
|
||||||
|
|
||||||
|
Modem: <!-- Brand, model, variant, firmware version, ie Quectel BG96 Revision: BG96MAR02A07M1G -->
|
||||||
Main processor board: <!-- Uno, Zero, ESP32, Particle, etc -->
|
Main processor board: <!-- Uno, Zero, ESP32, Particle, etc -->
|
||||||
Modem: <!-- Brand, model, variant, firmware version -->
|
|
||||||
TinyGSM version: <!-- always try to use the latest (0.10.6) -->
|
TinyGSM version: <!-- always try to use the latest (0.10.6) -->
|
||||||
Code: <!-- Example name or paste in your code -->
|
Code: <!-- Example name or paste in your code -->
|
||||||
|
|
||||||
@@ -34,5 +37,6 @@ Code: <!-- Example name or paste in your code -->
|
|||||||
### Actual result
|
### Actual result
|
||||||
<!-- What actually happens after the reproduction steps? Include the error output or a link to a gist if possible. -->
|
<!-- What actually happens after the reproduction steps? Include the error output or a link to a gist if possible. -->
|
||||||
|
|
||||||
### AT command log
|
### Debug and AT command log
|
||||||
|
<!-- Enable debugging by defining TINY_GSM_DEBUG before including TinyGSM -->
|
||||||
<!-- The AT commands log you get using StreamDebugger or any other debugging method -->
|
<!-- The AT commands log you get using StreamDebugger or any other debugging method -->
|
||||||
|
82
README.md
82
README.md
@@ -150,16 +150,54 @@ If you have found TinyGSM to be useful in your work, research or company, please
|
|||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
|
#### First Steps
|
||||||
|
|
||||||
1. Using your phone:
|
1. Using your phone:
|
||||||
- Disable PIN code on the SIM card
|
- Disable PIN code on the SIM card
|
||||||
- Check your balance
|
- Check your balance
|
||||||
- Check that APN, User, Pass are correct and you have internet
|
- Check that APN, User, Pass are correct and you have internet
|
||||||
2. Ensure the SIM card is correctly inserted into the module
|
2. Ensure the SIM card is correctly inserted into the module
|
||||||
3. Ensure that GSM antenna is firmly attached
|
3. Ensure that GSM antenna is firmly attached
|
||||||
4. Check if serial connection is working (Hardware Serial is recommended)
|
4. Ensure that you have a stable power supply to the module of at least **2A**.
|
||||||
|
5. Check if serial connection is working (Hardware Serial is recommended)
|
||||||
Send an ```AT``` command using [this sketch](tools/AT_Debug/AT_Debug.ino)
|
Send an ```AT``` command using [this sketch](tools/AT_Debug/AT_Debug.ino)
|
||||||
|
6. Try out the [WebClient](https://github.com/vshymanskyy/TinyGSM/blob/master/examples/WebClient/WebClient.ino) example/
|
||||||
|
|
||||||
If you have any issues:
|
#### Writing your own code
|
||||||
|
|
||||||
|
The general flow of your code should be:
|
||||||
|
- Define the module that you are using (choose one and only one)
|
||||||
|
- ie, ```#define TINY_GSM_MODEM_SIM800```
|
||||||
|
- Included TinyGSM
|
||||||
|
- ```#include <TinyGsmClient.h>```
|
||||||
|
- Create a TinyGSM modem instance
|
||||||
|
- ```TinyGsm modem(SerialAT);```
|
||||||
|
- Create one or more TinyGSM client instances
|
||||||
|
- ```TinyGsmClient client(modem);``` for a single TCP client
|
||||||
|
- ```TinyGsmClient clientX(modem, #);``` for one or more TCP clients (on supported modules)
|
||||||
|
- ```TinyGsmClientSecure client(modem);``` for a single SSL client (on supported modules)
|
||||||
|
- ```TinyGsmClientSecure clientX(modem, #);``` for one or more SSL clients (on supported modules)
|
||||||
|
- Begin your serial communication and set all your pins as required to power your module and bring it to full functionality.
|
||||||
|
- Wait for the module to be ready (~300ms - 6s)
|
||||||
|
- Initialize the modem
|
||||||
|
- ```modem.init()``` or ```modem.restart()```
|
||||||
|
- Unlock your SIM, if necessary:
|
||||||
|
- ```modem.simUnlock(GSM_PIN)```
|
||||||
|
- If using **WiFi**, specify your SSID information:
|
||||||
|
- ```modem.networkConnect(wifiSSID, wifiPass)```
|
||||||
|
- 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
|
||||||
|
- ```modem.gprsConnect(apn, gprsUser, gprsPass)``` (or simply ```modem.gprsConnect(apn)```)
|
||||||
|
- The same command is used for both GPRS or EPS connection
|
||||||
|
- If using a **Digi** brand cellular XBee, you must specify your GPRS/EPS connection information _before_ waiting for the network. This is true ONLY for _Digi cellular XBees_! _For all other cellular modules, use the GPRS connect function after network registration._
|
||||||
|
- Connect the TCP or SSL client
|
||||||
|
```client.connect(server, port)```
|
||||||
|
- Send out your data.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### If you have any issues:
|
||||||
|
|
||||||
1. Read the whole README (you're looking at it!)
|
1. Read the whole README (you're looking at it!)
|
||||||
2. Some boards require [**special configuration**](https://github.com/vshymanskyy/TinyGSM/wiki/Board-configuration).
|
2. Some boards require [**special configuration**](https://github.com/vshymanskyy/TinyGSM/wiki/Board-configuration).
|
||||||
@@ -179,19 +217,43 @@ For additional functions, please refer to [this example sketch](examples/AllFunc
|
|||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Diagnostics sketch
|
|
||||||
|
|
||||||
Use this sketch to diagnose your SIM card and GPRS connection:
|
|
||||||
File -> Examples -> TinyGSM -> tools -> [Diagnostics](https://github.com/vshymanskyy/TinyGSM/blob/master/tools/Diagnostics/Diagnostics.ino)
|
|
||||||
|
|
||||||
### Ensure stable data & power connection
|
### Ensure stable data & power connection
|
||||||
|
|
||||||
Most modules require up to 2A and specific voltage - according to the module documentation.
|
Most modules require _**as much as 2A**_ to properly connect to the network.
|
||||||
So this actually solves stability problems in **many** cases:
|
This is 4x what a "standard" USB will supply!
|
||||||
- Provide a good stable power supply. Read about [**powering your module**](https://github.com/vshymanskyy/TinyGSM/wiki/Powering-GSM-module).
|
Improving the power supply actually solves stability problems in **many** cases!
|
||||||
|
- Read about [**powering your module**](https://github.com/vshymanskyy/TinyGSM/wiki/Powering-GSM-module).
|
||||||
- Keep your wires as short as possible
|
- Keep your wires as short as possible
|
||||||
- Consider soldering them for a stable connection
|
- Consider soldering them for a stable connection
|
||||||
- Do not put your wires next to noisy signal sources (buck converters, antennas, oscillators etc.)
|
- 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!
|
||||||
|
|
||||||
|
### Diagnostics sketch
|
||||||
|
|
||||||
|
Use this sketch to help diagnose SIM card and GPRS connection issues:
|
||||||
|
File -> Examples -> TinyGSM -> tools -> [Diagnostics](https://github.com/vshymanskyy/TinyGSM/blob/master/tools/Diagnostics/Diagnostics.ino)
|
||||||
|
|
||||||
|
If the diagnostics fail, uncomment this line to output some debugging comments from the library:
|
||||||
|
```cpp
|
||||||
|
#define TINY_GSM_DEBUG SerialMon
|
||||||
|
```
|
||||||
|
In any custom code, ```TINY_GSM_DEBUG``` must be defined before including the TinyGSM library.
|
||||||
|
|
||||||
|
If you are unable to see any obvious errors in the library debugging, use [StreamDebugger](https://github.com/vshymanskyy/StreamDebugger) to copy the entire AT command sequence to the main serial port.
|
||||||
|
In the diagnostics example, simply uncomment the line:
|
||||||
|
```cpp
|
||||||
|
#define DUMP_AT_COMMANDS
|
||||||
|
```
|
||||||
|
In custom code, you can add this snippit:
|
||||||
|
```cpp
|
||||||
|
#ifdef DUMP_AT_COMMANDS
|
||||||
|
#include <StreamDebugger.h>
|
||||||
|
StreamDebugger debugger(SerialAT, SerialMon);
|
||||||
|
TinyGsm modem(debugger);
|
||||||
|
#else
|
||||||
|
TinyGsm modem(SerialAT);
|
||||||
|
#endif
|
||||||
|
```
|
||||||
|
|
||||||
### SoftwareSerial problems
|
### SoftwareSerial problems
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user