Help on Ubuntu 9.04 Server

Hello. I've just setup an Ubuntu web server as I'll be using my Arduino with PHP. I'm having a lot of trouble getting the software working on Ubuntu. This is the command line version, I have not installed a GUI and do not intend to.

I have followed lots of instructions for getting the software on Ubuntu but getting errors when running the command "make upload"

I would appreciate it if someone could detail a step by step install from scratch. I'm OK in Linux but not great, but I can follow instructions.

The error that I'm getting seems to be involved with setting MCU - atmega328 - it doesn't seem to be recognised. I also had to edit the makefile quite a bit to get it pointing correctly to avrdude and avr-gcc


Let me know if you need any other info.

You've read to start, right?

Start from the known and work to the unknown. Can you even get a serial connection to the Arduino? if so, work from there.

Yes I have read that - it's primarily aimed at a GUI version.

I've essentially done this:

I used the Arduino 0011 files - but hte Makefile reference a whole heap of stuff that wasn't there - so i got Arduino 0015 which seemed to have all the files. So in the make file for 0011 I pointed some paths to 0015. But I am only getting so far.... very frustrating.

When I run "make" in the folder with my sketch, it seems to go OK - but when I then run "make upload" it falls over - seems to be that the code doesn't recognise the MCU parameter "atmega328"

Try using atmega328p as the MCU parameter. That's what is specified in the boards.txt for the Arduino Duemilanove w/ ATmega328 option.



Sorry, I did use atmega328p - originally I tried atmega328 and that failed just on running "make" - changed it to atmega328p and make ran ok, but now fails on make upload

Maybe if you post your Makefile and the error messages you're getting someone here will be able to help you more.

It is pretty easy to get the Makefile setup so it finds all the right files:

The Makefile will have to be tweaked for any additional libraries you want to link with, and you will have to build any extra libraries yourself with a separate target. But for the basic "flash the LED" example it should just work. You may have had to have run the IDE once to get the core libs built...?

If this is really abut the MCU type, then it sounds like a simple problem: avrdude is finding a config file that does not have the right entry. You want to make sure you use the -C option passed to avrdude. Then, you make sure that this avrdude.conf file you pass in actualy has a reference section for the ath ATMega328p.

Finally, avrdude tries to guess what you mean when you pass in an MCU it does not understand. You really want the correct ID, which in this case is "m328p." avrdude will use a case-insensitive search on the description it finds in the avrdude.conf it knows about. So we don't want to let avrdude just find the default avrdude.conf -- we want to specify the exact location. Check that you don't have a local avrdude.conf in your home directory, either. Both of these might be outdated with respect to the recent upgrade to the 328.

So, make sure that avrdude is passed the correct avrdude.conf -- one that has been updated for the ATMega328 Arduinos -- and that has an ID of "m328p" with a description of "ATMEGA328P".

Sort this out first before trying to figure out anything else. Satisfy yourself that the command is being run correctly, and that the command is using the data that it needs to talk to the newer Arduinos.