As I prefer having Wifi available, I tend to select ESP32 (or even ESP8266) instead. They can also be programmed via the Arduino IDE or MicroPython.
Arduino does use actual C++ with gcc under the hood. It just does some pre-processing to create a proper C++ file (concatenates .ino and .pde files, generates function prototypes, sticks #include <Arduino.h> at the beginning, etc). But you can use all of the features, like constexpr, templates, lambdas, auto, SFINAE black magic, etc.
You're an awesome communicator Gary, informative, articulate with a perfect amount of sincere carsima. I totally look forward to exploring the rest of your channel's videos.
You can also program in Rust on a Pico. Reasons for using Rust instead of C/C++ is you get the same level of performance as C/C++ but the Rust compiler will catch a LOT more errors before they hit the hardware and the language itself is far less prone to programming error too.
My primary reason for selecting a Nano would be it's 5V (with reasonably good GPIO selection). For 3.3v, I often default to an ESP32 these days, but if I don't need Wifi and 3.3V is fine, the Pico looks like a fine choice whenever I need loads of GPI and the dual i2c buses certainly nice.
Yes, a PIO programming example video would be interesting & useful. Thanks.
I think for beginners Arduino is definitely the one to go for because of all the educational resources and tooling available. Once you become more experienced then Pico is a viable alternative for projects, and perhaps preferred for cost and obtaining control over low-level details.
Very informative. A year ago I designed and built my own Energy Management System based on a Rasp Pi Zero with Python but I wanted to interface to a micro-controller to read pulse outputs from 3 electricity meters (PV generation, Consumption & Purchase). I was going to use IC2 for the Pi to request the pulse counts every x mins. My first choice was the Pico as I could use Micro Python but found that Micro Python does not support the Pico as a client. I found a web comment from the developers that it was too complicated and unreliable. So I switched to a Arduino Nano Every and found the IC2 client library and the IC2 general support was very good and I soon had written the client code; all interrupt based. One issue was the Nano is a 5V board so a 3V3 to 5V logical level converter was needed on the IC2 interface, plus a 5V supply was needed. Another issue is that I could not get the Arduino IDE to run on a Windows 10 PC with a usb connection so had to use the web IDE. Finally, I burnt out one Nano when it was connected to a 5V supply via the 5V pin and the usb socket at the same time.
I was not aware of the Pico until I watched this. I've put together several projects using Arduino, but I've got to say that anything that properly uses interrupts and not the clunky void loop() will come as a breath of fresh air. And using the full C++ compiler and error checking can only be a good thing too. Still, a Pico can be bought for pocket money, so I'm going to be giving it a go.
Firstly, great job on consolidating all the info on this topic. Very well summarized and presented. Which board would I pick - well I’ve been doing embedded projects for years and am not afraid on getting closer to the chip with tooling etc. so for me, it’s a clear win to get the pico. For someone new trying out physical computing for the first time I would still start arduino uno because there are hundreds of thousands of projects with pictures/blogs/git repos etc. and if you need to learn something it’s just one google away. Circuit python is gaining traction especially with backing from amazing people like Adafruit but the body of code that Arduino tradition has is just unmatched right now. Once your degree of sophistication with tooling increases you just outgrow the atmega328p and start into ARM Cortex.
Well, my main reason to choose the Atmel/Microchip Arduino is the voltage to work with. I can choose a Lithium cell with 4.2 to 2.5V to run a 8MHz ATMEGA WITHOUT any power components! Also the GPIO output is 5V when I power an Arduino with 5V. The Pico has only 3.3V and needs (the board has) an regulator to step down. But on the logic side you need to step it up, if you has 5V components. Also you can use the bare ATMEGA328P in your projects, what you "can't" with SMD components (directly).
PIO would be interesting! And thank you so much for all your videos over the years!
Really liked this video Gary 👍🏻 Only thing I feel was missing was maybe a comparison of the IO in detail. Maybe that’s best left to a follow up video that breaks down some of these key comparisons. Also, I’d love to see you do a microcontroller history video! I personally have yet to get back into (actually physically doing) one of my favourite hobbies when I was younger and that was electronics and reading about digital electronics and microcontrollers. I’m in Australia and I used to read a magazine called Silicon Chip that featured a series on PICAXE microcontrollers from the UK (you’ve probably heard of them). I bought some and started getting into programming etc. but after I packing up to move house in the mid-2000’s, I have yet to break it out all again and get back into it. I now have a RPi 4 8GB but yet to do anything with it other than get it running RPi OS, so keen to get back into it all but I just feel like I’m missing so much from mid-2000’s to late 2010’s that I’d sorta like to get a handle on the developments since the time of PIC microcontrollers and maybe a bit about the languages/IDEs. Lol just a small request ☺️👍🏻
At 01:10 you are zooming in on the wrong microcontroller, the Atmega16u2 is just the USB to serial bridge of the Arduino Uno. It replaced the FT232RL of older Arduino versions; some may still remember the big uproar about fake FTDI chips, which led FTDI to the decision to pretty much destroy those chips by overwriting the device ID and vendor ID by their Windows driver. Obviously this was the wrong decision because most vendors redesigned their boards to use something else like the CH340 or the CP2102.
Between Arduino and Pico, ESP32 is the best!
Thanks this helped serve as a starting map of the space. Now to look at your other videos to see if I can fin out more!
Thanks a lot for making this video and explaining crisply. All the efforts from you for making these videos are making our life easier for learning.
Really good video Gary! I learnt a few new things. Love how you added a bit of history on them.. the languages etc.
Great video! Really good! 😄
@devindykstra