DigiTemp - 1 Wire Temperature Plugin (Locked)
Re: DigiTemp - 1 Wire Temperature Plugin
1-Wire is looking very attractive for an application I am planning. However, I am a little unsure about hardware compatibility and have a few questions.
Based on this thread, I see that I can use either a DS9097U or LinkUSB controller. Since 1-Wire is a standard I would assume any sensor would work with either controller, but based on compatibility charts published on the various 1-Wire web sites I am not sure that is the case.
For controllers that are currently supported by the plugin, do all the sensors that work on the DS9097U also work on the LinkUSB, and visa-versa? Or, should I be asking,, is the DigiTemp software the limiting factor (as noted in an earlier post by @travisc)?
And, finally. other than possible sensor compatibility issues, Is there any significant benefit/advantage to either the DS9097U or LinkUSB controller?
EDIT: AFter looking over the various 1-Wire interfaces on the iButton web site, it seems that they all either use the same DS2480B chip as the DS9097U or offer DS9097U emulation. So, would it be safe to assume that any interface that claims DS9097U "compatibility" would work with the DigiTemp software, and the 1-Wire plugin?
Based on this thread, I see that I can use either a DS9097U or LinkUSB controller. Since 1-Wire is a standard I would assume any sensor would work with either controller, but based on compatibility charts published on the various 1-Wire web sites I am not sure that is the case.
For controllers that are currently supported by the plugin, do all the sensors that work on the DS9097U also work on the LinkUSB, and visa-versa? Or, should I be asking,, is the DigiTemp software the limiting factor (as noted in an earlier post by @travisc)?
And, finally. other than possible sensor compatibility issues, Is there any significant benefit/advantage to either the DS9097U or LinkUSB controller?
EDIT: AFter looking over the various 1-Wire interfaces on the iButton web site, it seems that they all either use the same DS2480B chip as the DS9097U or offer DS9097U emulation. So, would it be safe to assume that any interface that claims DS9097U "compatibility" would work with the DigiTemp software, and the 1-Wire plugin?
Re: DigiTemp - 1 Wire Temperature Plugin
The LinkUSB appears to be the guts of a DS9097U with a USB-Serial adapter built-in. In theory they should both support the same devices. DigiTemp is indeed the limiting factor if you are looking to use devices other than temperature/humidity sensors.Based on this thread, I see that I can use either a DS9097U or LinkUSB controller. Since 1-Wire is a standard I would assume any sensor would work with either controller, but based on compatibility charts published on the various 1-Wire web sites I am not sure that is the case.
Advantages of the LinkUSB are:
- not having to use an external USB-Serial adapter.
- It can supply more power to 1-wire devices using the 5v from the USB bus. This would involve running an extra wire for power. The DS9097U also supports this feature but requires an external power adapter be connected. I have 12 sensors hooked up along at least 300 feet of wire and do not require this extra power.
- MrJeffreyGee
- Posts: 74
- Joined: Tue Apr 26, 2011 4:13 pm
- Location: United States
Re: DigiTemp - 1 Wire Temperature Plugin
travisc wrote:They call it a 1-wire interface but it actually needs two, Ground and 1-Wire data, for it to work. The 1-wire refers to how many signal wires are required for communication, the common ground requirement is assumed. It's a little mis-leading if you're not an electronics guru.
I'll need more log info than that, that just looks like the last error in the log which doesn't help me. Turn on debugging, reload the plugin, then send me everything from when the plugin starts to when it errors.
Ok, I've turned on debugging and got more information. It says it seems to be an error reading a file (digitemp.conf). How do I correct this issue?
Code: Select all
Plugin "DigiTemp" disconnected
Starting plugin "DigiTemp 0.8.0" (pid 10586)
Plugin "DigiTemp" connected
Plugin "DigiTemp 0.8.0" started
DigiTemp Debug Read Sensor List Start
DigiTemp Debug Error reading digitemp.conf file.
DigiTemp Debug STATE: Test
DigiTemp Debug STATE: Test
DigiTemp Debug STATE: Test
DigiTemp Debug STATE: Test
DigiTemp Debug STATE: Test
DigiTemp Debug methodScanBus started
DigiTemp Debug STATE: Test
DigiTemp Starting scan for 1-wire sensors.
DigiTemp Debug STATE: Process Poll
DigiTemp Debug STATE: Process Poll
DigiTemp Debug DigiTemp Output:
DigiTemp Debug Read Sensor List Start
DigiTemp Debug OUTPUT:
DigiTemp Debug Error reading digitemp.conf file.
DigiTemp Scan complete, found 0 sensors.
DigiTemp Error Error in plugin execution runConcurrentThread:
Traceback (most recent call last):
File "plugin.py", line 68, in runConcurrentThread
File "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins/DigiTemp.indigoPlugin/Contents/Server Plugin/DigiTemp.py", line 382, in startComm
<type 'exceptions.UnboundLocalError'>: local variable 'nextScanTime' referenced before assignment
DigiTemp Error plugin runConcurrentThread function returned or failed; will attempt again in 10 seconds
DigiTemp Debug methodScanBus started
DigiTemp Debug runConcurrentThread called
DigiTemp Debug startComm called
DigiTemp Starting scan for 1-wire sensors.
DigiTemp Debug STATE: Process Poll
DigiTemp Debug STATE: Process Poll
DigiTemp Debug DigiTemp Output:
DigiTemp Debug Read Sensor List Start
DigiTemp Debug OUTPUT:
DigiTemp Debug Error reading digitemp.conf file.
DigiTemp Scan complete, found 0 sensors.
DigiTemp Error Error in plugin execution runConcurrentThread:
Traceback (most recent call last):
File "plugin.py", line 68, in runConcurrentThread
File "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins/DigiTemp.indigoPlugin/Contents/Server Plugin/DigiTemp.py", line 382, in startComm
<type 'exceptions.UnboundLocalError'>: local variable 'nextScanTime' referenced before assignment
DigiTemp Error plugin runConcurrentThread function returned or failed; will attempt again in 10 seconds
DigiTemp Debug runConcurrentThread called
DigiTemp Debug startComm called
DigiTemp Error Error in plugin execution runConcurrentThread:
- MrJeffreyGee
- Posts: 74
- Joined: Tue Apr 26, 2011 4:13 pm
- Location: United States
Re: DigiTemp - 1 Wire Temperature Plugin
ELWOOD wrote:MrJeffreyGee
My setup has been working fine. I have the LinkUSB connected to 2 iButtonLink T-Sense Temperature Sensor using the RJ45 jacks.
Plus 5 Dallas ds18s20 in a TO-92 package. However I am using the third wire for 5 volt power. The ds18s20 can work with 2 wires (pin 1&2)
as "Parasite Mode" but I think this requires adding a capasitor at the LinkUSB between pin 2 and 4.
Since I am running the sensors on cat5 cable I have the extra wires to pas the 5 volt power to the sensor.
Hook up pins from the LinkUSB to the ds18s20 as the following:
LinkUSB pin 1 and 5 to ds18s20 pin 1 (ground)
LinkUSB pin 2 to ds18s20 pin 3 (+5v power)
LinkUSB pin 4 to ds18s20 pin 2 (1-wire data)
Hope this helps
Elwood
Thank you so much for helping. I tried wiring it up like you described, but still no luck. I also tried changing to a different USB port, but there's no difference. My first USB port was a powered hub and the second one I tried was on the back of the Mac.
Re: DigiTemp - 1 Wire Temperature Plugin
It doesn't look like digitemp is outputting anything at all. Try running it directly from the command line:
1. Disable the DigiTemp plugin.
2. Open up a Terminal window.
3. Copy/Paste this line into the terminal and then hit enter:
4. Lets start real simple. Type the following line into the terminal and hit enter:
You should see this followed by a bunch of help text:
For example, in Indigo my DigiTemp serial port shows up as usbserial3. So I would enter ./digitemp -w -s /dev/cu.usbserial3
If everything is working correctly, you would see something like this:
1. Disable the DigiTemp plugin.
2. Open up a Terminal window.
3. Copy/Paste this line into the terminal and then hit enter:
Code: Select all
cd "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/"Code: Select all
./digitemp5. If that worked lets try a 1-wire walk. Copy the following line into the terminal, replacing PORT with the serial port you selected in Indigo, then hit enter.Error! Not enough arguements.
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Compiled for DS9097U
For example, in Indigo my DigiTemp serial port shows up as usbserial3. So I would enter ./digitemp -w -s /dev/cu.usbserial3
Code: Select all
./digitemp -w -s /dev/cu.PORTPaste the output here so we can see what's going on.DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
.........
Devices on the Main LAN
2888DE5D020000A3 : DS18B20 Temperature Sensor
28481B5E02000044 : DS18B20 Temperature Sensor
285CB45D02000017 : DS18B20 Temperature Sensor
- MrJeffreyGee
- Posts: 74
- Joined: Tue Apr 26, 2011 4:13 pm
- Location: United States
Re: DigiTemp - 1 Wire Temperature Plugin
travisc wrote:It doesn't look like digitemp is outputting anything at all. Try running it directly from the command line:
1. Disable the DigiTemp plugin.
2. Open up a Terminal window.
3. Copy/Paste this line into the terminal and then hit enter:4. Lets start real simple. Type the following line into the terminal and hit enter:Code: Select all
cd "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/"You should see this followed by a bunch of help text:Code: Select all
./digitemp5. If that worked lets try a 1-wire walk. Copy the following line into the terminal, replacing PORT with the serial port you selected in Indigo, then hit enter.Error! Not enough arguements.
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Compiled for DS9097U
For example, in Indigo my DigiTemp serial port shows up as usbserial3. So I would enter ./digitemp -w -s /dev/cu.usbserial3If everything is working correctly, you would see something like this:Code: Select all
./digitemp -w -s /dev/cu.PORTPaste the output here so we can see what's going on.DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
.........
Devices on the Main LAN
2888DE5D020000A3 : DS18B20 Temperature Sensor
28481B5E02000044 : DS18B20 Temperature Sensor
285CB45D02000017 : DS18B20 Temperature Sensor
Ok, I did what you said, but still no luck.
Code: Select all
jeffrey-gees-power-mac-g4:~ Jeffrey$ cd "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/"
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp
Error! Not enough arguements.
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Compiled for DS9097U
Usage: digitemp [-s -i -I -U -l -r -v -t -a -d -n -o -c]
-i Initalize .digitemprc file
-I Initalize .digitemprc file w/sorted serial #s
-w Walk the full device tree
-s /dev/ttyS0 Set serial port
-l /var/log/temperature Send output to logfile
-c digitemp.conf Configuration File
-r 1000 Read delay in mS
-v Verbose output
-t 0 Read Sensor #
-q No Copyright notice
-a Read all Sensors
-d 5 Delay between samples (in sec.)
-n 50 Number of times to repeat
0=loop forever
-A Treat DS2438 as A/D converter
-O"counter format string" See description below
-o 2 Output format for logfile
-o"output format string" See description below
-H"Humidity format string" See description below
Logfile formats: 1 = One line per sensor, time, C, F (default)
2 = One line per sample, elapsed time, temperature in C
3 = Same as #2, except temperature is in F
#2 and #3 have the data seperated by tabs, suitable for import
into a spreadsheet or other graphing software.
The format string uses strftime tokens plus 5 special ones for
digitemp - %s for sensor #, %C for centigrade, %F for fahrenheit,
%R to output the hex serial number, and %N for seconds since Epoch.
The case of the token is important! The default format string is:
"%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F" which gives you an
output of: May 24 21:25:43 Sensor 0 C: 23.66 F: 74.59
The counter format string has 2 special specifiers:
%n is the counter # and %C is the count in decimal.
The humidity format uses %h for the humidity in percent
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/cu.usbserial-A8006XNN
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/cu.usbserial-A900fx6A
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/tty.modem
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/cu.modem
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/tty.usbserial-A900fx6A
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/tty.usbserial-A8006XNN
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/tty.usbmodem412711
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
jeffrey-gees-power-mac-g4:Server Plugin Jeffrey$ ./digitemp -w -s /dev/cu.usbmodem412711
dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _fopen$UNIX2003
Referenced from: /Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/./digitemp
Expected in: /usr/lib/libSystem.B.dylib
Trace/BPT trap
Re: DigiTemp - 1 Wire Temperature Plugin
Hmmm. I'm guessing it's because you're on a G4. I tried to compile DigiTemp as a universal binary but it looks like I didn't get it quite right. I don't have a PowerPC mac here so I couldn't test it.
I'll have to look at this later. I'm not even sure what I did wrong, everything seemed to compile without error.
I'll have to look at this later. I'm not even sure what I did wrong, everything seemed to compile without error.
- MrJeffreyGee
- Posts: 74
- Joined: Tue Apr 26, 2011 4:13 pm
- Location: United States
Re: DigiTemp - 1 Wire Temperature Plugin
Since I've got a PowerPC I'd gladly test it for you. Do you think maybe compiling a PowerPC only version would help and would force it to work?travisc wrote:Hmmm. I'm guessing it's because you're on a G4. I tried to compile DigiTemp as a universal binary but it looks like I didn't get it quite right. I don't have a PowerPC mac here so I couldn't test it.
I'll have to look at this later. I'm not even sure what I did wrong, everything seemed to compile without error.
Re: DigiTemp - 1 Wire Temperature Plugin
That would definitely work for you until I have a chance to figure out how why it's not compiling into a universal binary. The digitemp binary inside the plugin would just have to be replaced with one compiled for PPC.
- MrJeffreyGee
- Posts: 74
- Joined: Tue Apr 26, 2011 4:13 pm
- Location: United States
Re: DigiTemp - 1 Wire Temperature Plugin
Sounds like a great plan and it would help everyone else that's on a PowerPC as well too.travisc wrote:That would definitely work for you until I have a chance to figure out how why it's not compiling into a universal binary. The digitemp binary inside the plugin would just have to be replaced with one compiled for PPC.
Re: DigiTemp - 1 Wire Temperature Plugin
Any suggestions for a humidity sensor that will work? I have tried to find the AAG TAI-8540 but apparently AAG must be out of business- no response to emails.
Here's the link from the DigiTemp website:
http://www.aagelectronica.com/aag/index ... lang=en-us
Here's the link from the DigiTemp website:
http://www.aagelectronica.com/aag/index ... lang=en-us
Re: DigiTemp - 1 Wire Temperature Plugin
Digitemp does reference Hobby-Boards, but I don't know if they support them - and the TAI sensor is within..
http://www.hobby-boards.com/catalog/pro ... ucts_id=54
Curious as well - just no 1-Wire stuff acquired yet.
http://www.hobby-boards.com/catalog/pro ... ucts_id=54
Curious as well - just no 1-Wire stuff acquired yet.
Re: DigiTemp - 1 Wire Temperature Plugin
Noob question, what's the diode's purpose here? This assuming powered not parasitic? Or signal issue?
http://www.digitemp.com/building.shtml
http://www.digitemp.com/building.shtml
Re: DigiTemp - 1 Wire Temperature Plugin
Came across this, which might work?
Temp/Humidity Sensor
http://www.ibuttonlink.com/ms-th.aspx
It's also based on the DS2438 for 1-wire and the Honeywell part HIH-4000 which is the same as the AAG TAI8520 mentioned in the thread as well as on Digitemp's webpage.
At 65$ a bit too much to just toss in an order to see, unless I know there's a good chance going to work. That being said, hoping to find a cheaper alternative so I can get a couple of these..
Cheers.
Temp/Humidity Sensor
http://www.ibuttonlink.com/ms-th.aspx
It's also based on the DS2438 for 1-wire and the Honeywell part HIH-4000 which is the same as the AAG TAI8520 mentioned in the thread as well as on Digitemp's webpage.
At 65$ a bit too much to just toss in an order to see, unless I know there's a good chance going to work. That being said, hoping to find a cheaper alternative so I can get a couple of these..
Cheers.
Re: DigiTemp - 1 Wire Temperature Plugin
It helps absorb voltage spikes released by wires when the inductance gets high, like on long wire runs.Noob question, what's the diode's purpose here? This assuming powered not parasitic? Or signal issue?
See page 50:
http://www.1wire.org/Files/Articles/1-W ... 20v1.0.pdf