"Back then" you completely missed the point of the Pico. It's a decently powerful board, not particularly special, BUT the price is the point. £3.00 for a powerful, easy to use microcontroller is big. Also, you were never limited to Micropython - there was a C/C++ sdk from day one. It completely blows the commonly used Arduino (Nano and Uno) out of the water. Andit only got better with Arduino IDE compatibility when that became available (something not available at first, but we knew it was coming from day one)
plus there are two arduino support libs, official uses mbed os, inofficial based on pi c/c++ sdk (earlephilhower/arduino-pico), so depending what libs you want to prog against you have two choices
i love the low price, but if i really need anything more powerful than a Nano i use a Teensy, the Teensy 4.1's power and speed just can't be beaten in the Arduino/MCU world, albeit it costs 8x more in my country
Yeah if anything it's the actual Arduino and clones which are overrated, with pico pi which is easier and esp32 which is more power both way cheaper than most of the clones
@@misham6547 i'd say the other way around, i don't like Python and only really know C++ so it needs to be accessible through C++ for me, to me it doesn't matter wether that is in Arduino or a similar IDE, but in price/perf it shits on all Arduino and ESP32 variants, other than that Pi Pico with C++/Arduino code or Platformio is now the best option, unless you need power then it's the Teensy 4.1
I wouldn't sleep on the RP2040 C/C++ library and included CMake plugins. It's seriously well made and the documentation is a good read. Beyond that, I've yet to see anything in the affordable range that comes close to matching the power of the PIOs. I've been able to take complex timing interfaces I've done in the past on Blue Pills and convert them into PIO only programs. Those 9 instructions are insanely expressive and make it possible to implement something like QSPI in just a handful of operations. The RP2040 is my favorite microcontroller to come out of this decade and it's going to be a tough match to beat.
With the help of a second pico (with picoprobe installed) you can also add breakpoints and step through your running code. A big help for debugging more complex code.
@@marc-andreservant201 I don't have a Raspberry computer and being in stock was not a problem, but I'm not paying over 100 euro for a Zero (at least it was that price when I needed it), the 4 started near 200 euro
For development it's also worth considering platform IO with vs code to program it in C++ directly and get something less hackish than the Arduino compatibility layer.
One important thing to know when using the Arduino IDE with the Pico, is that, to my knowledge, it *doesn't* leverage the RP2040's fast floating point library (at least it didn't when I started playing around with it earlier this year). This is fine for many applications, and it's still way faster than a typical arduino, but switching to the C SDK does make those operations much, much faster. I tested this by running the same code, with a ton of floating point operations, compiled and uploaded via Arduino IDE, and via cmake/manual copy/paste, and IIRC it increased the cycles per second (running my entire program, not CPU cycles or FLOPS or anything) from something like 20-80k to 300k. Not a very comprehensive test, but it noticeably smoothed out the stepper motor movement I also had running in that loop, and made the Pico exceptional for my application, rather than acceptable.
The first advantage I see with this over arduino is for various DIY flight controllers due to greater speed. I made a gyro stabilized active control for a rocket, and it had operating frequency of over 200Hz, with greater speed and memory, better flight control and less gyro drift should be achieved.
I was thinking about the flight controller benefits as well, because pico has 12 bit resolution. But seeing how noise can be an issue, I think it may cause some problems with accuracy.
The most impressive things with the Pico was that it existed. For the past years the other products have not existed. And that Pi foundation still did not charge a premium for it because the other companies messed up their manufacturing.
Honestly compared to other vendors, the rp2040/pico C++ sdk is awesome, the documentation amazing and really easy to understand, I would say it's no less complicated than seting up platformio And the fact that the rp2040 is in stock is a major advantage
Yes the c++ SDK is great, and by far so much faster. Setting up the c++ user studio is not recommended for newbies though. All I know is that I will NEVER go back to Micropython. Lol
Yes! Came here to say this too. It's a very clear, clean API, and doesn't rely on cumbersome vendor tools. Compared to the STM32 HAL it's an absolute dream to work with.
The only disadvantage for me, with RP2040/Pico is the lack of an Ultra Low Power Domain, which results in a very lacking sleep functionality, and thus is unusable for battery powered projects, like sensor nodes
I have to thank raspberry pi foundation for providing such useful resources around the RP2040 allowing me to make a clone of the pico with some nice to have changes like a linear regulator so there is no switching noise, top side GPIO labels and a reset button.
I do genuinely believe the PIO's are THE single biggest benefit to a pico that really does put it into a different class and can really really add additional features that blow the arduino/esp boards out the water. Your VGA example I think proves that.... but kinda as you point out, PIO is a very advanced feature that the average hobbyist is unlikely to fully benefit from. But given how commercial customers can now buy RP2040 chips standalone to integrate into things I think it bodes well for the 2040 ecosystem as a whole.
PIO also allows easy and cheap access to communications that previously required someone to know how to use an FPGA It's incredibly useful for hacking and modding of things 😋
@@xenoxaos1 its definitely not a 'new' thing for sure, more that for the price point of the RP2040 its really targeting other microcontrollers and SBC's are a different market segment etc.. Its nothing new, more just new in the 'lower performance' end of the microcontroller market (lower performance is a relative term you know what I mean, I know its a very powerful chip, but we have to grade things somehow!) Meaning compared to its direct competition PIO is the most impactful and can mean, depending on sustem requirements, it wipes the floor in terms of which people would choose.
" PIO is a very advanced feature that the average hobbyist is unlikely to fully benefit from." - why No! First of all you underestimate the average hobbyist and second of all, as more people who do want to design PIO routines they will share them with everyone else. This is not unlike how the average hobbyist makes their own keyboard controller with Arduino - someone already does the heavy lifting and they just have to tweak and craft the connections etc.
To be fair the pico / rp2040 is firmware agnostic meaning you dont have to stick with micopython. Arduino support has been official for a while now and there is a lot of documentation for c/c++ and circuitpython too. Its worth reconsidering.
As someone with very little programming knowledge, I was put off using it as I was more familiar with Arduino, but even I was able to make a simple PIO assembly program to blink the LED in a few minutes with micropython. The advantage of micropython (or circuitpython) is that they create a filesystem, so you can have multiple programs on the Pico (the one named main.py or boot.py starts on reset) which is great for breadboard prototyping, you don't need to reflash every time and you store the libraries you need on the Pico as well.
Check out the Teensy boards. I can't praise these things enough for how good they are while still being a micro. I have absolutely no affiliation with PJRC.
If you want to measure ripple or transient, noise and amplitude when signal shape accuracy is important, you have to use spring on ground ring to make ground loop so small as possible. In 7:14 is typical example, how to not measure noise and ripple on SMPS supplies. When i did this last time, i catch 10× more higher values than reality was. Yeah, im sure that some noise will pass thru that tiny SMPS supply on board, but, are you sure, that this noise doesnt come from USB?
Thank you so much for putting in the GPIO 23 command for this! I could not for the life of me figure out why the pi pico’s ADC was so bad, and after I ran this command the ADC is as accurate as I need!
Prefer it, but why don't they explain the command line commands used to compile and link up an executable image rather than relying on the cmake garbage?
@@andrewlankford9634 because C is a terrible language with terrible compilers that need to be coddled just so to work right, and humans basically can't use them directly.
i struggle with it so much... i've done some pretty advanced Arduino projects using arduino-makefile, but this rp2040 beats me every time i try to use it. The toolchain is so freaking complicated that I typically stop there... Would you be willing to help me out?
I greatly prefer the ESP32. It’s also dual core, can support more RAM/storage, Even with completely custom designed ESP32 PCB boards that I build, it’s very easy to use them with the Arduino IDE, though for bigger projects I usually use ESP’s integrated development extension for VS code, it’s way more flexible than Arduino IDE.
I second that. The ESP32 is a great microcontroller, easily tops the Pico in terms of memory and cpu speed, and includes Wifi and Bluetooth (in the Wroom32 package). It's a bit more expensive, but it's only 2 bucks. VScode is great, but I am now using IntelliJ IDE. Both IDEs are several generations ahead of the Arduino IDE and are much more productive.
I solved it by using arduino-makefile and coding everything in neovim and it really worked well. Pico toolchain is really complicated and difficult to use... :(
Actually, there is one additional disadvantage to the Pico compared to the Arduinos and ESPs: it has no integrated EEPROM for storage of settings and such, however, you can add an I²C module for that, so this isn't really a deal-breaker.
I'd suggest taking a look at Files→Examples→LittleFS→FSUpload, which also contains instructions for how to set up a small filesystem in the flash (along with your code) to store settings, etc.
I use the rp-hal rust library for all my Pico projects. The only downside is that I have to unplug and plugin again each time I want to update the code. So I've a tendancy to create the code in micropython as testing is much faster then when I have a solid foundation I'll translate to rust and then compile. It can be a hassle but for battery powered projects rust helps with bat life.
The PIO is easily the best feature of the RP2040 in my opinion, and I hope the concept sticks around for a while and gets adopted by other chip designers. It is incredibly useful to have those separate execution contexts where you can control GPIO with very precise timing without sacrificing time on the main thread. The other day I discovered that someone has written a PIO program for USB FS signaling, and demoed it as both a host and device... Simply incredible
What's really impressive is that someone ported Doom to run on the standard Pico - just need some resistors and a few jumper wires to connect a VGA monitor, and keyboard input, and audio output :) I was not interested in it when Python was the only option, but now C++ can access PIOs it's really powerful.
@@Tracktark when it was first released there were no libs available for C++ and it was extremely annoying to burn the firmware. Sure the Pi foundation could do it because it’s their hardware and they had the tools. If you really were programming it in C++ since it came out you were alone. I bought one when it came out and left it on the shelf for months until the tools to program it in C++ became available 😁 (I refuse to use Python on microcontrollers).
@@Stabby666 Also, yeah it is annoying to burn the firmware manually, but if you have another pico laying around, you can put the Picoprobe firmware on it and use it not only as a debugger, but also to upload your programs without having to disconnect and reconnect it all the time
The chip, the RP2040, is $1. We plan on using 5+ on a board that has tons of I/O because it’s cheaper than an I/O expansion IC and it’s reliably available.
How do you bootstrap and clock them? Do you throw a tiny SPI flash at each one of them or does some other MCU bootstrap them one at a time by emulating a compatible SPI flash? Are you running a 12MHz clock signal to each of them as required for the BootROM's USB bootloader or is the terrible internal RC clock after some tuning good enough for your application?
@@vitalyl1327 There’s almost no supply for FPGAs and they are more expensive. And some of the same benefits of an FPGA can be replicated with the PIO feature of the RP2040 if needed. The different ICE40 ICs are $4-7 in bulk and a are out of stock or have less than a few K units available. A RP2040 is $1 without bulk ordering and 100K or more are available at any time. The big thing is that with how easy it is to program (and the documentation and community support), how cheap they are, how versatile they are, we might as well use RP2040s to replace all of our ICs.
@@Zed_Oud yes, forgot about the availability issue. Sitting on a stash of ice40s, so did not refill it for a while... There are small ice40 1k parts that are reasonably cheap (3-4£). Yes, PIOs are flexible, but still nowhere near as flexible as FPGAs for bit banging, so for me it is always a default choice.
The Pico is basically my ToGo Micropython/Circuitpython board. The large flash and the high clockspeed are great for an interpreted language. But for C++ I generally choose AVR or SamD chips.
LOL @ 9:38 "... I think that the Pico truly became a good alternative over time...". Up to that point in the video, the Pico didn't change, but rather your knowledge and opinion if it changed. ;)
Software changed a lot though. First months programming the Pico was horrible and let to killing a few with a hammer. Poor Picos.
2 ปีที่แล้ว +1
The only thing lacking on the Pico is a set of 8/16 bit hardware timers that can be incremented with external or internal signals. Most other microcontrollers have that built-in.
I'm a little confused why you chose to compare the Raspberry Pi Pico to an arduino. It's been a while since I last did microcontroller things, but I was under the impression that the ESP family was the mark to beat, not the arduino family...
Agreed... the Great Scott missed the beat on this comparison... Comparing a board introduced in 2008 with the "late in the game" Raspberry Pi Pico doesn't make any sense... The ESP32-PICO-D4 introduced in 2014 still puts this Raspberry Pi Pico to shame today! This is just the Raspberry Pi Foundation trying to enter the MCU game (late) and capitalize on their SBC reputation.
2040 is really the place where you see a ton of benefits getting away from just arduino code, it has a lot of cool stuff that you kinda need to get low level to use well
My final thesis was on a pico, I programed it in C++ with exception handling, other than the low level, like the I/O, everything else is the basic C++, you can use classes and whatever the standard library offers. Can even dynamically allocate memory with the same syntax. ADC is trully not the best, but swithing to PWM mode, external reference (I needed one anyway for my DAC) and softvare help to reduce gain error it was acceptable. The best is the big RAM and the speed (can even be overclocked to 300 Mhz or 450Mhz if you don't use the flash), it can do something like 68Mhz SPI signal so even my big 240*320 16bit color display changed basically instantly. No clue how the display processed it as on oscilloscope the clock looked like I'm charging a capacitor, the PCB was not designed with high frequency in mind. Also the price, the ESP32 I managed to buy without waiting for China was 15 euro, while this thing was 4-5 euro and Arduinos are also cost more.
I saw a video where a guy uses sprintf from C versus cout from c++ with the same code and the C++ binary was almost twice the size... im no sure c++ is your friend either when it comes to microcontrollers
@@evanbarnes9984 For us there was a lot of project ideas for grabs, my was a transistor tester and identifier, it measure resistors, capacitors, diodes and transistors. Even draw characteristic diagrams for transistor fully automatically.
@@mikejones-vd3fg I used the whole serial out for debugging, the whole idea was to make it work as a standalone device, the end result had like 4 cout, which was redundant. I used C++ for OOP, I would had given up on it if I would had to do the whole thing with structs and basic polymorphism, overloading. Also it depends on which mode it is compiled, I used minimal size which cuts out a lot of useless part, like debug info.
The pico is really aimed at hard core programmers who are happy using c/c++ or even assembly language, those of us who started programming with the Sinclair ZX81 (and have never stopped) have no difficulty with the special features, which is where the RP2040 comes into it's own.
I was impressed with the RP2040 right at the start because of the programmable IO which would lead to some amazing projects, notably driving HDMI monitors, audio applications using optical S/PDIF or ADAT, or other applications that would normally need an FPGA.
Could not agree more. Also I think that once it gains popularity, there will be shortage of it like Raspberry SBCs shortage at the moment. The RPI foundation really has a history of not being able to satisfy the demands of DIYers.
I've fallen in love with Python but I wish uPy had more features available already, the other day I found out they haven't even ported Enum yet and I'm like damn maybe I should just try Circuitpython instead
@@firstNamelastName-ho6lv I'm new to it all so I haven't had a chance to settle on anything, learning both at the same time has kind of been nice because it's helping me understand WHY both do what they do and the differences is giving me better perspective on how code encapsulation works in general
an enum lmao, you can solve that without an Enum class. Micropython is limited because well you can't never fit the entire python std library on 256kb.
I figured it out but I got spoiled on it before, I'm really starting to appreciate just how big code gets really fast when I don't have libraries invisibly doing all the work for me
That is one thing about struggling early so as to be able to always code AVR's in C/C++, without so much abstraction. It never feels like much to make a switch. Arduino/Pico/Flipper Zero.. you name it. Can usually just change some of your own low level abstractions and definitions, as the protocols stay the same. Interacting with a shift register is still going to want the pins toggled in the same order. Sketch can scare people away from feeling confident in certain aspects in exactly the same way micro python can. Both can be wonderful tools for learning but should be stepping stones.
Thank you so much for sharing... I too was having the same noise problem but didn't know what to do.. I was using pico as a HID device for a joystick project...
So the fuzz about the ADC is _not_ coming from the power conversion. I read that thread where somebody did a histogram of measured values and had some spikes for certain ADC values (see Errata 11 in the datasheet for the values). Those were the result of the wrong size of the internal capacitors used in their comparators.
The pins *are* labelled on the Pico Pi, on the underside of the board. Not exactly the most intuitive place to find it. But, yes a printout of the pinout is a good idea.
If you solder the pins to the "top" side of the board i.e. use the board upside down you can see all the pin labels. The BOOTSEL is not reachable but is not needed for most operations and can be accessed on TP6. Don't press the board down too hard otherwise the button could be squeezed when installed in a pin board. The LED on GPIO25 is not visible but the signal appears on TP5 so could easily be modified if desired.
When I don't need wifi/bluetooth, I use Raspberry Pi Pico because: - Similar price to the Arduino Nano (at least in my third world country) - Power supply from 2V to 5V, the board has a step down/step up converter - Pin count - ADC - Speed
@@davidpetry7853 that's just the bad circuit design of the devboard. quite common actually and you see this on the stm32 devboard too. The rp2040 chip is plenty accurate
also rpi pico w costs about £3 vs now the the uno r4 is a whoping £50( official r4 and r3 is eol so I dont use it anymore( another reason why pi pico wins js the fact you can translate your code to different boards with only a few registry mods)
I was thinking about the use of ferrite bead noise filter design to diminsh the noise on analog inputs. With the implication of this you might no longer need to de-activate the PFM mode, therefore improve the efficiency. 7:38
Excellent job! Even I followed, so you did a great job of breaking down the Pico using the other MCUs as the comparison. That is a great strategy for sharing the relative benefits/drawback for new tech because it draws on something that many of us are already familiar. I'd be curious to know if the wifi Pico has the same power conditioning issue feeding the ADC (great job explaining that issue). I found myself thinking that almost every sentence you uttered would represent about a day worth of my time googling or reading to come to the same conclusion as you.
In other words, it was not overrated, just different. As it is, it's much more capable in most ways, especially for true interrupt-driven systems and multi-tasking. Many years ago, I wrote a real time control system on a Z80 machine, with a proper, albeit compact pre-emptive multi-tasking OS. It was an approach I really liked, as it made a lot of the programming much easier than those horrible loop/poll type implementations. The pico is much more suited to such an approach.
I have few of these. I dont think it is overrated. I think its just not used enough. I bought mine to have a little fun and I made some bad USBs to play Rick Asltley. It was a fun project for a while, but now I am thinking to build something that waters my plants while I am not at home. This thing is cheap, small and very fast. Great little piece of hardware for people who want to learn how to build robots. Pico even have a WiFi now. There is this new Pico W micro controller with WiFi built in.
Some people have verry high expectations of a cheap $5 micro controller when fuel prices are $2.20 a litre five dollars for a micro controller is amazing prices and endless possibilities
Other channels have done this - the ESP32 has more raw processing power, plus i2s, BlueTooth etc, but the PIOs make some tasks more efficient on the Pico.
@@havocking9224 The PIOs allow for custom logic running separately to the main cores. This can be used, for example, to output an HDMI signal - something you cannot do with the ESP32. I'm not interested in a "this micro is better than that" fanboy stuff. I use both - along with Atmel, STM and Nordic chips in my work.
Wow the dual core code looks so much simpler than earlier stuff I looked at! Thanks for the update. Still not used mine yet but have an idea in mind driven by the available storage
You should look at the Teensy boards, they have absolutely killer specs across the lineup (speed, ram, io, analog, floating point ubit) and fill the gap between a Arduino Uno or STM32 and thr likes of a SOC such as a RasPi. The 4.1 rocks a 600mhz Arm Cortex-M7 with Ethernet pins headers. (Low power modes and sleep modes that sip power) The 3.6 is a bit more inline with the RasPi pico.. The boards also support soldering on extra ram and flash, as well has having built in SD card slots. Also they label the IO.
I have coding knowledge. But I don't have much electronics knowledge. Never used Arduino or Raspberry pi. But I want to get into it for some fun projects I have in mind. Any suggestions and tips how I should get started?
That's pretty interesting, I like the built-in buck-boost converter for battery powered applications. Hopefully they've addressed the sleep current in the wifi version, since that would be perfect for Internet of -shit- I mean things, if it has a decent battery life with deep sleep.
Can you make videos on protocol/peripheral driver implementations using polling, interrupts and dma. This can be your new series😊😊. Love your videos ❤️
another thing that i find really useful about the pico, not present in most arduinos is the HID capability, i think that on the arduino side its only present on the ones with the 32u4 and, i guess, the ones with the rp2040
The ESP32 boards, the STM32 "Giga", AT91 "Due" and the current generation of RA4M1 based UNO R4 Wifi/Minima are also HID capable. Man have they made a lot of a different boards since i first bought a Duemilanove... They even had a brief period where they made a Intel Curie based board. Back when Intel was trying to get into the MCU market. Its really just the old legacy generation of ATMega328 and the long deprecated ATMega2560 based boards that lack HID.
Great video. When it was first released I was very underwhelmed due to the lack of WiFi. I decided to stay with my WEMOS devices. Now I may have to take a look at the Pico.
Something interesting that I learnt about the compatibility layer is that C/C++ sdk functions are still directly accessible which was useful for my current project.
yes, that is inofficial arduino support lib earlephilhower/arduino-pico the *alternative* 'official' arduino lib comes with mbed os (so not the pi sdk)
Very strange reason to give the Raspberry Pi Pico a thumbs down before and call it overrated just because *YOU* don't like MicroPython. I use both for different projects and IMHO it is worse to use Arduino IDE instead of MicroPython with Thonny IDE for the Pico. Much more overlay and bloated. Use the right thing where you need to, and if you don't have experience with it, learn it!
Python in general is just bloated and wasteful. It’s really for kids learning to program on the Pico and not for anything serious, unless you don’t care about performance or power usage. 😁 it’s the modern version of BASIC.
I jumped to Pico at the very beginning and I'm happy with that. Initially Micropython was good to do some light projects where thankfully it allowed me to avoid Arduino IDE. For more advanced stuff I like PIO, dual cores, ultra fast I/O lines, ability to map I/O to different ports, easy SWD debug with 4 breakpoints, dirt cheap debugger (another Pico) and well documented C SDK. I use it to interface hardware from 70s and 80s which makes it very versatile and cheap solution. One big drawback for me is lack of 5V tolerant inputs and need to use voltage converters everywhere.
Regarding on the lack of 5 v tolerant pins I'm thinking where I really need 5v gpio I'll try connecting a MCP23008-E/P-ND I2C expander. Looks like the MCP23008 should be fine with 3.3 volts on the I2C pullups while the rest of the IC is at 5 volts.
Currently some people are also looking into hacking the wifi hardware as it's firmware is uploaded by the pico bootloader from RAM, and because it's an ARM Cortex M3; could be converted into a number of smart peripherals for an extra boost in processing power.
No Pico, so far, but did get the Arduino Nano RP2040 Connect with at least a taste of Pico Pi, along with all sorts of onboard gizmos. Thank You for the Pico update! Now, back to the Esp32 LoRa boards ... I just never realized how catching this MCU bug was going to be ...
I have been programming low level stuff for about 40 years, having started on the BBC Micro with Basic and assembler. The first compiled high-level language I learned was C, so I am comfortable in the default Arduino IDE. I have programmed the Pico with C as you demonstrate but I usually use Micropython. Most of my stuff is not time critical so an interpreted language with the "source code" present on the controller is a big bonus - no worries about version control or losing backups, you can just download the code the controller uses from the controller itself. Most of the "professional" high-level coding I have done has been Basic, C or Pascal/Delphi and I confess I resisted learning Python for some while. Its actually not a bad language with useful features like object oriented programming available. I didn't find it hard to learn and there's loads of examples out there for practically everything. Taking the "default" route, I tend to program Arduino in C and Pico in Micropython but there are ways to program either controller in either language if you are stubborn about coding in the language you prefer...
I have 2 pi pico w's and an esp32-s3-devkitC. I have not touch my uno in a while. I guess the only annoying thing for me is that in both models of boards they run on 3.3v which is sort of annoying but just a bit of extra circuitry to step it up. (Or just use an external power supply with some mosfets).
The greatest thing of the raspberry pi pico for me is that you can run it from 2 AA/AAA batteries. But i still didnt get one for some reason, should get one soon.
I was confused by the first few minutes where you said you had to use python when there is no such restriction. It then became clear that it was not compatible with the Arduino IDE then the video made sense. Good video.
I haven't looked through the comments yet.. but on some uc's you can select the ADC reference voltage (to a DC voltage on a reference pin). If you need less noise, you could create a reference off your DC supply. or even use an external voltage reference chip. Still an odd choice to use switched power supply on board. In linear voltage regulators the efficiency is usually a function of the voltage difference between input an output terminal. So you should ideally not power your uc with a 12V DC power supply.
More often than not, when someone says something is "overrated", it turns out that they don't know enough about it. This is true throughout human endeavor.
The Arduino IDE is a great resource but no one should limit themselves to such a basic IDE especially if it means not using new hardware. Learning Python, a common scripting language for almost any purpose on any platform, isn't a waste of time either.
"Back then" you completely missed the point of the Pico. It's a decently powerful board, not particularly special, BUT the price is the point. £3.00 for a powerful, easy to use microcontroller is big. Also, you were never limited to Micropython - there was a C/C++ sdk from day one. It completely blows the commonly used Arduino (Nano and Uno) out of the water. Andit only got better with Arduino IDE compatibility when that became available (something not available at first, but we knew it was coming from day one)
plus there are two arduino support libs, official uses mbed os, inofficial based on pi c/c++ sdk (earlephilhower/arduino-pico), so depending what libs you want to prog against you have two choices
i love the low price, but if i really need anything more powerful than a Nano i use a Teensy, the Teensy 4.1's power and speed just can't be beaten in the Arduino/MCU world, albeit it costs 8x more in my country
RP2040 price around 1$ or 0.8$ if in 250 pcs reel. Pretty cheap actually.
Yeah if anything it's the actual Arduino and clones which are overrated, with pico pi which is easier and esp32 which is more power both way cheaper than most of the clones
@@misham6547 i'd say the other way around, i don't like Python and only really know C++ so it needs to be accessible through C++ for me, to me it doesn't matter wether that is in Arduino or a similar IDE, but in price/perf it shits on all Arduino and ESP32 variants, other than that Pi Pico with C++/Arduino code or Platformio is now the best option, unless you need power then it's the Teensy 4.1
I wouldn't sleep on the RP2040 C/C++ library and included CMake plugins. It's seriously well made and the documentation is a good read. Beyond that, I've yet to see anything in the affordable range that comes close to matching the power of the PIOs. I've been able to take complex timing interfaces I've done in the past on Blue Pills and convert them into PIO only programs. Those 9 instructions are insanely expressive and make it possible to implement something like QSPI in just a handful of operations.
The RP2040 is my favorite microcontroller to come out of this decade and it's going to be a tough match to beat.
I agree. The price and PIO are a game changer.
With Visual GDB it makes it so easy to use as well.
@@LittleRainGames I remember when it came out, people were saying it has no power and it's pretty useless. They didn't know.
Do you think it would be possible to make quadrature encoder interface with PIO?
there is an inofficial arduino version based on the c/c++ pi sdk
With the help of a second pico (with picoprobe installed) you can also add breakpoints and step through your running code. A big help for debugging more complex code.
Thanks for the tip :-)
I should had done that instead using a million print and sleeps so I have time to read the prints and follow the code.
@@marc-andreservant201 I don't have a Raspberry computer and being in stock was not a problem, but I'm not paying over 100 euro for a Zero (at least it was that price when I needed it), the 4 started near 200 euro
THAT... I would love to know more about.
Debugging is by far the most time consuming problem on any of my code.
@@TimSavage-drummer saw your unedited comment yesterday.. thanks for editing it. I m going to have a look.
For development it's also worth considering platform IO with vs code to program it in C++ directly and get something less hackish than the Arduino compatibility layer.
One important thing to know when using the Arduino IDE with the Pico, is that, to my knowledge, it *doesn't* leverage the RP2040's fast floating point library (at least it didn't when I started playing around with it earlier this year). This is fine for many applications, and it's still way faster than a typical arduino, but switching to the C SDK does make those operations much, much faster. I tested this by running the same code, with a ton of floating point operations, compiled and uploaded via Arduino IDE, and via cmake/manual copy/paste, and IIRC it increased the cycles per second (running my entire program, not CPU cycles or FLOPS or anything) from something like 20-80k to 300k.
Not a very comprehensive test, but it noticeably smoothed out the stepper motor movement I also had running in that loop, and made the Pico exceptional for my application, rather than acceptable.
The first advantage I see with this over arduino is for various DIY flight controllers due to greater speed. I made a gyro stabilized active control for a rocket, and it had operating frequency of over 200Hz, with greater speed and memory, better flight control and less gyro drift should be achieved.
I was thinking about the flight controller benefits as well, because pico has 12 bit resolution. But seeing how noise can be an issue, I think it may cause some problems with accuracy.
The most impressive things with the Pico was that it existed. For the past years the other products have not existed. And that Pi foundation still did not charge a premium for it because the other companies messed up their manufacturing.
Hah, didn't think I'd see you here in the wild! :D
@@ChaonicMew Sometimes I just cant shut up. Haha .. or .. yeah... You get it
Honestly compared to other vendors, the rp2040/pico C++ sdk is awesome, the documentation amazing and really easy to understand, I would say it's no less complicated than seting up platformio
And the fact that the rp2040 is in stock is a major advantage
Documentation is really good on the rp2040. Especially compare to the horrible docs that almost all other manufacturers provide
I agree the Pico C/C++ SDK is amazing and easy to use
Yes the c++ SDK is great, and by far so much faster. Setting up the c++ user studio is not recommended for newbies though. All I know is that I will NEVER go back to Micropython. Lol
Yes! Came here to say this too. It's a very clear, clean API, and doesn't rely on cumbersome vendor tools. Compared to the STM32 HAL it's an absolute dream to work with.
Yeah but cmake. The SDK is good but platformjo with Arduino-pico core is in my opinion the best solution
The only disadvantage for me, with RP2040/Pico is the lack of an Ultra Low Power Domain, which results in a very lacking sleep functionality, and thus is unusable for battery powered projects, like sensor nodes
I mean I think one of the main advantages is the price. Getting a powerful, multi core microcontroller for $4, or $6 with wifi, is insane.
And also the fact it's actually procurable during the silicon -shortage- apocalypse
The wireless chip also supports Bluetooth, and with the new Pico SDK it's actually enabled in the drivers, so you also have Bluetooth LE now.
I have to thank raspberry pi foundation for providing such useful resources around the RP2040 allowing me to make a clone of the pico with some nice to have changes like a linear regulator so there is no switching noise, top side GPIO labels and a reset button.
I do genuinely believe the PIO's are THE single biggest benefit to a pico that really does put it into a different class and can really really add additional features that blow the arduino/esp boards out the water. Your VGA example I think proves that.... but kinda as you point out, PIO is a very advanced feature that the average hobbyist is unlikely to fully benefit from.
But given how commercial customers can now buy RP2040 chips standalone to integrate into things I think it bodes well for the 2040 ecosystem as a whole.
The Beaglebone had something similar to the PIO on a SBC way back in the day.
PIO also allows easy and cheap access to communications that previously required someone to know how to use an FPGA
It's incredibly useful for hacking and modding of things 😋
@@xenoxaos1 its definitely not a 'new' thing for sure, more that for the price point of the RP2040 its really targeting other microcontrollers and SBC's are a different market segment etc..
Its nothing new, more just new in the 'lower performance' end of the microcontroller market (lower performance is a relative term you know what I mean, I know its a very powerful chip, but we have to grade things somehow!) Meaning compared to its direct competition PIO is the most impactful and can mean, depending on sustem requirements, it wipes the floor in terms of which people would choose.
A friend of mine tried to buy several hundreds of RP2040 as commercial customer - no luck. Waiting time is indefinite.
" PIO is a very advanced feature that the average hobbyist is unlikely to fully benefit from." - why No! First of all you underestimate the average hobbyist and second of all, as more people who do want to design PIO routines they will share them with everyone else. This is not unlike how the average hobbyist makes their own keyboard controller with Arduino - someone already does the heavy lifting and they just have to tweak and craft the connections etc.
Thank you, I've wanted to buy one but wasn't sure if it was powerful enough and yes, micropython. I'm definitely reconsidering
Glad I could help!
To be fair the pico / rp2040 is firmware agnostic meaning you dont have to stick with micopython. Arduino support has been official for a while now and there is a lot of documentation for c/c++ and circuitpython too. Its worth reconsidering.
There's also a Rust HAL for the rp2040!
As someone with very little programming knowledge, I was put off using it as I was more familiar with Arduino, but even I was able to make a simple PIO assembly program to blink the LED in a few minutes with micropython.
The advantage of micropython (or circuitpython) is that they create a filesystem, so you can have multiple programs on the Pico (the one named main.py or boot.py starts on reset) which is great for breadboard prototyping, you don't need to reflash every time and you store the libraries you need on the Pico as well.
Check out the Teensy boards. I can't praise these things enough for how good they are while still being a micro.
I have absolutely no affiliation with PJRC.
If you want to measure ripple or transient, noise and amplitude when signal shape accuracy is important, you have to use spring on ground ring to make ground loop so small as possible. In 7:14 is typical example, how to not measure noise and ripple on SMPS supplies. When i did this last time, i catch 10× more higher values than reality was. Yeah, im sure that some noise will pass thru that tiny SMPS supply on board, but, are you sure, that this noise doesnt come from USB?
Thank you so much for putting in the GPIO 23 command for this! I could not for the life of me figure out why the pi pico’s ADC was so bad, and after I ran this command the ADC is as accurate as I need!
You can also program it in C / C++.
The documentation is really good
Prefer it, but why don't they explain the command line commands used to compile and link up an executable image rather than relying on the cmake garbage?
@@andrewlankford9634 because C is a terrible language with terrible compilers that need to be coddled just so to work right, and humans basically can't use them directly.
i struggle with it so much... i've done some pretty advanced Arduino projects using arduino-makefile, but this rp2040 beats me every time i try to use it. The toolchain is so freaking complicated that I typically stop there... Would you be willing to help me out?
I greatly prefer the ESP32. It’s also dual core, can support more RAM/storage, Even with completely custom designed ESP32 PCB boards that I build, it’s very easy to use them with the Arduino IDE, though for bigger projects I usually use ESP’s integrated development extension for VS code, it’s way more flexible than Arduino IDE.
I second that. The ESP32 is a great microcontroller, easily tops the Pico in terms of memory and cpu speed, and includes Wifi and Bluetooth (in the Wroom32 package). It's a bit more expensive, but it's only 2 bucks.
VScode is great, but I am now using IntelliJ IDE. Both IDEs are several generations ahead of the Arduino IDE and are much more productive.
The Arduino IDE was the first things that started my move away from the Arduino "ecosystem".
For sure its crappiest IDE ever (from modern ones)
Even calling it an "IDE" is too much IMO
I solved it by using arduino-makefile and coding everything in neovim and it really worked well. Pico toolchain is really complicated and difficult to use... :(
PIC Microcontroller is my first Love... No matter what...
Actually, there is one additional disadvantage to the Pico compared to the Arduinos and ESPs: it has no integrated EEPROM for storage of settings and such, however, you can add an I²C module for that, so this isn't really a deal-breaker.
I'd suggest taking a look at Files→Examples→LittleFS→FSUpload, which also contains instructions for how to set up a small filesystem in the flash (along with your code) to store settings, etc.
I use the rp-hal rust library for all my Pico projects. The only downside is that I have to unplug and plugin again each time I want to update the code. So I've a tendancy to create the code in micropython as testing is much faster then when I have a solid foundation I'll translate to rust and then compile. It can be a hassle but for battery powered projects rust helps with bat life.
The PIO is easily the best feature of the RP2040 in my opinion, and I hope the concept sticks around for a while and gets adopted by other chip designers.
It is incredibly useful to have those separate execution contexts where you can control GPIO with very precise timing without sacrificing time on the main thread.
The other day I discovered that someone has written a PIO program for USB FS signaling, and demoed it as both a host and device... Simply incredible
What's really impressive is that someone ported Doom to run on the standard Pico - just need some resistors and a few jumper wires to connect a VGA monitor, and keyboard input, and audio output :) I was not interested in it when Python was the only option, but now C++ can access PIOs it's really powerful.
When was python the only option? I was programming the pico in c and c++ since it came out. Even the MicroPython running on the pico is a c++ binary
@@Tracktark when it was first released there were no libs available for C++ and it was extremely annoying to burn the firmware. Sure the Pi foundation could do it because it’s their hardware and they had the tools. If you really were programming it in C++ since it came out you were alone. I bought one when it came out and left it on the shelf for months until the tools to program it in C++ became available 😁 (I refuse to use Python on microcontrollers).
@@Stabby666 Also, yeah it is annoying to burn the firmware manually, but if you have another pico laying around, you can put the Picoprobe firmware on it and use it not only as a debugger, but also to upload your programs without having to disconnect and reconnect it all the time
@@Tracktark Yeah, if I'd had two of them it probably would have been different 🤣
@@Stabby666 They are cheap so no reason to not have two!
The chip, the RP2040, is $1.
We plan on using 5+ on a board that has tons of I/O because it’s cheaper than an I/O expansion IC and it’s reliably available.
wow, a uC is cheaper than an I/O expansion IC :D
That is quite backwards!
How do you bootstrap and clock them? Do you throw a tiny SPI flash at each one of them or does some other MCU bootstrap them one at a time by emulating a compatible SPI flash? Are you running a 12MHz clock signal to each of them as required for the BootROM's USB bootloader or is the terrible internal RC clock after some tuning good enough for your application?
Why not a small FPGA (e.g., ice40)?
@@vitalyl1327 There’s almost no supply for FPGAs and they are more expensive. And some of the same benefits of an FPGA can be replicated with the PIO feature of the RP2040 if needed.
The different ICE40 ICs are $4-7 in bulk and a are out of stock or have less than a few K units available. A RP2040 is $1 without bulk ordering and 100K or more are available at any time.
The big thing is that with how easy it is to program (and the documentation and community support), how cheap they are, how versatile they are, we might as well use RP2040s to replace all of our ICs.
@@Zed_Oud yes, forgot about the availability issue. Sitting on a stash of ice40s, so did not refill it for a while... There are small ice40 1k parts that are reasonably cheap (3-4£). Yes, PIOs are flexible, but still nowhere near as flexible as FPGAs for bit banging, so for me it is always a default choice.
The Pico is basically my ToGo Micropython/Circuitpython board.
The large flash and the high clockspeed are great for an interpreted language.
But for C++ I generally choose AVR or SamD chips.
LOL @ 9:38 "... I think that the Pico truly became a good alternative over time...". Up to that point in the video, the Pico didn't change, but rather your knowledge and opinion if it changed. ;)
Software changed a lot though. First months programming the Pico was horrible and let to killing a few with a hammer. Poor Picos.
The only thing lacking on the Pico is a set of 8/16 bit hardware timers that can be incremented with external or internal signals. Most other microcontrollers have that built-in.
You can do that with the PIOs.
I'm a little confused why you chose to compare the Raspberry Pi Pico to an arduino. It's been a while since I last did microcontroller things, but I was under the impression that the ESP family was the mark to beat, not the arduino family...
Agreed... the Great Scott missed the beat on this comparison... Comparing a board introduced in 2008 with the "late in the game" Raspberry Pi Pico doesn't make any sense... The ESP32-PICO-D4 introduced in 2014 still puts this Raspberry Pi Pico to shame today! This is just the Raspberry Pi Foundation trying to enter the MCU game (late) and capitalize on their SBC reputation.
What do you think about RP2040 vs ESP32? As I see RP2040 with WiFi like Nano RP2040 Connect is 6x times more expensive than ESP32.
2040 is really the place where you see a ton of benefits getting away from just arduino code, it has a lot of cool stuff that you kinda need to get low level to use well
I have to say that the neame of this channel fits very well with the content, you are really great !!!
My final thesis was on a pico, I programed it in C++ with exception handling, other than the low level, like the I/O, everything else is the basic C++, you can use classes and whatever the standard library offers. Can even dynamically allocate memory with the same syntax.
ADC is trully not the best, but swithing to PWM mode, external reference (I needed one anyway for my DAC) and softvare help to reduce gain error it was acceptable.
The best is the big RAM and the speed (can even be overclocked to 300 Mhz or 450Mhz if you don't use the flash), it can do something like 68Mhz SPI signal so even my big 240*320 16bit color display changed basically instantly. No clue how the display processed it as on oscilloscope the clock looked like I'm charging a capacitor, the PCB was not designed with high frequency in mind.
Also the price, the ESP32 I managed to buy without waiting for China was 15 euro, while this thing was 4-5 euro and Arduinos are also cost more.
I saw a video where a guy uses sprintf from C versus cout from c++ with the same code and the C++ binary was almost twice the size... im no sure c++ is your friend either when it comes to microcontrollers
I'm really curious what your thesis project was! I'm considering grad school for something like embedded systems
@@evanbarnes9984 For us there was a lot of project ideas for grabs, my was a transistor tester and identifier, it measure resistors, capacitors, diodes and transistors. Even draw characteristic diagrams for transistor fully automatically.
@@mikejones-vd3fg I used the whole serial out for debugging, the whole idea was to make it work as a standalone device, the end result had like 4 cout, which was redundant. I used C++ for OOP, I would had given up on it if I would had to do the whole thing with structs and basic polymorphism, overloading.
Also it depends on which mode it is compiled, I used minimal size which cuts out a lot of useless part, like debug info.
@@jonnypista52 It the project available somewhere? It sounds really interesting.
9 instructions?! That's 8 more than I need!
The pico is really aimed at hard core programmers who are happy using c/c++ or even assembly language, those of us who started programming with the Sinclair ZX81 (and have never stopped) have no difficulty with the special features, which is where the RP2040 comes into it's own.
and Arduino support which requies usb flashing
I was impressed with the RP2040 right at the start because of the programmable IO which would lead to some amazing projects, notably driving HDMI monitors, audio applications using optical S/PDIF or ADAT, or other applications that would normally need an FPGA.
Could not agree more. Also I think that once it gains popularity, there will be shortage of it like Raspberry SBCs shortage at the moment. The RPI foundation really has a history of not being able to satisfy the demands of DIYers.
I've fallen in love with Python but I wish uPy had more features available already, the other day I found out they haven't even ported Enum yet and I'm like damn maybe I should just try Circuitpython instead
Dude circuitpython on VS code has been really good, but I'm thinking of switching to c++ for my use case.
@@firstNamelastName-ho6lv I'm new to it all so I haven't had a chance to settle on anything, learning both at the same time has kind of been nice because it's helping me understand WHY both do what they do and the differences is giving me better perspective on how code encapsulation works in general
an enum lmao, you can solve that without an Enum class. Micropython is limited because well you can't never fit the entire python std library on 256kb.
I figured it out but I got spoiled on it before, I'm really starting to appreciate just how big code gets really fast when I don't have libraries invisibly doing all the work for me
Isn't uPy still lacking interrupts? I saw that a while ago and didn't even bother trying it out even though python is my language of choice for PC.
As always, thank you very much for writing and cleaning subtitles.
That is one thing about struggling early so as to be able to always code AVR's in C/C++, without so much abstraction. It never feels like much to make a switch.
Arduino/Pico/Flipper Zero.. you name it. Can usually just change some of your own low level abstractions and definitions, as the protocols stay the same.
Interacting with a shift register is still going to want the pins toggled in the same order.
Sketch can scare people away from feeling confident in certain aspects in exactly the same way micro python can. Both can be wonderful tools for learning but should be stepping stones.
The Pico W got a free upgrade today - it now does bluetooth ...
The PicoVGA is a great proyect. I'm doing a long learning session of it.
Great to see your new intro and hear you do the old outro "and I'll see you NEXT TIME". Haven't heard that one in a while.
Thank you so much for sharing... I too was having the same noise problem but didn't know what to do..
I was using pico as a HID device for a joystick project...
more than the pi pico, the rp2040 seems to be a game changer in hobbyist projects
What's really missing for me is still a 12bit DAC. I would gladly give up some of the memory to have a DAC included.
Im currently hesitating between this and a stm32 with an integrated dac for it..
This is all good news! I'm still a novice with my Arduino so I'm happy to hear the pico can be programmed similarly to the Arduino. Thank you!
If you power the PICO from a regulated 3.3v supply directly to the 3.3v pin, it should solve the ADC noise problem.
Also possible....I think
i think on errata datasheet describe another problem noise on some points maybe 🤔
So the fuzz about the ADC is _not_ coming from the power conversion. I read that thread where somebody did a histogram of measured values and had some spikes for certain ADC values (see Errata 11 in the datasheet for the values). Those were the result of the wrong size of the internal capacitors used in their comparators.
Any chance you have a link to that thread? I’d love to read about it
@@caseysheridan6752 Late reply, but this is covered in the RP2040 datasheet.
I had tow laying around for more than a year but I used them both in the last two days and now I am in love with a new Microcontroller :D
The pins *are* labelled on the Pico Pi, on the underside of the board. Not exactly the most intuitive place to find it. But, yes a printout of the pinout is a good idea.
If you solder the pins to the "top" side of the board i.e. use the board upside down you can see all the pin labels. The BOOTSEL is not reachable but is not needed for most operations and can be accessed on TP6. Don't press the board down too hard otherwise the button could be squeezed when installed in a pin board. The LED on GPIO25 is not visible but the signal appears on TP5 so could easily be modified if desired.
I always learn something when I come to your channel, thanks!
Thanks for this update. I wouldn't touch it when Python was the only option, but after watching your video I''ll have to try one out now.
When I don't need wifi/bluetooth, I use Raspberry Pi Pico because:
- Similar price to the Arduino Nano (at least in my third world country)
- Power supply from 2V to 5V, the board has a step down/step up converter
- Pin count
- ADC
- Speed
Thanks for the feedback. Good points.
The only problem is the huge sleep current consumption
The ADC is probably the only thing that the Arduino beats the pico. Pico only has 4 channels
@@Cracked1ce and as GreatScott mentioned, it is not very accurate
@@davidpetry7853 that's just the bad circuit design of the devboard. quite common actually and you see this on the stm32 devboard too. The rp2040 chip is plenty accurate
The Pico can also act as a HID (Human Interface Device) which is a nice feature that is found on some but certainly not all Arduino compatible boards.
I wonder if the Pico can replace nice nano's, way over my head, so I guess I have a lot of learning to do!
also rpi pico w costs about £3 vs now the the uno r4 is a whoping £50( official r4 and r3 is eol so I dont use it anymore( another reason why pi pico wins js the fact you can translate your code to different boards with only a few registry mods)
I think that we are going to see the Pico, or something very close to it, used in a lot of "smart appliances" with all of that GPIO and low cost.
Cheap microcontrollers are already used in that sort of thing all the time
I was thinking about the use of ferrite bead noise filter design to diminsh the noise on analog inputs. With the implication of this you might no longer need to de-activate the PFM mode, therefore improve the efficiency. 7:38
Excellent job! Even I followed, so you did a great job of breaking down the Pico using the other MCUs as the comparison.
That is a great strategy for sharing the relative benefits/drawback for new tech because it draws on something that many of us are already familiar.
I'd be curious to know if the wifi Pico has the same power conditioning issue feeding the ADC (great job explaining that issue).
I found myself thinking that almost every sentence you uttered would represent about a day worth of my time googling or reading to come to the same conclusion as you.
In other words, it was not overrated, just different. As it is, it's much more capable in most ways, especially for true interrupt-driven systems and multi-tasking. Many years ago, I wrote a real time control system on a Z80 machine, with a proper, albeit compact pre-emptive multi-tasking OS. It was an approach I really liked, as it made a lot of the programming much easier than those horrible loop/poll type implementations. The pico is much more suited to such an approach.
yeah!!! I know your comment is 1 year old, but coming from industrial automation (PLCs) I cannot stand those horrible loop/poll programming.
Its dual core! That IS pretty special.
I have few of these. I dont think it is overrated. I think its just not used enough. I bought mine to have a little fun and I made some bad USBs to play Rick Asltley. It was a fun project for a while, but now I am thinking to build something that waters my plants while I am not at home. This thing is cheap, small and very fast. Great little piece of hardware for people who want to learn how to build robots. Pico even have a WiFi now. There is this new Pico W micro controller with WiFi built in.
I take psychic damage every time he refers to normal microcontrollers as "arduino alternatives"
Some people have verry high expectations of a cheap $5 micro controller when fuel prices are $2.20 a litre five dollars for a micro controller is amazing prices and endless possibilities
It will be great if you make a comparison video between Raspberry Pi Pico W and ESP 32.
They both have WiFi and quite popular.
Isign under this, that would be very educational, esp32 is impressive.
Other channels have done this - the ESP32 has more raw processing power, plus i2s, BlueTooth etc, but the PIOs make some tasks more efficient on the Pico.
@@Stabby666 "more efficient" - faster? Less delay? I know just that analog reading is unstable and while using WiFi its catastrophe.
@@havocking9224 The PIOs allow for custom logic running separately to the main cores. This can be used, for example, to output an HDMI signal - something you cannot do with the ESP32. I'm not interested in a "this micro is better than that" fanboy stuff. I use both - along with Atmel, STM and Nordic chips in my work.
@@Stabby666 i am just amateur at programming and i've never needed such potential as HDMI....anyway thanks!
i've been watching you for years, your videos are way better than they used to be
You can develop in Ada for it too.
Wow the dual core code looks so much simpler than earlier stuff I looked at! Thanks for the update. Still not used mine yet but have an idea in mind driven by the available storage
You should look at the Teensy boards, they have absolutely killer specs across the lineup (speed, ram, io, analog, floating point ubit) and fill the gap between a Arduino Uno or STM32 and thr likes of a SOC such as a RasPi.
The 4.1 rocks a 600mhz Arm Cortex-M7 with Ethernet pins headers. (Low power modes and sleep modes that sip power)
The 3.6 is a bit more inline with the RasPi pico..
The boards also support soldering on extra ram and flash, as well has having built in SD card slots. Also they label the IO.
I love the teensy boards and their libraries, but they are really too expensive to get in the EU.
I have coding knowledge. But I don't have much electronics knowledge. Never used Arduino or Raspberry pi.
But I want to get into it for some fun projects I have in mind.
Any suggestions and tips how I should get started?
That's pretty interesting, I like the built-in buck-boost converter for battery powered applications. Hopefully they've addressed the sleep current in the wifi version, since that would be perfect for Internet of -shit- I mean things, if it has a decent battery life with deep sleep.
There's a wifi version?
@@anycatdessai It was mentioned right at the end of the video, and it came out... maybe a week ago? It's really fresh.
@@SianaGearz Yeah I later read about it. No stock here in India yet.
I think it'd make an interesting option for a flight controller. More frequency and memory means more sophisticated control. :+ )
To sum up,
just put "digitalWrite(23, High)" on all your code.
Is that all? Is that simple? No missing?
Can you make videos on protocol/peripheral driver implementations using polling, interrupts and dma. This can be your new series😊😊. Love your videos ❤️
Maybe a bit too complicated for me. But I will see what I can do :-)
@@greatscottlab Sir i have learnt a lot from you and nothing is complicated for you that's what i know😅...
another thing that i find really useful about the pico, not present in most arduinos is the HID capability, i think that on the arduino side its only present on the ones with the 32u4 and, i guess, the ones with the rp2040
The ESP32 boards, the STM32 "Giga", AT91 "Due" and the current generation of RA4M1 based UNO R4 Wifi/Minima are also HID capable.
Man have they made a lot of a different boards since i first bought a Duemilanove... They even had a brief period where they made a Intel Curie based board. Back when Intel was trying to get into the MCU market.
Its really just the old legacy generation of ATMega328 and the long deprecated ATMega2560 based boards that lack HID.
With MicroPython you don't have to write a "loop()" function, neither write a state-machine to implement complex process.
And if you need complex things? Not blinking leds with multicore mcu?
@@kaunomedis7926 MicroPython make things a lot easier.
Great video. When it was first released I was very underwhelmed due to the lack of WiFi. I decided to stay with my WEMOS devices. Now I may have to take a look at the Pico.
Yep. Really looking forward that WiFi gets integrated in the Arduino IDE and then everything is possible :-)
I miss your old intro! 🙃
Something interesting that I learnt about the compatibility layer is that C/C++ sdk functions are still directly accessible which was useful for my current project.
yes, that is inofficial arduino support lib earlephilhower/arduino-pico
the *alternative* 'official' arduino lib comes with mbed os (so not the pi sdk)
@@Henry-sv3wv yeah, initially I was using mbed but had to change to earle's version and I definately prefer it.
The teasing of inevitable in the ending is awesome mate
More Pico powered power electronics stuff yaaayyyyy !!!!!🤩
Very strange reason to give the Raspberry Pi Pico a thumbs down before and call it overrated just because *YOU* don't like MicroPython. I use both for different projects and IMHO it is worse to use Arduino IDE instead of MicroPython with Thonny IDE for the Pico. Much more overlay and bloated. Use the right thing where you need to, and if you don't have experience with it, learn it!
Python in general is just bloated and wasteful. It’s really for kids learning to program on the Pico and not for anything serious, unless you don’t care about performance or power usage. 😁 it’s the modern version of BASIC.
I jumped to Pico at the very beginning and I'm happy with that. Initially Micropython was good to do some light projects where thankfully it allowed me to avoid Arduino IDE.
For more advanced stuff I like PIO, dual cores, ultra fast I/O lines, ability to map I/O to different ports, easy SWD debug with 4 breakpoints, dirt cheap debugger (another Pico) and well documented C SDK.
I use it to interface hardware from 70s and 80s which makes it very versatile and cheap solution.
One big drawback for me is lack of 5V tolerant inputs and need to use voltage converters everywhere.
Regarding on the lack of 5 v tolerant pins I'm thinking where I really need 5v gpio I'll try connecting a MCP23008-E/P-ND I2C expander. Looks like the MCP23008 should be fine with 3.3 volts on the I2C pullups while the rest of the IC is at 5 volts.
@@peircedan those are great - especially since you can run the i2c bus really fast on pico.
Currently some people are also looking into hacking the wifi hardware as it's firmware is uploaded by the pico bootloader from RAM, and because it's an ARM Cortex M3; could be converted into a number of smart peripherals for an extra boost in processing power.
Many thanks for the comprehensive review and comparison. Really a valuable when tinkering with this kind of boards.
greatscott u should definitely make a video about pine64 Ox64
No Pico, so far, but did get the Arduino Nano RP2040 Connect with at least a taste of Pico Pi, along with all sorts of onboard gizmos. Thank You for the Pico update!
Now, back to the Esp32 LoRa boards ... I just never realized how catching this MCU bug was going to be ...
Python is the best way to turn any microcontroller slow.
I have been programming low level stuff for about 40 years, having started on the BBC Micro with Basic and assembler. The first compiled high-level language I learned was C, so I am comfortable in the default Arduino IDE. I have programmed the Pico with C as you demonstrate but I usually use Micropython. Most of my stuff is not time critical so an interpreted language with the "source code" present on the controller is a big bonus - no worries about version control or losing backups, you can just download the code the controller uses from the controller itself.
Most of the "professional" high-level coding I have done has been Basic, C or Pascal/Delphi and I confess I resisted learning Python for some while. Its actually not a bad language with useful features like object oriented programming available. I didn't find it hard to learn and there's loads of examples out there for practically everything.
Taking the "default" route, I tend to program Arduino in C and Pico in Micropython but there are ways to program either controller in either language if you are stubborn about coding in the language you prefer...
I have 2 pi pico w's and an esp32-s3-devkitC. I have not touch my uno in a while. I guess the only annoying thing for me is that in both models of boards they run on 3.3v which is sort of annoying but just a bit of extra circuitry to step it up. (Or just use an external power supply with some mosfets).
Good point to show back compatibility with legacy projects. Danke.
The greatest thing of the raspberry pi pico for me is that you can run it from 2 AA/AAA batteries. But i still didnt get one for some reason, should get one soon.
Yep. That is pretty neat
@@greatscottlab yeh I'd totally failed to appreciate that till I saw this video! Even better for the use I had in mind!
"Quite a bit of switching noise". That made me laugh out loud at how understated it was.
Thanks for making amazing videos for us. 🇧🇩
I was confused by the first few minutes where you said you had to use python when there is no such restriction. It then became clear that it was not compatible with the Arduino IDE then the video made sense. Good video.
I haven't looked through the comments yet.. but on some uc's you can select the ADC reference voltage (to a DC voltage on a reference pin).
If you need less noise, you could create a reference off your DC supply. or even use an external voltage reference chip.
Still an odd choice to use switched power supply on board. In linear voltage regulators the efficiency is usually a function of the voltage difference between input an output terminal. So you should ideally not power your uc with a 12V DC power supply.
Now they added Bluetooth support to Micropython for Pico W !! *_*
More often than not, when someone says something is "overrated", it turns out that they don't know enough about it. This is true throughout human endeavor.
The Arduino IDE is a great resource but no one should limit themselves to such a basic IDE especially if it means not using new hardware. Learning Python, a common scripting language for almost any purpose on any platform, isn't a waste of time either.
I got a pi pico a while back so I could build projects with embedded Rust.
Being able to use Rust on a microcontroller is just the best
Great video as always 👍
Thanks for sharing your expirences with All of us 👍😃
I completely stopped using Arduinos and Microchip PICs a year ago. Pico is a killer, because of PIO and a great SDK.
Also woth to mention, it is possible to code completely in assembly and arm asm is real fun.
Very nice little board indeed! Thanks for sharing it with us. Cheers!