Clipper LTE 4G Breakout

Where do I find UART?

@patmolloy from machine import UART

Full script for random colours via LTE here :)

import lte
import time
import requests
from machine import Pin, PWM, UART
import plasma
from plasma import plasma2040

NUM_LEDS = 67

MOBILE_APN = "Your APN Here"

# Setting this to True will attempt to resume an existing connection
RESUME = False

PIN_TX = 8
PIN_RST = 11
PIN_NETLIGHT = 10
PIN_RX = 9
UART_ID = 1

plasmauart = UART(UART_ID, tx=Pin(PIN_TX, Pin.OUT), rx=Pin(PIN_RX, Pin.OUT))
plasmareset = Pin(PIN_RST, Pin.OUT)
plasmanetlightpin = Pin(PIN_NETLIGHT, Pin.OUT)

# WS2812 / NeoPixel™ LEDs
led_strip = plasma.WS2812(NUM_LEDS, 0, 0, plasma2040.DAT)
# Start updating the LED strip
led_strip.start()

# Fix the eye-searing brightness of the onboard LED with PWM
class Netlight:
    def __init__(self):
        self.pin = PWM(Pin(PIN_NETLIGHT, Pin.OUT), freq=1000)

    def value(self, value):
        self.pin.duty_u16(value * 2000)

con = lte.LTE(MOBILE_APN, uart=plasmauart, reset_pin=plasmareset, netlight_pin=plasmanetlightpin, netlight_led=Netlight(), skip_reset=RESUME)

while (True):
    
    con.start_ppp(connect=not RESUME)
    
    req = requests.get("https://random-flat-colors.vercel.app/api/random?count=2").json()
    colour =  tuple( int( req['colors'][0][i:i+2], 16 ) for i in (1, 3, 5) )
    
    print ( colour[0], colour[1], colour[2] )
    
    for i in range(NUM_LEDS):
        led_strip.set_rgb(i, colour[0], colour[1], colour[2] )
    
    con.stop_ppp()
    
    time.sleep (60*30)

2 Likes

Sweet!

I don’t have the LEDs (yet!) but it works and I can print out the req result just fine!

Kudos :-)

Cheers

Pat

Has anyone made a connection with the module in the US? It looks like it is only compatible with LTE Band 5 from the specs, which does not appear to be common here. However, I think the module is able to see a network here, but will not register with the network it detects. Here are some diagnostic responses I am receiving. any help is appreciated.

check AT communication:, Command: AT, Response: b’AT\r\r\nOK\r\n’
AT command communication is working
check SIM card:, Command: AT+CPIN?, Response: b’AT+CPIN?\r\r\n+CPIN: READY\r\n\r\nOK\r\n’
SIM card is ready
Set APN response:, Command: AT+CGDCONT=1,“IP”,“iot.1nce.net”, Response: b’AT+CGDCONT=1,“IP”,“iot.1nce.net”\r\r\nOK\r\n’
connect:, Command: AT+CGATT=1, Response: b’AT+CGATT=1\r\r\nOK\r\n’
connect:, Command: AT+CGATT?, Response: b’AT+CGATT?\r\r\n+CGATT: 0\r\n\r\nOK\r\n’
b’AT+CGATT?\r\r\n+CGATT: 0\r\n\r\nOK\r\n’
details:, Command: AT+CEER, Response: b’AT+CEER\r\r\n+CEER: “0 Unknown”\r\n\r\nOK\r\n’
check signal quality:, Command: AT+CSQ, Response: b’AT+CSQ\r\r\n+CSQ: 22,99\r\n\r\nOK\r\n’
Signal quality (dBm): -69
Network operator response:, Command: AT+COPS?, Response: b’AT+COPS?\r\r\n+COPS: 0,2,“311480”,7\r\n\r\nOK\r\n’
LTE_status:, Command: AT+CEREG?, Response: None
LTE Status: None
GSM_status:, Command: AT+CGREG?, Response: b’AT+CEREG?\r\r\n+CEREG: 0,3\r\n\r\nOK\r\nAT+CGREG?\r\r\n+CGREG: 0,3\r\n\r\nOK\r\n’
GSM Status: b’AT+CEREG?\r\r\n+CEREG: 0,3\r\n\r\nOK\r\nAT+CGREG?\r\r\n+CGREG: 0,3\r\n\r\nOK\r\n’

I’d like to know what reduces the data allowance on the sim card. Does setting up or keeping a PPP connection open use data or is it only reduced when sending and receiving data? Do only the characters in my messages count or is there an overhead? Is there any way to see how much data is left on the card?
Thanks

1 Like

Been trying to connect my Clipper LTR 4G breakout from Pico Plus 2 via 8 pin SC/PE as supplied with kit. I have had no luck powering Clipper LTE. Have flashed the Pico Plus 2 with V0.0.7 uf2. Thanks

Can you describe your problem in more detail? What makes you think it is a power problem?

Hi, all connected testing via pimoroni sample code lte-breakout.py.
Code fails:
MPY: soft reboot
Traceback (most recent call last):
File “”, line 3, in
File “/lib/requests/init.py”, line 43, in
File “/lib/urllib3/init.py”, line 5, in
ImportError: no module named ‘future

flashed with:
MicroPython feature/psram, pico_plus2_rp2350 v0.0.7 on 2024-09-11; Pimoroni Pico Plus 2 with RP2350
Type “help()” for more information.

have just tried flashing with :

pico_plus2_rp2350_wireless-bfcb181cdf0735f8c439b56664179c2141da7d15-pimoroni-micropython.uf2

some success!!

%Run -c $EDITOR_CONTENT rtc

MPY: soft reboot

  • AT OK [‘AT’]
  • AT+IPR=460800 OK [‘AT+IPR=460800’]
  • AT OK [‘AT’]
  • setting up cellular uart
  • waiting for cellular module to be ready
  • AT OK [‘AT’]
  • ATE0 OK [‘ATE0’]
  • AT+CGDCONT=1,“IP”,“Your APN Here” OK
  • AT+CEREG? OK [‘+CEREG: 0,5’]
  • AT+CSSLCFG=“authmode”,0,0 OK
  • AT+CSSLCFG=“enableSNI”,0,1 OK
  • AT+CICCID OK [‘+ICCID: 89882280666162563542’]
  • SIM ICCID is +ICCID: 89882280666162563542
    Traceback (most recent call last):
    File “”, line 22, in
    File “lte.py”, line 109, in start_ppp
    NameError: name ‘PPP’ isn’t defined

update…
Working now:
Flashed the pico plus 2 with:

Pimoroni Pico Plus 2 (Wireless + PSRAM) with RP2350

And the example python scripts from:

To be honest the clipper-lte product page is misleading, should state the above. still its always fun to workout and fix issues!!

thanks for the guidence

I am trying the Clipper on an ESP32 (Wroom 32) running the latest micropython. I am located in Bloomington, Indiana, USA.
I spent a week trying to debug code (timeouts), only to find that the Clipper doesn’t work with the 3.3v, but started chatting when switched to the 5v (on the VDD pin).
The problem now is the AT commands and getting a connection (AT+CGDCONT). The card that came with the package says to use:
APN: iot.1nce.net
Auth: PAP
Protocol: IPv4

  1. The current code has IP in line 128. Does this need to be changed to IPv4 (or IPV4)?
  2. Where does the authorization get put?
    self._send_at_command(f"AT+CGDCONT=1,"IP","iot.1nce.net"") # set apn and activate pdp context
    Currently it is looping on line 133, streaming back (multiple repetitions):
  • AT+CEREG? OK [‘+CEREG: 0,0’]
    then switching to:
  • AT+CEREG? OK [‘+CEREG: 0,11’]
    and finally:
  • AT+CEREG? OK [‘+CEREG: 0,3’]
    11 is not listed as an AT value for the code, 3 indicates ‘registration denied’, like there is a parameter/authorization missing, or there is a problem being here in Indiana (USA).
    Any suggestions would save me some time bashing my head against the code.
    Thanks.

I emailed support, and got a reply. Basically of the bands Clipper can use, 5 is the only one in the US, and it is spotty at best (2 & 12 seem to be the main ones, but not available in Clipper). Too bad, as it is a nice little module at a good price.
This is what they said:
“From what we’ve been able to find out from Verizon, the Band 5 that this module uses isn’t particularly widely supported within the US and you are likely to have some trouble connecting. T-Mobile only cover the Myrtle Beach area with Band 5, but Verizon and AT&T have slightly better coverage, if you’re able to try one of their sim cards?
I’ve had a little search on cellmapper.net and have found the following maps for band 5 towers in your delivery area with AT&T and Verizon:”

1 Like

So basically Clipper does not work in most of the US?

Makes me wonder which countries it works in. The search for a universal 4G dongle continues!

1 Like

So, interesting …

I looked at the map you sent and I should have a B5 basestation near me. I can also see with AT+COPS that I’m seeing a Verizon network. I used the AT+CRSM command to read the FPLMN on the SIM and I can see that Verizon is forbidden. I tried to erase the FPLMN, but it either wouldn’t clear or I couldn’t type fast enough to see the Verizon got forbidden again.

[‘AT+CRSM=176,28539,0,0,12’, ‘+CRSM: 144,0,“130184FFFFFFFFFFFFFFFFFF”’]

Did 1NCE confirm that they have a partnering agreement with Verizon? I sent them a message asking, but never got a response on that.

cellular module timed out

I use it with Pimoroni Pico Plus 2.
After it is detected by bme680, I try to periodically notify my smartphone using nitfy.sh, but I cannot reconnect after the second time. Is it reset every time I connect?

Hi Guru
I have bought this to use with the Raspberry Pi 4 and was wodnering if you have your ducks in a row yet? :)

I’d love to see some docs on how to set this up for Raspberry Pi computers which I believe is what the PPP support is all about

Thanks
John

1 Like