Description
The Pico W 'hardware hello world' (aka blink) out-of-the-box experience is terrible as of sdk-1.5.1.
Please add at least an additional #warning if using a pico w, blink has moved to pico-examples/pico_w/wifi/blink
in pico-examples\blink\blink.c
. Preferred would be to update blink.c
to include both the vanilla and W code paths. I suspect beginners to the Pico (W)(H) platform using the C SDK will be able to figure out what is going on, and it could be a good place to include some comments about other potential gotcha differences between the two boards.
The official overview documentation has a few W-specific notes; none of them describe the moved LED. It is only section 3.8 of the Pico W datasheet that gets around to rather dryly describing this move that then might point someone in the correct direction in the examples directory:
There are three GPIO pins from the CYW43439 that are used for other board functions and can easily be accessed via the SDK:
[...]
WL_GPIO0
OP connected to user LED
While truly the LED is now connected to the wireless chip and therefore pedantically sample code for it should be in the pico-examples/pico_w
directory somewhere, I highly doubt anyone looking for blink
cares about that distinction when looking for a first thing to run to figure out if their board is working at all. I strongly disagree that pico_w/**/blink
should be under wifi
or bt
and the current location under wifi
is nonsensical; what makes the user LED more wifi-ey than bt-ey? If anything, per the data sheet and pico/cyw43_arch.h
, it should be in pico_w/cyw43/blink
.
#350 has drifted off topic to somewhat address this, but it seems like a new issue is more appropriate.
It seems fine that other RP2040 boards may need different instructions for their fancy RGB LEDs or whatever; the Pico W is a first party board and IMO should work out of the box with the guidance in the Getting Started With Pico document.
Thanks for considering!