-
Notifications
You must be signed in to change notification settings - Fork 215
Pinouts
The LTE Shield simply connects to the Arduino's (host board) pins and allows it to communicate with the SIM7000 module and temperature sensor and is compatible with the Arduino Uno, Mega, and Leonardo and most other 5V microcontroller boards available if used as a standalone module (not as a "shield"). You can view the full schematic here but the pinouts are shown below:
The complete setup needed to get this shield to work properly should look something like the picture below, with a SIM card and antenna connected:
The LTE Shield is powered by the 5V rail on the Arduino (or externally). This means that as long as your Arduino has adequate power the shield will be happy as well! However, if you don't plan on plugging the shield into an Arduino board you can use it as a standalone module (i.e., if you are using an Arduino Micro or other board that isn't in the Arduino Uno form factor) by connecting the 5V power rail and GND to the microcontroller, and connecting the appropriate logic pins explained in the next section (namely, TX and RX pins).
- GND - Common ground for all logic and power
- 3.3V - 3.3V from the Arduino's regulator. Use this just as you would on the Arduino!
- 5V - This 5V from the Arduino is used to power the SIM7000 and is the logic voltage for the I2C and level shifting. Note that if you use the LTE module as a standalone module you can power it via this pin with 4-6V. Also note that if you use a 3.3V host board you won't be able to power the shield unless you can tie the 5V power rail from the USB of the host board to the 5V pin on the shield.
- VBAT - This grants access to the LiPo battery voltage and is normally not connected to anything on the Arduino so you are free to use it as you wish! It's also the same as the input voltage of the SIM7000 module. If you're thinking about measuring and monitoring this voltage, check out the "b" command in the demo tutorial which measures the voltage and displays the battery percentage!
- VIN - This pin is simply connected to the VIN pin on the Arduino. You can power the Arduino as you normally would with 7-12V on this pin.
Here's a picture of what the setup might look like powering the Arduino and LTE shield via the USB cable:
By default the logic voltage is set to 5V but if you have, say, a 3.3V microcontroller this can be changed by cutting the existing trace on the back of the board as shown below with an X-ACTO knife or razor blade and bridging the other side of the jumper with solder. You can then supply a logic voltage anywhere from 1.8V and 5.5V across the VCC/GND header. This is perfect if you want to interface the board with a lower-voltage microcontroller!
However, it should be noted that supplying your own logic voltage will also switch the temperature sensor to that new logic voltage, but since the temperature sensor operates from 2.7-5.5V you won't be able to use the temperature sensor if the voltage is too low. However, you can still communicate with the SIM7000 down to 1.8V as long as it has an adequate power supply on the 5V pin (see previous section).
The logic pins are the same as the host Arduino board but some are reserved for the SIM7000 module so you should not use them for other purposes:
- D6 - This pin is connected to the SIM7000's "power key" (PWRKEY) pin. Pulsing it LOW for at least 72ms then setting it back to HIGH will turn on the SIM7000 if it was OFF previously. Note that there is a 4.2s lag before the green power LED will indicate that the module is on after you have initiated the turn-on pulse. To turn it OFF from being ON you have to pulse it for at least 1.2s, after which the power LED will lag about 1.3s to turn off.
- D7 - This pin is connected to the SIM7000's RESET pin and can be used to reset the module by pulsing the pin low for 50-500ms with 100ms being a typical value. Note that this pin should only be used in an emergency, according to the datasheet, and pulsing it when the module is powered off will be of no effect.
- D8 - This is the UART Data Terminal Ready (DTR) pin which can be used in conjunction with "AT+CSCLK" to wake the module out of sleep mode for low-power applications. For most users and general testing this pin may not be needed but it's there in case you do. To connect the pin, bridge the solder jumper with a little solder.
- D9 - This is the Ring Indicator (UI) pin for the UART and it can be used as an interrupt to see if, for example, the SIM7000 is calling ET phone home! However, in order to use this function you need to use the command "AT+CFGRI=1". More documentation can be found in Section 3.3.2 in the SIM7000 Hardware Design manual
- D10 - This is the SIM7000's TX (transmit) pin, which should be the Arduino's (or host board's) RX (receive) pin. In the Arduino IDE just make sure you're straight about which one is which! This pin is compatible for software serial RX on the Arduino Uno, Mega, and Leonardo.
- D11 - This is the SIM7000's RX pin which is the Arduino's TX pin. Both TX and RX are needed to communicate with the SIM7000!
- D12 - This pin is not normally connected but can be tied to the temperature sensor's ALERT pin by bridging the solder jumper on the backside of the board. This pin can produce an interrupt when the temperature reaches a set threshold via I2C. To connect it, simply bridge the jumper on the board with solder. You can view the the full MCP9808 datasheet here. Since ALERT is open-drain output, the LTE shield includes a 10k pull-up resistor on the ALERT pin to pull it normally high; when the even occurs the interrupt will pull it low. Note that the ALERT pin can be configured as active-high instead of active-low, but active-low should is more conventional and should work for all practical purposes.
- SDA - This is the I2C data pin which is used to communicate with the temperature sensor and this pin is the same as the analog pin A4 on the Arduino Uno
- SCL - This is the I2C clock pin and is the same as analog pin A5 on the Arduino Uno
Software serial is used in place of hardware serial for cases in which there is only a single hardware serial used for debugging (like the Arduino Uno) or when hardware serial is otherwise not available. Software serial emulates hardware serial by using two digital pins and interrupts. However, there are limitations to using software serial, including a lower maximum baud rate (57600 on Arduino Uno) which means that you will need to set the default 115200 baud rate of the SIM7000 module to a lower value in order to communicate reliably using software serial. Moreover, on some Arduino boards (like Arduino Mega and Leonardo) software serial is only available on certain pins for RX. Fortunately the LTE shield (version 4 and later) is designed to use RX on pin 10 for compatibility with these boards. You can find more information about the library here.
If you are using hardware serial you will need to wire up TX and RX of the hardware serial port on the microcontroller to the RX/TX pins on the shield (D11/D10). On Arduino Leonardo the hardware serial port is pins 0 and 1 and therefore you will have to wire up the shield externally. Also, if the microcontroller has multiple hardware serial ports, please keep them straight! For example, using the Arduino Leonardo "Serial" is reserved for the USB interface (serial monitor) whereas you should use "Serial1" for the actual communication with the shield. So use "Serial" to print out your debug messages but use "Serial1" for executing AT commands, etc.
- Battery Connector - This connector is meant for standard single-cell, 3.7V LiPo batteries with a 2mm JST connector, like the ones found at Sparkfun and Adafruit. The battery is used to prevent the module from rebooting under high-current modes like 2G and 2.5G where the module might constantly reboot due to voltage drops from the current spikes. For SIM7000A users this is not needed since the rebooting only occurs with GSM (which the SIM7000A module does not support anyway). However, for the SIM7000C and SIM7000E versions it is a good idea to use a LiPo battery to prevent this issue, especially if GSM will be used. However, if only LTE CAT-M1 or NB-IoT is used then it is possible to avoid using a LiPo battery by setting the proper AT commands so that the module only operates in CAT-M1 or NB-IoT modes, for example. Note that if used, the battery should be at least 500mAH capacity (1AH or more is ideal) because the charging circuitry is set to charge the battery at 500mA and also because it needs to be able to handle larger current spikes.
- Micro USB - The micro USB connector is for communication and debugging for the SIM7000 module.
- SIM Card Holder - This SIM card holder accepts micro SIM cards only! Most SIM cards come in a standard SIM size but also allow you to break out a smaller size. Break out the intermediate size (you should still have a "nano" size inside the "micro" one you're using). Insert the SIM card into the holder as shown below while the Arduino is off, trying not to touch the metal connections with your fingers!
- LTE/GNSS Antenna - On the right side of the board there are two standard uFL connectors for the LTE antenna and GPS antenna. Both of these antennas are actually combined in a single dual LTE/GPS antenna that is included in the purchase of the shield. This is absolutely essential for proper operation so go ahead and snap the antenna on!
The antenna also has 3M adhesive on the back if in case you want to stick it onto something.
- Done Charging LED - This green LED lights up if the battery if fully-charged, or in the case where you don't have a battery connected, is normally on when you power the shield. This LED indicates that the voltage being supplied to the module is around 4.2V. If you don't have the battery plugged in you might see this LED start flashing, especially during data transmission. This is because it's meant to charge a LiPo battery and if it's not there, the voltage dipping because of current draw spikes from the cellular module can trick it into thinking that the battery is not fully-charged. This is by no means a matter of concern unless the module starts rebooting, in which case you'll want to attach a LiPo battery. In fact, it's actually quite cool because you can see when the module is drawing more current!
- SIM7000 Power - This green LED (labeled "PWR") indicates the power state of the SIM7000 module. Just because this LED is off doesn't mean that the module doesn't have power, because you can command the SIM7000 to shut down. If you want to disable this LED you can cut the jumper trace next to it on the board using a razor blade.
- Network Status - This blue LED indicates the cellular network connection status. Per the SIM7000 Hardware Design Document, 64ms ON/800ms OFF indicates no connection, 64ms ON/3000ms OFF indicates registered to network, 64ms ON/300ms OFF indicates transmission of data, and OFF indicates power-off or power-saving mode. If you really don't want this LED (maybe for power-saving reasons) you can disable it with "AT+CNETLIGHT=0" or re-enable it with "AT+CNETLIGHT=1".
NOTE: Voice support is still under development and I am communicating with SIMCom engineers about this. Stay tuned for more updates on this! I'm also developing a completely separate shield for high-speed LTE that will include audio!
The other shield will include voice and audio support so you can call a friend (or your own phone if you're like me) from your Arduino! On the board there is a four-pin header split up into two sections: two pins for the microphone and two pins for the speaker.
[[]]
- Microphone - The shield kit includes an electret microphone which can be soldered directly to the "MIC-" and "MIC+" pins on the shield (the polarity/orientation does not matter). Use this to capture your beautiful voice over the cell towers!
- Speaker - You can use just about any small 8-Ohm speaker or a headset or pair of earbuds with two 16-Ohm speakers in parallel (8-Ohms total). Perhaps the quickest and easiest option is to get a pair of old earbuds or headphones, cut the audio jack off, and strip the two wires and solder them directly to the shield. The audio codec is capable of directly driving an 8-Ohm speaker up to about 0.4 Watts. Perhaps a better solution for those of a more refined palate is to get a 4-pole audio jack, solder the four wires to the LTE shield, then plug a headset with built-in microphone into the audio jack. (For headsets and earbuds polarity usually doesn't matter) However, do what suits you best; you can always use a speaker with a built-in amplifier if you're too manly for making phone calls with earbuds!