New Toy: Raspberry Pi Pico W
For the past few years, an ESP32 has been my microcontroller of choice for wireless network-connected projects. Its extensive list of hardware peripherals attract attention from those curious what they can do with such a flexible tool, so now we enjoy a huge online community providing reference support for hobbyist projects like mine. It's a good situation! People have managed to do some pretty amazing things with ESP32 peripherals, pushing them beyond their original design intent. Espressif has been riding the wave, releasing many chips under the ESP32 umbrella with different peripherals and sometimes even different core CPU architecture. (RISC-V in addition to Tensilica.) To maintain software compatibility throughout their product line, they kept a single SDK (ESP-IDF) for all their different ESP32 variations. Unfortunately, maintaining that commonality meant certain wild features had to be deprecated or removed because they would work on some chips but not others. This has the side effect of crippling certain creative off-the-beaten-path hacks.
With confusion rising between ESP32 variations and restricted/deprecated ESP-IDF features, people started looking at alternatives. While discussing ESP32 projects with a few other local makers, the topic switched to one of the new hotness: Pico and its WiFi capable counterpart Pico W by the Raspberry Pi foundation. In addition to a lot of good (if relatively standard) features, it has a novel feature of programmable input-output (PIO) state machines. I understand it as way to create custom digital logic at a lower level than C code running on the main CPU but at a higher level than FPGAs. I've read about some pretty interesting ways people have applied PIO to solve problems otherwise tricky to do on a microcontroller.
I agreed that a Pico W sounded interesting to investigate at some point, and one of the people present offered to lend me one they are not currently using. Well, it's tough to turn down such an opportunity! With a unit in hand, learning how to work with this microcontroller has been vaulted to the top of my project to-do list. My first test: connect it to my Home Assistant.