.. _modem: ============== Cellular Modem (PLS8-E) ============== Getting started --------------- - **Activate modem** - echo 1 > /opt/hm/pic_attributes/ctrl_modem_on - **Verify modem** - /opt/hm/modem_status.sh - **Activate simple read** - cat /dev/ttyACM2 - **Simple write commands** - echo "AT+CFUN?" > /dev/ttyACM2 - modem status - echo "at+COPS?" > /dev/ttyACM2 - Operator selection Production settings(default) ---------------------------- - **In some cases the modem AT command channel is not setup then manually send this commands:** - echo "at^ssrvset=actsrvset" > /dev/ttyACM1 - echo "^SSRVSET: 10" > /dev/ttyACM1 - echo "at^scfg=MEShutdown/OnIgnition,on" > /dev/ttyACM1 - echo "AT^SSRVSET=usbcomp,10,0061" > /dev/ttyACM1 - echo "AT^SSRVSET=srvmap,10,RSA,USB0,MUX0" > /dev/ttyACM1 - echo "AT^SSRVSET=srvmap,10,NMEA,USB1,MUX1" > /dev/ttyACM1 - echo "AT^SSRVSET=srvmap,10,APP,USB2,MUX2" > /dev/ttyACM1 - echo "AT^SSRVSET=srvmap,10,MDM,USB3,MUX3" > /dev/ttyACM1 - echo "AT^SSRVSET=actSrvSet, 10" > /dev/ttyACM1 - **Check the result.** - echo "AT^SSRVSET?" > /dev/ttyACM1 - **Reset the modem to activate the new settings.** - echo "AT+CFUN=1,1?" > /dev/ttyACM1 - The result ACM map is: - Radio /dev/ttyACM0 - GPS /dev/ttyACM1 - AT commands /dev/ttyACM2 - Modem /dev/ttyACM3 Use Wvdail to get a broadband connection ---------------------------------------- - Optional *ln -s /dev/ttyACM2 /dev/modem* - Run wvdailconf - vi /etc/wvdail.conf - Init1 = ATZ - Init2 = AT+CFUN=1 - Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 - Init4 = AT+CGDCONT=1,"IP","internet.telenor.se" - Modem Type = USB Modem - ISDN = 0 - Phone = *99# - Modem = /dev/ttyACM3 - Username=; - Password=; - Baud = 460800 - Stupid Mode = yes - Auto Reconnect = on - New PPPD = yes - Auto DNS = 1 - Run *wvdail &* - Test *ping 8.8.8.8* - Output could look like this: +-----------------------------------------------------------+ |root@mx4-v61:~# wvdial & | +-----------------------------------------------------------+ |[1] 599 | +-----------------------------------------------------------+ |root@mx4-v61:~# --> WvDial: Internet dialer version 1.61 | +-----------------------------------------------------------+ |--> Initializing modem. | +-----------------------------------------------------------+ |--> Sending: ATZ | +-----------------------------------------------------------+ |ATZ | +-----------------------------------------------------------+ |OK | +-----------------------------------------------------------+ |--> Sending: AT+CFUN=1 | +-----------------------------------------------------------+ |AT+CFUN=1 | +-----------------------------------------------------------+ |OK | +-----------------------------------------------------------+ |--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 | +-----------------------------------------------------------+ |ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 | +-----------------------------------------------------------+ |OK | +-----------------------------------------------------------+ |--> Sending: AT+CGDCONT=1,"IP","internet.telenor.se" | +-----------------------------------------------------------+ |AT+CGDCONT=1,"IP","internet.telenor.se" | +-----------------------------------------------------------+ |OK | +-----------------------------------------------------------+ |--> Modem initialized. | +-----------------------------------------------------------+ |--> Sending: ATDT*99# | +-----------------------------------------------------------+ |--> Waiting for carrier. | +-----------------------------------------------------------+ |ATDT*99# | +-----------------------------------------------------------+ |CONNECT 100000000 | +-----------------------------------------------------------+ |--> Carrier detected. Starting PPP immediately. | +-----------------------------------------------------------+ |--> Starting pppd at Tue Feb 5 10:46:34 2019 | +-----------------------------------------------------------+ |--> Pid of pppd: 600 | +-----------------------------------------------------------+ |--> Using interface ppp0 | +-----------------------------------------------------------+ |root@mx4-v61:~# --> local IP address 46.194.12.163 | +-----------------------------------------------------------+ |--> remote IP address 10.64.64.64 | +-----------------------------------------------------------+ |--> primary DNS address 195.54.122.211 | +-----------------------------------------------------------+ |--> secondary DNS address 195.54.122.221 | +-----------------------------------------------------------+ Use GPS (simple commands) ------------------------- - This is just one way of many ways to setup and get gps position data. - echo "AT^SGPSC=?" > /dev/ttyACM2 - echo "AT^SGPSC="Engine",0" > /dev/ttyACM2 - echo "AT^SBNW=agps,-1" > /dev/ttyACM2 - echo "AT^SGPSC="Nmea/Freq",1" > /dev/ttyACM2 - echo "AT^SGPSC="Nmea/Glonasst",on" > /dev/ttyACM2 - echo "AT^SGPSC="Nmea/Output",on" > /dev/ttyACM2 - echo "AT^SGPSC="Nmea/Urc",off" > /dev/ttyACM2 - echo "AT^SGPSC="Power/Antenna",auto" > /dev/ttyACM2 - echo "AT^SGPSC="Engine",1" > /dev/ttyACM2 - echo "AT^SGPSC?" > /dev/ttyACM2 - cat /dev/ttyACM1 & **or**gps-parser /dev/ttyACM1 - Output example (gps-parser) +-------------------------------------------------------------------------------+ |+GPRMC: Fix Time: 19222 12:37:9 Lat: 57.40.431402, Long: 12.0.831634 Speed: 0 | +-------------------------------------------------------------------------------+ |+GPRMC: Fix Time: 19222 12:37:10 Lat: 57.40.431402, Long: 12.0.831650 Speed: 0 | +-------------------------------------------------------------------------------+ |+GPRMC: Fix Time: 19222 12:37:11 Lat: 57.40.431401, Long: 12.0.831660 Speed: 0 | +-------------------------------------------------------------------------------+