This is the PR where the work is being merged into ‘upstream’ micropython for those who are interested. I have been following this side February. Very interesting to see https://github.com/micropython/micropython/pull/10739
This is great! I think the rp2040 is moving towards being a very universal (and capable) platform for tinkerers who might have once reached for an Atmel based Arduino or an ESP32.
There are already some cool projects using the PicoW bluetooth, I'm currently modifying https://github.com/DavidPagels/retro-pico-switch to try and make a custom controller from scratch. Hopefully it'll get far enough to push to github at some point.
As well as the BLE/WiFi issue, there was another defect that prevented some devices from connecting to the Pico W over BLE reliably. Both have been resolved with this release.
Oh great! I just received a batch of Pico Ws and felt there may be BT functionality under the shield. Broadcom has incorporated into all their wifi chips even if it's not used/not connected.
The blog post accompanying the release of the Pico W gave the part number of the Infineon wireless chip used by the Pico W, acknowledged the Bluetooth capability of the chip and stated it might be enabled in the future. I'm at a bit of a loss to your reference to Broadcom chips since the Pico W doesn't utilize Broadcom chips.
Precisely. It’s best to think of it as a dedicated and customisable IoT device.
I put one in my coffee machine, for example, so that I can turn it on/off remotely or on a schedule, as well as read the grinder value much more precisely (5V potentiometer) than the number the machine provides (1-45).
Wow, that's a super cool use case! I'm super interested in "smart-ifying" things by being able to measure them/read state remotely as opposed to controlling them. This sounds like it might be really useful for that!
Absolutely. It has 4x 10-bit ADCs built in, so precise measurement is quite easy. I used a voltage divider to change the range from 5V to 3.3V.
As mentioned in other comments, the Pico has two cores, so I’m actually running the small web server (for phone GUI) in a thread directly on the second core, meaning there’s never a time where I’m running code that could block web service. The grinder value gets updated 10x per second on the webpage via ajax, so it feels really responsive on your phone but doesn’t have to reload the page. I want to add a little oled to the coffee machine to show the output directly too. It’s a great little device.
I’ll be open sourcing the code in the future on GitHub once I’ve worked a few more issues out (my handle is CodeByMiles).
The MicroPython threading support is apparently "highly experimental" according to the docs [1]. Did you use another language, or does the threading in MicroPython work well despite being experimental?
I am not OP, but, I have successfully used the Micropython multithreading support. I believe it is marked as such in the docs since they are reserving the right to change the API, not because it doesn't work.
That said, I've generally found the C SDK easier to work in. Copying large micropython libraries over USB to the Pico on OSX has been a massive headache.
Correct, I just used the micropython implementation. So long as I could get it to work in my individual use case it was ok by me, and indeed I had no real trouble getting it to work.
It's more like an Arduino in the sense that the code you write is more like firmware.
It's way more powerful than a common Arduino, though. It has two 32-bit (ARM Cortex-M0+) cores, 264kB of RAM, and 2MB of flash. The Pico W also has a wireless chip that can do WiFi and Bluetooth (the standard Pico is exactly the same without the wireless chip).
> You can code on it, but it can't run an OS or anything?
You can run small embedded RTOSes such as FreeRTOS and NuttX and others I'm not aware of on it. Nothing like the desktop Linux that runs on the bigger raspberries, still very useful for development.
Different Media Access Control and framing. They're only borderline related, even in terms of radio channel definitions (they overlap in the 2.4GHz frequency range, but are incompatible).
Your microwave oven is around the same spectrum(2.45GHz). Doesn't mean that it will be able to transmit WiFi or Bluetooth, but it might interfere with both.