DigiTemp - 1 Wire Temperature Plugin (Locked)

Posted on
Tue Feb 21, 2012 11:02 am
berkinet offline
User avatar
Posts: 3290
Joined: Nov 18, 2008
Location: Berkeley, CA, USA & Mougins, France

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?

Posted on
Tue Feb 21, 2012 11:15 am
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DigiTemp - 1 Wire Temperature 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.


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.

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.

Posted on
Tue Feb 21, 2012 2:30 pm
MrJeffreyGee offline
User avatar
Posts: 74
Joined: Apr 26, 2011
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:

Posted on
Tue Feb 21, 2012 2:42 pm
MrJeffreyGee offline
User avatar
Posts: 74
Joined: Apr 26, 2011
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.

Photo Feb 21, 3 11 28 PM.jpeg
DS18S20 LinkUSB Wiring
Photo Feb 21, 3 11 28 PM.jpeg (389.61 KiB) Viewed 7718 times

Posted on
Tue Feb 21, 2012 3:28 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

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:
Code: Select all
cd "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/"


4. Lets start real simple. Type the following line into the terminal and hit enter:
Code: Select all
./digitemp

You should see this followed by a bunch of help text:
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


5. 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.
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.PORT


If everything is working correctly, you would see something like this:
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


Paste the output here so we can see what's going on.

Posted on
Wed Feb 22, 2012 8:07 am
MrJeffreyGee offline
User avatar
Posts: 74
Joined: Apr 26, 2011
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:
Code: Select all
cd "/Library/Application Support/Perceptive Automation/Indigo 5/Plugins (Disabled)/DigiTemp.indigoPlugin/Contents/Server Plugin/"


4. Lets start real simple. Type the following line into the terminal and hit enter:
Code: Select all
./digitemp

You should see this followed by a bunch of help text:
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


5. 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.
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.PORT


If everything is working correctly, you would see something like this:
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


Paste the output here so we can see what's going on.



Ok, I did what you said, but still no luck. :-( I also did a bunch of additional ports and included the results as well. The first 2 ports was the ones I saw in Indigo and the following other ports I saw listed as an option in the Arduino app. Is it possible that it's cause I installed the FTDI drivers and didn't reboot the computer or could it be cause I'm using Indigo version 5.0.3?


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

Posted on
Wed Feb 22, 2012 8:18 am
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

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.

Posted on
Sat Feb 25, 2012 5:57 am
MrJeffreyGee offline
User avatar
Posts: 74
Joined: Apr 26, 2011
Location: United States

Re: DigiTemp - 1 Wire Temperature Plugin

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.


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?

Posted on
Sat Feb 25, 2012 7:38 am
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

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.

Posted on
Sun Feb 26, 2012 5:58 pm
MrJeffreyGee offline
User avatar
Posts: 74
Joined: Apr 26, 2011
Location: United States

Re: DigiTemp - 1 Wire Temperature Plugin

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.


Sounds like a great plan and it would help everyone else that's on a PowerPC as well too.

Posted on
Tue Feb 28, 2012 10:17 pm
hamw offline
Posts: 1212
Joined: Mar 31, 2008

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

Posted on
Wed Feb 29, 2012 6:19 pm
Fishysan offline
Posts: 86
Joined: Feb 01, 2012

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.

Posted on
Wed Feb 29, 2012 6:33 pm
Fishysan offline
Posts: 86
Joined: Feb 01, 2012

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

Posted on
Wed Feb 29, 2012 9:46 pm
Fishysan offline
Posts: 86
Joined: Feb 01, 2012

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.

Posted on
Thu Mar 01, 2012 10:09 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DigiTemp - 1 Wire Temperature Plugin

Noob question, what's the diode's purpose here? This assuming powered not parasitic? Or signal issue?

It helps absorb voltage spikes released by wires when the inductance gets high, like on long wire runs.

See page 50:
http://www.1wire.org/Files/Articles/1-Wire-Design%20Guide%20v1.0.pdf

Who is online

Users browsing this forum: No registered users and 1 guest