Go Down

Topic: Arduino Tiny (Read 14968 times) previous topic - next topic

Coding Badly

Sep 23, 2010, 07:04 am Last Edit: Sep 23, 2010, 09:23 am by bcook Reason: 1

The first Arduino Tiny release is ready...
http://code.google.com/p/arduino-tiny/

Included is a "highly compatible" core for the ATtiny84 processor: most of the functions are very similar or identical to the 0019 core.

Features...
  • All 8 analog pins are supported
  • All 10 digital pins are supported
  • All 4 PWM pins are supported
  • The three analogReference modes work
  • NewSoftSerial works
  • Burn Bootloader can be used to change fuse settings

Limitations...
  • Serial is an empty stub.  A Sketch that references Serial compiles but method calls do nothing but return.

Caveats...
  • tone may not generate the correct frequency.  We need a few more people to test.


george_graves

#1
Sep 23, 2010, 10:14 am Last Edit: Sep 23, 2010, 10:15 am by george_graves Reason: 1
Thank you - looking forward to trying this out!

There's been a HUGE missing part of the arduino world is the lack of support for smaller chips.  This is great!

Coding Badly


Forgot one...

Features...
  • Direct output for tone on pin 4.  Sound quality is a bit better and no CPU time is needed.


volvodani

How to burn the bootloader to an attiny85 i will try this because i had one free for these trying. Wich .hex i have to burn with a ISP?
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!


Osgeld

I have been using the pre-release of this for about a week now, its very nice

and Thank you very much
http://arduino.cc/forum/index.php?action=unread;boards=2,3,4,5,67,6,7,8,9,10,11,66,12,13,15,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,86,87,89,1;ALL

Ro-Bot-X

Wonderful work!

Is the Servo library working?

Thanks!

Coding Badly

#7
Sep 24, 2010, 04:58 am Last Edit: Sep 24, 2010, 10:20 am by bcook Reason: 1

Thank you all for the kind words and encouragement.

Quote
Is the Servo library working?

No.  If you (or anyone else) is willing to test I can provide the changes to Servo.cpp that should get it working.

Please take a moment to click a few checkboxes...
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285276725
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285316262

Ro-Bot-X

Clicked.

I plan on using Tiny 84 and 85 at 8MHz for tiny robots and I need the Servo Lib, the SoftwareSerial Lib, the EEPROM Lib and the analog read (if there is support) at the moment. After successful tests I'll make dedicated boards for these chips. The idea is to have 6 and 3 servo connectors plus serial or sensor connectors on the boards. All servo positions will be saved in the EEPROM so the user can connect the board to the PC using a FTDI cable and set new servo positions as new moves that are later played back directly on board.

So I am willing to do any tests you can throw at me.

Coding Badly

Quote
Clicked.

Thanks!

Quote
I plan on using Tiny 84 and 85 at 8MHz

For the next few weeks, my efforts are restricted to the 84 core.  The 85 processor is next.

Quote
for tiny robots

Excellent!

Quote
and I need the Servo Lib

For Servo to work with the 84 processor a minor change must be made to the Servo.cpp source file.  The file is located in the {ArduinoRoot}\libraries\Servo directory.  On line #103 should be this...

SIGNAL (TIMER1_COMPA_vect)

Change it to this...

#if defined( TIMER1_COMPA_vect )
SIGNAL (TIMER1_COMPA_vect)
#else
SIGNAL (TIM1_COMPA_vect)
#endif


Once this change has been tested, I'll ask for it to be applied the official version.

Quote
the SoftwareSerial Lib

I've been using NewSoftSerial (@ 9600 baud) with success.  I'll switch to SoftwareSerial and report back.

Bear in mind that, from the factory, the internal oscillator may not be accurate enough for serial communications.  The oscillator can be tuned (using the OSCCAL register) to be accurate enough.

Quote
the EEPROM Lib

There is a bug in <avr/eeprom.h> that prevents it from working with the 84 processor.  There's a replacement file in the Arduino Tiny download that I belive fixes the problem.

Quote
and the analog read (if there is support)

There is support.  I've tested the three analogReference modes1 and all eight analog input pins.  It all seems to work.

Quote
After successful tests I'll make dedicated boards for these chips. The idea is to have 6 and 3 servo connectors plus serial or sensor connectors on the boards. All servo positions will be saved in the EEPROM so the user can connect the board to the PC using a FTDI cable and set new servo positions as new moves that are later played back directly on board.

Nice!

Quote
So I am willing to do any tests you can throw at me.

Two things need to be tested...

1. tone may not be working correctly.  I need someone to measure the frequency generated.  Ideally with the processor at 1 MHz and 8 MHz.

2. Servo.  I currently don't have the means to test the Servo library with the 84 processor.

Any help you're willing to contribute is greatly appreciated!


1 Be sure to read the datasheet!  The analogReference modes for the 84 processor are a bit different from the 168 / 328 processor.

mrmeval

ATTiny84 has SPI. I've not seen where one of these has been used with any Arduino yet.

http://www.maxim-ic.com/datasheet/index.mvp/id/2052

MAX3110E, MAX3111E  
If it was designed by man it can be repaired by man.

Coding Badly

Quote
I'll switch to SoftwareSerial and report back

...testing has not gone well.  

NewSoftSerial works at least to 9600 baud (I haven't tried higher rates).  SoftwareSerial won't work at 2400 baud.  Unfortunately, NewSoftSerial adds almost 2K; SoftwareSerial is considerably smaller.

deSilva

SPI
.. is a quite trivial matter. It is a part of 019 now, isn't it? Here a library
http://www.arduino.cc/playground/Code/Spi

NSS
.. can be simplified a little bit, especially when you constrain to a few bit-rates only. It can be re-written using USI. The size of the receive buffer must most likely also be reduced.

I have ordered some 84 chips - I cannot start testing before next week.

Osgeld

#13
Sep 27, 2010, 03:12 pm Last Edit: Sep 27, 2010, 03:25 pm by Osgeld Reason: 1
spi lib doesnt work with the 84, as its handled though the USI, course you can bit bang it nearly as fast on any pins you want
http://arduino.cc/forum/index.php?action=unread;boards=2,3,4,5,67,6,7,8,9,10,11,66,12,13,15,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,86,87,89,1;ALL

Coding Badly

Quote
NSS.. can be simplified a little bit, especially when you constrain to a few bit-rates only

Trimming the bit-rate tables will help but not by much.

There are a few spots in the SoftwareSerial source where it looks like the person who wrote it assumed the clock would be a specific rate (probably 16 MHz).  I suspect SofwareSerial can be made more reliable with less effort than trying to trim NewSoftSerial.

Quote
It can be re-written using USI

Not for me.  I need PA6 and Timer 1 for tone.

Quote
The size of the receive buffer must most likely also be reduced.

In my case, it can be eliminated!  I'm only sending for debug purposes.


Go Up