OneWire Temp will read -160F

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

I do:
http://ompldr.org/vYXdrbw

(FYI I do not have an UNO, I have a Dueminalove)

User avatar
adafruit_support_bill
 
Posts: 88096
Joined: Sat Feb 07, 2009 10:11 am

Re: OneWire Temp will read -160F

Post by adafruit_support_bill »

Hold the shift key down when uploading and post the output.

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

After upload fails, I have been using the USBTinyISP and Arduino interface to flash back to the stock firmware, after which uploading works as intended. See below for the custom flash log and for the upload failure.

Code: Select all

Clete-Blackwells-MacBook-Pro:Adaboot328 clete2$ make TARGET=adaboot328 isp328
avrdude -c usbtiny -p m328p -P /dev/cu.usbserial-A600acIj -b 19200 -B 1 -e -u -U lock:w:0x3f:m -U efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: erasing chip
avrdude: reading input file "0x3f"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3f:
avrdude: load data lock data from input file 0x3f:
avrdude: input file 0x3f contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0x05"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0x05:
avrdude: load data efuse data from input file 0x05:
avrdude: input file 0x05 contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xDA"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done.  Thank you.

avrdude -c usbtiny -p m328p -P /dev/cu.usbserial-A600acIj -b 19200 -B 1 -U flash:w:ATmegaBOOT_xx8_adaboot328.hex -U lock:w:0x0f:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "ATmegaBOOT_xx8_adaboot328.hex"
avrdude: input file ATmegaBOOT_xx8_adaboot328.hex auto detected as Intel Hex
avrdude: writing flash (32746 bytes):

Writing | ################################################## | 100% 18.40s



avrdude: 32746 bytes of flash written
avrdude: verifying flash memory against ATmegaBOOT_xx8_adaboot328.hex:
avrdude: load data flash data from input file ATmegaBOOT_xx8_adaboot328.hex:
avrdude: input file ATmegaBOOT_xx8_adaboot328.hex auto detected as Intel Hex
avrdude: input file ATmegaBOOT_xx8_adaboot328.hex contains 32746 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 16.00s



avrdude: verifying ...
avrdude: 32746 bytes of flash verified
avrdude: reading input file "0x0f"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0f:
avrdude: load data lock data from input file 0x0f:
avrdude: input file 0x0f contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Code: Select all

Binary sketch size: 16304 bytes (of a 30720 byte maximum)
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P/dev/tty.usbserial-A600acIj -b57600 -D -Uflash:w:/var/folders/mw/8_dn3wd50s98xx89lp3108580000gn/T/build127299406061783124.tmp/ethernet_Pachube_input_output_1_1.cpp.hex:i 

avrdude: Version 5.4-arduino, compiled on Oct  9 2007 at 11:20:31
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/clete2/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port            : /dev/tty.usbserial-A600acIj
         Using Programmer      : stk500v1
         Overriding Baud Rate  : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: Send: Q [51]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

Can you offer some assistance here? I am still unable to get it to write programs after flashing the custom bootloader. The boot sequence looks fine -- I see the reset light flash twice instead of the normal once, which I believe is expected.

The OneWire sensor is still just as reliable, dying every 6-12 hours.

User avatar
adafruit_support_bill
 
Posts: 88096
Joined: Sat Feb 07, 2009 10:11 am

Re: OneWire Temp will read -160F

Post by adafruit_support_bill »

Not sure what the boot problem is. But that is only treating the symptom anyhow. Maybe it is better to try to diagnose the original problem of the OneWire failing.

The "AvailableMemory" function here should detect any possible memory leak that might be responsible.
http://www.arduino.cc/playground/Code/AvailableMemory

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

Unfortunately it seems to not be due to a memory leak. I really am not sure what could be going on here.

I am seeing consistent results with all of the 3 examples; I can't see a memory leak.

I'm pretty much stumped as to what the issue is. Switching pins on the Arduino doesn't help it to be more reliable. In fact, it has been less reliable in the past few days. I made sure that the sensor is planted firmly in the breadboard and that there are no loose wires. I almost think it is an issue with the OneWire library or even the particular sensor I have, as I have yet to be able to reproduce it on the TMP36. Of course, it could always be my shoddy implementation, although I don't understand why the OneWire would be unreliable while the TMP36 is reliable.

User avatar
adafruit_support_bill
 
Posts: 88096
Joined: Sat Feb 07, 2009 10:11 am

Re: OneWire Temp will read -160F

Post by adafruit_support_bill »

At this point I'd be more suspicious of the sensor than the library - since we haven't had reports of this symptom before. Contact [email protected] about a replacement one-wire sensor with a link to this thread. And please post your results with the new sensor.

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

Ok, I have sent an email. I will post results with the new one.
Thanks for the help.

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

Thanks for the new sensor. I have installed it and I will keep you posted on the status.

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

Ok, so the problem still exists. I am going on vacation soon so I will be unable to test for a while. I think I will strip down the code to only a simple read every 15 seconds and see if that helps.

Do you want your second sensor back? Sorry for all the trouble since it didn't even help.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: OneWire Temp will read -160F

Post by adafruit »

Keep it! :)

User avatar
clete2
 
Posts: 30
Joined: Wed Oct 28, 2009 11:48 am

Re: OneWire Temp will read -160F

Post by clete2 »

I wanted to give an update on this.

I rewrote the code on this project so that it now accepts HTTP connections and gives the sensor data on demand rather than sending it out every 15 seconds. I also wrote a Munin (graphic daemon) plugin that will graph the output of the Arduino. I have Munin set to poll every 5 minutes. So far so good; the OneWire hasn't crashed once in the past two or three days that it has been running.

I have no clue what changed, other than that possibly every 15 seconds was too taxing.

The Munin script needs a simple line:
Outdoor.value 10.02

And outputs the following:
http://clete.dyndns.org/munin/cleteNAS/ ... tdoor.html

You will notice a break in the above graph, but that was caused due to my server going down for a little maintenance.

Thanks for all of your help. I think this issue is finally resolved. Maybe. ;)

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”