Interact with Sierra Wireless modems, specifically AirPrime EM74xx/MC74xx models, using AT commands.
Under development, until then, here's additional instructions.
/dev/ttyUSB2
- NMEA (send$GPS_START
/$GPS_STOP
to toggle output)/dev/ttyUSB3
- AT (see commands in references)
-
Stop and disable ModemManager to prevent conflicts:
sudo systemctl stop ModemManager && sudo systemctl disable ModemManager
-
Start ModemManager in debug mode to monitor responses:
sudo /usr/sbin/ModemManager --debug
-
Send the following commands - adjust the index as required, wait for an OK after each command:
minicom
can also be used to send the commands.
sudo mmcli -m 0 --command='AT!ENTERCND="A710"' sudo mmcli -m 0 --command='AT!GPSAUTOSTART=1,1,255,100,1' sudo mmcli -m 0 --command='AT!GPSNMEACONFIG=1,1' sudo mmcli -m 0 --command='AT+WANT=1' sudo mmcli -m 0 --command='AT!CUSTOM="GPSSEL",0' sudo mmcli -m 0 --command='AT!CUSTOM="GPSLPM",0' sudo mmcli -m 0 --command='AT!RESET'
AT!ENTERCND="A710"
- Enable access to password-protected commandsA710
is the default code for MC7455 (maybe others)
AT!GPSAUTOSTART=1,1,255,100,1
- Configure GPS auto-start- Enable at boot
- Standalone fix (no MS assistance, use GPS only)
- Max time to wait for fix (
255
secs) - Accuracy of fix (within
100
meters) - Time between fixes (
1
sec)
AT!GPSNMEACONFIG=1,1
- Configure NMEA sentences- Enable NMEA data output
- Output rate of
1
sec
AT+WANT=1
- Enable antenna power (3.3V) for active GPS antennaeAT!CUSTOM="GPSSEL",0
- Ensure dedicated GPS antenna port is used (default)AT!CUSTOM="GPSLPM",0
- GPS remains enabled when modem enters low power mode (e.g, no SIM)AT!RESET
- Reset modem to apply new configuration
- This should be done after the auto-start configuration is applied.
- Add the modem GPS to gpsd:
sudo gpsdctl add /dev/ttyUSB2
- Start the modem GPS output:
echo -e "\$GPS_START" | sudo tee /dev/ttyUSB2
- If needed, to stop the GPS output:
echo -e "\$GPS_STOP" | sudo tee /dev/ttyUSB2
Reference: Software Integration and Development Guide for Linux
- Download the Sierra Wireless's Mobile Broadband Package SDK Lite for Linux:
- Extract the
lite-fw-download
tool specifically - adapt for your platform:
tar --extract --strip-components 3 --file MBPL_SDK_R42_ENG4-lite.bin.tar.gz SampleApps/fw-download-tool/bin/fw-download-toolhostx86_64
- Stop and disable ModemManager to prevent conflicts:
sudo systemctl stop ModemManager && sudo systemctl disable ModemManager
- Reboot (may be optional)
- Download your modem's approved firwmare package:
- Extract the files in an images directory:
unzip SWI9X30C_02.39.00.00_GENERIC_002.085_000.zip -d images/
- Run the tool as superuser, the simple one meets requirements - this may take a while:
sudo ./fw-download-toolhostx86_64 -f images/
- Monitor the progress by tailing the log file:
tail -f fwdwl.log
- Confirm firmware version using
minicom
:- Send the command
AT+GMR
, the response should be:
SWI9X30C_02.39.00.00 rF194F7CA76D79E jenkins 2024/06/05 05:36:47
- Send the command
- Start and enable ModemManager - if needed:
sudo systemctl start ModemManager && sudo systemctl enable ModemManager
- Install minicom for serial interactions:
sudo apt install minicom
- Configure minicom on first run, or if serial port changes:
sudo minicom -s
- Use the down-arrow key to go to
Serial port setup
- Type
a
to change theSerial Device
to/dev/ttyUSB3
- or whatever your AT file handle is - Return to the main menu and go to
Screen and keyboard
- Type
q
to enableLocal echo
so you can see what you're typing! - Return to the main menu and save your config as default by selecting
Save setup as dfl
- Exit by selecting
Exit from Minicom
- To quit
minicom
, the hotkey sequence isctrl-a > q > Enter
- Stop ModemManager:
sudo systemctl stop ModemManager
- Start ModemManager in debug:
sudo /usr/sbin/ModemManager --debug
- Thanks to Daniel Wood's sierra-wireless-modems project for references and a great start point.