Dallas 1-Wire Support

  • Support for Dallas 1 Wire is included on Kernel 4.9.34 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.

Default GPIO for 1-Wire is Pin #26 XE.INT16 (GPX2.0)

XU3 / XU4 CON10(30 pin) All GPIO and AIN pins use VDD_IO (1.8V) for the signals.
So the level converter is required to connect the sensor.

XU4 Shifter-Shield was not working well with multiple 1-wire devices due to a timing/weak-driving issue.
So we used other Level Shifter board.

  • Connection: Level converter

CON10 Pin 1 (P5V0): Level converter HV
CON10 Pin 2 (GND): Level converter GND
CON10 Pin 29 (VDD_IO): Level converter LV
CON10 Pin 30 (GND): Level converter GND
CON10 Pin 26 (XE.INT16): Level converter LV1
Sensor signal : Level converter HV1

  • Connection: With External-Supply

Pin 1 (Left): Ground (-)
Pin 2 (Middle): Level converter HV1
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

Pin 1 (Left): Ground (-)
Pin 2 (Middle): Level converter HV1
Pin 3 (Right): Ground (-)

You also need to add a resistor from 4.7k to 10k between pin 2.

Enable via dtbo

If you can use dtbo, edit **/media/boot/config.ini** file to enable 1-wire by adding **onewire** to **overlays** variable.

; Device Tree Overlay

Remove w1-gpio in "/etc/modprobe.d/blacklist-odroid.conf"

Comment the w1-gpio

# blacklist Touchscreen support                                                 
blacklist ads7846                                                               
# blacklist w1-gpio                                                             
#blacklist w1-gpio

Reboot your XU4.

Enable via modprobe

  • Load the required kernel modules:
    modprobe w1-gpio && modprobe w1-therm
  • Check if your sensor is working:
    odroid@odroid:~$ cd /sys/bus/w1/devices/
    odroid@odroid:/sys/bus/w1/devices$ ls
    10-000802f3be04  w1_bus_master1

As you can see my sensor is detected as 10-000802f3be04, each sensor has a different id. So yours will be different.

  • Read the temperature:
    odroid@odroid:/sys/bus/w1/devices$ cd 10-000802f3be04
    odroid@odroid:/sys/bus/w1/devices/10-000802f3be04$ cat w1_slave 
    37 00 4b 46 ff ff 06 10 da : crc=da YES
    37 00 4b 46 ff ff 06 10 da t=27375

Temperature is t=27375 or 27.375 degree's Celsius.

Multiple sensors can be connected on the same line as the draw below.

odroid@odroid:/sys/bus/w1/devices$ ls
10-000802f384e2  10-000802f3be04  w1_bus_master1

Two sensors in parallel.