I believe there is a fault with digitemp v3.6.0 and the USB dongle. v3.6.0 does not properly clear a buffer... leading to unpredictable functioning.
I've modified the code a bit... v3.6.0_DRJ
...reliably uses the DS2490
...supports the HobbyBoard 4ch Hub.
...allows "nested" hubs
...allows for some a timing tweek... I used while searching for the USB problem... tweek remain and should be harmless
In order to run the github code link you will also need to install libusb-1.0
You will need to re-initialize your .digitemprc, as the file format has changed.
Here is a link to the code:
https://github.com/desto-kluger/digitemp
If you want to modify the code and only fix the USB dongle problem... here is what you need to do:
add "memset(buffer,0,0x20);" to near the top of userial/ds2490/usblnk.c owTouchReset()
What I found is that the DS2490 would not always report back 32 bytes of data, and the buffer not being cleared would cause unpredictable behavior. I should look to see if there is another 16 bytes coming.... but I haven't had the time yet.
I am running digitemp on Debian, Ubuntu, and Mint... beaglebone, i5, and ??? using DS2490 and mostly temperature and humidity sensors. Before the mod mentioned above, by running the code multiple times I could eventually get it to see the sensors... and while reading the sensors it would go through fits of not seeing any...
The modded code has been running flawlessly for a long stretch... I have not witnessed a missed reading!
I am also using DTgraph.
One last note... because this code allows for "nested" hubs, the -i or -w will take a long time... the code has to ensure that every possible avenue has been turned off before mapping the network.... run it and let it run for several minutes. I hope to improve it's search feedback in the near future.
-dusty
Hey Dusty,
I installed all of the libusb* packages
Downloaded, unzipped and tried to compile your code.
Received the following.
[root@kahuna digitemp-master]# make ds9097u
gcc -I./src -I./userial -O2 -Wall -DLINUX -c -o src/digitemp.o src/digitemp.c
src/digitemp.c: In function `main’:
src/digitemp.c:2591:7: error: `sensor_list’ undeclared (first use in this function)
if( sensor_list.roms != NULL )
^
src/digitemp.c:2591:7: note: each undeclared identifier is reported only once for each function it appears in
src/digitemp.c:2594:7: error: `couplerDS_top’ undeclared (first use in this function)
if( couplerDS_top != NULL )
^
src/digitemp.c:2595:4: warning: implicit declaration of function `free_coupler_ds2409’ [-Wimplicit-function-declaration]
free_coupler_ds2409(1);
^
make: *** [src/digitemp.o] Error 1
[root@kahuna digitemp-master]#
What am I missing? I am running Fedora 20, kernel 3.16.4 on an Intel x86_64.
Tom
Hello Tom,
There is a chance I broke the ds9097u. Maybe next week I can look into fixing this.
Try using v3.6.0, unless you need support for the Hobby Board 4ch hub or would like nested hubs.
Here is a link to Brian Lanes v3.6.0: https://github.com/bcl/digitemp
If you want to use the ds2490... run make for that.
I have not yet tried my code on Fedora 20 or making for the ds9097. I should have done that! Sorry.
Again... probably the errors you are seeing are due to something I changed in Brian's code.
-dusty
-----Original Message-----
Tom,
I may have repaired the HobbyBoard / nested hub code.
https://github.com/desto-kluger/digitemp
I do not have a ds9097u, and so I can not test the code, but it should now compile for you.
If you have the time, try it out and let me know how it goes.
Again, this code is only needed if you want:
HobbyBoard 4ch Hub support
Nested hub support
DS2490 working
-desto