Pico2 + pimoroni pico wireless pack

Is is possible to get wifi working on a Pico 2 using Pimoroni’s old wifi pack for pico Pico Wireless Pack?

If I use the latest micropython build from here Releases · pimoroni/pimoroni-pico-rp2350 · GitHub then the examples here pimoroni-pico/micropython/examples/pico_wireless at main · pimoroni/pimoroni-pico · GitHub don’t work are there’s no picowireless module:

MicroPython feature/psram, pico2_rp2350 v0.0.7 on 2024-09-11; Raspberry Pi Pico with RP2350
Type "help()" for more information.
>>> import pico2wireless
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: no module named 'pico2wireless'

I was hoping for an easy win. Before I embark on an attempt to get these examples working (pimoroni-pico/examples/pico_wireless at main · pimoroni/pimoroni-pico · GitHub), can anybody point me to existing code (python or C++) or tell me I’m wasting my time?

Cheers!

That link is for the C side of things. The Micro Python examples are here.
pimoroni-pico/micropython/examples/pico_wireless at main · pimoroni/pimoroni-pico (github.com)
They probably won’t work on a Pico 2, it’s libraries may not be in that uf2 file. I have two of those modules. I haven’t used one in a while but the last time I tried one on a Pico it worked.

Does it have to be MicroPython? Because with CircuitPython you should have no problems. In CP, the drivers are not baked into the base firmware, so no problem adding anything you like.

Ok so I’ve got the rgb_http.cpp example code building - pulling in drivers/esp32spi and libraries/pico_wireless from the pimoroni_pico repo.

It works just fine on a pico. Each ‘…’ appears after ~1 second and is accompanied by the ESP board flashing red, then steady green when it connects:

Firmware version Nina 1.7.3
Connecting to <blah>...
...
...
...
...
...
...
Connected!
Starting server...
Server listening on <ip>:80

RP2350 builds (both ARM and RISCV) don’t work though. In both cases, I see:

<long pause>
Firmware version Nina
<long pause>
Connecting to <blah>...
<long pause>
...
<long pause>

so it like its running ~100x slower than it should be. Plus no LED action, and the firmware version is empty. So guessing there’s some low-level (SPI?) issue, but totally out of my depth here on the hardware side.

I’m going see if I can just get the wireless board LED to work and perhaps learn something that way… but hoping my findings above might give someone with more of a clue some ideas as to what’s wrong.

thanks. I’ll give circuitpython a go once I’ve given up on the C SDK approach…

If it is a low-level SPI issue I don’t expect better results with CircuitPython. After all, the code has to communicate with the same low-level commands with the co-processor.

Maybe I come around and test it, I have both the Pico2 Plus and the Wireless Pack.

Fair point. Didn’t get very far with the LED. Creating and init’ing an Esp32Spi instance doesnt immediately trigger the slowdown, but a call to its analog_write method - in the case of the LED - seems to take around 15s to return. The code on the pico board itself is running fine depite the delays.

I think I’ll give up for now.

Works fine with CircuitPython. You can find my code in the subdirectory pimoroni_pico_plus2+wireless_pack of GitHub - bablokb/circuitpython-examples: Collection of circuitpython programs, examples, templates

I installed the 9.2.0-beta of CP for the Pico2-Plus, copied a sample of the ESP32SPI library and adapted the pins according to the shop page.

Some speculation from my side: some of the pins of the Pico Wireless Pack are part of the new “HSTX” interface. Maybe the MP-firmware claims some of these pins?!

@bablokb I dont see that subdir, did you push it? (last commit says 4 months ago)

Well, I actually pushed, but forgot to commit before pushing. Should be available now. Sorry for the confusion.