Raspberry Pi + SIM800 for GPRS

I think I finally figured it out after reading ModemManager’s source code. It seems like ModemManager goes and look at the physical device at the root of the uart. Therefore not /sys/devices/platform/soc/20201000.uart/ but /sys/devices/platform/soc/.

Therefore this udev rule (I tried multiple including this one before starting this thread) did not work:

ACTION=="add", KERNEL=="20201000.uart", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"

Adding the following udev rule and restarting the Pi allowed ModemManager to detect the modem correctly.

# vi /etc/udev/rules.d/98-modemmanager.rules
ACTION=="add", KERNEL=="soc", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1"

ModemManager now sees:

# mmcli -L

Found 1 modems:
	/org/freedesktop/ModemManager1/Modem/0 [SIMCOM_Ltd] SIMCOM_SIM800L

I now added a system-connection file as from here to the boot partition and restarted the Pi. After a few minutes the light on the GSM module starts to flash in the pattern that signals a GPRS connection. I however still do not see the Pi reporting to the resin.io dashboard.

Next step will be to burn a clean resinOS image to the SD card, add the UDEV rule, add the system-connection file, and restart. I’ll report back with my findings.

1 Like