Why would anyone make such a crippled IDE!?!?!

I'm so upset. The compiler is capable of soooooooooo much more, and yet the IDE is just so broken or crippled its just garbage! Can't set a switch, can't set an include directory. I can't even use the include directories that are already there as it appears that they are descended into which causes an exception. It is just beyond primitive!

I just spend the better part of a day trying to install a shared library and it would seem that the only way to do it is to copy the header files into the project directory. BUT since I'll be needing these same library header files in many projects, I'd have to copy them over and over again.

These header files are not trivial and they are in a hierarchical directory structure. So even if I wanted to copy them, I couldn't because the IDE copies the entire efin directory sans subdirs to some temporary directory. The design decisions are just beyond me.

I'm going to look into seeing if Eclipse can do this right. I'm so agitated right now, words can't describe! ARGH!

OMFG! I found it, the default include directory. Under /arduino-x.y.z/hardware/tools/avr/avr/include/

So pissed. :frowning:

adrian_h:
I just spend the better part of a day trying to install a shared library and it would seem that the only way to do it is to copy the header files into the project directory.

• Navigate to http://www.google.com
• Enter install arduino library
• Click search button
• First link

Besides following the directions given by CD and reading the first link which suggests you install the libraries in a specific path, there is another place you can put them: inside of your default sketch library.

My default sketch library path is inside of my DropBox folder so that I can access them both from my desktop at home, at work, or my laptop. Inside of that path, where the IDE creates individual folders for each sketch, you can create another folder titled 'libraries' and drop your libraries in there.

This has the advantage of not needing to copy them over to a new version of the IDE every time you upgrade.

Sounds like you are being used to doing software developing and need some Arduino background info.

Arduino Background info:
The IDE is written for starters. In other words people who do not know what they are doing (no knowledge of electronics or software). From a software development point of view the Arduino IDE has been crippled on purpose to avoid overwhelming the starters. Therefore experienced developers quickly get frustrated by the IDE. In the same way experienced electronics think the shields are crap (where I love them).
Don't get me wrong: I think Arduino made the correct choice.
Moreover Arduino does help others to build tools so there are some growth paths.

My advice to you: Look at the other Development Tools
If you are used to eclipse look at the open source eclipse plugin eclipse.baeyens.it
If you are used to the Microsoft tools take a look at the closed source visualmicro visualmicro.com
If you just want some extra features look at http://arduino.cc/forum/index.php/topic,118440.0.html
If you like makefiles or want to look at other options visit Arduino Playground - HomePage or the forum board http://arduino.cc/forum/index.php/board,23.0.htm
Note that most require you to get the ide running first.
So give it some time.
Best regards
Jantje

I already looked up libraries for arduino. These are very simplistic consisting of only ONE header file and ONE source file (and some example files and a keyword file). But there is nothing relating to a full blown library that has many dependent header files.

Jantje:
The IDE is written for starters. In other words people who do not know what they are doing (no knowledge of electronics or software). From a software development point of view the Arduino IDE has been crippled on purpose to avoid overwhelming the starters. Therefore experienced developers quickly get frustrated by the IDE. In the same way experienced electronics think the shields are crap (where I love them).
Don't get me wrong: I think Arduino made the correct choice.

You don't need to cripple the IDE. Just have defaults that allow it to work out of the box and have advance settings for those who want to go there. That way you don't have to irk either group.

Jantje:
Moreover Arduino does help others to build tools so there are some growth paths.

My advice to you: Look at the other Development Tools
If you are used to eclipse look at the open source eclipse plugin eclipse.baeyens.it
If you are used to the Microsoft tools take a look at the closed source visualmicro visualmicro.com
If you just want some extra features look at http://arduino.cc/forum/index.php/topic,118440.0.html
If you like makefiles or want to look at other options visit Arduino Playground - HomePage or the forum board http://arduino.cc/forum/index.php/board,23.0.htm

Thanks for the links.

I already looked up libraries for arduino. These are very simplistic consisting of only ONE header file and ONE source file (and some example files and a keyword file). But there is nothing relating to a full blown library that has many dependent header files.

Bullshit. All one has to do is look at any of the core libraries, like Ethernet or SD. Both consist of multiple source and header files, some using C and C++ together.

You don't need to cripple the IDE. Just have defaults that allow it to work out of the box and have advance settings for those who want to go there. That way you don't have to irk either group.

I wouldn't call it crippled just as I don't call my car crippled just because it's top speed is below Mach 1. Why develop functions that the target users don't need?
It sounds like you think the developers had a full blown IDE and then removed all the functions that you would like.

adrian_h:
I already looked up libraries for arduino. These are very simplistic consisting of only ONE header file and ONE source file (and some example files and a keyword file). But there is nothing relating to a full blown library that has many dependent header files.

You obviously didn't spend a whole lot of time looking around. Look at ANY of the core libraries. They have many headers and include files in them written in C/C++.

And if you don't like the IDE, no one's telling you that you MUST use it either. If you're programming Atmel AVRs, feel free to download their free development software, Atmel Studio 6.0, and go to town with that.

I can understand ranting about the IDE. I tend to not like IDE's in general, and just select the 'Use External Editor' option, and edit the source with Gnu emacs, and use the IDE just to download the image. I haven't bothered yet, to set up Makefiles, etc. and bypass the IDE, but I see people have posted the links for these.

However, the group you choose to post your rant in is for people to advertise commercial products and/or consulting gigs. I would think 'Project Guidance', 'Programming Questions', or 'Suggestions for the Arduino Project' would be more appropriate for this type of question.

MichaelMeissner:
However, the group you choose to post your rant in is for people to advertise commercial products and/or consulting gigs. I would think 'Project Guidance', 'Programming Questions', or 'Suggestions for the Arduino Project' would be more appropriate for this type of question.

I hadn't noticed the group. Makes me think..... Maybe this is a commercial stunt for the introduction of a new IDE???
Best regards
Jantje

I honestly don't understand ranting about the IDE. I am a professional programmer and as such I can see the limitations of the IDE, but I can also see the advantages in its simplicity for what is a basic device.

As far as I can see it would seem that for anyone who know enough to be aware of the limitations of the IDE, it would be trivial to find a replacement for it in less than a minute on the web so where is the issue?

I got my arduino last week, wrote a few sketches for it, then thought I wanted a better editor so used visual studio, where a plugin was available with instructions how to do it. Visual studio has a much better editor than the Arduino IDE, but it cost 40 times more than the whole arduino UNO to buy. Having said that, I still use the arduino IDE as it works for me.

and then to mention eclipse as a decent IDE... :smiley:

woodinblack:
As far as I can see it would seem that for anyone who know enough to be aware of the limitations of the IDE, it would be trivial to find a replacement for it in less than a minute on the web so where is the issue?

It is not all that easy to setup a working environment (build upload hardware). If it were easy Arduino would not be the success it is. The Arduino core team spend time and energy to make it simple and easy. I think they made the right decision.

The fact that it is trivial to find a replacement is only true because people like me have spend their own time, energy and money in making these alternatives. All of the alternatives took at least several months of dedicated intensive work to develop. Then there was writing documentation and giving support.
About a year ago setting up an alternative could have cost you days of work to come to a solution which was not half as good as what you get now in minutes.
Think about this when you are trying to ignore a donation request 8)

best regards
jantje

Jantje:
It is not all that easy to setup a working environment (build upload hardware). If it were easy Arduino would not be the success it is. The Arduino core team spend time and energy to make it simple and easy. I think they made the right decision.

The fact that it is trivial to find a replacement is only true because people like me have spend their own time, energy and money in making these alternatives.

Yes, that is my point. People have already spent their own time and energy to produce these things and made easy to follow guides on how to set them up and put them on the web.
To know enough you needed something better and not to be able to spend a minute in google finding it seems a little odd to me.

MichaelMeissner:
However, the group you choose to post your rant in is for people to advertise commercial products and/or consulting gigs. I would think 'Project Guidance', 'Programming Questions', or 'Suggestions for the Arduino Project' would be more appropriate for this type of question.

Bar Sport.

How many files should a library need for programs to fit and run on a freaking MCU?

Honestly, some people just can't search:

http://www.arduinodev.com/codeblocks/

CodeBlocks Arduino IDE is a customized distribution of the open-source Code::Blocks IDE enhanced for Arduino development. It provides more demanding software developers with everything a modern IDE should have including code foldering, code completion, code navgiation, compiling as well as uploading for Arduino. With a dedicated project wizard, it’s easy create a ready-to-go Arduino project. The distribution integrates latest Arduino core files, standard Arduino libraries, AVR toolchain, Arduino Builder, a serial terminal and most interesting, an API-level Arduino simulator (under development).

Features:

dedicated project wizard for Arduino development
integrated Arduino core files and libraries
compiled core files cached for faster compiling speed (comparing to original Arduino IDE)
integrated pre-configured AVR compiler toolchain
popular Arduino boards supported as build targets
uploading HEX to Arduino boards (Leonardo supported) by running the built target
Arduino API-level simulator (very early stage) integrated (as a build target)

GoForSmoke:
How many files should a library need for programs to fit and run on a freaking MCU?

Honestly, some people just can't search:

CodeBlocks Arduino IDE | ArduinoDev.com

WOW. Something useful actually came out of this thread. That IDE looks interesting, i'll have to check it out.

Adrian, yes libraries can be very difficult. Here is a link to our Simulator for Arduino http://www.virtronics.com.au/Simulator-for-Arduino.html

With libraries, we have a subfolder call Libraries where there are some sample libraries. There is also the AVR folder as a subfolder since there are many AVR/file.h includes. On the forum, someone recently asked for the <AVR/wdt.h> library to use the wdt_enable() function. This one header file imports another half dozen header f

Adrian, yes libraries can be very difficult. Here is a link to our Simulator for Arduino http://www.virtronics.com.au/Simulator-for-Arduino.html

In the Simulator, with libraries, we have a subfolder call Libraries where there are some sample libraries. There is also the AVR folder copied as a subfolder since there are AVR/file.h includes are very common. On the forum, someone recently asked for the <AVR/wdt.h> library to use the wdt_enable() function. This one header file imports another half dozen header files and the wdt_enable() function is actually a ten line macro.

Apart from the library issue, how do you find the Codeblocks IDE? The Simulator seemed a bit limited but very functional for what was there.

With the Arduino IDE, the run as Administrator can be annoying (ie crashes unless run as an administrator) and can be very slow on an old computer. Looking forward to the official 1.5 release which will have all Arduino boards including the Due which is really good.

Frankly speaking, I don't like the Arduino IDE for similar reasons. I am just using it since it is simple. If you are developing mainly the physical computing with sensors, Arduino IDE may be all you need since you will focus on hardware and just use a few lines of code to make hardware work with each other. Last year I made a smart track that can tell where the cart is on the track, using 3 force gauges. The hardware aspect took most of my time and some intro physics problem solving. But the software side could seriously be done in 5 lines of code, sense force gauges 1,2,3, performing calculation for position x, print to serial. If you are developing mainly the software aspect, say writing classes and libraries, you are better off with other IDEs. But have in mind that your library users WILL use Arduino IDE so make sure you have the extra stuff. I've tried to set up an Arduino emulator with dev C++ IDE, which uses gcc. It was hard work and I forget how to set it up easily. I was able to set up my interactive menu library and LCD on it. It's nice to have memory faults and break points on a PC. If you are not coding for Arduino extensively or professionally, save your time.