Just got my Arduino Mega 2560 R3. Was able to load Blink and play with updating it to change the frequency of the blink etc. Moved on to a sketch with Serial.Write... Now I CAN upload from Windows but CANNOT from my Ubuntu box where I really need to work.
Any ideas on what to do to get uploading working on Ubuntu?
Arduino 1.0.1 on Ubuntu 12.04.1
Log from Arduino Window:
Binary sketch size: 1,624 bytes (of a 258,048 byte maximum)
Binary sketch size: 1,624 bytes (of a 258,048 byte maximum)
processing.app.SerialException: Error opening serial port '/dev/ttyACM0'.
at processing.app.Serial.(Serial.java:178)
at processing.app.Serial.(Serial.java:77)
at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:77)
at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:172)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
at processing.app.Sketch.upload(Sketch.java:1706)
at processing.app.Sketch.exportApplet(Sketch.java:1662)
at processing.app.Sketch.exportApplet(Sketch.java:1634)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2346)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2355)
at java.lang.Thread.run(Thread.java:679)
Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:213)
at processing.app.Serial.(Serial.java:163)
... 10 more
processing.app.debug.RunnerException: Error opening serial port '/dev/ttyACM0'.
at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:101)
at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:172)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
at processing.app.Sketch.upload(Sketch.java:1706)
at processing.app.Sketch.exportApplet(Sketch.java:1662)
at processing.app.Sketch.exportApplet(Sketch.java:1634)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2346)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2355)
at java.lang.Thread.run(Thread.java:679)
Device is created:
ls -la /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Oct 7 20:55 /dev/ttyACM0
have access:
groups | grep -o '\bdialout\b'
dialout
Communicating with Arduino: the following causes the Rx diod to flicker indicating it's getting a signal
echo ciao > /dev/ttyACM0
When I try to upload a script a file gets created:LCK..ttyACM0. I can delete this file but can't upload.
Are you using the IDE downloaded from the Arduino site or the Ubuntu repository? If the latter, try downloading and running the version from the Arduino site. It is working well here. The repository version did not work that well.
Download and unpack it into a local directory, and run the arduino shell script in that directory to run the new version.
I tried the re=istall - nothing
I tried the access the user to the port - nothing.
Then
"
I am not sure if I have any better advise than SurferTim. The only crazy longshot is open your Arduino IDE, go to File->Preferences then click on path hyperlink to preference.txt file near the bottom of the preferences window. Open and view the preference.txt file and find "serial.debug_rate". Verify that it is set to 9600."
Neither of my Ubuntu installs have that baud rate. If you installed the version from your repository, maybe that is where it picked up the bad preferences.txt file?
Both my installs show:
serial.debug_rate=9600
Dear all, I had the same problem with the Ubuntu repository IDE and tried to fix the issue by changing the baud to 9600 in Preferences.txt. It seems however that each time I restart the IDE or upload a sketch Preferences.txt is changed by arduino again to a value of 38440. I tried to change the owner to root in order to avoid arduino from changing it, but it cannot start if it has no access to Preferences.txt.
The 1.0.2 IDE from the site works fine and does not modify that value in Preferences.
Download the Software to Downloads
Then open up terminal and type :
cd Downloads
then,
tar xzvf arduino-1.0.5-linux64.tgz
then,
cd arduino-1.0.5
plug in your Arduino (even UNO and Mega)
then type,
sudo ./arduino
this gives reply
[sudo] password for yourusername:
type in the password
This loads Arduino IDE with Serial Port problem resolved
There is another way:
After installing Arduino IDE, plug in your Arduino, open up terminal and type
sudo arduino
This too solves the problem
I know this is an old thread, but I recently had this issue on an Ubuntu laptop and found that my preferences.txt indeed had a baud rate other than 9600. From my reading (I can't find the link now) I found that this is due to the bootloader's baud rate. Some versions of the bootloader use a baud rate other than 9600. That is the reason for the IDE installing with an odd baud rate.
The reason that running the IDE as an administrator works is because on linux, even if your user is part of the dialout group, the user is not allowed to change the port settings. However, the IDE will try to change the baud to another rate when it knows that the boot loader requires it. As an admin (sudo) you are able to change the port, but not otherwise.
Thus, I changed the baud rate in my preferences.txt and all is well. No need for sudo.
Another possible reason for it it is closing serial monitor at a baud rate different than 9600, closing the ide and re-open the ide. The serial monitor will give an exception, upload will fail and "serial port" in the menu will be greyed out.
The solution it's to file->preferences->more preferences in arduino.txt , click the link , close the ide, and edit serial.debug _rate to "serial.debug_rate=9600"
Re open the ide, all should work again!