Arduino

From YobiWiki
Jump to navigation Jump to search

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

Links

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 th eprevious 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.