There are a lot of small cpu cards on the market. Since the launch of the Arduino the market has grown, and today there is a lot to choose from. In the latest years the ESP8266 has been very popular. Reasons for this includes that it has sufficient resources, hardware for WiFi and maybe the most important, a really low price. The competitors might be better in some way, but at a much higher price. The ESP8266 has been followed by the ESP32 which is even more popular due to better hardware but still a low price.
Raspberry Pi Pico
But competition is always good, so it was interesting when Raspberry Pi Foundation launched their Raspberry Pi Pico. This card is based on a self developed SOC named RP2040. This ic is based on a dual core ARM-Cortex M0+, has 264kB RAM and on the board there is also 2 megabytes of flash memory. There are 26 GPIO for external connections, three of these are capable of analog readings. The card is flexible with the power supply, and can alter the clock frequency for power saving. But it lacks one important thing…
Raspberry Pi Pico W
In 2022 almost everything is connected to the cloud, or at least to the local network. After using the ESP8266/ESP32 with it’s wireless connections it feels a bit restricted to not be able to connect to the network. Sure some projects don’t need a connection, but at least for me often building devices for the smart home it’s almost necessary to have a WiFi connection. Therefor the launch of the Pico W feels really interesting. This card is like the Pico, but the developers has added a wireless chip on the card. Nice!
As soon as I read the news about them I ordered a few devices, and they landed in the mailbox the other day.

First tests
Now I have a Pico W on my desk, but how to use it? It has a USB micro B connector, I guess that should be used to connect it to the computer. I prefer to develop in Visual Studio Code, can it support the Pico W? Let’s find out.
I first tried the instructions in the Pico SDK Github repository, but that didn’t work on my Fedora system. Instead I found this page which worked fine, except the git clone commands. I used these instead:
gh repo clone raspberrypi/pico-sdk
gh repo clone raspberrypi/pico-examples
The code is compile with make, and transfered to the Pico via it’s mass storage ability. It is not “burned” as we are used to, instead the compiled file (‘nnn.uf2’) is copied to the flash storage the card presents to the computer when it is connected with the BOOTSEL button pressed. When the file is transfered to Pico reboots and runs the code. This is pretty time consuming and not my prefered method for transfer code to a device. It should be enough just to click a button as with other devices, guess I have to figure out if there’s a way to program the card that way.

One response to “Raspberry Pi Pico W”
I now dragged the compiled hello_usb example to the board and started the Arduino IDE:s serial monitor on /dev/ttyACM0. And it works, it keeps printing out “Hello, world!”, just as expected.