I am using a SIM800L module using Texas Instruments Launchpad with an MSP430G2553 microcontroller that does not use an external library for SIM800L.
Problem: A simple text message (SMS with text mode) is sent, received as an empty message on a mobile phone.
SIM Details:
1. SIM 1 : Location: India. Operator: AirTel, compatible with 4G SIM card.
2. SIM 2 : Location: India. Operator: Tata Docomo, 3G-compatible SIM card.
I already know:
- UART Drivers in the firmware are tested and work without request, interruption.
- No lock delays are added as a substitute for reading AT command responses. I read the answer and continue, only if a positive confirmation is received,
<CR><LF>OK<CR><LF> for most teams. - I confirmed the data bit transmitted and received on the Tx-Rx pins with an oscilloscope. Everything looks as expected, including voltage levels.
What I read:
Some speculations through unofficial sources (of course, forums) that the SIM800L is only compatible with 2G.
(Incorrect reading from Wikipedia) I read GSM 3.38 and GSM 3.40 and the Section of the encoding scheme to understand how text encoding is processed in the appropriate / corresponding AT (AT + CSMP) command.
Various forums, including for arduino, with which SIM800L-modules are very popular.
Related Stackoverflow Entries:
- Receive empty SIM800 SMS using AT and Python commands on Raspberry Pi 2
- How to send SMS with GSM-module SIM800 and Arduino Uno?
- Sending GSM character set to SMS using SIM800L module
The answer in the first seemed to work for him; it did not work for me.
What I tried:
I used the same module with a Docklight serial terminal instance. SMS sent from Docklight is received on my mobile phone and displayed as expected, rather than empty.
On day 0, before integrating the module with Launchpad equipment, I checked the general state machine with an exact copy of the expected answers from SIM800L.
The results for both SIM cards are the same, with the exception of some initial configurations, but I upload a typical set of settings to both of them before initiating any SMS-related task.
Typical values ββthat I use:
- Echo off
- CSMP: 17, 167, 0, 0 (I tried 17, 167, 0, 0, but no luck). The default value from SIM 1 is 17.11.0.246, and from SIM 2 it is 17, 255, 0, 0.
- CSCS: "IRA"
Faulty serial port combinations : (SIM 1 and SIM 2)
- CSMP: 17, 11, 0, 246 | CSCS: "IRA" - sends an empty SMS
- CSMP: 17, 11, 0, 246 | CSCS: "GSM" - sends an empty SMS
- CSMP: 17, 11, 0, 246 | CSCS: "HEX" - sends an empty SMS
Successful serial port combinations : (SIM 1 and SIM 2)
- CSMP: 17, 167, 0, 0 | CSCS: "IRA"
- CSMP: 17, 167, 0, 8 | CSCS: "IRA"
- CSMP: 17, 11, 0, 0 | CSCS: "GSM"
- CSMP: 17, 167, 0, 0 | CSCS: "GSM"
- CSMP: 17, 167, 0, 8 | CSCS: "GSM"
Honestly, I played with these combinations before I studied which field reflects what will change these combinations (which are poorly documented in the SIM800L user guide).
Any idea what I'm missing here? I am open to thinking that it is rather RTFM (Read The Fat Manual).
embedded character-encoding sms at-command sim800
WedaPashi
source share