Friday, September 21, 2007

New Butterflylogger release

Just finished a new release of the butterflylogger (0.27) you can find it at

This version adds support for DS18B20 1-Wire digital thermometers. This means you can string a number of these 12-bit thermometers an only use I/O pin on the logger.


At 8:17 PM, Blogger rubaduba said...


i just stumbled upon you project and
because i got a avr butterfly and some
ds1820 here wanted to try it right away.

now i have some problem with understanding the hardwareconfiguration.

in onewire.h there is PORTE6 defined as
onewire pin. (#define OW_PIN PE6)

where do i have to solder some wire to
to reach this pin on the butterfly?

if you could tell me what to change to
make it work with some pin on portb or
portd i would also be happy :)

btw, i desoldered the piezo a while ago,
so theres some(dont know what by now)
extra pin available here too.

thanks for any hints

At 10:37 PM, Blogger Nick said...

Hi, pin e6 is the one indicated in the picture
here or you can check the users guide here
it is pin 3 of the 4 pin USI connector.

At 10:54 PM, Blogger rubaduba said...

stupid me.
i wasnt asociating DO with the usi :)
tomorrow ill take out my soldering iron
and start logging.

At 1:49 PM, Blogger PeterSek said...

Hi Nick, thanks for posting new version. I have not touched AVR/BF for a while so forgive me for begginers question: I get 'error ../DS18_main.c:37:33: uart.h: No such file or directory' which I think measn uart.h (not usart.h) is missing

I am using WindowsXP AVR Studio 4.12sp3


At 6:57 PM, Blogger Nick said...

Try changing the uart.h to usart.h
I don't think I've used uart.h for some time.
if that doesn't work please email me the part of DS18 main.c that has the uart.h reference.

brokentoaster @ users . sf . net

At 2:12 PM, Blogger K said...

Hi Nick

you have done a very good job on your butterfly logger project!

I would like to log voltages only via the ADC4 - ADC7 and the battery voltage via ADC0.

In the adc.h file you mentioned the inaccuracy of +-50 mV when logging the voltage.
Switching off logging the LDR and temperature, how can I further increase the accuracy of the logger? Do I need a more sophisticated VCC?

Thanks for any comment,


At 4:19 PM, Blogger Nick said...

Hi K.

To ensure better accuracy you could setup the reference voltage for the ADC to use VCC or VREF rather than the AREF Pin.

This is done in ADC_Init and ADC_Read functions at the moment for VOLTAGE_SENSOR. You could add another case for DIR_SENSOR and then this would be more independent of light and temp.

At 1:28 PM, Blogger Randall Young said...

Hi Nick!,

Love your buttfly/datalogger.

Quick question, what software did you use to generate you cool temperature graphs. I need the color fill...

Thanks, great project!

At 7:41 PM, Blogger Nick said...

Hi Randell.

See my latest post "GNUplot for datalogger" for info about this.

The colour fill is done with the 'i' option in the line with the plot command. ( i = impulse)

At 6:06 PM, Blogger Simen said...

Hi, first of all thank you for such great software. I'm trying to implement this in a temperature logging application.

I'm having a few problems with reading ds1820 sensors. Firstly when enabling a sensor in the source the hex file becomes over ~14200 bytes and the flash verification failes. I've tried this on two different butterflies so I don't suspect broken flash on the butterflies. Perhaps older butterflys (mine are a few years old) have smaller flash-size?

By stripping some unneeded (for me) code and getting the hex under the seemingly magical ~14200byte limit it flashes ok, but can't find any sensors connected to the 1-wire bus. I've tried running the sensors both on parasite power and by seperate power. All wired up with pull-up resistors according to the datasheet.

Any tips or ideas on what's wrong would be greatly appreciated.

At 8:20 PM, Blogger Nick said...

Hi Simen,
The flash size on the butterfly is 16Kb but 2Kb of this is used by the 1024 words for the bootloader. The word size is 16bit so 1024 words is 2048 bytes of flash space.

So the magic number is 14336bytes for the total flash size.

I've found that not all gccs are equal. I use 4.0.2 to get the smallest compiled size i've found. you can also try a version 3.xx gcc to see if that gives you smaller code size.

I normally take out unused channels in the makefile and main.h.

If you email me your hex I can test it for to see that it works with my hardware.

brokentoaster at users dot sourceforge dot net


Post a Comment

<< Home