This is an old revision of the document!
1-wire Bus
To provide 1-Wire Bus Connections between various 1-Wire- and Hostdevices different connection methods can be used. They can be connected to a Host using a bus converter. USB, RS-232 serial port interfaces are popular solutions for connecting 1-Wire Devices to the Hostdevice. But 1-Wire devices can also be interfaced directly to Controllers from various vendors using a GPIO Pin.
This guide will only cover 1-Wire Bus Connections because (as of Sep 13, 2019) it is the latest stable release available to Openwrt systems. The Device which got tested was a OrangePI PC+ running OpenWrt v18.06.4.
Installation
In order to use a GPIO for the 1-Wire bus, e.g. for using B18S20 Sensors it is necessary to install several additional packages:
opkg update opkg install kmod-w1 kmod-w1-master-gpio kmod-w1-gpio-custom kmod-w1-slave-therm
Configuration
Configure the GPIO pin connected to the data line of the sensor. The Section “Software” in this howto describes how to determine the GPIO.
Create/Edit /etc/modules.d/55-w1-gpio-custom, replace 19 with the GPIO which you determined in the last step. You can include several bus definitions up to a maximum of four, i.e.:
echo "w1-gpio-custom bus0=0,19,0 bus1=1,20,0" > /etc/modules.d/55-w1-gpio-custom
The last Zero of the sequence means “not open-drain” and should be set to “0”.
After modifying the file /etc/modules.d , restart so that the kernel can load the modules.
When the 1-Wire bus is successfully set up, you should see in /sys/devices a directory called “w1_bus_master1”. A second bus will appear as “w1_bus_master2” and so on. Within this directory you will find a number of files including “w1_master_slaves_count” which shows the number of devices connected to the 1-Wire bus, and “w1_master_slaves” which contains a list of the device identifiers.
In case, it is a Sunxi Device and you like to connect e.g. Pin 29 (=PA7) Sunxi says:
(position of letter in alphabet - 1) * 32 + pin number
so the GPIO for PA7 would be ( 1 - 1) * 32 + 7 = 0 + 7 = 7 (since 'a' is the first letter). This results in the following configuration
echo "w1-gpio-custom bus0=0,7,0" > /etc/modules.d/55-w1-gpio-custom
...to be continued...