This guide covers setting up cellular internet on the ClockworkPi uConsole with the official 4G LTE extension board (SIM7600G-H modem). Written for Debian-based OS images (Bookworm/Trixie) on CM4/CM5 compute modules.
Tested on: Raspberry Pi Compute Module 5 Lite, Debian 13 (Trixie), kernel 6.12.
- uConsole with CM4 or CM5 compute module
- Official uConsole 4G LTE extension board installed
- Activated SIM card with data plan, inserted into the extension board
- OS image with
ModemManager,NetworkManager, andnmcliinstalled
The 4G extension is powered off by default. You need to enable it each boot:
sudo uconsole-4g enableWait about 20 seconds for it to complete. Do not press Ctrl+C.
On older OS images, the script may be called
enable_4g_cm4.shoruconsole-4g-cm4 enable.
lsusb | grep -i "simtech\|1e0e"You should see:
Bus 001 Device 005: ID 1e0e:9001 Qualcomm / Option SimTech, Incorporated
Check ModemManager detects it:
mmcli -LYou should see:
/org/freedesktop/ModemManager1/Modem/0 [QUALCOMM INCORPORATED] SIMCOM_SIM7600G-H
If not, restart ModemManager:
sudo systemctl restart ModemManager
sleep 5
mmcli -LCheck the primary port:
mmcli -m any | grep "primary port"The modem can present two different primary ports depending on which kernel drivers are loaded:
| Primary Port | Interface | Driver | Data Mode |
|---|---|---|---|
cdc-wdm0 |
wwan0 |
qmi_wwan |
QMI/WWAN (recommended) |
ttyUSB2 |
ppp0 |
option (USB serial) |
PPP (unreliable) |
We strongly recommend QMI/WWAN mode. PPP mode over
ttyUSB2is known to silently drop data — the connection appears "connected" but traffic doesn't flow. QMI/WWAN is rock-solid.
If your primary port is ttyUSB2 instead of cdc-wdm0, see the troubleshooting section below to switch to QMI mode.
Create the connection (replace <APN> with your carrier's APN, see table below):
sudo nmcli c add type gsm ifname cdc-wdm0 con-name 4gnet apn <APN>Example with AIS Thailand:
sudo nmcli c add type gsm ifname cdc-wdm0 con-name 4gnet apn internetsudo nmcli c up 4gnetVerify:
ip addr show wwan0
ping -c 3 -I wwan0 8.8.8.8You should see 0% packet loss. The wwan0 interface should have an IP address.
| Carrier | APN | Notes |
|---|---|---|
| AIS | internet |
Prepaid/Postpaid mobile internet |
| DTAC | www.dtac.co.th |
|
| True Move | internet |
|
| True Move H | truenet |
For other countries, check with your carrier or search [carrier name] APN settings.
This means the qmi_wwan kernel module isn't loading. Check:
lsmod | grep qmi_wwanIf it's not loaded, check for a blacklist:
grep -r "blacklist.*qmi" /etc/modprobe.d/If you find one, remove it and reboot:
sudo rm /etc/modprobe.d/blacklist-qmi.conf # or whatever the file is named
sudo rebootThe GSM connection profile's interface name may not match the modem's current primary port:
- Check:
mmcli -m any | grep "primary port" - Check:
nmcli connection show 4gnet | grep connection.interface-name - If they don't match, update:
sudo nmcli c modify 4gnet connection.interface-name <PORT> sudo nmcli c down 4gnet && sleep 3 && sudo nmcli c up 4gnet
Error: Connection activation failed: No suitable device found for this connection
- Check modem is powered on:
mmcli -L - Check SIM state:
mmcli -m any— look forsim-missingin failed reason - Delete and recreate:
sudo nmcli c delete 4gnetthen re-run Step 3
- Remove and re-insert the SIM card
- Make sure the SIM is seated correctly in the extension board slot
- Verify the SIM works in a phone
- Check routing:
ip route - Try specifying interface:
ping -I wwan0 8.8.8.8 - Check DNS:
cat /etc/resolv.conf - If using PPP (
ppp0) instead of WWAN, this is a known issue — switch to QMI/WWAN mode (see above) - Reconnect:
sudo nmcli c down 4gnet && sleep 3 && sudo nmcli c up 4gnet
- Make sure the script exists:
which uconsole-4g - For CM4: try
sudo uconsole-4g-cm4 enableorsudo enable_4g_cm4.sh - Check GPIO pins:
sudo pinctrl get 24 15
The built-in wfplug-netman panel plugin on Raspberry Pi OS may not show cellular signal alongside WiFi. This custom tray indicator adds:
- Cellular signal strength bars in the system tray
- Technology icon (4G/3G/2G)
- Dropdown menu with operator, technology, and signal info
- Enable/Disable 4G Modem directly from the tray menu
- Auto-updates every 5 seconds
- Auto-starts on login via systemd user service
Already installed on Raspberry Pi OS:
python3-gi(GTK + GObject bindings)gir1.2-ayatanaappindicator3-0.1(tray indicator library)ModemManagerwithmmcli
- Save the
cellular-indicator.pyscript (see companion file in this Gist) to~/.local/bin/:
mkdir -p ~/.local/bin
cp cellular-indicator.py ~/.local/bin/
chmod +x ~/.local/bin/cellular-indicator.py- Create a passwordless sudo rule so the indicator can enable/disable the modem without prompting:
sudo bash -c 'cat << EOF > /etc/sudoers.d/uconsole-4g
YOUR_USERNAME ALL=(root) NOPASSWD: /usr/bin/uconsole-4g, /usr/local/bin/uconsole-4g-cm4.sh, /usr/bin/pinctrl
EOF'
sudo chmod 440 /etc/sudoers.d/uconsole-4gReplace YOUR_USERNAME with your actual username. Verify the sudoers file is valid:
sudo visudo -c- Create the systemd user service:
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/cellular-indicator.service << 'EOF'
[Unit]
Description=Cellular Signal Tray Indicator
After=graphical-session.target
[Service]
Type=simple
ExecStart=%h/.local/bin/cellular-indicator.py
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
EOF- Enable and start:
systemctl --user daemon-reload
systemctl --user enable --now cellular-indicator.service- The indicator appears in your system tray (near WiFi/clock)
- Click the icon to see a dropdown menu
- When no modem is active: menu shows "Enable 4G Modem"
- When modem is active: menu shows connection details + "Disable 4G Modem"
- Enabling takes ~25 seconds (power on + connect); disabling ~25 seconds
- Signal bars update every 5 seconds
# Start/stop
systemctl --user start cellular-indicator.service
systemctl --user stop cellular-indicator.service
# Enable/disable autostart
systemctl --user enable cellular-indicator.service
systemctl --user disable cellular-indicator.service
# View logs
journalctl --user -u cellular-indicator.service -f# 1. Power on
sudo uconsole-4g enable
# 2. Check modem appeared + primary port
mmcli -m any | grep "primary port"
# Should be cdc-wdm0 (QMI/WWAN mode)
# 3. Create GSM connection (replace APN)
sudo nmcli c add type gsm ifname cdc-wdm0 con-name 4gnet apn <APN>
sudo nmcli c up 4gnet
# 4. Verify
ping -c 3 -I wwan0 8.8.8.8Last updated: May 2026