====== Dallas 1-Wire Support ======
* Support for Dallas 1 Wire is included on Kernel 3.14.29-29 and upwards. Make sure you are updated.
* Will cover an example of a temperature sensor well known **DS1820** other 1 wire IC's are supported too.
You have to check **/etc/modprobe.d/w1_gpio.conf** file to enable the 1-wire driver.
\\
\\
\\
\\
\\
\\
Default GPIO for 1-Wire is **Pin #7 (GPIOX.BIT21)**
* **Connection: With External-Supply**
{{:en:1-wire-external-power.png?750|}}
Pin 1 (Left): Ground (-)
Pin 2 (Middle): Pin #7 C2 (GPIOX.BIT21)
Pin 3 (Right): VCC (3.3V)
You also need to add a resistor from 4.7k to 10k between pin 2.
* **Connection: Supplying the Parasite-Powered**
{{:en:1-wire-parasite-power.png?750|}}
Pin 1 (Left): Ground (-)
Pin 2 (Middle): Pin #7 C2 (GPIOX.BIT21)
Pin 3 (Right): Ground (-)
You also need to add a resistor from 4.7k to 10k between pin 2.
* Load the required kernel modules: modprobe w1-gpio && modprobe w1-therm
* Check if your sensor is working: odroid@odroid64:~$ cd /sys/bus/w1/devices/
odroid@odroid64:/sys/bus/w1/devices# ls
10-000802f41d67 w1_bus_master1
odroid@odroid64:/sys/bus/w1/devices#
As you can see my sensor is detected as **10-000802f38c57**, each sensor has a different id. So yours will be different.
* Read the temperature:
odroid@odroid64:/sys/bus/w1/devices$ cd 10-000802f38c57
odroid@odroid64:/sys/bus/w1/devices/10-000802f38c57# cat w1_slave
33 00 4b 46 ff ff 03 10 30 : crc=30 YES
33 00 4b 46 ff ff 03 10 30 t=25562
odroid@odroid64:/sys/bus/w1/devices/10-000802f38c57#
Temperature is t=25562 or 25.562 degree's Celsius.
Multiple sensors can be connected on the same line as the draw below.
{{:en:untitled_sketch_bb2.png?750|}}
odroid@odroid64:/sys/bus/w1/devices# ls
10-000802f38c57 10-000802f41d67 w1_bus_master1
Two sensors in parallel.
====== Change the Default GPIO pin for 1-Wire interface ======
Ex) Default GPIO pin change to GPIOX.BIT19 \\
Please refer to below links for details related to gpio mapping in the device-tree.\\
[[https://github.com/hardkernel/linux/blob/odroidc2-3.14.y/include/dt-bindings/gpio/gxbb.h | C2 gpio mapping in the device-tree]] \\
odroid@odroid64:~$ sudo apt-get install device-tree-compiler
odroid@odroid64:~$ fdtget /media/boot/meson64_odroidc2.dtb /onewire gpios
18 113 0
odroid@odroid64:~$ fdtput /media/boot/meson64_odroidc2.dtb /onewire gpios 18 111 0
odroid@odroid64:~$ fdtget /media/boot/meson64_odroidc2.dtb /onewire gpios
18 111 0
odroid@odroid64:~$ sudo reboot
If the reboot doesn't affect the dtb update, you need a hard reset(power off/on).\\
**Use the first number in the fdtget command output when you run fdtput command. For example, 18(0x12) is the GPIO group number.**
DS1820 is connected to Pin #11
Pin 1 (Left): Ground (-)
Pin 2 (Middle): Pin #11 C2 (GPIOX.BIT19)
Pin 3 (Right): Ground (-)