Wakeup with UART (LoPy4)



  • Hello guys. I am trying to communicate with a Lopy4 through its serial port. In paticular by UART 1. (P3 and P4). Furthermore, the LoPy4 must be in sleep mode.
    I need to wake up the LoPy4 using the UART port. I have tried using the following code:

    from machine import UART
    import time
    
    print("Starting Loop...")
    uart = UART(1, baudrate=9600, bits=8, parity=None, stop=1, pins=('P3', 'P4'))
    i = 0
    while True:
        print("*****************************: %d" % i)
        print("Going to sleep")
        machine.pin_sleep_wakeup([('P4')], mode=machine.WAKEUP_ALL_LOW, enable_pull=True)
        time.sleep(1)
        machine.sleep()
        print("Weak up...")
        (wake_reason, gpio_list) = machine.wake_reason()
    
        if(wake_reason==machine.PWRON_WAKE):
            print("Wake up for Power On")
        elif(wake_reason==machine.PIN_WAKE):
            print("Wake up for PIN")
        elif(wake_reason==machine.RTC_WAKE):
            print("Wake up for RTC")
        elif(wake_reason==machine.ULP_WAKE):
            print("Wake up for ULP")
        else:
            print("Wake up undefined")
    
    
        n_bytes = uart.any()
        print(n_bytes)
        buff = uart.read(n_bytes) # read up to 5 bytes
        print(buff)
        i = i + 1
    

    The problem is that the LoPy cannot read the bytes sent to it correctly. Has anyone been able to wake up a LoPy using the serial port?

    Thanks


Log in to reply
 

Pycom on Twitter