Kashutu
Kashutu

Reputation: 11

uPY uart not communicating correctly with EG25-G

I had a motor controller connected to GP0 and GP1 so I know they work, however I cant seem to get a response from the SIM controller. Without the pico attached to the board, I can get it to work, but when I add the pico it seems like it wont send AT commands or translate received data if the pico is getting any at all. I have tried to run the code line by line in a live session and all I get is a single number that is equal to the number of letters inside the string that I am sending to the sim controller. ie uart.write(bytearray(b'ATE1\r\n')) would return >>> 6 6 being the number of characters in the code after b. I'm ordering a new pico to see if just maybe it was my sub par soldering, but in the mean time I could see if anyone more experienced than I can point out a error.

import machine
import os
import utime
import time
import binascii
from machine import UART


pwr_enable = 22  # EG25_4G Power key connected on GP22
uart_port = 0
uart_baud = 115200




# Initialize UART0
uart = machine.UART(uart_port, uart_baud)
print(os.uname())


def wait_resp_info(timeout=3000):
        prvmills = utime.ticks_ms()
        info = b""
        while (utime.ticks_ms()-prvmills) < timeout:
            if uart.any():
                info = b"".join([info, uart.read(1)])
        print(info.decode())
        return info



def Check_and_start(): # Initialize SIM Module 
        while True:
            uart.write(bytearray(b'ATE1\r\n')) 
            utime.sleep(10)
            uart.write(bytearray(b'AT\r\n'))
            rec_temp = wait_resp_info()
            print(wait_resp_info())
            print(rec_temp)
            print(rec_temp.decode())
            utime.sleep(10)
            if 'OK' in rec_temp.decode():
                print('OK response from AT command\r\n' + rec_temp.decode())
                break
            else:
                power = machine.Pin(pwr_enable, machine.Pin.OUT)
                power.value(1)
                utime.sleep(2)
                power.value(0)
                print('No response, restarting\r\n')
                utime.sleep(10)
               


def Network_check():# Network connectivity check
        for i in range(1, 3):
            if Send_command("AT+CGREG?", "0,1") == 1:
                print('Connected\r\n')
                break
            else:
                print('Device is NOT connected\r\n')
                utime.sleep(2)
                continue


def Str_to_hex_str(string):
    str_bin = string.encode('utf-8')
    return binascii.hexlify(str_bin).decode('utf-8')



            
    Check_and_start() 
    Network_check() 

Response is

>>> Check_and_start()


b''
b'\x00\x00'

No response, restarting

Upvotes: 0

Views: 107

Answers (1)

Kashutu
Kashutu

Reputation: 11

New Pico fixed my issue, I believe it to be that my inadequate soldering skills created the issue. Symptoms were, no UART data was being transmitted or received through UART pins 0 and 1. Solution was new Pico board was inserted in place of old one, same code was uploaded and ran successfully first time.

Upvotes: 1

Related Questions