RP2350+Wifi6+BLE: Adding wifi support for CircuitPython
Posted: Wed Sep 04, 2024 6:20 pm
Hi,
since a while I am working on a project that aims to provide core API compatible modules for networking for CircuitPython builds without native wifi. Boards with native wifi provide modules like wifi, ssl, socketpool in the core, i.e. implemented in C and "baked into" the firmware.
My project (https://github.com/bablokb/circuitpython-esp32at) implements these modules in Python using the ESP32-AT commandset. When everything is implemented, a program written for say the Pico-W should work with minimal changes on boards with ESP32C3 or ESP32C6 co-processor.
There is an existing project from Adafruit (https://github.com/adafruit/Adafruit_Ci ... _ATcontrol), but that project is no longer supported. Besides other problems it is complicated to use, since it has a different interface.
The challenger RP2350+Wifi6+BLE is one of my development environments (thanks to Portus). The second test-device is a Pico connect with a few jumpers to an ESP32C3-SuperMini). The challenger already has the correct ESP32C6 firmware installed. So here you only have to upload the CircuitPython firmware for the challenger.
Currently, basic wifi.radio methods work, i.e. you can set up the co-processor, scan the wlan-environment, connect to a network. DHCP and static IP configuration is supported. Still missing are all AP-related methods of wifi.radio.
The next steps will be to implement the ssl and socketpool modules. When this is done, the challenger should work as a client and be able to connect to servers using UDP, TCP and SSL.
It is still early in development, but anybody wanting to try it, do so and report any issues directly in the Github project.
Bernhard
since a while I am working on a project that aims to provide core API compatible modules for networking for CircuitPython builds without native wifi. Boards with native wifi provide modules like wifi, ssl, socketpool in the core, i.e. implemented in C and "baked into" the firmware.
My project (https://github.com/bablokb/circuitpython-esp32at) implements these modules in Python using the ESP32-AT commandset. When everything is implemented, a program written for say the Pico-W should work with minimal changes on boards with ESP32C3 or ESP32C6 co-processor.
There is an existing project from Adafruit (https://github.com/adafruit/Adafruit_Ci ... _ATcontrol), but that project is no longer supported. Besides other problems it is complicated to use, since it has a different interface.
The challenger RP2350+Wifi6+BLE is one of my development environments (thanks to Portus). The second test-device is a Pico connect with a few jumpers to an ESP32C3-SuperMini). The challenger already has the correct ESP32C6 firmware installed. So here you only have to upload the CircuitPython firmware for the challenger.
Currently, basic wifi.radio methods work, i.e. you can set up the co-processor, scan the wlan-environment, connect to a network. DHCP and static IP configuration is supported. Still missing are all AP-related methods of wifi.radio.
The next steps will be to implement the ssl and socketpool modules. When this is done, the challenger should work as a client and be able to connect to servers using UDP, TCP and SSL.
It is still early in development, but anybody wanting to try it, do so and report any issues directly in the Github project.
Bernhard