Raspberry Pi Pico Discussion

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

4 Likes
2 Likes

This is a great breakdown @CAProjects, thanks for taking the time to write it all out!

That’s especially good to know about what languages are better to use it with - I’ve not touched MicroPython before, and to be honest I’m not sure I would. I’ve done lots of work on embedded applications over the years and it’s always been with C, so that’s my go-to language for anything this close to the metal.

That being said, I was very surprised to read what you said about not being great for timing-critical stuff! I had fully expected/hoped that the pico would be free of the chaos of multi-threaded interrupts that makes precise timing so shakey on the Raspberry Pi, but I guess since it’s got a multicore/thread architecture we can’t expect that. Which is a shame, because there’s all sorts of timer and bit-banging applications that might need it. But on the plus side, with the built in comms peripherals and a DMA, I’m hoping most of the timing-critical stuff can be handled by dedicated hardware.

Something I’d love to do with the pico and a pi-top would be to use the pi-top as the ‘brain’ in a semi-autonomous vehicle, and have a small battery powered pico-based device used as a controller, perhaps with a small 4" touchscreen or something. It feels like we’d be getting the best of both worlds!

2 Likes

Thats all built in but what I was talking about is the time it takes to execute and complete a task. The pico is about 80ms where ESP is 2-3ms.

I seen a video about it and will post it when home which will put better context to it

Something I can do in my project :stuck_out_tongue:

3 Likes

Yes please! Definitely let me know if there’s anything I can do to help make that a reality, I would absolutely LOVE to see that!

3 Likes

@wil found the video, and the comparisons where

There is a little flaw with this, he is using a Pico with MicroPython and Arduinos with C++ which i didnt realise when i was watching it, well mostly listening

3 Likes

Novaspirit Tech has been doing some interesting stuff with the Pico, here is his playlist

2 Likes

Tiny 2040 - The postage stamp sized Pico

image

image

image

image

The main difference is it has 6Mbyte more than the Raspberry Pi Pico AND has a reset button AND is USB-C AND the LED is RGB. It does use the same cpu. but man, they crammed all that in to a mirocontroller that small

The catch is that its more than 2x the price of the Pico

2 Likes

That’s really cool, I guess you also get less access to pins too?

Ya do but some how they manage to give you just as much at the same time

1 Like

Mini 2MP SPI Camera Module for Raspberry Pi Pico

image

1 Like

Raspberry Pi Pico Webserver project :o

https://github.com/s60sc/PicoWebServer

@CAProjects yeah I saw this recently, pretty impressive! Haven’t seen that camera module before though - what’s the max frame rate?

It does not say, it’s by arducam and they have no specified

So I got another 3 pico delivered today as well as the Tiny 2040 too along with a bunch of sensors for the weather station project :slight_smile: just need to get the Amphenol mezzanine connector thing at some point to do the wake up the pi-top thing and do data transfer too

image

1 Like

@CAProjects you move at a crazy pace with these projects, keep it up as it’s awesome to see and hear about all the cool stuff you’re getting to work on! :+1:

lego case for the Raspberry Pi Pico

https://www.robmiles.com/journal/2021/2/26/raspberry-pi-pico-cases-at-adafruit

RPi pico overclocking

1 Like

I enjoyed your video - very good.
By chance did you record the temperature increase while making the changes?

It’s not my video, I’m just posting the interesting information on the pico.

I really like the testing process if the person that made the video tho