1wire DS18b20 on Rock64?
#1
Has anyone got DS18b20 to work on rock64? If you can point in the right direction, I would appreciate that very much. I've been searching and cant find anything other the a post for pine64 that said that I need to use pin 12.
  Reply
#2
(12-23-2018, 12:32 PM)mypineme Wrote: Has anyone got DS18b20 to work on rock64?

Yes. Step by step:
  1. Hardware setup: I suppose pin12 is unusable (works only as input). Let's make following pin connection setup - rock64 pin1 (3.3V) = DS18B20 pin3 (VDD), rock64 pin7 (GPIO1_D4) = DS18B20 pin2 (DQ), rock64 pin9 (GND) = DS18B20 pin1 (GND) and pullup resistor 4k7 ohm between DS18B20 pin3 and DS18B20 pin2.
  2. Prepare DTOVERLAY for "w1_gpio" driver association. Let's assume GPIO1_D4 == id 60, GPIO1_D4 == GPIO1 + bit 28.
    Code:
    $ cat > w1_pin60.dts << 'EOF'
    /dts-v1/;
    /plugin/;

    / {
        compatible = "pine64,rock64", "rockchip,rk3328";
        fragment@0 {
            target-path = "/";
            __overlay__ {
                w1: onewire@0 {
                    compatible = "w1-gpio";
                    pinctrl-names = "default";
                    pinctrl-0 = <&w1_pins>;
                    gpios = <&gpio1 28 0>;
                    status = "okay";
                };
            };
        };
        fragment@1 {
            target = <&gpio1>;
            __overlay__ {
                w1_pins: w1_pins@0 {
                    rockchip,pins = <1 28 0 &pcfg_pull_up>;
                };
            };
        };
    };
    EOF
    $ dtc -I dts -O dtb -@ w1_pin60.dts -o w1_pin60.dtbo
    $ ### ignore warnings
  3. Successful load of DTOVERLAY depends on your device tree (DTB symbols must be included). Check DTB symbols if exists skip to step 5.
    Code:
    $ dtc /boot/dtbs/$(uname -r)/rockchip/rk3328-rock64.dtb -o - 2>/dev/null | grep __symbols__
        __symbols__ {
    $ ### ^^^^ symbols included or not included if no output
  4. Symbols are NOT present in latest stable 0.7.9 based on kernel 4.4.132-1075 Sad
    So you must rebuild rk3328-rock64.dtb with symbols.
    Code:
    $ uname -a
    Linux rock64 4.4.132-1075-rockchip-ayufan-ga83beded8524 #1 SMP Thu Jul 26 08:22:22 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    $ sudo bash
    # wget https://github.com/ayufan-rock64/linux-kernel/archive/4.4.132-1075-rockchip-ayufan.tar.gz
    # tar xzf 4.4.132-1075-rockchip-ayufan.tar.gz
    # cd linux-kernel-4.4.132-1075-rockchip-ayufan/
    # export ARCH=arm64
    # make rockchip_linux_defconfig
    # make DTC_FLAGS="-@" dtbs
    # mv /boot/dtbs/4.4.132-1075-rockchip-ayufan-ga83beded8524/rockchip/rk3328-rock64.dtb /boot/dtbs/4.4.132-1075-rockchip-ayufan-ga83beded8524/rockchip/rk3328-rock64.dtb_orig
    # cp arch/arm64/boot/dts/rockchip/rk3328-rock64.dtb /boot/dtbs/4.4.132-1075-rockchip-ayufan-ga83beded8524/rockchip/rk3328-rock64.dtb
    # reboot
    # ### after reboot check presented symbols
  5. Load DTOVERLAY:
    Code:
    $ sudo bash
    # ### speedup minimum CPU frequency due to polling behavior of w1-gpio
    # echo 600000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq

    # ### load DTOVERLAY
    # mkdir -p /sys/kernel/config/device-tree/overlays/w1
    # cat w1_pin60.dtbo > /sys/kernel/config/device-tree/overlays/w1/dtbo
    # lsmod | grep w1
    w1_gpio                16384  0
    wire                   32768  1 w1_gpio

    # find /sys/bus/w1/
    /sys/bus/w1/
    /sys/bus/w1/devices
    /sys/bus/w1/devices/w1_bus_master1
    /sys/bus/w1/drivers
    /sys/bus/w1/drivers/w1_master_driver
    /sys/bus/w1/drivers/w1_master_driver/bind
    /sys/bus/w1/drivers/w1_master_driver/w1_bus_master1
    /sys/bus/w1/drivers/w1_master_driver/uevent
    /sys/bus/w1/drivers/w1_master_driver/unbind
    /sys/bus/w1/drivers/w1_slave_driver
    /sys/bus/w1/drivers/w1_slave_driver/bind
    /sys/bus/w1/drivers/w1_slave_driver/uevent
    /sys/bus/w1/drivers/w1_slave_driver/unbind
    /sys/bus/w1/uevent
    /sys/bus/w1/drivers_probe
    /sys/bus/w1/drivers_autoprobe

    # ### autoprobe should discover sensor after few seconds
    # find /sys/bus/w1/
    /sys/bus/w1/
    /sys/bus/w1/devices
    /sys/bus/w1/devices/w1_bus_master1
    /sys/bus/w1/devices/28-000000423711
    /sys/bus/w1/drivers
    /sys/bus/w1/drivers/w1_master_driver
    /sys/bus/w1/drivers/w1_master_driver/bind
    /sys/bus/w1/drivers/w1_master_driver/w1_bus_master1
    /sys/bus/w1/drivers/w1_master_driver/uevent
    /sys/bus/w1/drivers/w1_master_driver/unbind
    /sys/bus/w1/drivers/w1_slave_driver
    /sys/bus/w1/drivers/w1_slave_driver/bind
    /sys/bus/w1/drivers/w1_slave_driver/28-000000423711
    /sys/bus/w1/drivers/w1_slave_driver/uevent
    /sys/bus/w1/drivers/w1_slave_driver/unbind
    /sys/bus/w1/uevent
    /sys/bus/w1/drivers_probe
    /sys/bus/w1/drivers_autoprobe

    # ### check w1
    # grep '' /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
    /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count:1
    /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves:28-000000423711

    # ### thermal driver automatically loaded
    # lsmod | grep w1
    w1_therm               16384  0
    w1_gpio                16384  0
    wire                   32768  2 w1_gpio,w1_therm

    # ### read temperature
    # cat /sys/bus/w1/devices/*/w1_slave
    6b 01 4b 46 7f ff 05 10 49 : crc=49 YES
    6b 01 4b 46 7f ff 05 10 49 t=22687

Merry Xmas and buy me a Beer.
I left this community in Aug 2019 due to PINE64 refusal to produce/deliver ROCK64-1G version 3 after more than one year of changing statuses to "planning", "evaluating", "releasing", "availability", "estimated availability" and finally "no schedule" Angry. ROCK64 is dead platform without any advantage. Buy Raspberry PI 4 !
Away
  Reply
#3
@mcerveny

I think you can give us a little help here too Wink

We are trying to use a DHT22 sensor on a rockpro64...
  Reply
#4
@{-DesT-},

Look again at mcerveny signature.  I don't think you will be getting a reply any time soon.  Wink  The fact he thinks RPi 4 is in any way better than what Pine64 is offering is, well...  I don't even know what to say about that.

Anyway, ROCKPro64 is completely different SoC (RK3399) than ROCK64 (RK3328) so there is good possibility the process is completely different.  I would search in ROCKPro64 section of forums (and around the Internet) and if you can't find anything there, then just make a new thread over in ROCKPro64 subforum (to keep things better organized, help others find relevant info, etc.).
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Display options for the Rock64 joey49 1 526 11-23-2020, 09:52 AM
Last Post: joey49
  Are HW design files available for ROCK64? irenek 1 891 09-29-2020, 05:57 PM
Last Post: tllim
  No sound from Rock64 DAC codebreaker 2 791 09-29-2020, 02:14 PM
Last Post: codebreaker
  Which Voltage and Amper to supply both Rock64 + External drive enclosure ? prog-amateur 0 816 08-21-2020, 09:16 PM
Last Post: prog-amateur
Information Rock64 RTL8188EU Wifi Adapter from Pine Store Tested Well MarkHaysHarris777 7 4,196 05-13-2020, 06:00 PM
Last Post: Leon Rembowski
  accident got 12v at my rock64 lifeform 1 1,064 04-17-2020, 09:46 AM
Last Post: fire219
  Help! Rock64 won't boot anything! trohn_javolta 3 1,814 03-09-2020, 06:03 PM
Last Post: tllim
  Power Supply and Sinks for multi-Rock64 env Davo-CC 1 2,330 01-02-2020, 02:26 PM
Last Post: dpgraham
Lightbulb Mount a HeatSink on the Rock64 using 3M Thermal Tapes MarkHaysHarris777 22 21,682 11-29-2019, 03:14 AM
Last Post: ab1jx
  My Rock64 died (with a happy ending!) rmbusy 1 1,647 08-15-2019, 06:48 PM
Last Post: tllim

Forum Jump:


Users browsing this thread: 1 Guest(s)