em73xx

python wrapper for the em73xx series of 4G modems present in recent Lenovo Thinkpads


Keywords
thinkpad, em7345, em73xx
License
Other
Install
pip install em73xx==0.11

Documentation

py-em73xx Build Status Coverage Status

Python utility to interact with the telephone functionality of the Sierra Wireless EM73xx modems, present in Lenovo Thinkpads (tested on a Thinkpad X250) and possibly others.

Install

Either retrieve from pypi using pip:

$ pip install em73xx

or clone this repo, and install using setup.py:

$ git clone https://github.com/smcl/py-em73xx
$ cd py-em73xx
$ python setup.py install

Documentation

(TODO, haha!)

Examples

Find which device the modem using the find_device.sh script - here it's /dev/ttyACM0:

$ ./find_device.sh 
/dev/ttyACM0 - Sierra_Wireless_Inc._Sierra_Wireless_EM7345_4G_LTE_013937006578445
/dev/input/event14 - SunplusIT_Inc_Integrated_Camera
/dev/video0 - SunplusIT_Inc_Integrated_Camera

Initialising the modem:

from em73xx import Modem

em7345 = Modem("/dev/ttyACM0", pin="1234", debug=True)

receiving/reading SMS messages:

messages = em7345.getSMS()

sending an SMS message:

em7345.sendSMS("775123456", "test message from em73xx!")

getting a GPS fix (None returned if failed):

gps = em7345.getGPS()
if gps:
    print(gps.latitude)
    print(gps.longitude)

TODO

  • write documentation - methods, types, etc
  • add more functionality, sms and gps alone won't cut it. poking around with the at commands text file in /docs should help
  • there's heaps of info returned by the XLCSLSR command, investigate if there's anything useful we can provide