Hi!
On my computer with Windows 7 installed, everything with my Arduino Uno works fine, I can upload programs with the IDE just as expected, so I think it's at least not broken.
But on my notebook with Fedora Linux it's not working. I am using Fedora 16 with the Arduino packages from the rawhide branch [1] according to this [2] howto.
The loopback-test with pins 0 and 1 connected together worked well with a serial monitor. I have also uploaded a simple echo sketch with Windows and successfully connected with a serial monitor and it worked. The device file exists, it belongs to the group dialout which I am part of, so this should be ok.
I also have a Duemilanove clone from Itead Studio which is just working fine with Linux.
Here is the output when I try to upload with the IDE:
(Saying Error opening serial port '/dev/ttyACM0' in red over the console output)
Binary sketch size: 1036 bytes (of a 32256 byte maximum)
processing.app.SerialException: Error opening serial port '/dev/ttyACM0'.
at processing.app.Serial.<init>(Serial.java:146)
at processing.app.Serial.<init>(Serial.java:76)
at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:75)
at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:88)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:66)
at processing.app.Sketch.upload(Sketch.java:1664)
at processing.app.Sketch.exportApplet(Sketch.java:1624)
at processing.app.Sketch.exportApplet(Sketch.java:1578)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2341)
at java.lang.Thread.run(Thread.java:679)
Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:212)
at processing.app.Serial.<init>(Serial.java:136)
... 9 more
processing.app.debug.RunnerException: Error opening serial port '/dev/ttyACM0'.
at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:99)
at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:88)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:66)
at processing.app.Sketch.upload(Sketch.java:1664)
at processing.app.Sketch.exportApplet(Sketch.java:1624)
at processing.app.Sketch.exportApplet(Sketch.java:1578)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2341)
at java.lang.Thread.run(Thread.java:679)
When I try to upload a simple blink sketch with the Eclipse Arduino Plugin [3] avrdude throws this error message:
Launching /usr/bin/avrdude -patmega328p -carduino -P/dev/ttyACM0 -b115200 -Uflash:w:blinktest.hex:a
Output:
avrdude: stk500_recv(): programmer is not responding
avrdude done. Thank you.
avrdude finished
Here is the related output of dmesg:
[23554.160119] usb 6-2: new full-speed USB device number 5 using uhci_hcd
[23554.343360] usb 6-2: New USB device found, idVendor=2341, idProduct=0001
[23554.343370] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[23554.343377] usb 6-2: Product: Arduino Uno
[23554.343382] usb 6-2: Manufacturer: Arduino (www.arduino.cc)
[23554.343387] usb 6-2: SerialNumber: 64935343733351603172
[23554.345519] cdc_acm 6-2:1.0: ttyACM0: USB ACM device
Does really nobody have an Idea about this?
I don't think the Uno is dead because it's working with Windows. And I am able to program this Duemilanove-Clone under Linux...
...and check you have the proper permissions set in your user to access it. About a third of the way down this page, it shows what user groups you need. http://arduino.cc/playground/Linux/Fedora
I am now also a member of the uucp group but nothing changed. I was already in the dialout and lock group.
These are the permissions, they should be ok:
ls -lh /dev/ttyACM0
crw-rw----. 1 root dialout 166, 0 19. Feb 21:39 /dev/ttyACM0
The error message in the Arduino IDE remains the same.
from the folder I copied blink.cpp.hex to (which is basically the same thing the Eclipse-Plugin does) the RX-LED flashes a couple of time but then nothing else happens.
Then after a couple of seconds I get this error message:
avrdude: stk500_recv(): programmer is not responding
avrdude done. Thank you.
Saying Error opening serial port '/dev/ttyACM0' in red over the console output
Are you sure the Arduino board is identified by /dev/ttyACM0 ? On my Ubuntu PCs (different versions) the serial port is always listed as /dev/ttyUSBx, where x can be 0, 1, etc.
This is what I see if I run dmesg right after pluggin in an Arduino in my laptop:
[235444.328124] usb 4-2: new full speed USB device number 11 using ohci_hcd
[235444.512305] ftdi_sio 4-2:1.0: FTDI USB Serial Device converter detected
[235444.512374] usb 4-2: Detected FT232RL
[235444.512381] usb 4-2: Number of endpoints 2
[235444.512386] usb 4-2: Endpoint 1 MaxPacketSize 64
[235444.512392] usb 4-2: Endpoint 2 MaxPacketSize 64
[235444.512396] usb 4-2: Setting MaxPacketSize 64
[235444.516473] usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB0
FYI:
uname -a
Linux (hostname removed) 3.0.0-15-generic #26-Ubuntu SMP Fri Jan 20 17:23:00 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
HTH
(edit: after posting my comment, I realized I skipped a really important part of the OP's post... Sorry!)
Yes, I am sure. As you have messages saying FTDI in your output I think you might not be using an Uno, are you?
As far as I know the pre-Uno Arduinos with the FTDI chip get the device file /dev/ttyUSBx and the newer ones with the 8u2 or 16u2 are filed under /dev/ttyACMx.
uname -a:
Linux xxx 3.2.6-3.fc16.x86_64 #1 SMP Mon Feb 13 20:35:42 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
I saw this right after I have sent the post
The best would be if someone here was using Fedora Linux to test it, so I added it to the thred title. I hope someone will see it
Are you using the RXTX that came with the Arduino software? Or one from your distribution? By default, the RXTX software doesn't look for ACM* devices, so the one that comes with Arduino was specially modified so it does.
You might also trying symlinking /dev/ttyUSB0 to /dev/ttyACM0.
Actually, I don't know which one I am using. I just installed the arduino packages with yum, so I would rather think I'm using those from the distribution.... How can I find this out?
I hardlinked /dev/ttyACM0 to /dev/ttyUSB0 but still get the same error message from the Arduino IDE.
But I also checked it with Eclipse, which simply calls "/usr/bin/avrdude -patmega328p -carduino -P/dev/ttyACM0 -b115200 -Uflash:w:test.hex:a" for upload and it worked. What I found a bit weird is that it's now working for ttyUSB0 and ttyACM0 within Eclipse. And I was definitely unable to upload with it when I created the thread...
Correction: Damn, now it's not working again with directly calling avrdude...
Same project, same .hex-file, same USB-Port, just a couple of minutes later. What's wrong there?