Problems with 0021 on Ubuntu 10.04 Lucid Lynx

Just installed the updated 8u2 firmware on my mega2560, and it runs like a charm now...

I even removed the 4 second delay on Serial.begin in my code, and the IDE still can program the mega. (I run Linux, IDE v0021)

In case anyone wonders, if you follow

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10

wire 2 on the mega2560 needs to contact the left side of the capacitor immediately above the two pads labelled RESET-EN. This in just above the righthand of the two 47uF capacitors, not in the centre as shown on the Uno. You know if the 8u2 is ready to program if it does not appear as ID 2340:0010 when you run lsusb - it appears under an Atmel ID

Also, if you have the problem of ttyACM0 not appearing in the serial port list, you can make ttyS7 be a symlink to it, and then it works...

I automated it in /etc/udev/rules.d/55-odd.rules

KERNEL=="ttyACM0", SYMLINK+="ttyS7"

Now I can get on using the mega2560 under Linux :sunglasses:

Did you try running the windows version along side WINE.

MakerMann

No, I don't use WINE for the Arduino software - I use the arduino-0021.tgz to get the IDE.

Please remember if you want to use the mega2560, you also need the patched version of avr-gcc. Not sure if the windows software includes the patch. On linux you have to build avr-gcc yourself (or find a pre-compiled copy somewhere)

wombat42,

got it also working on my mega2560 after some trouble:

  • on my debian in standard repository was only dfu-programmer Version 0.4.3. The at90usb82 device was not recognized (dfu-programmer: no device present) , although the device is listed when dfu-programmer is called with no options.
  • upgraded to dfu-programmer 0.5.2 from source
    reference: Der Vergleiche zu Elektro Geräten - die besten Modelle 2020!
svn co https://dfu-programmer.svn.sourceforge.net/svnroot/dfu-programmer dfu-programmer
cd dfu-programmer/trunk/dfu-programmer/
./bootstrap.sh
./configure
make
sudo make install
  • dfu-programmer now recognizes the at90usb82
  • erased with no error message
  • when trying to flash got the message: Something went wrong with creating the memory image
  • after some time of troubleshooting I found that the downloaded .hex file was wrong. I don't know why, but it was not possible to download the raw file with epiphany
  • downloaded the .hex file with wget, flashed it and it works perfectly.
    :slight_smile: Reinhard

w00t! Thank you stimmer! ;D
I 'bricked' my Uno with one of those example sketches and, following your instructions, I managed to upload the new firmware! :smiley:

The fixed firmwares are now in the latest release of the IDE. So anyone having trouble downloading them from the git repository website should download the 0022 IDE and look in the arduino-0022/hardware/arduino/firmwares/arduino-usbserial directory, the firmwares are in there.

Updating the 8u2 firmware as per post #34 has fixed the problems I was having with the OneWire library not working on my Uno :slight_smile:

I have the same problems with serial.println in linux.
Can anybody translate post 34 for someone who has about 40 flight hours with Linux. It is not very clear what I need to do.

Regards

i tried flashing like in post #34

actualy twice but it still behaves like before, unable to upload anything to arduino uno.
checksum of Arduino-usbserial-uno.hex is 8e01ee236e70bbea43f7eb4e11c9688a

this is how i did it with messages from my system opensuse 11.3

sudo dfu-programmer at90usb82 erase

sudo dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex
Validating...
4058 bytes used (99.07%)

sudo dfu-programmer at90usb82 reset

Vega 77

One quick check - did you unplug the uno after you reflashed it? On my mega2560 it didn't go back to the normal USB ID until I did this

When you've replugged it, what does lsusb report?

yes i did unplugg it both times

lsusb:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0951:1606 Kingston Technology
Bus 001 Device 004: ID 05e3:0505 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 2341:0001
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

OK, good news - 2341:0001 is an arduino uno or mega2560, so the flash has worked

Now the 8u2 based arduini use the USB modem driver, not the FTDI serial. Run dmesg just after you plug in the uno, and you should see something like

usb 3-1.2: new full speed USB device using uhci_hcd and address 18
cdc_acm 3-1.2:1.0: ttyACM0: USB ACM device

and /dev/ttyACM0 should now exist. If the acm line is missing, run lsmod and look for cdc_acm (the modem driver). If it's not present, you need to build the USB modem driver in your kernel. Try

modprobe -v cdc_acm

anyway, just to check if you have the modules.

One other possibility is the java serial library not looking for ttyACM devices. See reply #56 to make /dev/ttyS7 a symlink to /dev/ttyACM0
In the IDE, with the uno plugged in, what serial ports does it offer you?

I had failures due to a run-away avrdude. Shut down the IDE, and run

ps -ax | fgrep avrdude

Kill all the avrdudes you see, and restart the IDE. Now check the serial ports, and that you've set the board type to Uno. Upload might now work :slight_smile:

Good luck

i tried your tips on two diffrent pc's.
And i'm much closer now. Thx man !
one with opensuse 11.2 and one with opensuse 11.3

opensuse 11.3:
had to make a symlink to ttyS8 like this:
ln -s /dev/ttyACM0 /dev/ttyS8
was able tl select a com port then.
But i get this message:
Binary sketch size: 450 bytes (of a 32256 byte maximum)
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

opensuse 11.2:
no symlink needed, but i needed to rub arduino as root.
but i get this error:
avrdude: stk500_recv(): programmer is not responding

Reply #34 fixed this for me too. Uno board running 32bit Ubuntu 9.10 Karmic.

Sooo glad I found this thread as I realised that my serial output was blocking upload of new sketch. Had to register on the forum first to be able to access the explanation about grounding pins, but that's great as I wanted to join.

Have now completed my first robot, based on my kid's old "Wacky Wiggler" toy. One motor and one servo, two contact switches. Basic obstacle avoidance. Now working and uploaded sketch, thanks again!!!

fired up an old pc and installed winxp today>:(
Worked fine to upload sketches then so my arudino uno is working fine.
probably try ubuntu again later on.
For now i will play with my arudino :slight_smile:

In case it helps anyone: I just updated a few more mega2560, and I noted the USB IDs.

If you have succeeded in entering DFU mode, lsusb will report
03eb:2ff7 Atmel Corp

(Note you do not need to unplug and reconnect to enter DFU, indeed doing so will revert to normal IDs !)

Once flashed, unplugged and reconnected, the mega2560 is

2341:0010

Earlier messages suggest that the Uno is

2341:0001

HTH :sunglasses:

got it also working on my mega2560 after some trouble:

  • on my debian in standard repository was only dfu-programmer Version 0.4.3. The at90usb82 device was not recognized (dfu-programmer: no device present) , although the device is listed when dfu-programmer is called with no options.
  • upgraded to dfu-programmer 0.5.2 from source
    reference: [removed - see original post]
    Code:

svn co [removed - see original post]
/dfu-programmer dfu-programmer
cd dfu-programmer/trunk/dfu-programmer/
./bootstrap.sh
./configure
make
sudo make install

  • dfu-programmer now recognizes the at90usb82
  • erased with no error message
  • when trying to flash got the message: Something went wrong with creating the memory image
  • after some time of troubleshooting I found that the downloaded .hex file was wrong. I don't know why, but it was not possible to download the raw file with epiphany
  • downloaded the .hex file with wget, flashed it and it works perfectly.
    Smiley Reinhard

I'm using an Uno with Ubuntu 10.04. The USB IDs indicate normal and DFU modes.

I'm experiencing this same problem with dfu-programmer not recognizing the device. I tried downloading the SVN code for v0.5.2 but when I run make, it fails. From the best I can tell, it is not finding usb.h in the src/ directory.

Any ideas? The output of make is below:

jmazikowski@maz-notebook:~/dfu-programmer/trunk/dfu-programmer$ make
make  all-recursive
make[1]: Entering directory `/home/jmazikowski/dfu-programmer/trunk/dfu-programmer'
Making all in src
make[2]: Entering directory `/home/jmazikowski/dfu-programmer/trunk/dfu-programmer/src'
gcc -DHAVE_CONFIG_H -I. -I..    -Wall -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
main.c:29:17: error: usb.h: No such file or directory
main.c: In function 'main':
main.c:62: warning: implicit declaration of function 'usb_init'
main.c:81: warning: implicit declaration of function 'usb_set_debug'
main.c:110: warning: implicit declaration of function 'usb_release_interface'
main.c:123: warning: implicit declaration of function 'usb_close'
make[2]: *** [main.o] Error 1
make[2]: Leaving directory `/home/jmazikowski/dfu-programmer/trunk/dfu-programmer/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jmazikowski/dfu-programmer/trunk/dfu-programmer'
make: *** [all] Error 2
jmazikowski@maz-notebook:~/dfu-programmer/trunk/dfu-programmer$

Problem solved. Installed libusb-dev (sudo apt-get install libusb-dev) and dfu-programmer v0.5.2 compiled just fine. Flashed the firmware and the serial monitor is working like a charm!

I was having the same issue. Post #34 worked like a charm on Ubuntu x64 10.10. Thanks!