New Arduino IDE

I'm trying to make my own Arduino IDE : ArduinoStudio.

Expected features:

  • All of the original Arduino IDE

  • Sketch system

  • Preprocessor

  • Uploadbutton

  • Serial monitor

  • Advanced code editor (Scintilla)

  • MDI

  • Library creation

  • PROGMEM compiler

  • Subversion

  • maybe: Debugger / Simulator based on arduemu

The IDE is in C++ using Qt framework

Please tell me what you think of this idea. Ideas and suggestions are always welcome.

Some clarification:
Sketch system
One main file, archive of sketches, easier code
Preprocessor
Easier code
Uploadbutton
Being able to upload your sketch to the Arduino
Serial monitor
...
Advanced code editor
The code editor is Scintilla. This editor allows for automatic coloring, indentation and word autocompletion.
MDI
Multiple Document Interface. Allows you to open more than one sketch but in one window.
Library creation
A special editor for libraries. Will automatically add #include "WProgram.h" and save the files in the correct format and folder.
PROGMEM compiler
A resource compiler like the resource compiler for Qt. You have an easy editor for all the data stored in PROGMEM. The compiler wil generate PROGMEM code and automatically append it to the source code.
Debugger/Simulator
It may eventually contain a simulator for trying the program. The arduemu project is still Alpha, but when it is good enough it will be included in this studio

The IDE is in C++ using Qt framework

Please tell me what you think of this idea. Ideas and suggestions are always welcome.

Will your project support all three PC operating systems that the current IDE supports?

Lefty

Yes, I use Qt because it is simple to use, free for open source and platform independent :).

I will compile the Studio for Windows and Linux, but Mac OS X is different. I don't have Mac OS X so I can't compile it. Maybe someone with Mac OS X could compile it.

Without platform interdependency, it can't be better than the current IDE.

To give an idea

There is much to be done, but it is a nice project.

Without platform interdependency, it can't be better than the current IDE.

I have many ideas for an IDE but I'm not so sure about actually doing it.

Maybe you want to become very good friends with Massimo, David C, Tom, Gianluca and David M first.

:-?

I have many ideas for an IDE but I'm not so sure about actually doing it.

Sharing is always possible.

Maybe you want to become very good friends with Massimo, David C, Tom, Gianluca and David M first.

I'll consider that. For now, I can understand a lot of their original code but it is to much work to adapt everything to C++. I'll write my own code, but inspired by their code. (preprocessor for example)

To all, thanks for those quick replies. Some forums ... aren't that quick and active.

Hmm - has anyone tried this editor with the Arduino, I wonder?

I doubt it would work completely "right outta the box" - ie, it wouldn't compile and upload - but it says that it is scriptable, so adding that wouldn't be difficult.

I just found it, and it seemed like it might be a good step in-between the current IDE and using eclipse.

:slight_smile:

IMHO the biggest issue with the Arduino IDE is that it lacks any kind of version control. Having said that, the other features are below average as well. The main advantage of Arduino are the libraries and the examples and that it works out of the box most of the time.

So whoever provides a reasonable IDE for Arduino that includes version control and works out of the box will most probably win this "market".

Udo

So whoever provides a reasonable IDE for Arduino that includes version control and works out of the box will most probably win this "market".

I'll add version control (SVN) to the list. Working out of the box is harder, but achievable.

On my wishlist:

  • preferences for command line options to compiler so you easily can e.g. enable warnings
  • copy-paste of text that works to/from other applications
  • A list of auto-replacements in the editor so that it automatically fixes e.g.:

Serail -> Serial
returb -> return
flase -> false

etc

on my wishlist:
an obvious com port and board drop down list like
|COM PORT : 3 |v| | BOARD: Aruduino Duemilanove |v| |

stick it right under the current icons...

Mowcius

  • Command line preferences

It is added to the list.

  • copy-paste of text that works to/from other applications

The editor Scintilla has that built in. (I just tested it out)

  • A list of auto-replacements in the editor so that it automatically fixes e.g.:

Because Scintilla automatically displays an auto-completion list, you won't be typing the first two words wrong. However, I will add an auto-replace list like the one found in Word.

an obvious com port and board drop down list

I'll create an upload toolbar with those lists and an upload button
[COM][V] [BOARD][V] | [UPLOAD]

Because the picture of the program is pointing to my site, it will change when a new feature is added. To give an example of how it looks like.
EDIT: You can go to dss.nl.eu.org/ArduinoStudio to view my code. Note however that it doesn't have a nice download system, just links to the individual files.

IMHO the biggest issue with the Arduino IDE is that it lacks any kind of version control.

I'm not sure that an editor should have built-in version control; instead, it should have a means to integrate with standard version control tools like Subversion and SourceSafe. That way you get the versioning capability, but you aren't locked into any single tool. Also, by using standard versioning tools, there's the ability to partition the project tree and the check-in/check-out of code; so that while the editor for the Arduino code is checking out from its area, the front-end GUI application code being developed by another developer for the same project, in say, PHP - can be checked out on its own, all versioned with the same toolset in the same versioning DB.

This is not an editor - it is an IDE for beginners. Of course an optimal solution would be to come with a default version control and the capability to integrate any other version control. Just as with the boards / programmers. There are reasonable defaults but you can extend it as you desired.

Udo

This is not an editor - it is an IDE for beginners.

Oops - when I wrote editor I meant IDE.

Of course an optimal solution would be to come with a default version control and the capability to integrate any other version control. Just as with the boards / programmers. There are reasonable defaults but you can extend it as you desired.

That would be the best of both possible worlds; I agree.

:slight_smile:

I have another request.

Can it feature highlight-and-drag moving of text. This always annoys me. You try and highlight some text to drag it to the next line and it just starts to highlight again. :o

Mowcius

I have another request.

Can you f*** off with repeating comments.

51 posts so far, all are just repeated comments not making any sense.

Why not simply integrate with one of the many already up and running ide projects?

codeblocks, eclipse, scintilla, emacs, etc.

I hate eclipse, but codeblocks is functioning pretty well in linux and windows for me. It supports templates, projects, code completion, version control, multiple compilers, etc, etc.

Why rebuild an ide from scratch every time???

Why rebuild an ide from scratch every time???

That is a good question.

The reason why I build it is because I want to learn. I learn by making a new program and solve the problems that come with it.

But of course, we are just reinventing the wheel over and over again. There are a lot of IDEs that can be modified by plugins to make them work with arduino.

I can only say this:
This IDE is designed specifically for Arduino. All extras are written to help developing for Arduino. If you want to write plugins for Code::Blocks, you have to write a project management system, preprocessor, avr compiler. The things that already exist are the codeeditor and highlighting (which you have to modify by a plugin).

I think it is easier to write your own IDE than creating plugins for other IDEs