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. Hivetool uses RPi numbers.
- 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 | I2C Sensors |
5 VDC Power | HX711 Scale | I2S Audio |
Ground | DHT22 Temp/Hum. | SPI |
HAT ID ROM | Rain Gauge | 1-Wire |
Unused | LED | SPI |
Light green signals labeled "Unused" are available for development. Other colors are being used or are reserved for sensor families. A tilt sensor needs to be implemented.
Notes:
- Pins 7 and 11 were swapped between Hive Interface Board versions 0.3 and 1.0. On version 1.0 the LED was moved from pin 7, the default 1-wire bus, to pin 11.
- THE GPIO PINS ARE REFERRED TO BY TWO DIFFERENT NAMING CONVENTIONS, Broadcom and RPi. Some drivers use the RPi numbers, some drivers use the Broadcom numbering
- The first 26 pins on J8 (A+, B+ Pi2, PiZero, Pi 3 models) are the same as H1 on the A and B models.
Hivetool |
---|
3.3 VDC Power |
Reserved for I2C Sensors |
Reserved for I2C Sensors |
Reserved for 1-Wire |
Ground |
Reserved for LED |
Reserved DHT22 |
Reserved DHT22 |
3.3 VDC Power |
Reserved SPI |
Reserved SPI |
Reserved SPI |
Ground |
Reserved ID EEPROM |
Unused |
Unused |
Unused |
Reserved I2S |
Unused |
Ground |
|
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 |
---|
5 VDC Power HX711 |
5 VDC Power |
Ground |
Reserved serial console |
Reserved serial console |
Reserved I2S |
Ground |
Reserved HX711 |
Reserved HX711 |
Ground |
Reserved Rain Gauge |
Reserved SPI |
Reserved SPI |
Reserved ID EEPROM |
Ground |
Unused |
Ground |
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
- WiringPi Special Pin Functions