- Buiding an arcade coin-op machine to rediscover the 80-90s with RetroPiePosted 3 days ago
- Which is the best (open source) 3D printer?Posted 7 days ago
- The ESP WiFi Shield: the best value for money and low energy consumptionPosted 2 weeks ago
- Creating a Network of Nodes with LoRa ShieldPosted 3 weeks ago
- Using LoRa shield in Packet ModePosted 4 weeks ago
- Full Graphic Smart Controller display for 3Drag 3DprinterPosted 1 month ago
- Wi-Lamp, the Open Source Wi-Fi LED lampPosted 1 month ago
- An Android app to manage the GSM Remote ControlPosted 2 months ago
- The LoRa shield: an Open Source Arduino’s long-range communication modulePosted 2 months ago
- The soul of the open source automatic bartender: the DRINK MAKER softwarePosted 2 months ago
Localizer with SIM908 module
The device is based on a GSM/GPRS module with included GPS. Its main function is to detect and communicate its own geographical position using, on the choice, the cellular phone reference system or the GPS. Its small dimensions are due to the use, for the first time, of a GSM/GPRS module integrating the GPS receiver. That is the SIM908 a recent product by SIMCOM.
Circuit schematic of the localizer
The circuit of the localizer is build around two boards, one with the SIM908 on board and the second one including the microcontroller and the battery charger for the lithium battery. To get the GPS working will be necessary to complete the localizer circuit with an appropriate antenna.
The circuit includes the mother board, mounting the microcontroller and its circuitry, and the daughter board mounting the communication module, the block named GSM in the schema. The reference numbers associated to the contacts on the GSM block correspond to the pins of the connector linking the daughterboard to the motherboard.
The program running in the microcontroller U1, one PIC18LF6722, waits for an incoming event or for the button P1 being pushed. While the button is pressed the line RB1, provided with internal pull-up resistor, switches from logical level 1 to the logical level 0,
In case of incoming of an SMS message, the program reacts depending on the content of the message that could be a configuration message or a geographical position request.
Let focus on the process aimed to retrieve the geographical position, that is quite the same in both cases of manual request and P1 pushing (alarm or S.O.S.). After the request has been detected, the program in the PIC microcontroller sends commands to the cellular module in order to have it connected to Internet in GPRS mode. Then connects to the Google Maps server and sends a request of position based on the identification of the cell the SIMCom module is connected to; then again loop waiting for data on the RX channel of the UART. While got data back with the position (Latitude and Longitude) and accuracy, it is a composed string with the appropriate link to Google Maps and sent to the requesting phone, or to the phone number stored in memory coupled to the alarm function.
If the cellular phone is an Android Smartphone or an iPhone, the link received in the SMS can open Google Maps directly on the area where the localizer is present. In the other cases the message contains the coordinates and other data.
The GSM module is managed by the microcontroller using the lines: RF1 (pin 8 on connector) through which it detects the incoming calls through the Ring Indicator (RI), RC7/RX1 (pin 14 on the cellular board); these last two are the lines, respectively, of reception and transmission of the UART used for receiving and sending SMS messages. The same two lines are used for managing the SIM908, unless the reset and power supply lines. Power supply is controlled by line RC2 that affects pin 1 of the cellular module in order to turn ON and OFF the SIM908 and to enable the phone after initialization. Lines cited before are common to the GSM and GPS section of SIM908.
Both the boards are powered by the switch SW1 from the 3.6 volt Li-ion battery connected to the + and – poles of the PWR connector.
Many capacitors inserted along the positive power line filter noises coming from the cellular during transmission, that could lock the microcontroller.
To save power, there is the features to “hibernate” the localizer for a maximum period of 240 seconds. This limits the power consumption of the micro and enables the possibility to put also the cellular in standby mode and reduce the system clock speed. In standby mode the cellular soaks only 6 mA of power. On SIM900 the Slow Clock can be enabled using the AT extended command AT+CSCLK=2. This command enables the Slow Clock mode automatically when there is no traffic on serial port and disabled it while new data comes in.
The microcontroller exits the “hibernate” mode when a new call come in or at the end of the period (240 seconds), in this case the microcontroller checks for possible SMS received. In the case, it executes and delivers the requests and, at the end, turn back in “hibernate” mode. While in “hibernate” mode the microcontroller can’t detect incoming SMS, this way a possible urgent request will be delayed until the microcontroller will wake up. To overcome this situation could be suitable to anticipate a phone call, may be of just one ring, and then send the SMS. The call will awake the microcontroller and the SMS will be detected immediately.
One specific application of the locator is its use as a motion detection sensor. In this mode the detection is based on the change of the cells the cellular is connected to, the microcontroller stores in memory the current cell and the neighbour cells; if the cellular commutes within these cells it means that it is almost standing still; if it commutes on cells outside the range in memory it means it is moving and, for instance, an alarm can be activated.
This approach can be little sensitive in case of scarcely inhabited lands with a little number of cells: in this case the motion, to be detected, requires a movement quite long.
The power supply comes from a 3.6 volt battery that can be charged by a miniUSB plug that allows recharge from any PC. The power regulator is the chip MCP73831T in SMD version (package SOT-23), it can supply up to 550 mA at 3.6 – 3.7 volt to fully charge a lithium or Li-Po battery with an input supply of 3.75 – 6 volt.
The chip charges the battery with a constant current. The charging current (Ireg) is set by the value of the resistor connected to pin 2, whose value is calculate as:
Ireg = 1.000/R
where the value of R is in ohm and Ireg in Ampere.
As an example with R of 4.7 kohm the current will be 212 mA, while with an R of 2.2 kohm the current will be 454 mA. While pin 5 is opened the chip goes into sleep mode and soaks only 2 µA (therefore the pin 5 can be used as enable).
The LED LD3, while ON means the battery is in charge, and when turns OFF, it means the battery has been fully charged.
The battery charger circuit is completed by the capacitors C1 and C2, while C1 filters high frequency noises and C2 filters alternate noises and stabilize the power to 5 volt.
Part list base
R2: 330 ohm (0805)
R3: 330 ohm (0805)
R4: 330 ohm (0805)
R5: 10 kohm (0805)
C1: 100 nF (0805)
C2: 100 nF (0805)
C3: 100 nF (0805)
C4: 15 pF (0805)
C5: 15 pF (0805)
C6: 470 µF 6,3 VL (CASE-X)
C7: 4,7 µF 6,3 VL (CASE-P)
LD1: led red (0805)
LD2: led green (0805)
LD3: led green (0805)
Q1: quartz 20 MHz (12SMX)
P1: Microswitch 90° SMD
molex 2 via 90°
connector 8 via
connector 2×10 via 2 mm female
The cellular board
The SIM908 is mounted on the board by a male connector of 20 pins, (two rows of 10 pins each) step 2 mm.
The active contacts of the connectors are:
the power supply, VCC on pins 17 and 19;
the power on control line (ON/OFF);
- the serial communication lines to and from the GSM module (TXD and RXD);
- the ground (GND) on pins 18 and 20;
the Ring Indicator.
In the electrical schema can be seen that the line ON/OFF is used by the microcontroller to manage the switching on and shutting down of the GSM1 module, that it is always under power, delivered by Vcc line on pins
55, 56 and 57 62 and 63; the line includes an internal pull-up resistor and goes ON at logical 0. Therefore, to switch ON the cellular module, the microcontroller have to put high the line ON/OFF (pin 1 on connector). This saturates the T2 transistor, that drive to low the line PWR of GSM1.
The control of reset is at switch-on time, therefore there is no reset line and the jumper J2 must be left open.
Now take a look at the lines reserved to communication. The SIM908 module has two different serial ports on board, one for the cellular section of the module and one for the GPS section. The first UART uses the pins 12, 14 and 10 of the connector; the serial port of GPS communicates on GPSTXD and GPSRXD lines (contacts 4 and 5). Actually the serial port on cellular allows the full management of SIM908 module, therefore it can be used to configure and communicate with the GPS receiver, in order to call for data about satellite status and geographical positioning, and to transfer them to the microcontroller. This is the approach followed in the design of this project.
From the GPSTXD/GPSRXD serial port flows a continuous stream of data in NMEA format, if the microcontroller would have used this source of data for the GPS, it would have been overloaded by data, loosing the possibility to perform the other functions.
Apart from serial communication lines, the IR line (pin 18) of SIM908 module it is used to keep the microcontroller informed about incoming calls.
There are also four audio lines on the module, two for the microphone, MIC1P and MIC1N, (pin 19 and 20) and two for the loudspeaker SPK1N and SPK1P (pin 21 and 22) that are not used in this project.
The antenna for the GSM module is connected directly to its own connector on SIM908 module. The module has a second antenna connector for the GPS antenna. Both active and passive antennas can be connected to the SIM908 module, in the first case the antenna can be powered directly by the module, by closing the jumper J1.
The transistor T1 it is used to drive the signal power LED, its base gets polarized by the logical level on the pin 52 (NETLIGHT) of GSM1 module. The collector of the transistor is connected to the pin 3 of the connector through which the microcontroller gets informed on the presence of the GSM network and on the quality of the connection.
At last the description of the SIM of the cellular phone, named SIM1 and positioned in the classical housing; the contacts on the card are SIM_CLK (clock), SIM_RST (reset) and SIM_DATA (data channel) while the line SIM_VDD (filtered by the capacitor C1) is used to switch on and off the SIM by the SIM908 module. The first three lines have resistors in series to protect the SIM908 module in case the SIM would be inserted incorrectly, short-circuiting the contacts.
Part list SIM908 breakout
C1: 220 nF (0805)
C2: 100 nF (0805)
C3: 470 µF 6,3 VL (CASE-D)
C4: 470 µF 6,3 VL (CASE-D)
C5: 100 nF (0805)
LD1: LED (0805)
R1: 15 ohm (0805)
R2: 15 ohm (0805)
R3: 15 ohm (0805)
R4: 10 kohm (0805)
R5: 4,7 kohm (0805)
R6: 10 kohm (0805)
R7: 330 ohm (0805)
R8: 10 kohm (0805)
R9: 4,7 kohm (0805)
GSM1: GSM SIM908
– Strip male 2×10 2mm
Setting and commands
Once completed and programmed, the localizer must be appropriately configured, using a common cellular phone. Some commands are password protected while other commands will be executed if coming from one out of the eighth qualified phone numbers stored in memory.
The same eighth phone numbers are the only qualified to ask for geographical positioning.
The predefined password (automatically set at every system reset) is 12345; it is possible to change the password with one of choice (five digit long) sending the command by SMS containing the text PWDnewpwd;pwd, where pwd is the current password and newpwd is the new one.