I think it was @wil il that asked what the Raspberry Pi Pico at the end of the Sessions Call and what its like to work with it and without it being an hour or so discussion itself it was best to bring on here.
Available Released Boards:-
- Raspberry Pi Pico
- Adafruit Feather RP2040
- Adafruit ItsyBitsy 2040
- SparkFun Pro Micro - RP2040
- SparkFun MicroMod RP2040
- SparkFun Thing Plus - RP2040
- Pimoroni Tiny 2040
Boards Announced to be released
- Arduino Nano RP2040 Connect - TBA
- Pimoroni PicoSystem
So the current working languages available for the Pico are:-
- MicroPython
- C/C++
- CircuitPython (Single Threaded only)
Other languages/systems that are in the works:-
- FreeRTOS
- Rust
- RT-Thread OS
- Arduino
MicroPython and C/C++ are Raspberry Pi’s official ports and CurcuitPython is Adafruits port that works. each has their pros and cons
MicroPython
- Not so easy to import modules, some hardware available requires a modified version of the official MicroPython with thier own modules built in, cannot find modules/libraries available for them, which, in my opinion, fragments the community.
- MicroPython does its best at keeping as similar as it can to the full blown version of Python, all though its a little behind.
- If using MicroPython you really only have 1MB of the flash memory available for your program and files
- Does support the use of multi threading using both cores though _thread library
- Only available though the use of Thonny at this time, There is a way to use it though VSCode but only on 64bit systems
C/C++
- The biggest down side is building, there are a few hurdles getting things setup to build your programs, its possible to set it up to build though VSCode for a 1 click build but takes time to set up
- Has used of the full 2MB flash memory for your files and program
- Proper parallel computing available
- Fastest Language available
CircuitPython
- Has tons of Libs available for Adafruit hardware, seems like their libs are locked to CircuitPython for the time being
- Like MicroPython, keeps as close to Python as possible
- No multithreading available, Single core only at this time
- Just as fast as MicroPython
My experience with the Pico is puerly MicroPython and, I will be honest, i really do not like Thonny, i miss using VSCode with Pylance, IntelliSense, RemoteSSH, etc that Thonny is very much lacking. Outside of x86 6fbit systems its not possible to interface with the Pico in VSCode.
I will say that the Pico is my 1st ever Microcontroller that i have used and still got to get used to keeping my code as small and efficient as possible. what is nice though is that you can debug the Pico directly via the Raspberry Pi and works well when you get it working.
Cool Things i have seen
While I do not have a wide assortment of sensors/HATs/Hardware to tinker about with the Pico there are some cool things that i have seen
- Doom has been ported and running on the Pico
- The Pico has been turned into a Webserver via both Bluetooth and WiFi
- There is a games console build in the works
- The Pico is capable of outputting a VGA signal and a VGA board is currently available
- Emulators are in progress of being ported to the Pico
- A game Engine is in the works of being made for Indie style 2D games
- I know there is a Pico powered game controller in the works
The Pico is a nice platform in the microcontroller space how ever, if you need something that is more time sensitive, the Pico is not the right platform even with C/C++ but if multiple cores is what you need then its perfect and the architecture is really well thought out.
I do have my reservations at this time for the Pico, its new and still got a bit of time for to see how it will grow in the micro controller space, my concern is, some board/hardware makers locking their hardware to their own custom version of Micropython instead of making the information/libs available to making it work.
If you want to discuss the Pico lets do it here on this thread to keep all the information together