Raspberry Pi Pinout

W1-GPIO - One-Wire Interface

One-wire is a single-wire communication bus typically used to connect sensors to the Pi.

The Raspberry Pi supports one-wire on any GPIO pin, but the default is GPIO 4.

To enable the one-wire interface you need to add the following line to /boot/config.txt, before rebooting your Pi:

dtoverlay=w1-gpio

or

dtoverlay=w1-gpio,gpiopin=x

if you would like to use a custom pin (the default is GPIO 4)

Alternatively you can enable the one-wire interface on demand using raspi-config, or the following:

sudo modprobe w1-gpio

Newer kernels (4.9.28 and later) allow you to use dynamic overlay loading instead, including creating multiple 1-Wire busses to be used at the same time:

sudo dtoverlay w1-gpio gpiopin=4 pullup=0  # header pin 7
sudo dtoverlay w1-gpio gpiopin=17 pullup=0 # header pin 11
sudo dtoverlay w1-gpio gpiopin=27 pullup=0 # header pin 13

once any of the steps above have been performed, and discovery is complete you can list the devices that your Raspberry Pi has discovered via all 1-Wire busses (by default GPIO 4), like so:

ls /sys/bus/w1/devices/

Using w1-gpio on the Raspberry Pi typically needs a 4.7 kΩ pull-up resistor connected between the GPIO pin and a 3.3v supply (e.g. header pin 1 or 17). Other means of connecting 1-Wire devices to the Raspberry Pi are also possible, such as using i2c to 1-Wire bridge chips.

Details