Raspberry Pi GPIO Bus Pinouts

The tables on this page show the pin-outs for the GPIO header on the Raspberry Pi connector. This is the double row of closely spaced pins on the top-side of the board, in the upper left corner if the board is held with the USB connector on the right-hand edge of the board.

With the board held in this orientation, the top row of pins are numbered with even numbers from two to forty, left to right. This is the row of pins closest to the top edge of the board.

The lower row are numbered with odd numbers from 1 to thirty-nine.

The earlier versions of the Raspberry Pi had a GPIO bus with only 26 pins. The later 40 pin bus is directly compatible with this earlier version, and the pins below 27 are the same. However, do not try to connect a 256 way ribbon cable to a 40 pin Raspberry Pi, or you will bend pins 27 and 28, possibly irretrievably.

Don’t attempt to connect anything to these pins unless you are sure you know what you are doing. There are plenty of projects and notes about interfacing to the GPIO bus on the Raspberry Pi Foundation web pages and elsewhere.

I cannot be held responsible for any damage caused to a Raspberry Pi by incorrect or imprudent use of the GPIO pins.

Also be aware that the Raspberry Pi hardware is static sensitive. Do not be tempted to touch the GPIO pins casually, even if the box you have used has a cut-out to allow for external connection of a header cable or adaptor.

To connect a header plug, or any other device into the GPIO header; first shutdown any operating system that is running on the Pi. Disconnect all the cables and make sure your body and your hands are at the same potential as the board. I do this by only handling the board with my forearms planted firmly on the table surface. Offer any plug to the GPIO pins very gently and don’t force it on. It is very easy to bend the pins on the header and a few moments taken to do this very carefully could avoid permanent damage to your Raspi.

It’s cheaper and less distressing to destroy the other end of a ribbon cable than it is to break your Raspberry Pi.

If you want to connect something to the GPIO pins other than a full 26 or 40 way header, like a 2-wire connector for the I2C serial line, confirm you have connected to the correct pins by counting along the line of unconnected pins with a fingernail, gently. Do this several times. The old carpentry maxim of ‘measure twice, cut once’ is a good one.

Under no circumstances attempt to solder direct to the GPIO pins, even if you get someone who can see to do this for you. The stray currents present on the tip of a soldering iron can be death to the delicate insides of the SoC, and nasty solder on those nice gold pins will stop you connecting a header plug at a later time.

P1 Header Pinout, top row

Pin Number Pin Name Rev1 Pin Name Rev2 Hardware Notes Alt 0 Function Other Alternative Functions
P1-02 5v0 5v0 Supply through input poly fuse    
P1-04 5v0 5v0 Supply through input poly fuse    
P1-06 GND GND      
P1-08 GPIO14 GPIO14 Boot to Alt 0 -> UART0_TXD ALT5 = UART1_TXD
P1-10 GPIO15 GPIO15 Boot to Alt 0 -> UART0_RXD ALT5 = UART1_RXD
P1-12 GPIO18 GPIO18   PCM_CLK ALT4 = SPI1_CE0_N ALT5 = PWM0
P1-14 GND GND      
P1-16 GPIO23 GPIO23  v   ALT3 = SD1_CMD ALT4 = ARM_RTCK
P1-18 GPIO24 GPIO24     ALT3 = SD1_DAT0 ALT4 = ARM_TDO
P1-20 GND GND      
P1-22 GPIO25 GPIO25     ALT3 = SD1_DAT1 ALT4 = ARM_TCK
P1-24 GPIO08 GPIO08   SPI0_CE0_N  
P1-26 GPIO07 GPIO07   SPI0_CE1_N  
P1-28 ID_SC ID_SC ?    
P1-30 GND GND      
P1-32 GPIO12 GPIO12      
P1-34 GND GND      
P1-36 GPIO16 GPIO16      
P1-38 GPIO20 GPIO20      
P1-40 GPIO21 GPIO21      

P1 Header Pinout, bottom row

Pin Number Pin Name Rev1 Pin Name Rev2 Hardware Notes Alt 0 Function Other Alternative Functions
P1-01 3v3 3v3 50 mA max (01 & 17)    
P1-03 GPIO 0   PIO 2 1K8 pull up resistor I2C0_SDA / I2C1_SDA
P1-05 GPIO 1 GPIO 3 1K8 pull up resistor I2C0_SCL / I2C1_SCL  
P1-07 GPIO 4 GPIO 4 GPCLK0 ALT5 = ARM_TDI  
P1-09 GND GND      
P1-11 GPIO17 GPIO17     ALT3 = UART0_RTS ALT4 = SPI1_CE1_N ALT5 = UART1_RTS
P1-13 GPIO21 GPIO27   PCM_DOUT / reserved ALT4 = SPI1_SCLK ALT5 = GPCLK1 / ALT3 = SD1_DAT3 ALT4 = ARM_TMS
P1-15 GPIO22 GPIO22   ALT3 = SD1_CLK ALT4 = ARM_TRST  
P1-17 3v3 3v3 50 mA max (01 & 17)    
P1-19 GPIO10 GPIO10   SPI0_MOSI  
P1-21 GPIO9 GPIO9   SPI0_MISO  
P1-23 GPIO11 GPIO11   SPI0_SCLK  
P1-25 GND GND      
P1-27 ID_SD ID_SD ?   -
P1-29 GPIO5 GPIO5 - - -
P1-31 GPIO6 GPIO6 - - -
P1-33 GPIO13 GPIO13 - - -
P1-35 GPIO19 GPIO19 - - -
P1-37 GPIO26 GPIO26 - - -
P1-39 GND GND - - -

Notes:

The maximum current capable of being sourced from P1 pins 1 and 17 is 50mA in total. That is the current drawn from both pins, not 50mA each. These are the 3v3 pins.

There are currently no split revisions for the Model B+. I have simply put the same thing in both columns.

At the time of writing I don’t know what the alternative functions for the additional GPIO pins are, if any.

I do not believe there are any split revisions for versions 2 and above of the Raspberry Pi.

Thanks to John W of the Surrey Linux user group for helping me by looking at the published diagram.