Sysop: | Amessyroom |
---|---|
Location: | Fayetteville, NC |
Users: | 43 |
Nodes: | 6 (0 / 6) |
Uptime: | 97:25:36 |
Calls: | 290 |
Files: | 904 |
Messages: | 76,468 |
With the Pi 3B, I could either read the sensors sequentially taking
about 0.9s each, or using threads simultaneously in 1.0s. The Pi 4B with Bookworm reads the sensors sequentially a shade faster at just over
0.8s, but when reading simultaneously, returns 2 after 0.8s, another 2
after 1.6s and the last two at 2.4s.
After getting another Pi 5, I've moved a Pi 4B running Bookworm in to
the role taken by a Pi 3B running Bullseye, which is monitoring 6
ds18b20 sensors, configured as 2 1-wire buses with 3 sensors on each.
With the Pi 3B, I could either read the sensors sequentially taking
about 0.9s each, or using threads simultaneously in 1.0s. The Pi 4B with Bookworm reads the sensors sequentially a shade faster at just over
0.8s, but when reading simultaneously, returns 2 after 0.8s, another 2
after 1.6s and the last two at 2.4s.
Anyone have an explanation for this?
No, but AIUI the "right" way to do this is to send the text "trigger" to /sys/bus/w1/devices/w1_bus_master1/therm_bulk_read before reading the
values as normal. The trigger causes them all to start a conversion at
once, following which the reads all complete immediately once a single conversion time has elapsed.
As a quick hack, try executing the following before reading your
sensors...
sudo su <<EOF
echo trigger > /sys/bus/w1/devices/w1_bus_master1/therm_bulk_read
EOF