Raspberry Pi Pico W – First Thoughts
Raspberry Pi Pico W – First Thoughts
What is the Raspberry Pi Pico W?
Unlike the majority of the Raspberry Pi family, the Raspberry Pi Pico W is not a Single Board Computer (SBC) that runs with a full-blown Operating System. Instead, the Pico W is a System On a Chip (SOC) based on the RP2040 microcontroller.
The reason for this differentiation is that the Pico W is intended for high efficiency projects that do not require large compute resources. This might make the Raspberry Pi Pico W a perfect SOC for hobbyists, enthusiasts, and learning embedded development.
Similar to other Raspberry Pi devices, which we continue to discuss, you power the Pico W by either micro-usb or the GPIO pins – of which the Pico W has a total of 40. I was able to attach the pins with little effort, as you can see by the ametuer soldering in the post image.
In this article I detail my initial experience with the Pico W and gearing up for development. If you want to know all of the details about the Pico W or how to develop on it, see the official documentation.
IMPORTANT: At the time of writing, unlike the Pico H the Raspberry Pi Pico W DOES NOT come with pre-soldered GPIO pins. It is possible that some vendor may offer this variation, but they do not ship with pins attached.
Where To Buy Raspberry Pico W?
The retail price of the Pico W is a whopping $6 + shipping. Which is inline with many of the comparable devices that I’ll mention in the next section. I purchased two boards from DigiKey (non-affiliate), however at this time they do not have available stock. Consider following RPiLocator on Twitter to get in-stock alerts for the Pico W and other Raspberry Pi products.
You may choose to purchase a Pico W on Amazon, however, you will likely pay much over retail prices.
Raspberry Pi Pico W Alternatives
In previous posts I have discussed projects in which I use several of the common alternatives to the Pico W. Most of the alternative devices are a similar price and are available from several vendors.
- ESP 8266 NodeMCU – Ultrasonic Bench Press Rep counter
- ESP-VROOM-32 / ESP-32S – Basic Temperature and Humidity Sensor Project
- Arduino Uno
- Arduino Nano
My Personal Experience with Pico W
Immediately after my Pico W boards arrived, I started the hunt for documentation. If you’ve ever worked with embedded SOC development you know that finding the proper documentation is critical. When it comes to ESP-32 and ESP-8266 there are a million variations and it can be overwhelming to find the right documents.
The Raspberry Pi foundation came through big time regarding documentation. A few minutes after searching I was able to find the exact documentation for my boards! This document was incredibly thorough and really helped to get started. However, the documentation for the Pico / Pico H goes into further detail regarding GPIO, the previously linked Pico W documentation has a focus on wireless functionality.
Unfortunately, that’s where my good luck ended. Along with technical documentation, you are given a choice: MicroPython or C. I am continuing to use MicroPython and my explanation is below. A colleague of mine says “If you don’t code in C, DON’T CODE IN C”, and I heed those words.
Setting up for Development
According to the technical documentation, both C and MicroPython are functional programming languages for Pico W. Yet, I found that MicroPython is MUCH easier to use for an enthusiast. Since I am not planning to create projects that are highly optimized for commercial use, there is no reason for me to use C.
I have both Mac and Windows devices that I switch between frequently, so I tested setup on each. In both scenarios the C setup was challenging and MicroPython was simple. While using MicroPython you only need to copy the MicroPython firmware to the Pico W. In contrast, developing with C requires that you download an entire suite of tools. For a person that doesn’t live in the C ecosystem the tooling can be daunting.
Tools and Support for Pico W
I started by reading the Pico W documentation from the top, naturally C was the first environment for configuration and I followed suit. When setting up Pico W and C development on Windows you need an extensive toolchain, most of which I have no clue about. Luckily, there is a pico-setup-windows Github repo that I found helpful.
Even after using the steps from the pico-setup-windows guide you are stuck using Thonny IDE for development. Maybe this is fine if you pride yourself on memorizing the internal libraries for C and RP2040 development, but I do not. As a more pampered breed of developer I find intellisense and VS Code a near requirement for projects.
While it is possible to use VS Code to write C code with Pico W, you must launch VS Code with a special script that loads environment variables into the development workspace. That’s not really my cup of tea.
My experience with MicroPython is completely opposite. After installing the MicroPython firmware on the Pico W, the only thing I had to do was setup VS Code so that I could once again avoid Thonny IDE. It’s not that Thonny is bad, quite the opposite, just that I will use VS Code if possible.
The only thing I had to do was install the Pico-Go extension for VS Code and I was off to the races! I believe Pymakr extension will also work, however I have not tried. My only concern is that the Pico-Go project is no longer actively maintained. I’m hoping that the Raspberry Pi foundation or community members will pick this up and continue the great work of the original author.
Conclusion: Get A Raspberry Pi Pico W
No question about it, get a Raspberry Pi Pico W. Although the development tooling is less than ideal, I believe that eventually the tools will improve – maybe we’ll be able to use Arduino IDE at some point. The MicroPython SDK makes development straight-forward. Although I’m not a Python fanboy I truly appreciate the simplicity of development and I plan to continue working with Python and derivative SDKs for a long time.
I’m personally very excited to use the Pico W for random automation projects and experiments around the house. As of today, I have covered all of the examples in the Pico and Pico W documentation and I am planning several projects in the near future.
Although you could use an ESP-32 or ESP-8266 for the exact same projects, this is a Raspberry Pi 🙂 If for no other reason, the documentation by the Raspberry Pi foundation is far superior to the documentation for any ESP board I’ve worked with.