Attiny projects?

I have found several threads where people ask about using an attiny, and now I'm pretty sure there are at least two different ways to program them using the arduino IDE. So my question is, does anyone have an example project posted? I'm planning on buying a few next time I make an order, and I'm wondering if they use the internal oscillators or if they are programmed to run an external.

I'm pretty sure there are at least two dfferent bootloaders for them

There are? Please post links.

:-/ sigh that is my n00b shining through. I meant just ways to program an attiny in the arduino IDE, it's been a long day lol. I edited the post to hopefully not confuse anyone who is new like me

I have no links, but I have done both, depends on what is needed

So my question is, does anyone have an example project posted?

I've seen a few write-ups but they are all "general purpose". These are good examples...

http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585

I'm planning on buying a few next time I make an order

Lately, my favorite processor is the ATtiny85. It has enough memory to do interesting / complicated things but is physically small enough to squeeze into tight spaces. The big drawback is the limited number of I/O pins.

My second choice is the ATtiny84.

and I'm wondering if they use the internal oscillators or if they are programmed to run an external.

I've done both. The internal oscillator can be calibrated to (usually better than) ±1% which is good enough for everything I've done so far.

There is some information available here...
http://code.google.com/p/arduino-tiny/

I am very happy with the Pololu AVR Programmer. It has served me well...

Awesome, thanks for all of the info. I read through a lot of it and installed the tiny support files for my arduino ide. I also found Coding Badly's write up on how to tune an attiny and I'm reading through it. Hopefully within a week or two I'll have some simple little projects with an attiny

A few days ago I posted an I2C Master lib for the ATtiny85. You can get it (with an example) here . . .
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254/255#255

Tonight I attached a 2x16 display (using an I2C GPIO) to the ATtiny85.
It's fun seeing what you can do with an 8 pin chip.

I also found Coding Badly's write up on how to tune an attiny and I'm reading through it

This?
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1287558192

For now, this is the documentation for the Google Code link I posted earlier...
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285218245

This?
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1287558192

Yup, I downloaded the files and looked through them, I am completely new to all of this(less than a month of arduino experience, which is my only experience with a microprocessor). Is calibrating the attiny really as simple as just running the Save_to_EEProm sketch and following the instructions?

The documentation is great, I ordered a few attiny85s, the 84s had a 20 dollar handling charge from my local(ish) vendor, next time I have a mail order from somewhere else I'll grab a couple and try those too. Thanks for all of the help.

edit: what terminal program do you favor? I've been searching and it seems like everyone uses a different one, any benefits to a certain one?

Yup, I downloaded the files and looked through them, I am completely new to all of this(less than a month of arduino experience, which is my only experience with a microprocessor). Is calibrating the attiny really as simple as just running the Save_to_EEProm sketch and following the instructions?

Yes. I like the interactive ones just for the entertainment value (I'm easily amused).

If you use the Save_to_EEProm method, be sure to add code to load the OSCCAL value from EEPROM. I suggest using one of the interactive ones and read a bit of the datasheet until you get a feel for how it works. (Or ask here.)

Over the last few months, I've tested to ensure the calibration works and, so far, it works very well. The calibration varies by temperature and supply voltage. In my case, the gadgets are used indoors and run from batteries. The calibration does not vary enough to make a difference. But, if you expect the temperature to vary by more than about 5°F you may have to either use an "average" calibration or compensate by temperature (or use a resonator / crystal).

The documentation is great

Are you referring to my posts?

I ordered a few attiny85s

Excellent! Welcome to the club!

the 84s had a 20 dollar handling charge from my local(ish) vendor

Yikes! That's harsh.

edit: what terminal program do you favor?

I like "Terminal by Br@y++". It's simple and very easy to use. (I have it running right now. :)) It occasionally misbehaves but the problems have been minor and far between.

I assume you mean the datasheet for the attiny85 on the OSCCAL values? I installed the cores through links to the site from other posts, I didn't realize that was your site. Installing it all was a breeze, I'm hoping programming the 85 will be as simple. I'm in my second semester of my electrical engineering degree, so there are a lot of things I have yet to see, but I am pretty far ahead of the game. I have a couple practical projects I'm working on and one I'm thinking about doing that will be just for show. Hopefully I'll get the first done soon and I'll post it up!

I love the 85, so much so I've built an emulator for it. (CB, got PCBs the other day and have half written a monitor program.)

It's the little chip that can.


Rob

Please tell us more :slight_smile:

D

It's the little chip that can.

;D

I assume you mean the datasheet for the attiny85 on the OSCCAL values?

Yes. Keep the datasheet close at hand. Tiny Tuner provides you with an OSCCAL value. It's up to you to do something with that value.

I installed the cores through links to the site from other posts, I didn't realize that was your site.

I'm trying to keep it from becoming "my site". Anyone want to contribute / help?

Installing it all was a breeze

Excellent!

I'm hoping programming the 85 will be as simple

I think it is. From a software perspective, the core should make working with the 85 very similar to working with a 168 or 328. The big thing lacking are libraries. Most (all?) Arduino libraries will not work as-is on the tiny processors.

Hopefully I'll get the first done soon and I'll post it up!

Please do.

I love the 85, so much so I've built an emulator for it. (CB, got PCBs the other day and have half written a monitor program.)

Nice! Is it the PCB you published in the Hardware / Development section? Did you make any changes from what you published? Did you farm out the PCBs or etch them yourself?

Is it the PCB you published in the Hardware / Development section?

Yep.

Did you make any changes from what you published?

Quite a few actually, the emulator is now affectively an Arduino clone (if I get it all working that is :)). To save from highjacking this thread here's a link to the details.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286853922/0#5

and the web site

http://emul8or.robgray.com/index.php

Did you farm out the PCBs or etch them yourself?

Thought I'd try PCBcart in China, they did a great job.


Rob

sigh, I've spent the past hour unsuccessfully programming my 85. I am using the arduinoisp with my uno, windows 7. When I upload the sktech to the arduino the "communicating with slave" led blinks really fast, then the "error" pin blinks a few times, then the "heartbeat" led goes back to doing it's thing. ?In the arduino ide it just says uploading to board... and hangs there until i disconnect the usb cable to the uno. Any help?

edit: is the pinout for "your" arduino tiny85 file the same as the one from high low tech? I wrote the blink program to run pin 0, but now I'm wondering if it might be pinned differently

sigh, I've spent the past hour unsuccessfully programming my 85

Bummer.

I am using the arduinoisp with my uno, windows 7

Have you disabled the auto-reset?

If I remember correctly, it is necessary to modify the boards.txt file so the Arduino IDE uses the correct programmer. Have you done this?

edit: is the pinout for "your" arduino tiny85 file the same as the one from high low tech? I wrote the blink program to run pin 0, but now I'm wondering if it might be pinned differently

Pin mapping...
http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585

Here is the boards.txt from my sketchbook folder, just the secion for the atiny85 @ 8mhz.

attiny85at8.name=ATtiny85 @ 8 MHz

# The following do NOT work...
# attiny85at8.upload.using=avrispv2
# attiny85at8.upload.using=Pololu USB AVR Programmer

# The following DO work (pick one)...
 attiny85at8.upload.protocol=avrispv2
#attiny85at8.upload.using=pololu

attiny85at8.upload.maximum_size=8192
attiny85at8.upload.speed=19200

# Default clock (slowly rising power; long delay to clock; 8 MHz internal)
# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms; [CKSEL=0010 SUT=10]; default value
# Brown-out detection disabled; [BODLEVEL=111]
# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]

attiny85at8.bootloader.low_fuses=0xE2
attiny85at8.bootloader.high_fuses=0xD7
attiny85at8.bootloader.extended_fuses=0xFF
attiny85at8.bootloader.path=empty
attiny85at8.bootloader.file=empty85at8.hex

attiny85at8.bootloader.unlock_bits=0xFF
attiny85at8.bootloader.lock_bits=0xFF

attiny85at8.build.mcu=attiny85
attiny85at8.build.f_cpu=8000000L
attiny85at8.build.core=tiny

I hooked the reset pin up to 5v power through two 220 ohm resistors in parallel, is that what you were referring to by discabling auto reset?

It looks like the Arduino ISP implements the "stk500v1" protocol. Try changing this...

# The following DO work (pick one)...
 attiny85at8.upload.protocol=[glow]avrispv2[/glow]
#attiny85at8.upload.using=pololu

...to this...

# The following DO work (pick one)...
 attiny85at8.upload.protocol=[glow]stk500v1[/glow]
#attiny85at8.upload.using=pololu

I hooked the reset pin up to 5v power through two 220 ohm resistors in parallel, is that what you were referring to by disabling auto reset?

Yes. When you try to upload to the 85, the bootloader on the Arduino should not run.

Okay...I changed the boards.txt to stk500v1, and it worked! Uploaded the blink sketch successfully and tested it. Then I tried the fade sketch, and I got

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: verification error, first mismatch at byte 0x0008
         0x47 != 0x45
avrdude: verification error; content mismatch

Then I tried to go back to the blink, and get the same error. I unplugged everything and closed the IDE, even rewrote the ISP sktech to the uno. Same error, tried a second attiny85, loaded the first sketch fine, then got the error uploading the second sketch... any advice?
I read that a noisy power supply could have caused this, so I installed a 10 uF cap to filter the power with no change, all in a breadboard, no soldering... I just find it odd that I can upload one sketch but not another...