====== 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 (-)