There have now been a number of revisions to the Raspberry Pi PCB so the device you have in front of you could be one of a number of variants. The changes include mounting holes, modifications to the power supply circuitry, different GPIO headers and varying numbers of USB ports. The Pi 2 introduced a new CPU and additional memory.
The variants currently available are :
| Model and PCB Revision | RAM | Hardware Revision Code from cpuinfo |
|---|---|---|
| Model B Rev 1 | 256MB | 0002 |
| Model B Rev 1 ECN0001 (no fuses, D14 removed) |
256MB | 0003 |
| Model B Rev 2 | 256MB | 0004 0005 0006 |
| Model A | 256MB | 0007 0008 0009 |
| Model B Rev 2 | 512MB | 000d 000e 000f |
| Model B+ | 512MB | 0010 0013 900032 |
| Compute Module | 512MB | 0011 |
| Compute Module | 512MB | 0014 (Embest, China) |
| Model A+ | 256MB | 0012 |
| Model A+ | 256MB | 0015 (Embest, China) |
| Model A+ | 512MB | 0015 (Embest, China) |
| Pi 2 Model B v1.1 | 1GB | a01041 (Sony, UK) |
| Pi 2 Model B v1.1 | 1GB | a21041 (Embest, China) |
| Pi 2 Model B v1.2 | 1GB | a22042 |
| Pi Zero v1.2 | 512MB | 900092 |
| Pi Zero v1.3 | 512MB | 900093 |
| Pi Zero W | 512MB | 9000C1 |
| Pi 3 Model B | 1GB | a02082 (Sony, UK) |
| Pi 3 Model B | 1GB | a22082 (Embest, China) |
In order to find out what hardware revision you have you can run the following command at the command prompt or via a terminal window :
cat /proc/cpuinfo
This will give you a text output something like this :
Processor : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 847.05 Features : swp half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2708 Revision : 0002 Serial : 000000000abc0ab1
In this example I’ve got a PCB with a Revision code of 0002. That is a plain old “Model B Revision 1.0”.
NOTE : The Revision number given in cpuinfo file is the hardware revision number. This is not the same as the Raspberry Pi Revision. In this example I have a Model B Revision 1.0 with a hardware revision code of 0002.
Model Information
With the latest version of Raspbian you can also retrieve the Pi model as a string by using :
cat /proc/device-tree/model
This will output the model information. For example :
Raspberry Pi 3 Model B Rev 1.2
22 Comments
Dear Matt, I’m familiar with interfacing the old bbc micro but new to RPi. I’m designing an I/O board and am confused about the GPIO PINOUT. My RPi has cpuinfo as follows…
Hardware BCM2708
Revision 000e
Serial 000000003dc78485
Which pcb revision do I have?
Best wishes
Tom
Almost certainly a Rev 2. It will have two mounting holes in the PCB. At the time I did this article the Rev 2 was fairly new which is why my table doesn’t cover the newer “Revision” numbers.
I’m getting a 000e revision number, but my board is a Model B Revision 1, well the specs of my board is telling me its a Rev 1, but your table shows a Rev2. Any idea?
Has your Pi got mounting holes?
Hi Matt
Many thanks.
Onwards and upwards!
Tom
Just a bit of updating: 17th July 2014 – I’ve just bought the Raspberry Pi B+ and the revision number is 0010.
Received the new Raspberry Pi 2. Revision number is shown as “a01041”
Just checked mine and it’s the same. I like the fact we now get 4 blocks of CPU detail!
Great stuff – I now know what model I have. How do I turn this into useful documentation – I/O configuration, schematic/circuit diagram particularly the former?
Just FYI, when I check cpuinfo on my model 2, I get “a21041”.
Interesting. Apparently that means it was made in China by Embest rather than in the UK by Sony.
I received an A+ with board revision 0015 – do you know what has changed in this revision? (compared to the A+ with 0012)
I’ve not seen any references to 0015 so at the moment the differences are unknown, if indeed there are any differences.
Thanks for this great resource – very useful for identifying what board my software is running on! As an update, you should probably add the Pi Zero, which appears to be 90092 (source: https://pbs.twimg.com/media/CXjHluWW8AAz1bh.png)
FYI, I have a Pi3 that uses a22082.
This is super useful! All but one of my 12 Pis were on the list, I have a recent PI B+ (512) with an ID of 0013. Thanks!
Thanks for the information. A quick Bash command for focusing on the desired string (“Revision”):
pi_rev=(`cat /proc/cpuinfo | grep Revision`); echo ${pi_rev[2]}
The above table and this Bash logic would make a very straight-forward Python program design. That is, given a Revision string value, show the mo0del and its characteristics.
It’s a bit confusing when you say Pi Zero W = 0x9000C1 (I know it’s the hexadecimal notation)
In /proc/cpuinfo it’s 9000c1
Nice overview anyway!
Agreed. I’ve just updated it!
To get the Pi model in plain text, you can use this:
cat /proc/device-tree/model
might return “Raspberry Pi 3 Model B Rev 1.2”
That’s really useful to know, thanks!
Great info, just got a new pi 3 and the board was a slightly different shade of green. seems its the first of my pi 3’s that i have to be from the UK. So now i have 2 pi 3’s from china, 1 from the UK, 1 b+, 1 pi zero 1.2, 1 Pi Zero W, and my first is a model b rev 2 with 512 mb ram.