Registering with Hologram using a Pi Pico and a SIM800L

Good day Hologramers!

Little help here? Hologram NOOB just trying to register the APN using my pi pico and SIM800L.

I have registered the SIM in the dashboard and hooked up the Pico and SIM800L.

I can talk to the board via AT commands:


tx_pin0 = 0
rx_pin0 = 1
uart = machine.UART(0, baudrate=9600, tx=tx_pin0, rx=rx_pin0)

>>> uart.write(b'AT\r\n') ; print(uart.read())
4
b'AT\r\r\nOK\r\n'

>>> uart.write(b'ATI\r\n') ; print(uart.read())
5
b'AT\r\r\nOK\r\n'

>>> uart.write(b'ATE1V1\r\n') ; print(uart.read())
8
b'ATI\r\r\nSIM800 R14.18\r\n\r\nOK\r\n'

>>> uart.write(b'AT+CGMM\r\n') ; print(uart.read())
9
b'ATE1V1\r\r\nOK\r\n'

>>> uart.write(b'AT+CGMM\r\n') ; print(uart.read())
9
b'AT+CGMM\r\r\nSIMCOM_SIM800L\r\n\r\nOK\r\n'

>>> uart.write(b'AT+CSQ\r\n') ; time.sleep(.5); print(uart.read())
8
b'AT+CSQ\r\r\n+CSQ: 26,0\r\n\r\nOK\r\n'

>>> uart.write(b'at+cfun=1\r\n') ; time.sleep(.5); print(uart.read())
11


However, just setting the APN appears to fail:

>>> uart.write(b'AT+CSTT="hologram"\r\n') ; time.sleep(.5); print(uart.read())
20
b'AT+CSTT="hologram"\r\r\nERROR\r\n'

Is that a function of the card or module? The sim800L is a cheapy but it does seem to respond to my AT commands… Thanks!

NOTE: I tried to clear any black lists and also

:slight_smile: I think I was a goofball. I think I had the sim in upside down…EEK…now that that’s sorted…Ahem…:), I can advance towards getting on the network. I am trying to follow this link:

and this one

>>> uart.write(b'AT+CIPSTATUS\r\n');  time.sleep(.5);  print(uart.read()) 
14
b'\r\n+CPIN: READY\r\n\r\nCall Ready\r\nAT+CIPSTATUS\r\r\nOK\r\n\r\nSTATE: IP INITIAL\r\n\r\nSMS Ready\r\n'


>>> uart.write(b'AT+CSTT="hologram"\r\n');  time.sleep(.5);  print(uart.read()) 
20
b'AT+CSTT="hologram"\r\r\nOK\r\n'


>>> uart.write(b'AT+CIICR\r\n');  time.sleep(.5);  print(uart.read()) 
10
b'AT+CIICR\r\r\n+PDP: DEACT\r\n\r\nERROR\r\n'


>>> uart.write(b'AT+CIFSR\r\n');  time.sleep(.5);  print(uart.read()) 
10
b'AT+CIFSR\r\r\nERROR\r\n'


>>> uart.write(b'AT+CIPSTART="TCP","cloudsocket.hologram.io",9999\r\n');  time.sleep(.5);  print(uart.read()) 
50
b'AT+CIPSTART="TCP","cloudsocket.hologram.io",9999\r\r\nOK\r\n\r\nSTATE: PDP DEACT\r\n\r\nCONNECT FAIL\r\n'

It seems like I am getting close.

I’ve done nothing apart from reseating the sim again (was that it?) and powering off / on the whole setup and reconnecting the sim800l to another pico pi.


>>> uart.write(b'AT+CIFSR\r\n');  time.sleep(.5);  print(uart.read())
10
b'AT+CIFSR\r\r\n100.X.Y.Z\r\n'

>>> uart.write(b'AT+CIPSTART="TCP","cloudsocket.hologram.io",9999\r\n');  time.sleep(.5);  print(uart.read())
50
b'AT+CIPSTART="TCP","cloudsocket.hologram.io",9999\r\r\nOK\r\n'

It seems pretty joyful to me right now.

I have a question

What would be the suggested start up sequence in terms of timings?

I seem to be online but it seems it’s slow / hit or miss to get an IP.

The basic AT commands and these 2 are generally always fine:

AT+CSTT="hologram"
AT+CSQ

Shouldn’t the connection come up soon after I execute AT+CIICR ?


How long do I need to wait to see about the following commands?

AT+CIPSTATUS
AT+CIFSR
AT+CGREG


Thanks!

EDIT:

  1. Support said this is all that’s needed to Register:

  1. Got Some helpful links:
  1. Finally, for NYC’ers:

I brought my mobile setup (pico/sim800L/battery pack) to the city and was able to get an IP address and connect to the internet at 23rd Street, k-Town and up at 7th Avenue and 57th, so that says that T-Mobile still has 2G coverage in the city…

For now I have some details and a script at: