The Raspberry Pi is a series of small single-board computers developed in the UK by the Raspberry Pi Foundation to promote modern computer science in schools and developing electronic communities. Adding the 40-pin GPIO connector to the computer board allows developers not only improving their programming skills but also open them new horizons in controlling processes and devices not available for desktop computers. According to the Raspberry Pi Foundation, the entire boards' sales in July 2017 has reached nearly 15 million units. The first generation of this new board type was developed and then released in February 2012 – Raspberry Pi Model B. Each Raspberry Pi board contains hardware modules which together makes it fully usable PC like a computer which size fits the typical credit card (85/56 mm) size and small power consumption < 3.5 W. This makes this kind of single board computers one of the most popular in developers community. For today there exist thousands of hardware implementation projects available for users who want to learn the modern hardware and software controlling units within their projects. The general Raspberry Pi features are listed below.
Hardware boards (depending on the manufactured model) contains interfaces: Ethernet, Bluetooth, WiFi, USB, AUDIO, HDMI and GPIO ports [1]. The Raspberry Pi boards have evolved through several versions varying in memory capacity, System on Chips (SoC) and processor units. First generation models of Raspberry Pi used the Broadcom BCM2835 (ARMv6 architecture) based on 700 MHz ARM11176JZF-S processor and VideoCore IV graphics processing Unit (GPU). Models Pi 1 and B+ developed later uses the five-point USB/Ethernet hub chip while the Pi 1 Model B only contains two. On the Pi Zero, the USB port is connected directly to the SoC and uses the (OTG) micro USB port.
The first Raspberry Pi 2 models use the 900 MHz Broadcom BCM2836 SoC 32-bit quad-core ARM Cortex-A7 processor, with shared 256 KB L2 cache. After this earlier models, the Raspberry Pi 2 V1.2 has been upgraded to a Broadcom BCM2837 SoC equipped with a 1.2 GHz 64-bit quad-core ARM Cortex-A53 processor. Latest Raspberry Pi 3 series uses the same SoC. They use the Broadcom BCM2837 SoC with a 1.2 GHz 64-bit quad-core ARM Cortex-A53 processor, equipped with 512 KB shared L2 cache. The Raspberry Pi 3B+ uses the same processor (BCM2837B0) but running at 1.4 GHz. Next Raspberry Pi generations are going to be more and more powerful, but their power consumption is still rising to force developers to use CPU and GPU heatsinks.
Older B board models were designed with 128 MB RAM which was by default allocated between the GPU and CPU. The Model B (including Model A) release the RAM was extended to 256 MB split to there regions. The default split was 192 MB (RAM for CPU), which is sufficient for standalone 1080p video decoding, or for 3D modelling. Models B with 512 MB RAM initially, memory was split to files released (arm256_start.elf, arm384_start.elf, arm496_start.elf) for 256 MB, 384 MB and 496 MB CPU RAM (and 256 MB, 128 MB and 16 MB video RAM). The Raspberry Pi 2 and 3 are shipped with 1 GB of RAM. The Raspberry Pi Zero and Zero W contains 512 MB of RAM.
The Model A, A+ and Pi Zero have no dedicated Ethernet interface and can be connected to a network using an external USB Ethernet or WiFi adapter. In Models B and B+, the Ethernet port is built-in to the USB Ethernet adapter using the SMSC LAN9514 chip. The Raspberry Pi 3 and Pi Zero W (wireless) models are equipped with 2.4 GHz WiFi 802.11n (150 Mbit/s) and Bluetooth 4.1 (24 Mbit/s) based on Broadcom BCM43438 FullMAC chip. The Raspberry Pi 3 also has a 10/100 Ethernet port.
The Raspberry Pi may be controlled with any generic USB computer keyboard and mouse. It can also use USB storage, USB to MIDI converters, and virtually any other device/component which is USB compatible. Other peripherals can be attached through the various pins and connectors on the surface of the Raspberry Pi.
The video controller supports standard modern TV resolutions, such as HD and Full HD, and higher. It can emit 640 × 350 EGA; 640 × 480 VGA; 800 × 600 SVGA; 1024 × 768 XGA; 1280 × 720 720p HDTV; 1280 × 768 WXGA variant; 1280 × 800 WXGA variant; 1280 × 1024 SXGA; 1366 × 768 WXGA variant; 1400 × 1050 SXGA+; 1600 × 1200 UXGA; 1680 × 1050 WXGA+; 1920 × 1080 1080p HDTV; 1920 × 1200 WUXGA. Higher resolutions, such as, up to 2048 × 1152, may work or even 3840 × 2160 at 15 Hz. Although the Raspberry Pi 3 does not include H.265 hardware decoders, the CPU is more powerful than its predecessors, potentially fast enough for software decode H.265-encoded videos. The Raspberry Pi 3 GPU runs at a higher clock frequency – 300 MHz or 400 MHz, compared to 250 MHz previous versions. The Raspberry Pis is capable of generating 576i and 480i composite video signals, as used on old-style (CRT) TV screens and less-expensive monitors through standard connectors – either RCA or 3.5 mm phono connector depending on models. The television signal standards supported are PAL-BGHID, PAL-M, PAL-N, NTSC and NTSC-J.
None of the current Raspberry Pi models is equipped with a built-in real-time clock. Developers which needs the real clock time in their project can retrieve the time from a network time server (NTP) or use the external RTC module connected to the board via SPI or I²C interface. To save the file system consistency of time, the Raspberry Pi automatically saves the time on shutdown, and reload it time at boot. One of the best RTC solutions for keeping the proper boards time is to use the I²C DS1307 chip containing hardware clock with battery power supply.
Version | Model A | ||
---|---|---|---|
RPi 1 Model A | RPi 1 Model A+ | RPi 3 Model A+ | |
Release date | 2/1/2013 | 11/1/2014 | 11/1/2018 |
Target price (USD) | 25 | 20 | 25 |
Instruction set | ARMv6Z (32-bit) | ARMv8 (64-bit) | |
SoC | Broadcom BCM2835 | Broadcom BCM2837B0 | |
FPU | VFPv2; NEON not supported | VFPv4 + NEON | |
CPU | 1× ARM1176JZF-S 700 MHz | 4× Cortex-A53 1.4 GHz | |
GPU | Broadcom VideoCore IV @ 250 MHz (BCM2837: 3D part of GPU @ 300 MHz, video part of GPU @ 400 MHz) | ||
OpenGL ES 2.0 (BCM2835, BCM2836: 24 GFLOPS / BCM2837: 28.8 GFLOPS) | |||
MPEG-2 and VC-1 (with license), 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder (BCM2837: 1080p60) | |||
Memory (SDRAM) | 256 MB (shared with GPU) | 512 MB (shared with GPU) as of 4 May 2016. Older boards had 256 MB (shared with GPU) | |
USB 2.0 ports | 1 (direct from BCM2835 chip) | 1 (direct from BCM2837B0 chip) | |
Video input | 15-pin MIPI camera interface (CSI) connector, used with the Raspberry Pi camera or Raspberry Pi NoIR camera | ||
Video outputs | HDMI (rev 1.3) composite video (RCA jack), MIPI display interface (DSI) for raw LCD panels | HDMI (rev 1.3), composite video (3.5 mm TRRS jack), MIPI display interface (DSI) for raw LCD panels | |
Audio inputs | As of revision 2 boards via I²S | ||
Audio outputs | Analog via 3.5 mm phone jack; digital via HDMI and, as of revision 2 boards, I²S | ||
On-board storage | SD, MMC, SDIO card slot (3.3 V with card power only) | MicroSDHC slot | |
On-board network | None | 2.4 GHz and 5 GHz IEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2/BLE | |
Low-level peripherals | 8× GPIO plus the following, which can also be used as GPIO: UART, I²C bus, SPI bus with two chip selects, I²S audio +3.3 V, +5 V, ground | 17× GPIO plus the same specific functions, and HAT ID bus | |
Power ratings | 300 mA (1.5 W) | 200 mA (1 W) | |
Power source | 5 V via MicroUSB or GPIO header | ||
Size | 85.60 mm × 56.5 mm (3.370 in × 2.224 in), excluding protruding connectors | 65 mm × 56.5 mm × 10 mm (2.56 in × 2.22 in × 0.39 in), same as HAT board | 65 mm x 56.5 mm |
Weight | 31 g (1.1 oz) | 23 g (0.81 oz) | |
Console | Adding a USB network interface via tethering or a serial cable with optional GPIO power connector | ||
Generation | 1 | 1 + | 3+ |
Obsolescence | n/a | n/a | in production until at least January 2023 |
Statement | |||
Type | Model A |
Version | Model B | |||||
---|---|---|---|---|---|---|
RPi 1 Model B | RPi 1 Model B+ | RPi 2 Model B | RPi 2 Model B v1.2 | RPi 3 Model B | RPi 3 Model B+ | |
Release date | April–June 2012 | 7/1/2014 | 2/1/2015 | 10/1/2016 | 2/1/2016 | 3/14/2018 |
Target price (USD) | 35 | 25 | 35 | |||
Instruction set | ARMv6Z (32-bit) | ARMv7-A (32-bit) | ARMv8-A (64/32-bit) | |||
SoC | Broadcom BCM2835 | Broadcom BCM2836 | Broadcom BCM2837 | Broadcom BCM2837B0 | ||
FPU | VFPv2; NEON not supported | VFPv3 + NEON | VFPv4 + NEON | |||
CPU | 1× ARM1176JZF-S 700 MHz | 4× Cortex-A7 900 MHz | 4× Cortex-A53 900 MHz | 4× Cortex-A53 1.2 GHz | 4× Cortex-A53 1.4 GHz | |
GPU | Broadcom VideoCore IV @ 250 MHz (BCM2837: 3D part of GPU @ 300 MHz, video part of GPU @ 400 MHz) | |||||
OpenGL ES 2.0 (BCM2835, BCM2836: 24 GFLOPS / BCM2837: 28.8 GFLOPS) | ||||||
MPEG-2 and VC-1 (with license), 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder (BCM2837: 1080p60) | ||||||
Memory (SDRAM) | 512 MB (shared with GPU) as of 4 May 2016. Older boards had 256 MB (shared with GPU) | 1 GB (shared with GPU) | ||||
USB 2.0 ports | 2 (via on-board 3-port USB hub) | 4 (via on-board 5-port USB hub) | ||||
Video input | 15-pin MIPI camera interface (CSI) connector, used with the Raspberry Pi camera or Raspberry Pi NoIR camera | |||||
Video outputs | HDMI (rev 1.3), composite video (RCA jack), MIPI display interface (DSI) for raw LCD panels | HDMI (rev 1.3), composite video (3.5 mm TRRS jack), MIPI display interface (DSI) for raw LCD panels | ||||
Audio inputs | As of revision 2 boards via I²S | |||||
Audio outputs | Analog via 3.5 mm phone jack; digital via HDMI and, as of revision 2 boards, I²S | |||||
On-board storage | SD, MMC, SDIO card slot | MicroSDHC slot | MicroSDHC slot, USB Boot Mode | |||
On-board network | 10/100 Mbit/s Ethernet (8P8C) USB adapter on the USB hub | 10/100 Mbit/s Ethernet, | 10/100/1000 Mbit/s Ethernet (real speed max 300 Mbit/s), | |||
802.11b/g/n single band 2.4 GHz wireless, | 802.11b/g/n/ac dual band 2.4/5 GHz wireless, | |||||
Bluetooth 4.1 BLE | Bluetooth 4.2 LS BLE | |||||
Low-level peripherals | 8× GPIO plus the following, which can also be used as GPIO: UART, I²C bus, SPI bus with two chip selects, I²S audio +3.3 V, +5 V, ground. | 17× GPIO plus the same specific functions, and HAT ID bus | ||||
An additional 4× GPIO are available on the P5 pad if the user is willing to make solder connections | ||||||
Power ratings | 700 mA (3.5 W) | 200 mA (1 W) average when idle, 350 mA (1.75 W) maximum under stress (monitor, keyboard and mouse connected) | 220 mA (1.1 W) average when idle, 820 mA (4.1 W) maximum under stress (monitor, keyboard and mouse connected) | 300 mA (1.5 W) average when idle, 1.34 A (6.7 W) maximum under stress (monitor, keyboard, mouse and WiFi connected) | 459 mA (2.295 W) average when idle, 1.13 A (5.661 W) maximum under stress (monitor, keyboard, mouse and WiFi connected) | |
Power source | 5 V via MicroUSB or GPIO header | |||||
Size | 85.60 mm × 56.5 mm (3.370 in × 2.224 in), excluding protruding connectors | 85.60 mm × 56.5 mm × 17 mm (3.370 in × 2.224 in × 0.669 in) | ||||
Weight | 45 g (1.6 oz) | |||||
Console | Adding a USB network interface via tethering or a serial cable with optional GPIO power connector | |||||
Generation | 1 | 1 + | 2 | 2 ver 1.2 | 3 | 3+ |
Obsolescence | n/a | n/a | n/a | n/a | n/a | in production until at least January 2023 |
Statement | ||||||
Type | Model B |
Version | Compute Module* | |||
---|---|---|---|---|
Compute Module 1 | Compute Module 3 | Compute Module 3 lite | Compute Module 3+ | |
Release date | 4/1/2014 | 1/1/2017 | 1/1/2019 | |
Target price (USD) | $30 (in batches of 100) | 30 | 25 | |
Instruction set | ARMv6Z (32-bit) | ARMv8-A (64/32-bit) | ||
SoC | Broadcom BCM2835 | Broadcom BCM2837 | Broadcom BCM2837B0 | |
FPU | VFPv2; NEON not supported | VFPv4 + NEON | ||
CPU | 1× ARM1176JZF-S 700 MHz | 4× Cortex-A53 1.2 GHz | ||
GPU | Broadcom VideoCore IV @ 250 MHz (BCM2837: 3D part of GPU @ 300 MHz, video part of GPU @ 400 MHz) | |||
OpenGL ES 2.0 (BCM2835, BCM2836: 24 GFLOPS / BCM2837: 28.8 GFLOPS) | ||||
MPEG-2 and VC-1 (with license), 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder (BCM2837: 1080p60) | ||||
Memory (SDRAM) | 512 MB (shared with GPU) | 1 GB (shared with GPU) | ||
USB 2.0 ports | 1 (direct from BCM2835 chip) | 1 (direct from BCM2837 chip) | ||
Video input | 2× MIPI camera interface (CSI) | |||
Video outputs | HDMI, 2× MIPI display interface (DSI) for raw LCD panels, composite video | |||
Audio inputs | As of revision 2 boards via I²S | |||
Audio outputs | Analog, HDMI, I²S | |||
On-board storage | 4 GB eMMC flash memory chip | MicroSDHC | ||
On-board network | None | |||
Low-level peripherals | 46× GPIO, some of which can be used for specific functions including I²C, SPI, UART, PCM, PWM | |||
Power ratings | 200 mA (1 W) | 700 mA (3.5 W) | ||
Power source | 5 V via MicroUSB or GPIO header | |||
Size | 67.6 mm × 30 mm (2.66 in × 1.18 in) | 67.6 mm × 31 mm (2.66 in × 1.22 in) | ||
Weight | 7 g (0.25 oz) | |||
Console | Adding a USB network interface via tethering or a serial cable with optional GPIO power connector | |||
Generation | 1 | 3 | 3 lite | 3+ lite |
Obsolescence | n/a | n/a | n/a | CM3+ will remain in production until at least January 2026 |
Statement | ||||
Type | Compute Module* |
Version | Zero | ||
---|---|---|---|
RPi Zero PCB v1.2 | RPi Zero PCB v1.3 | RPi Zero W | |
Release date | 11/1/2015 | 5/1/2016 | 2/28/2017 |
Target price (USD) | 5 | 10 | |
Instruction set | ARMv6Z (32-bit) | ||
SoC | Broadcom BCM2835 | ||
FPU | VFPv2; NEON not supported | ||
CPU | 1× ARM1176JZF-S 1 GHz | ||
GPU | Broadcom VideoCore IV @ 250 MHz (BCM2837: 3D part of GPU @ 300 MHz, video part of GPU @ 400 MHz) | ||
OpenGL ES 2.0 (BCM2835, BCM2836: 24 GFLOPS / BCM2837: 28.8 GFLOPS) | |||
MPEG-2 and VC-1 (with license), 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder (BCM2837: 1080p60) | |||
Memory (SDRAM) | 512 MB (shared with GPU) | ||
USB 2.0 ports | 1 Micro-USB (direct from BCM2835 chip) | ||
Video input | None | MIPI camera interface (CSI) | |
Video outputs | Mini-HDMI, 1080p60, composite video via marked points on PCB for optional header pins | ||
Audio inputs | As of revision 2 boards via I²S | ||
Audio outputs | Mini-HDMI, stereo audio through PWM on GPIO | ||
On-board storage | MicroSDHC | ||
On-board network | None | 802.11b/g/n single band 2.4 GHz wireless, | |
Bluetooth 4.1 BLE | |||
Low-level peripherals | 17× GPIO plus the same specific functions, and HAT ID bus | ||
Power ratings | 100 mA (0.5 W) average when idle, 350 mA (1.75 W) maximum under stress (monitor, keyboard and mouse connected) | ||
Power source | 5 V via MicroUSB or GPIO header | ||
Size | 65 mm × 30 mm × 5 mm (2.56 in × 1.18 in × 0.20 in) | ||
Weight | 9 g (0.32 oz) | ||
Console | Adding a USB network interface via tethering or a serial cable with optional GPIO power connector | ||
Generation | PCB ver 1.2 | PCB ver 1.3 | W (wireless) |
Obsolescence | n/a, or see PCB ver 1.3 | Zero is currently stated as being not before January 2022 | n/a |
Statement | |||
Type | Zero |
As for today, on the market there are available few models of Raspberry Pi boards, from tiny ones to more powerful. User can choose the right board to fit the price and functionality to his project development needs. Below figures are listed form the tiny/cheap to most sophisticated Raspberry Pi models.
Each Raspberry Pi model is equipped with standard 34/40-pis male connector containing universal GPIO ports, VCC 3.3/5V, GND, CLK, I2C/SPI buses pins which developers can use to connect their external sensors, switches and other controlled devices to the Raspberry Pi board and then program their behaviour within the code loaded to the board.
Each Raspberry Pi model is equipped with the standard mini HDMI port allows user connect the monitor or TV set with the board.The electronic schematic is shown on the picture.
Raspberry Pi boars Zero, 1, A+, 2, 3 are equipped with Camera interface (CSI) port allowing user connect the CCD camera following the MIPI standard.
Raspberry Pi boars 2, 3 are equipped with LCD Display interface(DSI) port allowing the user to connect the LCD touch display to the board. The official Raspberry Pi LCD touch display shown in the figure below is 800 x 480 dpi 7“ size can be connected to the Raspberry board using the DSI interface. Such an assembly can be used in the projects to display controlling application view and with the ability to handle fingers touchscreen controls the project behaviour. The LCD can be mounted in portrait/landscape orientation fitting the best user needs.
Raspberry PI models boars Zero, 1, A+, 2, 3 contains USB ports (from 1 up to 4) and models boars 1, A+, 2, 3 the LAN port for TCP/IP network connections. This ports can be used for mouse/keyboard connection or if the software has appropriate driver installed to handle other USB devices.