WIO RP2040 WiFi Communication

Hello,
I have recently got my hands on a WIORP2040-A…
And I cant get the networks request to work at all.
I have all 3 version of the firmware that are on the wiki, and no luck.
I have tried the provided socket example, and I get OSError: -1 on line “s.connect(addr)”.
I have tried using MicroPython’s urequests, to partial success. While I see the request being processed and served on the server, on the Thonny output I see nothing. Sometimes it gets stuck, sometimes it fails with OSError: -1.

I guess my questions is… Has anyone gotten the WIO rp2040 to succesfully communicate online? Has there been any firmware releases for the WIO RP2040 after 1.15.1-dirty?

I’m running into a similar issue. I can get it an ip address on my network but I can’t even use sockets to connect to any other network device local or outside.

My issues exactly.
I tried multpiple libraries but all failed on the response, either from the web, or a local server.
My guess is that the socket implementaion in circuitpython is bugged.
I tried two different boards and the same error occured.
I still find it odd that there is no more chatter about the issue.

There are a couple other issues in the forum that are basically tied to the issue you described here. Glad to know I’m not the only one going crazy. I made a post showing my issue as well (Wio RP2040 Module wifi issues). I’m with you on the socket library issue. From what I saw, I would guess it’s a class syntax issue. I’ve done it a thousand times where I don’t include the reference back to the class object (self). Otherwise I can’t imagine why the function call to “bind” for my socket object would error out saying it doesn’t exist.

Have you manage to make it working? They do not expose uart interface to the ESP8266 so I cannot use the AT commands to enable the communication.

But using the MicroPython and the WLAN_SPI I am able only to connect to the AP. The actual socket based communications fails (1.5.3 formware version is downloaded)

No luck on my end. I only got as far as you, I would be able to see the IP connect to my AP, and the request being served from my local server, but the device would fail to handle the response. I gave up and got some pico-w, and the WIO are in the defective drawer :confused:.

Yes, exactly. Both usocket and socket behave the same way:

  • you can send the TCP frame even http formatted (running python3 http server on: ‘192.168.1.12’,8000):
    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)

I can see the http request using Wireshark - it means that the WIO module is able to send a TCP packet, this request is accepted and the response is sent back to the WIO module.

Unfortunately I get not data - instead there is an error related to the timeout:
network config: (‘192.168.1.51’, ‘255.255.255.0’, ‘192.168.1.1’, ‘e8:d2:ff:4f:f4:6c’, ‘FunBox2-DB13’)

dst-addr: (‘192.168.1.12’, 8000)
Traceback (most recent call last):
File “”, line 15, in
File “”, line 10, in sendViaStandardSocket
ValueError: Socket timeout (no server return message received)

usocket is no different - it cannot handle the receive part:
Traceback (most recent call last):
File “”, line 19, in
File “”, line 10, in sendViaSocket
ValueError: Socket timeout (no server return message received)

I also tried to investigate if there is RP2040 UART connected to the ESP8255 uart to play with regular AT command approach.
No suceess. UART1 is somehow disabled by the software. Whenever I try to setup the UART on 4, 5 or 8.9 i get an error:

uart1 = UART(1, baudrate=115200, tx=Pin(8), rx=Pin(9))
Traceback (most recent call last):
File “”, line 1, in
ValueError: UART(1) doesn’t work

UART0 seems to work but none of the pins responded to the ‘AT\r\n’ (tried on 115200 and 9600 baudrate)