I recently had a need to be able to send and receive SMSes programatically, and decided the cheapest way to do it was with a USB LTE modem, and an ALDI PAYG SIM, which only costs $5, with a 1 year expiry, unlimited SMSes received, and $0.12 to send an SMS.

I settled on a cheap 4G LTE modem, and boy was I surprised. It turns out that these machines are quad core, 64 bit ARM machines with 512MB of RAM and 4GB of flash, and run Android. They are basically a low end Android phone, without a screen.

Extrowerk has documented how to install Openstick, which is a full Debian distro for that hardware. They have a pretty good summary of how to get things going, and the Hackaday thread also yields some useful insights, so I'll only document here what I had to do differently.

  1. My modem has this version on the PCB: fy_uz801_v3.2. To enter ADB mode, I had to visit
  2. The modem firmware supplied in OpenStick didn't work. I had to use EDL to dump the original firmware from a second stick, with edl rf flash.bin . This gave me a dump of the EMMC flash, from which I could then extract the modem partition (the first partition) and copy the extracted firmware to the machine in /lib/firmware. The file mcfg_sw.mbn should also be copied from the closest region specific subdirectory from modem_pr/mcfg/configs/mcfg_sw/generic/. 
  3. SMStools3 can be installed with: apt install smstools


Once installed, the following snippet in /etc/smsd.conf will allow SMS Tools to access the modem: 
device = /dev/wwan0at0
incoming = yes
baudrate = 115200
memory_start=0 #1
hangup_incoming_call = yes
report_device_details = yes