General Purpose Input Output (GPIO)
This page is to identify the alternate functions of the Raspberry Pi GPIO
and to keep Hivetool developers from stepping on each other by reserving pins for Hivetool hardware.
Notes
- GPIO pins are 3.3 volt logic levels and are not tolerant of 5V levels
- THE GPIO PINS ARE NUMBERED TWO DIFFERENT WAYS, Broadcom and RPi.
- These GPIO properties are set as a block, not per pin (GPIO pins 0-27 are in the same block).
- Can interrupt based on high/low/rise/fall/change.
- Schmitt Trigger Input (hysteresis) can be on or off,
- Output slew rate can be fast or limited, and
- Source and sink currents are configurable from 2 mA up to 16 mA.
- ID_SD and ID_SC PINS are reserved for ID EEPROM.
- At boot time this I2C interface will be interrogated to look for an EEPROM that identifies the attached board and allows
- automagic setup of the GPIOs (and optionally, Linux drivers).
- DO NOT USE these pins for anything other than attaching an I2C ID EEPROM. Leave unconnected if ID EEPROM not required.
Color Legend
Color Legend |
---|
3.3 VDC Power | Serial Console/Power | I2S Audio |
5 VDC Power | HX711 Scale | HAT ID ROM |
Ground | DHT22 Temp/Hum. | I2C Sensors |
Unused | 1-Wire | SPI |
Light green signals labeled "Unused" are available for development. Other colors are being used or are reserved for sensor families. A rain gauge and tilt sensor need to be implemented.
THE GPIO PINS ARE REFERRED TO BY TWO DIFFERENT NAMING CONVENTIONS, Broadcom and RPi
The first 26 pins on J8 (A+ and B+ models) are the same as H1 on the A and B models.
Hivetool |
---|
Reserved for I2C Sensors |
Reserved for I2C Sensors |
Reserved for I2C Sensors |
Reserved for 1-wire |
Reserved for I2C Sensors |
Unused |
Reserved DHT22 |
Reserved DHT22 |
Reserved Power DHT22 |
Unused |
Unused |
Unused |
Unused |
Reserved ID EEPROM |
Unused |
Unused |
Unused |
Reserved I2S |
Unused |
Unused |
|
R Pi |
---|
3.3 VDC Power |
GPIO 8 I2C SDA |
GPIO 9 I2C SCL |
GPIO 7 GPCLK0 |
Ground |
GPIO 0 |
GPIO 2 |
GPIO 3 |
3.3 VDC Power |
GPIO 12 SPI0 MOSI |
GPIO 13 SPI0 MISO |
GPIO 14 SPI0 SCLK |
Ground |
GPIO 30 I2C0_SDA |
GPIO 21 GPCLK1 |
GPIO 22 GPCLK2 |
GPIO 23 PWM1 |
GPIO 24 PCM_FS |
GPIO 25 |
Ground |
|
Broadcom |
---|
3.3 VDC Power |
GPIO 2 I2C SDA |
GPIO 3 I2C SCL |
GPIO 4 GPCLK0 |
Ground |
GPIO 17 |
GPIO 27 |
GPIO 22 |
3.3 VDC Power |
GPIO 10 SPI0 MOSI |
GPIO 09 SPI0 MISO |
GPIO 11 SPI0 SCLK |
Ground |
GPIO 0 I2C0_SDA |
GPIO 5 GPCLK1 |
GPIO 6 GPCLK2 |
GPIO 13 PWM1 |
GPIO 19 PCM_FS |
GPIO 26 |
Ground |
|
J8 |
---|
1 | 2 |
3 | 4 |
5 | 6 |
7 | 8 |
9 | 10 |
11 | 12 |
13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 |
21 | 22 |
23 | 24 |
25 | 26 |
27 | 28 |
29 | 30 |
31 | 32 |
33 | 34 |
35 | 36 |
37 | 38 |
39 | 40 |
|
Broadcom |
---|
5 VDC Power |
5 VDC Power |
Ground |
GPIO 14 TXD |
GPIO 15 RXD |
GPIO 18 PCM_CLK |
Ground |
GPIO 23 |
GPIO 24 |
Ground |
GPIO 25 |
GPIO 8 SPI0_CE0 |
GPIO 7 SPI0_CE1 |
GPIO 1 I2C0_SCL |
Ground |
GPIO 12 PWM0 |
Ground |
GPIO 16 |
GPIO 20 PCM_DIN |
GPIO 21 PCM DOUT |
|
R Pi |
---|
5 VDC Power |
5 VDC Power |
Ground |
GPIO 15 TXD |
GPIO 16 RXD |
GPIO 1 PCM_CLK |
Ground |
GPIO 4 |
GPIO 5 |
Ground |
GPIO 6 |
GPIO 10 SPI0_CE0 |
GPIO 11 SPI0_CE1 |
GPIO 31 I2C0_SCL |
Ground |
GPIO 26 PWM0 |
Ground |
GPIO 27 |
GPIO 28 PCM_DIN |
GPIO 29 PCM DOUT |
|
Hivetool |
---|
Reserved Power HX711 |
Reserved Power |
Reserved Ground |
Reserved serial console |
Reserved serial console |
Reserved I2S |
Reserved HX711 |
Reserved HX711 |
Reserved HX711 |
Unused |
Unused |
Unused |
Unused |
Reserved ID EEPROM |
Unused |
Unused |
Unused |
Unused |
Reserved I2S |
Reserved I2S |
|
Output of wiringPi gpio command (sudo gpio readall):
+-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5V | | |
| 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 |
| | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 |
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | OUT | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | OUT | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 1 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+
GPIO ordered by Signal Name
Broadcom | Alt Function | J8 | H1 | H5 |
---|
3.3 VDC Power | | 1 | 1 | 3 |
3.3 VDC Power | | 17 | 17 | |
5 VDC Power | | 2 | 2 | 1 |
5 VDC Power | | 4 | 4 | |
GPIO 0 | I2C0_SDA | 27 | | |
GPIO 1 | I2C0_SCL | 28 | | |
GPIO 2 | I2C1 SDA | 3 | 3 | |
GPIO 3 | I2C1 SCL | 5 | 5 | |
GPIO 4 | GPCLK0 | 7 | 7 | |
GPIO 5 | GPCLK1 | 29 | | |
GPIO 6 | GPCLK2 | 31 | | |
GPIO 7 | SPI0 CE1 | 26 | 26 | |
GPIO 8 | SPI0 CE0 | 24 | 24 | |
GPIO 9 | SPI0 MISO | 21 | 21 | |
GPIO 10 | SPI0 MOSI | 19 | 19 | |
GPIO 11 | SPI0 SCLK | 23 | 23 | |
GPIO 12 | PWM0 | 32 | | |
GPIO 13 | PWM1 | 33 | | |
GPIO 14 | UART0 TXD | 8 | 8 | |
GPIO 15 | UART0 RXD | 10 | 10 | |
GPIO 16 | | 36 | | |
GPIO 17 | | 11 | 11 | |
GPIO 18 | PCM_CLK | 12 | 12 | |
GPIO 19 | PCM_FS | 35 | | |
GPIO 20 | PCM_DIN | 38 | | |
GPIO 21 | PCM DOUT | 40 | | |
GPIO 22 | | 15 | 15 | |
GPIO 23 | | 16 | 16 | |
GPIO 24 | | 18 | 18 | |
GPIO 25 | | 22 | 22 | |
GPIO 26 | | 37 | | |
GPIO 27 | | 13 | 13 | |
GPIO 28 | I2C0_SDA | | | 3 |
GPIO 29 | I2C0_SCL | | | 4 |
GPIO 30 | | | | 5 |
GPIO 31 | | | | 6 |
Ground | | 6 | 6 | 7 |
Ground | | 9 | 9 | 8 |
Ground | | 14 | 14 | |
Ground | | 20 | 20 | |
Ground | | 25 | 25 | |
Ground | | 30 | | |
Ground | | 34 | | |
Ground | | 39 | | |
Resources
- eLinux.org RPi Low-level peripherals
- Raspberry Pi B+ Reduced Schematic
- eLinux.org BCM2835 GPIO functions
- BCM2835 Data Sheet (Manual)
- eLinux.org BCM2835 datasheet errata
- Hardware attached on Top
- WiringPi Alternate GPIO Assignments