Hi! I am getting errors connecting to the gsm module
Here's the code I got from rhydolabz
import serial
import RPi.GPIO as GPIO
import os, time
GPIO.setmode(GPIO.BOARD)
# Enable Serial Communication
port = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)
# Transmitting AT Commands to the Modem
# '\r\n' indicates the Enter key
port.write('AT'+'\r\n')
rcv = port.read(10)
print rcv
time.sleep(1)
port.write('ATE0'+'\r\n') # Disable the Echo
rcv = port.read(10)
print rcv
time.sleep(1)
port.write('AT+CMGF=1'+'\r\n') # Select Message format as Text mode
rcv = port.read(10)
print rcv
time.sleep(1)
port.write('AT+CNMI=2,1,0,0,0'+'\r\n') # New SMS Message Indications
rcv = port.read(10)
print rcv
time.sleep(1)
# Sending a message to a particular Number
port.write('AT+CMGS="+6xxxxxxxxx68"'+'\r\n')
rcv = port.read(10)
print rcv
time.sleep(1)
port.write('Hello User'+'\r\n') # Message
rcv = port.read(10)
print rcv
port.write("\x1A") # Enable to send SMS
for i in range(10):
rcv = port.read(10)
print rcv
Here are the errors:
OSError: [Errno 11] Resource temporarily unavailable
raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected?)
raise SerialException('write failed: %s' % (v,))
serial.serialutil.SerialException: write failed: [Errno 5] Input/output error
Sometimes It sends
Hello User
Login incorrect
raspberrypi login:
Sometimes
>
>
>
(100+ more '>')
Hello User
but almost always it doesn't connect and it gives Error 11
Have you experience this too? Is there a way I can wait for the gsm to connect before I proceed on sending a message?
Did you disconnect the uart from the internal bluetooth and kernel console?
If you don't you will have a problem accessing the device. You need to disable the service that use it:
sudo systemctl disable hciuart
also disable kernel console on that uart eliminating
console=serial0,115200
from kernel command line (/boot/cmdline.txt).And you need to enable two overlays on the device tree (/boot/config.txt) Maybe this can help you:
dtoverlay=pi3-disable-bt
dtoverlay=pi3-miniuart-bt
Complet solution by rasberrypi.org: https://www.raspberrypi.org/documentation/configuration/uart.md