I've spent a couple of weeks trying to get a dallas one wire temperature sensor to work with latest arch-linux for beagle bone black (rev c). If someone would be so kind, I'd love to hear if someone can reproduce the problem I'm having. And perhaps someone could suggest where the problem might be (if it is not me or my setup) so I can file an issue in the proper place.
The sensor is a DS18B20 and here are the steps that I take. After installing the latest arch linux arm (as of 2 days ago) onto my sd card I install sudo and add the 'alarm' user to /etc/sudoers. Then I install dtc-overlay:
$this->bbcode_second_pass_code('', '
$ sudo pacman -S dtc-overlay
')
Next I compile this file:
$this->bbcode_second_pass_code('', '
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "DS1820";
version = "00A0";
exclusive-use = "P9.12";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
ds1820_pins: pinmux_ds1820_pins {
pinctrl-single,pins = <0x78 0x37>;
};
};
};
fragment@1 {
target = <&ocp>;
__overlay__ {
onewire@0 {
status = "okay";
compatible = "w1-gpio";
pinctrl-names = "default";
pinctrl-0 = <&ds1820_pins>;
gpios = <&gpio2 28 0>;
};
};
};
};
')
to a dtbo file with this command:
$this->bbcode_second_pass_code('', '
$ dtc -O dtb -o BB-W1-00A0.dtbo -b 0 -@ BB-W1-00A0.dts
$ sudo mv BB-W1-00A0.dtbo /lib/firmware
')
The sensor is connected to Port 9 pin 12. The pins are connected similar to this post:
Then load it to the cape manager:
$this->bbcode_second_pass_code('', '
$ sudo su
# echo BB-W1:00A0 > /sys/devices/platform/bone_capemgr/slots
')
The devices does not appear in /sys/bus/w1/devices and dmesg shows:
$this->bbcode_second_pass_code('', '
[ 215.205841] bone_capemgr bone_capemgr: part_number 'BB-W1', version 'N/A'
[ 215.213142] bone_capemgr bone_capemgr: slot #4: override
[ 215.218644] bone_capemgr bone_capemgr: Using override eeprom data at slot 4
[ 215.225644] bone_capemgr bone_capemgr: slot #4: 'Override Board Name,00A0,Override Manuf,BB-W1'
[ 215.251364] bone_capemgr bone_capemgr: slot #4: dtbo 'BB-W1-00A0.dtbo' loaded; overlay id #0
[ 215.276132] Driver for 1-wire Dallas network protocol.
[ 217.232052] w1_master_driver w1_bus_master1: w1_search: max_slave_count 64 reached, will continue next search.
[root@alarm alarm]#
')
I've searched all over for that max_slave_count error and I find references to people having a bad wire and stuff like that. I've switched wires, switched beaglebones, switched sensors, tried different versions of the dts file above that use P9.22, P8.11 and others but no matter what I get that same error message and the device never appears.
If someone could reproduce what I'm seeing then that would be great. If someone sees something I'm doing wrong (I've been using 1-wire devices on the 3.8 kernel for years, so I've had this working before) then that would be great too. If someone knows were I can file a bug then that's helpful too.
Thanks,
Craig