Let's Make Robots!

Alternate Arduino IDE

My project is getting pretty complex, and now i have started using different "voids" other than setup and loop.

Im sure i have seen people using an "alternate" IDE to the standard Arduino one.

One which lets you minimise brackets, to de clutter the work space.

Can anyone reccomend me an alternate IDE,, assuming i didnt imagine it?

are there various ones with advantages and disadvantages?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I feel like your logic jumped a bit between your first sentence and the rest of your post. How you structure your program is not really going to be affected by your IDE. Even picking a different programming language would not necessarily change the overall logical flow of your program.

Rather than drop the Arduino IDE, here are some things you can do to help keep your code clean.

  1. Think it through first. Use psuedocode, flowcharts or scribbles on a napkin to organize your code before you start writing.
  2. Use comments. Comments help you (and others) understand what your intentions are with your code. 
  3. Pick some formatting conventions and stick to them. This is your own style, and as you stick to it, your code will seem clearer, at least to you.

A couple of additional tips:

You can use Tools -> Auto Format in the Arduino IDE to help clean up your formatting a bit.

I've also seen people use comments at the close of their squiggly brackets to show exactly what loop is ending. Like so:

void loop {

blah, blah, code here;

if (variable1 == contantA) {

do this stuff

for (int i=0; i <= 255; i++){

      analogWrite(PWMpin, i);


   } // END OF FOR

} // END OF IF


Good luck.


sorry, it did a bit. I was thinking i could use an IDE with more features to help with project evolution.

I have two sections of code, contained as "voids" (i dont know the correct term for this) which i keep refering too, but they never change. If i could minimise them it would keep them out of the way, help stop me getting confused, and also help me to refrain from damaging them!


I do use comments with lines of asterixes to define code breaks at the moment


//sweep function starts********************************

void sweep(){



// sweep function ends******************************

Seems like you are doing it correctly to me. 

What you are doing is declaring a function, called sweep. When your function does not need to pass any information back to the rest of the program, it is declared with the void keyword.

If your function was going to pass back information in an interger variable, for example, it might look like this:

int myFunction(int x) {

  int result;

  result = x * 10;

  return result;


The standard setup and loop you see in Arduino code are just functions, which return no data. Therefore they are declared as type void.

Parsing out often repeated chunks of code into functions helps keep the main loop of your program clean, and saves you from repeating the same thing over and over again. 

"Parsing out often repeated chunks of code into functions helps keep the main loop of your program clean, and saves you from repeating the same thing over and over again. "


Thats pretty much where i am. I am controlling my Light following cyclops with a whole ruck of IF decisions, but in between each movement, it needs to perform a servo sweeping operation to populate an array.

Video in the making (once i have just tweeked my angle decisions)

The void keyword means that the function/procedure does not return anything.

int square(int a, int b) {
    return a * b;

The above function returns an int. Technically, anything that doesn't return a value is a procedure, and, anything that does return a value is a function. I won't complain if you call them all functions though. :)

If you are using windows, there is a new IDE for arduino that is available for Windows only at the moment. I know Geany can collapse {}'s, but, Geany won't program your chip and you will need to understand a bit more of what is going on. :)

If you get some really expansive functions, you could put them in a class by themselves and just load the class.

Our LMR fellow Jantje from Belgium is working on this one. An Eclipse Plugin for Arduino. As soon as you are on Eclipse the IDE's C++ language support will boost you.

There is a great plug-in for Arduino that is available for Microsoft Visual Studio. Visual studio is one of the best IDEs out there and the plugin is very stable.

In Visual Studio (with Arduino plugin) you can:

  • Go To Definition (F12) that lets you jump directly where your variable, object or function is defined.
  • Find all references (Shift-F12) that gives you all locations where your variable, object or function is used
  • Intellisense that gives you a dropdown list of available methods for any object. Both built in and your own.
  • Autocomplete functions so if your type while<tab><tab> your get;
                while (true)
  • With the debug option your can set breakpoint in your code and monitor values as the processor is running. This is not as good an implementation as you find in .NETMF but still beats the heck out for Serial.println(value);

The drawback is that its only available for the professional version of Visual studio (as the plugin option is only available there). But you can try it out for 90 days for free.



Try this one. Personally, I like the editor itself like other program has better function than plain original Arduino IDE. The bad part is: it's very picky on your board. I was having hard time with other clone Arduino.