Difference between revisions of "Arduino"

From YobiWiki
Jump to navigation Jump to search
Line 11: Line 11:
 
* [http://arduino.cc/en/Main/ArduinoBoardDiecimila Arduino Decimilia board]
 
* [http://arduino.cc/en/Main/ArduinoBoardDiecimila Arduino Decimilia board]
 
* [http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=1 Freeduino V1.16 Board]
 
* [http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=1 Freeduino V1.16 Board]
  +
* Freeduino MaxSerial
 
* HACEduino "2009"
 
* HACEduino "2009"
 
* Fino168 USB Board
 
* Fino168 USB Board

Revision as of 21:36, 8 October 2009

So after the Arduino workshop at BruCON 2009 (pics here), I was seduced by this little development board.

Links

boards & clones

Duemilanove

based on the ATmega168

  • Roboduino

Decimilia

based on the Atmega168

  • Arduino Decimilia board
  • Freeduino V1.16 Board
  • Freeduino MaxSerial
  • HACEduino "2009"
  • Fino168 USB Board
    • with a DIP switch to disable auto-reset and D13 LED
  • Duino168 Serial Board
    • with a DIP switch to disable auto-reset and D13 LED
  • Duino328 Serial Board
    • with a DIP switch to disable auto-reset and D13 LED

Arduino Pro

This is a 3.3V Arduino running the 8MHz bootloader (select 'LilyPad' within the Arduino software)

Nano

The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328 (Arduino Nano 3.0) or ATmega168 (Arduino Nano 2.x). It has more or less the same functionality of the Arduino Duemilanove, but in a different package. It lacks only a DC power jack, and works with a Mini-B USB cable instead of a standard one

Breadboardable

Note that Nano is also breadboardable...

Mega

based on the ATmega1280

54 Digital I/O Pins (of which 14 provide PWM) / 16 Analog Input Pins

  • Arduino Mega AVR ATmega1280 USB board

Officials

Documentation

Hardware

Shopping

Ethernet

Ethernet shield

LCD

  • Tutorial with LiquidCrystal library, for Hitachi HD44780 compatible LCDs

Misc links to explore

Arduino and Linux

Installation

Main instructions are here

As I'm using a Debian AMD 64bit, here is what I did:

Installing java from Sun and making sure it will be called by the tools. It might be that other java suites are working but at least java-gcj is missing a GtkLookAndFeel component that Arduino GUI is using
So if you don't have it yet:

aptitude install sun-java6-jre


Then if it's not the one by default, change it: (maybe "java" is enough but let's be consistent)

update-alternatives --config java
update-alternatives --config jar
update-alternatives --config keytool
update-alternatives --config orbd
update-alternatives --config rmid
update-alternatives --config rmiregistry
update-alternatives --config serialver

Other dependencies:

aptitude install avr-libc gcc-avr

Arduino tools, here v0017:

wget http://arduino.googlecode.com/files/arduino-0017.tgz
tar xzf arduino-0017.tgz

Arduino tools are coming only for 32bit but it contains only a few executables so let's install the 64bit version of those executables

aptitude install librxtx-java
rm arduino-0017/lib/librxtxSerial.so

There is also the avrdude binary in arduino-0017 which is compiled as 32bit executable.
You can recompile it from the source or if you have the ia32-libs package, the 32bit binary provided will work out-of-the-box.
But in any ways, DON'T USE AVRDUDE FROM YOUR DISTRO! because the one provided with the Arduino tools is a patched version.

Now let's try to launch the script arduino-0017/arduino

Tools/SerialPort/"/dev/ttyUSB0"
Tools/Board/"Arduino Diecimila, Duemilanove or Nanoe, w/ Atmega168"

Now trying the very first code:
See this tuto

Problem with the original avrdude

As I told in the previous section, don't use the avrdude coming with your distro. Initially this is what I did and here are the problems I faced:

aptitude install avrdude avrdude-doc
cd arduino-0017/hardware/tools
mv avrdude avrdude.disabled
mv avrdude.conf avrdude.conf.disabled
ln -s /usr/bin/avrdude
ln -s /etc/avrdude.conf

DON'T USE AVRDUDE FROM YOUR DISTRO! Then when trying to upload the bin to the board (menu -> Upload to I/O board), I got the following message:

Binary sketch size: 896 bytes (of a 14336 byte maximum)
avrdude: Yikes!  Invalid device signature.
       Double check connections and try again, or use -F to override this check.

Then I tried to inject the -F option to avrdude, it flashed the chip, gave me still errors:

Wrong microcontroller found. Did you select the right board in the Tools > Board menu?
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA168 is 1E 94 06

But the code was apparently correctly uploaded to the board as I got my blinking LED...

Avrdude which is part of the arduino-0017 release is a patched version as it says:

Version 5.4-arduino

While the version in Debian Squeeze is:

Version 5.8

So apparently we need absolutely to use the special arduino version.