Skip to content

itspoppadom/clipper-lte-ppp-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Clipper LTE Breakout + Raspberry Pi Zero 2 W

Quick Start (5 minutes)

# 1. Clone repo
git clone https://github.com/itspoppadom/clipper-lte-ppp-setup.git
cd clipper-lte-ppp-setup

# 2. Install deps
sudo apt update
sudo apt install -y python3 python3-pip ppp
pip3 install pyserial RPi.GPIO

# 3. Enable UART (if not already)
sudo raspi-config
# Interface Options → Serial Port → Disable login shell, Enable hardware
sudo reboot

# 4. Make script executable
chmod +x /home/pi/clipper-lte-ppp-setup/clipper_init.py

# 5. Edit APN (optional)
nano /home/pi/clipper-lte-ppp-setup/clipper_init.py

# 6. Create chat script
sudo nano /etc/chatscripts/clipper
# (paste from README and set your APN)

# 7. Run
sudo python3 /home/pi/clipper-lte-ppp-setup/clipper_init.py

# 8. Test
ip addr show ppp0
ping -I ppp0 8.8.8.8

Overview

Clone the Repository

Start by cloning the project from GitHub:

git clone https://github.com/itspoppadom/clipper-lte-ppp-setup.git
cd clipper-lte-ppp-setup

All file paths in this guide assume the repository is located at:

/home/pi/clipper-lte-ppp-setup

Overview

This project provides a simple Python script to:

  • Power on a Clipper LTE modem via GPIO
  • Initialize it with AT commands
  • Configure the APN
  • Start a PPP connection (ppp0) over UART

It is designed for use with a Raspberry Pi (tested on Pi Zero 2 W) using /dev/serial0.


Hardware Requirements

  • Raspberry Pi (Zero 2 W recommended)
  • Clipper LTE Breakout Board
  • SIM card with active data plan
  • Power supply (stable 5V recommended)

Wiring

Required Connections

Clipper LTE Raspberry Pi (BCM)
TX RX (GPIO 15)
RX TX (GPIO 14)
GND GND
VCC 5V
3V3 3.3V
PWRKEY GPIO 17
RESET GPIO 27

Power Notes

  • The Clipper LTE breakout can be powered directly from the Raspberry Pi Zero 2 W:

    • Connect 5V for main power
    • Connect 3.3V if required by the board logic
  • Ensure your Pi power supply can provide sufficient current (LTE modules can draw bursts of current during transmission).

-------------|--------------------| | TX | RX (GPIO 15) | | RX | TX (GPIO 14) | | GND | GND | | VCC | 5V | | PWRKEY | GPIO 17 | | RESET | GPIO 27 |


Optional: NETLIGHT (Status LED)

The NETLIGHT pin indicates modem status (blinking patterns = network state).

Clipper LTE Raspberry Pi
NETLIGHT GPIO 22 (example)

Add this to your script (optional)

# NETLIGHT = 22  # Optional status LED pin
# GPIO.setup(NETLIGHT, GPIO.IN)

# Optional: monitor NETLIGHT
# def read_netlight():
#     state = GPIO.input(NETLIGHT)
#     print("NETLIGHT:", "ON" if state else "OFF")

Enable UART on Raspberry Pi

Run:

sudo raspi-config
  • Interface Options → Serial Port

    • Disable login shell over serial
    • Enable serial hardware

Reboot:

sudo reboot

Install Dependencies

sudo apt update
sudo apt install -y python3 python3-pip ppp
pip3 install pyserial RPi.GPIO

PPP Configuration

Create Chat Script

sudo nano /etc/chatscripts/clipper

Paste:

ABORT "NO CARRIER"
ABORT "ERROR"
ABORT "NO DIALTONE"
ABORT "BUSY"
ABORT "NO ANSWER"
TIMEOUT 10
"" AT
OK ATE0
OK AT+CGDCONT=1,"IP","your.apn.here"
OK ATD*99#
CONNECT ""

Replace your.apn.here with your carrier APN.


Python Script

The script is already included in the repository.

Ensure it is executable:

chmod +x /home/pi/clipper-lte-ppp-setup/clipper_init.py

---

## Test Manually

```bash
sudo python3 /home/pi/clipper-lte-ppp-setup/clipper_init.py

If successful:

ip addr show ppp0
ping -I ppp0 8.8.8.8

Setup as a Systemd Service

Create service file:

sudo nano /etc/systemd/system/clipper.service

Paste:

[Unit]
Description=Clipper LTE Modem Init + PPP
After=network.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/clipper-lte-ppp-setup/clipper_init.py
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

Enable and Start

sudo systemctl daemon-reload
sudo systemctl enable clipper.service
sudo systemctl start clipper.service

View Logs

sudo journalctl -u clipper.service -f

Troubleshooting

No ppp0 interface

  • Check chat script APN
  • Ensure modem returns CONNECT
  • Verify UART wiring (TX/RX swapped correctly)

No AT response

  • Check power supply
  • Verify PWRKEY pulse timing
  • Ensure correct serial port (/dev/serial0)

PPP exits immediately

  • Run manually with debug:
sudo pppd /dev/serial0 115200 connect '/usr/sbin/chat -v -f /etc/chatscripts/clipper' debug

Notes

  • UART limits speed (~115200–460800 baud), so LTE throughput is capped
  • SMS and AT commands can run alongside PPP when properly managed
  • For higher speeds, consider USB-based LTE (QMI mode)

License

MIT License

Clipper LTE Breakout + Raspberry Pi Zero 2 W

Overview

Clone the Repository

Start by cloning the project from GitHub:

sudo apt install git # If not already installed
git clone https://github.com/itspoppadom/clipper-lte-ppp-setup.git
cd clipper-lte-ppp-setup

All file paths in this guide assume the repository is located at:

/home/pi/clipper-lte-ppp-setup

Overview

This project provides a simple Python script to:

  • Power on a Clipper LTE modem via GPIO
  • Initialize it with AT commands
  • Configure the APN
  • Start a PPP connection (ppp0) over UART

It is designed for use with a Raspberry Pi (tested on Pi Zero 2 W) using /dev/serial0.


Hardware Requirements

  • Raspberry Pi (Zero 2 W recommended)
  • Clipper LTE Breakout Board
  • SIM card with active data plan
  • Power supply (stable 5V recommended)

Wiring

Required Connections

Clipper LTE Raspberry Pi (BCM)
TX RX (GPIO 15)
RX TX (GPIO 14)
GND GND
VCC 5V
3V3 3.3V
PWRKEY GPIO 17
RESET GPIO 27

Power Notes

  • The Clipper LTE breakout can be powered directly from the Raspberry Pi Zero 2 W:

    • Connect 5V for main power
    • Connect 3.3V if required by the board logic
  • Ensure your Pi power supply can provide sufficient current (LTE modules can draw bursts of current during transmission).

-------------|--------------------| | TX | RX (GPIO 15) | | RX | TX (GPIO 14) | | GND | GND | | VCC | 5V | | PWRKEY | GPIO 17 | | RESET | GPIO 27 |


Optional: NETLIGHT (Status LED)

The NETLIGHT pin indicates modem status (blinking patterns = network state).

Clipper LTE Raspberry Pi
NETLIGHT GPIO 22 (example)

Add this to your script (optional)

# NETLIGHT = 22  # Optional status LED pin
# GPIO.setup(NETLIGHT, GPIO.IN)

# Optional: monitor NETLIGHT
# def read_netlight():
#     state = GPIO.input(NETLIGHT)
#     print("NETLIGHT:", "ON" if state else "OFF")

Enable UART on Raspberry Pi

Run:

sudo raspi-config
  • Interface Options → Serial Port

    • Disable login shell over serial
    • Enable serial hardware

Reboot:

sudo reboot

Install Dependencies

sudo apt update
sudo apt install -y python3 python3-pip ppp
pip3 install pyserial RPi.GPIO

PPP Configuration

Create Chat Script

sudo nano /etc/chatscripts/clipper

Paste:

ABORT "NO CARRIER"
ABORT "ERROR"
ABORT "NO DIALTONE"
ABORT "BUSY"
ABORT "NO ANSWER"
TIMEOUT 10
"" AT
OK ATE0
OK AT+CGDCONT=1,"IP","your.apn.here"
OK ATD*99#
CONNECT ""

Replace your.apn.here with your carrier APN.


Python Script

The script is already included in the repository.

Ensure it is executable:

chmod +x /home/pi/clipper-lte-ppp-setup/clipper_init.py

---

## Test Manually

```bash
sudo python3 /home/pi/clipper-lte-ppp-setup/clipper_init.py

If successful:

ip addr show ppp0
ping -I ppp0 8.8.8.8

Setup as a Systemd Service

Create service file:

sudo nano /etc/systemd/system/clipper.service

Paste:

[Unit]
Description=Clipper LTE Modem Init + PPP
After=network.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/clipper-lte-ppp-setup/clipper_init.py
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

Enable and Start

sudo systemctl daemon-reload
sudo systemctl enable clipper.service
sudo systemctl start clipper.service

View Logs

sudo journalctl -u clipper.service -f

Troubleshooting

No ppp0 interface

  • Check chat script APN
  • Ensure modem returns CONNECT
  • Verify UART wiring (TX/RX swapped correctly)

No AT response

  • Check power supply
  • Verify PWRKEY pulse timing
  • Ensure correct serial port (/dev/serial0)

PPP exits immediately

  • Run manually with debug:
sudo pppd /dev/serial0 115200 connect '/usr/sbin/chat -v -f /etc/chatscripts/clipper' debug

Notes

  • UART limits speed (~115200–460800 baud), so LTE throughput is capped
  • SMS and AT commands can run alongside PPP when properly managed
  • For higher speeds, consider USB-based LTE (QMI mode)

License

MIT License

About

LTE cellular data on Raspberry Pi Zero 2 W using Pimoroni Clipper LTE Breakout. PPP over UART with Python modem control, AT commands, and pppd (ppp0).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages