Tag Archives: Pinout

Understanding Raspberry Pi 4 GPIO Pinouts

Raspberry Pi GPIO Pinout
Diagram of physical and BCM Pins on Raspberry Pi

This shows the pinout for the Raspberry Pi 4. It shows both the BOARD numbering scheme, and the BCM numbering scheme. You define which numbering scheme you want to use in your python program. You must start by importing the GPIO Library:

import RPi.GPIO as GPIO

Then, if you use setmode to define which numbering scheme you want:

GPIO.setmode(GPIO.BOARD)

will give you the Physical Pin numbering scheme.

If you use:

GPIO.setmode(GPIO.BCM)

You will be using the BCM Numbering Scheme. I prefer the BOARD Scheme as it is  much easier to keep track of. Hope this helps.

Beaglebone Black LESSON 1: Understanding Beaglebone Black Pinout

This is the first in a series of lessons on the Beaglebone Black. Hopefully you have been with us through our earlier series of lessons on the Arduino, Python, and the Raspberry Pi. If you have been through those lessons learning the Beaglebone will be a snap.

If you are going to follow along with us in these lessons, you can go ahead and order your Beaglebone HERE.

To get started, we need to first of all get our mind around all the different pins. I have put together the diagram below for the default pin assignments for the Beaglebone black.

Beaglebone Black Pinout
Default Pin Configuration for the Beaglebone Black Rev. C.

You can see that the Beaglebone has a large number of pins. There are two headers. Make sure you orient your Beaglebone n the same direction as mine in the picture, with the five volt plug on the top. In this orientation, the pin header on the left is referred to as “P9” and the pin header on the right is referred to as “P8”.  The legend in the diagram above shows the funtions, or the possible functions of the various pins. First, we have shaded in red the various 5V, 3.3V, 1.8V and ground pins. Note that VDD_ADC is a 1.8 Volt supply and is used to provide a reference for Analog Read functions. The general purpose GPIO pins have been shaded in green. Note some of these green pins can also be used for UART serial communication. If you want to simmulate analog output, between 0 and 3.3 volts, you can use the PWM pins shaded in purple. The light blue pins can be used as analog in. Please note that the Analog In reads between 0 and 1.8 volts. You should not allow these pins to see higher voltages that 1.8 volts. When using these pins, use pins 32 and 34 as your voltage reference and ground, as pin 32 outputs a handy 1.8 volts.  The pins shaded in light orange can be used for I2C.  The dark orange pins are primarily used for LCD screen applications.

Raspberry Pi Linux LESSON 25: Raspberry Pi 2 Pinout

In our earlier lessons we have taken you from installing the operating system, all the way through creating and running your first python program. At this point, you know how to generally operate the Raspberry Pi platform. Now we are ready to start building projects, and getting the Pi to perform for us. The first thing we will need to understand is which pins do what. The pi has many pins, so the diagram below shows what each pin can do.

Raspberry Pi 2 Pinout
This figure shows the Raspberry Pi GPIO pinout

In order to understand pin number, make sure to have your pi oriented as shown in the figure.  Now look at the center two columns on the chart. These show you the physical pin number. The outer two columns of the chart show you the bcm  numbering. Which numbering system you use depends on how you configure things in the software. We will cover this in the next lesson, but for now know there are two different numbering schemes. For the examples in this series of lessons we will use the bcm numbering scheme, so we will be using the number references in the outer two columns.

Also notice that some of the pins are multi-purpose. For example physical pins 3 and 5 can be GPIO pins, or they can be configured for I2C. Similarly, 8 and 10 can be general purpose GPIO pins, or can be Tx and Rx.  Note the GPIO pins are analogous to your digital input/output pins on Arduino (the ones without the ~ by them).

In general when setting up a project I try and select GPIO pins that are not multi-function. In this way if I ever expand the project and want to add Tx/Rx or I2C capability, those pins are still free.