What started as a foundation focusing on education has become the world leader of single board computers, and is now making waves in the world of microcontrollers.
The Raspberry Pi is a single-board, low-cost, high-performance computer that enables endless possibilities for physical computing and exploring the Internet of Things (IoT). It is equipped with various input and output ports (HDMI, USB, Ethernet, etc.) to connect a display, mouse, and keyboard to use as a traditional PC.
The Raspberry Pi Foundation set out to be the answer to getting a computer in the hands of every school-aged child in the world. The goal was to bring tech to developing countries, and to get UK residents further interested in computer science from a young age. The Raspberry Pi Foundation was established with the help of Broadcom, a semiconductor company that produces a number of different semiconductors and software that compliments it.
Outside the main objective, the Raspberry Pi project generated a lot of buzz the second they announced their product would cost less than $50. This was incredible at the time, and consumers couldn't wait to get their hands on the Raspberry Pi. In fact, at launch in February 2012, it sold out almost immediately - a trend that seems to continue with each new release today.
Released in February 2012, the Raspberry Pi Model B was the credit card-sized computer that started it all.
A brief, decidedly non-comprehensive history of Raspberry Pi releases.
In early 2014, Raspberry Pi came out with its first Compute Module intended to be embedded into products or systems. The idea was to put all the computing power and functionality of a traditional Raspberry Pi in a form factor a user could design around to create a custom device with specific connectors, layout and size, with the same technological guts (processor, RAM, flash, etc.) as the Raspberry Pi they know and love. At first the Compute Modules were made as a DDR2 SODIMM connector (same as a laptop memory), but more recently, Raspberry Pi has released the Compute Module 4 form factor, featuring a high density connector on the bottom of the board.
Raspberry Pi has released it's second-generation microcontroller board with better performance and security than its predecessor RP2040.
Learn more about the RP2350As a fully functioning computer, a Raspberry Pi requires an operating system to run. The open source Raspberry Pi OS (previously called Raspbian) gained an immediate following, and excited users added support for different peripherals and software, such as a Minecraft server. The popular game/learning platform saw a so much interest on the Raspberry Pi platform that it eventually found itself integrated as a standard program on Raspberry Pi OS images. Alternative operating systems also started to pop up, like OSMC (Open Source Media Center), which is a simple way to turn a Raspberry Pi into a home media center. Depending on what you'd like to use Raspberry Pi for, there is probably an operating system to suit your needs. Here are just a few of the 20+ operating systems you can install on your Raspberry Pi.
Official Raspberry Pi OS
For media servers
General purpose OS
For ARM devices
For retro gaming
For IoT projects
Out of the box, the Raspberry Pi comes with all the hardware ports needed in order to set up a personal computer. USB 3.0 ports allow for external hardware such as a mouse or keyboard, the ethernet port allows for an easy internet connection, and the AV jack and HDMI ports allow for speakers and a monitor. Where the Raspberry Pi really shines is with its onboard hardware, including its 40-pin GPIO (General Purpose Input & Output). Read more on this below.
Raspberry Pi 4 Model B (8 GB) shown above.
In very broad terms, physical computing involves interacting with the world around you by analyzing analog inputs to control digital outputs. One example of physical computing is using a Passive Infrared (PIR) sensor to detect motion from a human (input) and turn on a light (output) once that motion is detected. Another example is taking air quality sensor readings over a period of time and using an OpenLog to store those readings. The possibilities are limitless.
With a Raspberry Pi, physical computing is done via the aformentioned 20x2 GPIO. One could use individual hookup wires for each GPIO, but we've made it much simpler. Using a HAT or pHAT allows you to expand the capabilities of your Raspberry Pi for applications like robotics, machine learning and everything in between. They also make it easier to add accessories such as a camera, display cables, or a multitude of sensors using the Qwiic Connect System. We also offer a SHIM (Stack Hardware In the Middle) to add a Qwiic Connector without taking up too much precious GPIO. A Pi Wedge is another option, if you prefer to break the GPIO out to a breadboard.
We can't discuss an exploration of Raspberry Pi without touching on Python, because the two are intricately connected. The Raspberry Pi Foundation chose Python as the primary language of the Pi because of its power and ease of use. The Pi operating system specifically has Python IDEs (IDLE, Thonny) installed, you can begin programming as soon as you connect the peripherals to the computer.
Having Python installed on the Raspberry Pi enables you to begin interacting with physical components via the Pi. Using the gpiozero library built by the Raspberry Pi Foundation, you can interact with a variety of GPIO devices just by writing in Python.
Now that you've got a good background on Raspberry Pi, it's time to dive in. We've put together a simple, effective tutorial to introduce you to the hardware and coding needed to set up and use your Raspberry Pi single board computer.
When exploring Raspberry Pi products, one of the best ways to learn is to view the hookup guides. For most products SparkFun carries, we have an associated hookup guide on the product page located under the description. We do our best to walk through all the connections needed, associated libraries, and a working demonstration or two to get your project off the ground.
Raspberry Pi has become extremely popular in the electronics world, and a plethora of products have been created to accompany, modify and enhance the Pi’s capabilities.
While there is some overlap between the capabilities of Raspberry Pi and Arduino, there are also some distinct differences.
A single board computer (SBC) is a full computer limited to a single circuit board. They run similar, scaled down versions of operating systems. The preinstalled software includes a web browser, an office suite, a terminal, and even Minecraft. The Raspberry Pi also has built-in WiFi and Bluetooth to connect to the internet and external peripherals. Given its small form factor, a SBC will have limitations with computing power compared to something like your laptop. Your laptop could actually be considered a single board computer; however, given the power differences between a Raspberry Pi and let's say, a MacBook Pro, they aren't comparable.
On the other hand, a microcontroller - a tiny computer in its own right - doesn't run an operating system. Instead, a single program is uploaded to a microcontroller to read input from and send output to electronic components. For instance, reading a temperature sensor (input) and displaying the temperature on an LCD (output).
Arduino is actually a platform that provides both a hardware and software interface that allows you to program microcontrollers to perform very specific tasks. When you hear people refer to "an Arduino" they are probably referring to a hardware device that can be programmed in the Arduino IDE (see image to the right). Arduino hardware devices make programming the on-board microcontroller much easier by allowing access to the pins of the microcontroller itself.
It's worth noting here that not all microcontrollers are programmed with Arduino. The new Raspberry Pi Pico, for instance, is a microcontroller board that is programmed using MicroPython or C/C++.
Here are a few projects that use Raspberry Pi. We are always trying to expand our library of projects and tutorials, so check back often or fill out the form above to be notified of new content.