New Arduino Pro IDE: A closer look
Last weekend we announced that we’re working on the new Arduino Pro IDE and we got a huge response! Let’s take a deeper look at what is in store.
Here are the choices you have to develop code from Arduino today — some you might know, others you might not — and how they paved the way for a brand new IDE.
The quickest way to get started developing for Arduino today.
A simple, modern web app version of the Arduino IDE — with boards and libraries available without needing an install. Just open your web browser, head to create.arduino.cc/editor to get started.
In the creation of the new Arduino Pro IDE, we chose to build on the Theia framework. As Theia is based on Electron, using web technologies, it allows us to unify the front-end development work and user experience between the web-based Arduino Create and the Arduino Pro IDE desktop application. Magic!
Designed for power users; everything you need from the command line.
Arduino CLI is a single binary command line solution that provides builder, boards/library manager, uploader, discovery and many other tools needed to use any Arduino compatible board and platforms. You can include this in Makefiles or use it to add Arduino support to whatever development flow you prefer. Whether you use Atom, Eclipse, Emacs, Vim, VSCode, or are even building your own tools, Arduino CLI makes this possible. You can try it today at arduino-cli.
Arduino CLI is already hard at work in the backend of Arduino Create enabling day-to-day development for over one million users. The daemon mode support and gRPC interface means the User Interface doesn’t even need to be running on the same machine as the Arduino CLI — this opens the potential for remote build and deploy to Linux machines such as Raspberry Pi. Third party boards are also supported today through a configuration file. The backend of Arduino Pro IDE is also based on Arduino CLI, naturally.
A simple classic.
The simplicity of the classic Arduino IDE has made it one of the most popular in the world — with over 15 millions downloads per year. If you want to develop code for Arduino and prefer not to use the online tool Arduino Create you can get started today by downloading the classic Arduino IDE application.
We felt it was very important to maintain continuity with this look and feel in the Arduino Pro IDE. For this reason it has a mode identical to the classic Arduino IDE that millions of you are familiar with — the difference being if you want advanced mode, you have that too!
Arduino Pro IDE
More features for advanced users (still in development).
Which brings us the upcoming Arduino Pro IDE! This is a product still in development, but we’ve opened up the alpha binary so early users can try it out and give feedback – the source code will be released at a later date. Because it is not yet ready for production release you must expect bugs and unimplemented features. (If you just want to get your Arduino project running, we’d recommend Arduino Create or the classic Arduino IDE for now.)
However, if you want to be the first to try it and give us feedback to help shape the product as we develop it, please give it a try! The preview is already available for Windows, Linux and Mac OSX.
Initial feature list
- Dual Mode; Classic Arduino look and Pro (File System view)
- The tool only reveals advanced features when you need them
- Modern fully featured development environment
- Modern look, multi-panel IDE with integrated file system view
- Designed for developing larger, multi-file, repository-based projects
- Debugger coming soon!
- Set breakpoints, view trace, step through execution and much more
- Debug your application without affecting timing with a Serial.print()
- Open to third party plug-ins and boards coming soon!
- Add third party boards, libraries and IDE function plug-ins
- Support for additional languages other than C++ coming soon!
- Exactly what it says, and it’s going to be exciting!
- New Board Manager, Library Manager and Serial Monitor
- All the features you expect in a cleaner more modern environment
- Basic Auto Completion (Arm targets only)
- Git Integration
- Dark Mode
- Easier on the eyes
That’s all for now
We’ve been working to improve our tools and give the community choices that fit their way of working – be that web-based, desktop application or command-line. The Arduino Pro IDE builds on these to bring something new — we’re excited to share the alpha preview with you and look forward to your feedback!
October 25th, 2019 at 19:11:31
congrats on the release. for the new pro IDE alpha, is there (or what is) the process to add 3rd party boards? we can try that out to test it. if it’s not going to be supported that is fine, we just want to know what to suggest to people and what to expect. same for CREATE.
October 25th, 2019 at 23:26:03
I ave downloaded the 0.2 Beta version for linux–how do I launch the editor?
October 26th, 2019 at 02:56:34
I like the look of the dark editor theme, thanks.
I went to Settings/Preferences and then Editor settings. There are 105 JSON value pairs, organized alphabetically. This is very confusing because there is no logical grouping or categories and reading through all the pairs is very difficult. For preference categories with only a few entries, it is not too bad but still lacks grouping.
Anxiously awaiting final release…
October 26th, 2019 at 19:17:47
Will the IDE have a Vim emulation mode?
October 27th, 2019 at 13:20:34
I’d really rather see official support for open source code editors than this. Waste of time and money, IMHO.
October 27th, 2019 at 18:24:15
Using nodejs, electron and Monaco editor from Microsoft, what bad can happen?, Congratulations for Arduino ????
October 27th, 2019 at 20:57:45
Reference link appears to not be working any longer (10/27/2019)
October 27th, 2019 at 22:06:10
I think the website is broken, this seems to be the only link that works, sure wish I could figure out how to download the regular ide
October 28th, 2019 at 05:29:26
Very exciting features! Hope you also add auto-complete for non-ARM targets too in the future.
October 28th, 2019 at 15:55:54
@adafruit it’s already possible, you just need to edit a file. BTW you can just email me instead of posting everywhere 🙂
@bulldog4 Well this is a Pro IDE, people have always asked for more ways to customise their IDE. we have given then 105 (for now) , this is similar to what is happening with VSCODE etc
@dkudriavtsev not sure, but we’re happy to receive pull requests when the code will be out.
@micalm We make Open Source IDEs so I don’t really understand what you mean 🙂
@walter2013 These are mainstream technologies (minus the extensive MSFT telemetry) so I don’t see the problem 🙂
@jsaneill which link? I tested them and they all seem to work.
@Antzy Autocomplete works on every target. Debugging will be limited to ARM targets.
October 29th, 2019 at 15:55:33
0.0.2-alpha.preview-windows, windows 8.1 64bit, arduino leonardo.Serial Monitor shows incorrect values.
November 6th, 2019 at 13:29:08
November 21st, 2019 at 00:18:01
The version is good but there are some bugs you have to fix.
When the arduino board is not recognized by the IDE, when searching in the search when I am typing ex Arduino UNO, below comes the board but what I am typing is blank.
There is the option preference error, after opening it in the tab, it no longer closes even using the command (CTRL +,).
This version has no sample options.
It should have an option to choose language.
When I open the program, below it shows error (An unexpected error occurred when locating the Git executable.).
December 11th, 2019 at 15:53:30
Hi I’ve just had a quick look at Alpha 0.0.3 (on Win10 1903) and it’s starting to look a bit like a professional IDE.
Workspaces seem to need a lot of work – I ended up getting new sketch directories nested about 3 deep. Not clear exactly how they are intended to be used as adding sub directories (on of the advantages highlighted) just results in the compilation failing, firstly if there is no .ino file (just a .cpp) or after renaming as .ino fails linking because no setup function – that is in the .ino file in the top level directory. This obviously doesn’t do what I expected 🙁
One thing I have looked for but can’t see (may just be on you roadmap) but that I would consider very important is the ability to in stall multiple versions of a library and associate a specific library version with a project. This would mean that when a new API breaking version of a library is released, it would not be necessary to immediately update all existing projects to the new API (which may be very hard) A specific example is the ArduinoJSON library which introduced breaking changes at version 6 (I thinkl), I have an existing project written by someone else that uses the old Version 5 API. I need to get that version working reliably before I can even look at updating to the new API.