Wio RP2040 Mini dev board - how to receive data from TCP socket in MicroPython

Hi,
I bough a couples of Wio RP2040 Mini dev board modules and cannot make it work with TCP sockets.
I use the 1.5.3 firmware (the latest available on the Seeed Wiki):
sudo ./picotool info
Program Information
name: MicroPython
version: v1.15.3-dirty

It’s easy to connect to the Access Point. I am able to send TCP packet to the server (I see the Wireshark traces proving this), and the response is sent to the WIO module (still see this using Wireshark) but the module fails to receive it.

I tested bot usocket and socket library.

def sendViaSocket():
addr_info = usocket.getaddrinfo(‘192.168.1.12’,8000)
addr = addr_info[0][-1]
print(’>dst-addr:’, addr)
s=usocket.socket()
s.connect(addr)
s.send(bytes(‘GET / HTTP/1.0\r\n\r\n’, ‘utf8’))
s.settimeout(10)
data = s.read(1000)
s.close()
print(’>got:’, data)

def sendViaStandardSocket():
import socket
addr_info = socket.getaddrinfo(‘192.168.1.12’,8000)
addr = addr_info[0][-1]
print(’>dst-addr:’, addr)
s=socket.socket()
s.connect(addr)
s.send(bytes(‘GET / HTTP/1.0\r\n\r\n’, ‘utf8’))
s.settimeout(10)
data = s.read(1000)
s.close()
print(’>got:’, data)

sendViaStandardSocket()
sendViaSocket()

Both approches give a timeout related error:
Traceback (most recent call last):
File “”, line 15, in
File “”, line 10, in sendViaStandardSocket
ValueError: Socket timeout (no server return message received)

Could you help me out?

  1. I would like the Seeed Support to share any example where someone can send and receive packets through the TCP using MicroPython.

  2. Could you share some details how the board is wired internally - I mean the connections between the RP2040 and the ESP8285 module. I am particularly interested if UART of the RP2040 is wired to the ESP8285 UART - if this connection exists I would switch to AT command to handle WIFI / socket connection myself.

Perhaps you can refer to this Wiki.

If you want more information on the pinout of the Wio rp2040, you can look at this link:

As many other guys who tested these example we cannot make them work. What does it means: we do see the packets are leaving the WIO RP2040 and the server responds BUT the board itself (the WIO RP2040) does not pass the received data to the RP2040. This behavior (the wrong behavior is pretty well documented).

Referring to your example (I mean the link: Use Socket to connect to the forum | Seeed Studio Wiki):

    s.connect(addr)   
    # s.send('Hello!')
while True:    
    data = s.recv(500)    print(str(data, 'utf8'), end = '')
In this example the 'send' command is commented out so I believe the receiving part is NOT tested at all

Regarding the wiring. The official Seeed documentation describes ONLY the external pins definition and wiring. My question refers to INTERNAL wiring - I mean the RP2040 to the ESP8255.
Frankly I managed to find the SPI wiring.

I wonder if the ESP8285 UART is connected to the RP2040. This part is interesting…