The Arduino IDE from arduino.cc is simple a good for hobbyists who are starting in the Arduino world and for people who want to continue to play around. But as an software developer, I found myself yearning for more, like content assist and source control and such.
CDT is a natural for Arduino, at least once you realize that the Processing environment is almost C++ and once you give into the dark side, you can use all the goodness that comes with CDT for it.
So this work is aimed at hobbyists who want to use a professional environment and get into the world of Eclipse. Once their, they'll discover that Eclipse is a great IDE for IoT that lets you program everything from your Arduino, to cloud services, to web and mobile clients.
The Arduino CDT provides a new project wizard to set things up. It generates a Makefile that is used to build and download the binary to the board. It provides a IRemoteConnection type to hook up to the serial monitor to interact over the UART. As a bonus, that gives us a target for the LaunchBar so you can use the Run button to download and start the application.
Note there is no debugger for Arduino so the serial monitor is all you got.
With Mars, we shipped a simplified version of the end product. It only supports the Uno, but lets us demo the CDT integration. One of the cool things the Arduino team has done is provide metadata files and independent downloads of the tools and libraries so we can actually set up our own environment. And with that, we can get rid of the hard coding. Here's the items we need to finish.
Since more and more boards are getting added, I should generate the Makefiles for each board. All the information should be in the *.txt files under hardware/** directories.
We need to implement a builder to create the necessary directories, generate the makefile, and then call make. We should be able to extend the external builder to do that.
Boards and Library Manager
The Arduino IDE offers Managers to download new hardware files for boards and new library files to program different devices. We should offer the same.
Things not on the plan at the moment
The arduino.cc IDE has the ability to burn bootloaders. Not sure how common that feature is used so we'll leave it for later (if at all). If you need to burn your bootloader, you can still install and use the Arduino IDE.