How a Small Charity is Upsetting the Trillion-Dollar Silicon Chip Industry
On January 21st, the Raspberry Pi Foundation (a UK-based Charity) announced a new silicon chip that it designed. This chip, called the RP2040, has become the hottest development in the Maker Movement in the last five years. The RP2040 is at the heart of the $4 Raspberry Pi Pico development board.
The Pico is revolutionary because it offers over 100x the capabilities of the industry-standard Arduino Uno system at 1/5th the cost. At 2 cents per KB of SRAM, the Pico has 1/625th the cost-per-KB cost that of the Arduino Uno. There are many other blogs that compare the “Speeds and Feeds” of the Pico. In this blog, I will focus on just a few key aspects of the Pico: memory and software.
However, SRAM prices are not really the biggest change taking place in the computer industry. The big change is the software stack that most users are using to program the new Pico microcontroller. Instead of forcing young programmers to learn the legacy “C” programming language, they are programming it in their favorite programming language: Python. This is the real revolution for STEM educators around the world. And it has far-reaching consequences for the entire technology industry.
In this blog, I will review the key differences between our legacy Arduino systems and the revolutionary new systems that being built now with the RP2040 and the low-cost Raspberry Pi Pico. We will also look at the impact this new system will have on the entire integrated circuit industry, our STEM educational systems, and the growing movement toward more autonomous online coding clubs.
Arduino Uno vs. Raspberry Pi Pico for Education
Let’s put ourselves in the shoes of a typical high-school STEM teacher. You teach six math and science classes with 30 kids in each class, and you want each student to have their own microcontroller for teaching science, robotics, and programming classes. What are your options?
The Legacy Arduino Uno
If you do an online search for “Arduino Uno” the first hit points to the official Arduino product:
If you add taxes and shipping you quickly have $25+ part (not including cables, sensors, and displays). For your six classes of 30 students each, you need a budget of $25 X 6 X 30 or about $4,500. But that is NOT your real problem. The real problem is that these devices are severely constrained by the 2K of SRAM memory available in the Uno. Just adding a small 128X64 $3 OLED display will use 70% of the RAM available! In short, you will quickly be constrained by the limits of your device.
The worst part of this is that your other math and computer science classes will probably already be teaching Python. And you kids LOVE Python. The clean syntax and vast about of free software make it by far the first language students are learning in our coding clubs after the block programming language Scratch.
In short, we have a great cultural divide between our Python coding clubs and the Arduino “C” programmers and makers. Learning a new programming language is just too much of a challenge for many schools. As a result, their STEM and robotics classes are forced to use limited block-programming languages like Scratch to program their robots like the mBot. In the past, only a few of them have ventured into integrating microcontrollers into their STEM courses. This is really sad because microcontrollers can be an ideal way to learn Computational Thinking without having to purchase a full Raspberry Pi and learn how to boot a UNIX operating system. For example, we can create incredible LED costumes with a few lines of code using simple microcontrollers.
Enter the Raspberry Pi Pico
But the world is about to change. Ever since the January 2021 announcement of the Raspberry Pi Pico, the maker world has started to shift toward a much lower cost and more powerful system that will take STEM classes to the next level.
If you visit Google Trends, you can see that the Pico has been swamping the news since the announcement on January 21st. This is despite the fact that many people have yet to actually get a device in their hands due to shortages.
Retailers are not blind to this fact. Our local Microcenter has been using the new devices to get people into their stores despite the COVID pandemic.
The image above came from the Microcenter web-site. The demand for the Raspberry Pi Pico has been so high that most people can’t keep them in stock. Sellers on eBay are raising the price of the Pico to meet some of this demand.
It's All About the RAM
Although the Arduino organizations don’t like to admit it, there are ways to source lower-cost parts from China. So if you do research, you can get Arduino Nanos for a few dollars on eBay. These parts have lots of problems with drivers and long shipping times, but for people that plan ahead and use do Google searches for driver install fixes, there are workarounds.
So the price of the device is not really the big point. The key point is the capabilities of the new Pico. For my work, it is all about the limitations of SRAM. Our students love to see the results of their data gathering right on the device our FaceBot robot. Low-cost OLEDs have made this easy. But most OLEDs need lots of RAM to store a copy of the screen within the microcontroller. This framebuffer is a project killer for many fun projects like viewing incoming data streams as a graph or if you must, creating a pong game.
As a quick background, SRAM is the volatile working memory that your program stores data. Microcontrollers also have non-volatile flash memory that they store programs code in and it is persistent when the device is powered off. What has been the problem for my projects is that the Arduinos have very limited SRAM — about two thousand kilobytes. And once this memory gets full the programs stop working.
Let's compare the SRAM capabilities of the Arduino Uno with the new Pico. The best way to measure this is to compare the price per kilobyte (KB) of SRAM.
- The Arduino Uno has a price of about $25 for 2K of SRAM. The cost per KB SRAM is $12.50.
- The Raspberry Pi Pico costs $4 and comes with 264KB of SRAM. The cost per KB of SRAM is $0.02 or two cents per KB SRAM.
When we compare the cost of $12.50 vs. $0.02 we get a ratio is 1/625th the price per KB SRAM. To get the point across, here is a graphical horizontal bar chart comparing the 625 to 1 ratio:
Note that you can barely see the tiny bar in the top row. But it is there and the capabilities of the Raspberry Pi Pico are real!
Comparing Arduino C and MicroPython
Many of my STEM teachers and mentor friends are like me. They have been programming Arduinos for the last 10 years (Arduinos came out in 2005) and you have a HUGE base of code out there for teaching your classes. Any you might not have experience with Python yet. You might be wondering if I am being a bit extreme in my views that Python is wining the beginning first language to learn wars. Surely there are benefits in teaching our students about the wonders of learning different programming languages? Right?
We can compare the code of the famous “Blink Lab” side by side. We see the code is about the same length:
But one thing that is different is the number of extra “syntax” elements in the Arduino C code on the left. You see four curly braces and five semicolons. When the inventors of “C” programming language wrote their parsers they wanted to make sure they knew when one statement ended and the next one started. This made it easier to write parsers, but a little bit harder to write and read the code. I worked at Bell Labs in the 1980s when these discussions were going on about the syntax of “C”, so I have many stories to tell about the debates…but I digress.
Python on the other hand took a minimalist approach. By making the parsers a little bit smarter, they make the code both easier to write and easier to read and maintain. So computer scientists, educators, and students have been opting for a more “modern” clean syntax since around 1991 when Python came out. As are result there is more open-source Python example code than any other system today. Despite the performance advantages of C, Golang, and the newer Rust language Python dominates fields like Data Science, NLP, and many areas of Artificial Intelligence.
Putting The Pico in Context
The title of this blog is a reference to a small charity. That is the Rasberry Pi Foundation (RPF). Of course, “small” is a relative term. My key point is that the RPF is not like Apple, Google, Amazon, or Intel with billions of dollars in R&D budgets dedicated to custom chip design. But the announcement of the full-custom RP2040 chip features or price alone is not what is a groundbreaking event. One could argue that the ESP32 is as capable as the RP2040 and also has full WiFi and Bluetooth communications. The ESP32 is also in the same price range as the Pico, although typically a few dollars more. What is telling here is that the RPF is filling an unmet need in the marketplace. And the RP2040 will not be the last chip they design. Building custom silicon chips can be done with small development teams with seven-digit budgets.
The key difference here is the positioning and the incredible clout that RPF has in the educational market and the maker movement. This is based on their prior hardware and industry reputation. People trust the RPF to disrupt the market. Despite the low cost and power, even after the ESP32 came out there was little support in the educational community. The chips could not be programmed with the Arduino IDE and even the basic functions like analogRead() would not work like on other Arduino software. There was very little portability of code. It was too difficult to program the ESP32 and the advanced wireless features were hard for teachers to integrate into their classrooms.
But only after a few weeks even the Arduino organization announced they would support the RP2040 in their own products. What is at stake for the Arduino community is the fact that the momentum is slipping away from C to Python. In the future, new sensors and displays may only have Python drivers.
Having more SRAM, flash, and compute power also makes the devices much easier to use for our younger students. The Pico has a nice mode that allows it to look like an attached USB flash drive. By simply putting your program into a file called main.py you can just use a drag and drop interface to program your Pico. This mode is permanently burned into flash making it much more difficult for our students to accidentally “brick” the device making it a little bit more usable by begging students.
A Word of Caution
Before we all throw our well-loved Arduinos in the recycle bin, we should mention that right now, there is very little sample code available for the Raspberry Pi Pico. MicroPython and the Thonny IDE are still far behind where the Arduino IDE is today. I spent four hours trying to get a simple LCD I2C device working without any success. I did however get our LED strips and our OLED displays working.
It will take time for all our STEM classes, lesson plans, projects, kits, and labs to be ported over from the current C to MicroPython. But what waits there are incredibly functional projects, smarter robots, more integrated home automation, and a seamless curriculum from blink through IoT and toward AI-powered edge devices that make up our emerging Ubiquitous Computing world.
So what does this all mean? Let’s take a look at both the impact on educators and the technology industry.
It means that if you are a teacher or mentor that in a few years it will be much easier for you to build a new generation of “Coding Club in a Box” systems. These are large plastic bins of kits and online-content that you can get on loan from groups like CoderDojo Twin Cities. They will be full of low-cost but powerful labs for hands-on activities including learning how to program LEDs, costumes, environmental monitoring, sustainability labs, aquaponics, robotics, physics labs, chemistry labs, and many other STEM projects that will promote coding skills, data literacy, and home automation.
If you are a strategic planner in almost any field related to microcontrollers you should be thinking about where the industry will be in two years when low-cost yet powerful and easy-to-program devices permeate our schools, colleges, universities, maker faires, robot clubs, coding clubs, and every after-school science club.