Suggestions for improvement to the Linux IDE

I love the Arduino platform, but it definitely has some warts. Especially the Linux version. Linux is all about hackers and coders, so a large portion of the Arduino audience uses Linux. All of these criticisms are based on running the Arduino 1.0.1 IDE on Fedora 17.

Add Serial.printf()

  • printf() is a core part of a good C platform, and any good programming language
  • Having do multiple Serial.print() statements to print out some static text and then variable is a pain.
  • sprintf() is available for AVR, we just need to wrap it with the Serial object.

Automatically open serial monitor after upload

  • I commonly have the serial monitor open to look at output. Hitting upload closes the window to complete the upload. A checkbox for "open Serial monitor after upload" would really cut down having to click two icons for every upload.

Decouple the build process from the IDE

  • It would be great to have standard way to compile/upload to a board. This would allow easier use of an external text editor.
  • Vi/Emacs anyone?
  • There are some Makefiles out there that handle this, but none as clean as the IDE..

IDE support for multiple simultaneous Arduinos

  • Working on a serial project to get two Arduinos to talk via serial required me to have two IDE windows open: client and server. Whenever I would change the board or USB port for one IDE window, it would change the other. This makes it very difficult to work on a two Arduinos as the same time.
    Auto detect serial ports on the fly

  • If I load the IDE before plugging in my Arduino it won't see the serial port in the menu. The only way to get it to pick up the port is to restart the IDE.

  • Often my Arduino Leonardo will switch from /dev/ttyACM0 to /dev/ttyACM1. When this happens the IDE doesn't detect that the port has changed, and the only way to switch to /dev/ttyACM1 is to restart the IDE.

A better editor font

  • There are much better code friendly fonts that are easier to read. Can we add the ability to change the font?
  • Why are we not using anti-aliased fonts? Every modern OS uses them now.

For the first point: http://arduino.cc/forum/index.php/topic,120440.0.html

For the last point: You can change the font. Check under ~/.arduino/preferences.txt for editor.font

I use Emacs and Martin Oldfield's makefiles for edit/build.

M-x compile works fine; you get the g++ output in a separate window.

Clicking on a warning/error with a line number will take you directly to editing that line within that file, as expected.

No IDE preprocessor, so manage my own prototypes and #includes. Standard C/C++ preprocessor now works properly again; Arduino preprocessor bugs are eliminated. Both significant wins.

You can also just check the "use external editor" checkbox in the IDE preferences, which means you edit the file with any editor (vi, emacs) you like but just have to remember to save to disk before hitting the build button in the IDE. Still stuck with the Arduino IDE preprocessor and its problems, though. But at least now you can use a half-decent (or even fully decent) programmers' editor.

Erwin Ried's enhanced 1.0.1 IDE incorporates the upload and then open the serial monitor function you describe, as well as many other small refinements.

I'm only seeing one issue that's linux-specific: "The only way to get it to pick up the port [of a newly attached Arduino] is to restart the IDE." (my mac does that just fine.)

All the other complaints affect other OSes as well (and most are registered issues at the google code site.) (I'll agree that some of them might be more noticeable by linux folk, though.)

I don't like spamming but I have to do it:

I would like to totally agree with the request, the abovementioned features are the most annoying things in the IDE. I have read somewhere that if you press shift, control or something while pressing upload button you will get serial monitor autoopen but I couldn't find it later again and there seam to be no clue in the IDE menus on what should I press. So I am pressing this b...dy 'magnifying glass' after every compile thinking - what did people invent computers for.

"Linux is all about hackers and coders, so a large portion of the Arduino audience uses Linux."
And a lot of use just Windows. I'm still running Vista and am very content with it.

File:Preferences - there are check boxes for turning on Verbose output. Pretty simple.

I use Linux but I don't think I'ma a jeek or an hacker :wink:
I'm just a simple computer user :sweat_smile:

Automatically open serial monitor after upload

Even if you run a sketch that does NOT use serial communication?

Auto detect serial ports on the fly

My IDE recognizes on the fly any Arduino board I attach to the PC. I think you have some problems with your OS :wink:

Some comments about Fedora 17 and Arduino.

It works great! It's not perfect.. I haven't seen a perfect program in 45 years of computers... (and I think it's not programmers' fault, it's salesmen forcing programmers to add yet another "feature" to a good working program)

Things not perfect (yet):

1 - Some tutorials say how to add libraries (my last ones were TimeOne and SimpleTimer). In Fedora 17 , Arduino libraries are at

/usr/share/arduino/libraries

2 - Mi original Arduino Uno R1 connects thru USB with no problem. But my home made Arduino-in-a-breadboard does not. Probable cause: Some bad connection... So it's not Arduino's or Fedora's fault... :slight_smile:

As for C/C++ limitations, you cannot have the same language with an Intel I7, 4 GB of RAM, 1 TB hard disk, super-duper 21-in color monitor and on the other side, an ATmega328, 32K RAM, no hard disk and no monitor, just a few LEDs... That "limitations" are a plus if you want to fly an Arducopter (Google Code Archive - Long-term storage for Google Code Project Hosting.)...