Eclipse Foundation Member
Eclipse C++ IDE for Arduino Eclipse Project

Add this URL to your Eclipse Installation to reach this solution's update site.

Oxygen (4.7)
Neon (4.6)


Learn more...

Details Group Tabs

rshah658's picture

I have successfully installed this plugin and built some of the earlier Arduino codes smoothly. I do have question about code suggestion for all the Arduino functions like pinMode, digitalWrite etc. That is one of the major reason why I turned away from original Arduino IDE. So, is it possible to get code suggestions for all the arduino functions?

dschaefer's picture

Yes, Control-Space (Command-Space on Mac) is the default key binding for it. It's one of the main reasons I built this plug-in for Eclipse CDT too :)

mschmeing's picture

I have the Eclipse C++ IDE for Arduino installed in Neon. My Arduino is an Arduino M0 pro (and thus my platform package the Arduino SAMD Boards (32-bits ARM Cortex-M0+). Originally, (with version 1.6.6 of the package) everything was fine. But after an update of the platform, suddenly the IDE cannot find the include files (especially Arduino.h) anymore. The compiler on the other hand still finds the includes.
The current version of the package is 1.6.14, but this is not the first version, where I noticed this problem for the first time. I noticed the problem with the previous update that I performed, but I don't know anymore, which version that was.

My Eclipse version is:
Eclipse IDE for C/C++ Developers
Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500

It was installed from the Eclipse Installer.

rhedger's picture

Michael,

I wonder whether it is related to this intermittent bug?

https://bugs.eclipse.org/bugs/show_bug.cgi?id=498171

rhedger's picture

I have installed this plugin and successfully programmed several types of Arduino board. However, I am having trouble programming a Sparkfun Pro Micro board (ATmega32U4 8 Mhz 3.3V). Sparkfun boards didn't show up in the platform list of the Arduino Downloads Manager, so I added the Sparkfun json file to the arduinoct directory, restarted Eclipse and was able to add them. When I try to program the Pro Micro board, I get the error listed below. I am able to program an Arduino Micro on /dev/ttyACMx, so it doesn't seem to be the (now fixed) connection bug. I can program the Pro Micro using the Arduino IDE, so the board is OK.

Connecting to programmer: .
Found programmer: Id = "Hello w"; type = o
Software Version = H.e; Hardware Version = l.l
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: error: programmer did not respond to command: leave prog mode
avrdude: error: programmer did not respond to command: exit bootloader

gabenthung's picture

I'va just installed this plugin from Eclipse Marketplace on a fresh downloaded Eclipse Neon.2 CDT IDE. When I try to add a new "Connection" for my mega2560 board, I can't select a serial port (/dev/ttyACM0 in my case.) Also typing the port manually into the textfield and hitting the "OK" button doesn't work. The field stays empty when I open the connection from the "connection"-View with [RightClick]->Properties on the created connection. The board is recognised correctly by the vanilla Arduino-IDE. I'm running Kubuntu 16.04

Any suggestions?

dschaefer's picture

A fix for the ttyACM issue is on the way. Hopefully by tomorrow. Try a Check for Updates then.

gabenthung's picture

Thanks /dev/ttyACM0 works now in serial port settings. Is there a public source-code repository/bugtracker for this plugin?

Thanks for the great work and the rapid fix of my problem! Keep up the great work!

dschaefer's picture

Good to hear. The bug report is here https://bugs.eclipse.org/bugs/show_bug.cgi?id=509118. The fix was in the CDT's serial port plug-in. A link to the code review is in the bug.

gabenthung's picture

Today I tried it with a NodeMCU (ESP8266) which is on /dev/ttyUSB0 and it works. It seems that simply /dev/ttyACM* is not configured in the plugin like other posters here mentioned. It would be great, to be able to manually fill out the "Serial Port" field. I could also use the "/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0" ports which are created on Ubuntu for each device.

gabenthung's picture

Hi, I just installed this plugin from the Eclipse Marketplace on a freshly downloaded Eclipse Neon CDT IDE. When adding a connection for my Arduino Mega2560 board I can't select it (in my case it would be /dev/ttyACM0 ). When I try to type it manually and click the "OK" button it simply doesn't save my setting.

I'm running Kubuntu 16.04

kclough's picture

Great Plugin. Takes working with Arduino to a new level.

I have created some code that I would like to reuse in several variants for a number of mcu's. I would like to make some compile time configurations. I know that this has been addressed before but I am looking for a very simple solution. If I were able to add a define symbol as in a normal cdt project I could have the project build by selecting a specific include file. The plugin quite correctly removes these definitions.

My problem could easily be solved if the target connection were defined I.E. -DLAUNCH_TARGET. Then using #if's I could configure my variants at compile time.

Cheers,
Ken

ndarkness's picture

Hello, I am having an issue with the plugin and windows, it apparently loses the libraries and platforms list in the " Arduino Download Manager". If I hit in updates, I get an error saying " No protocol:" clicking Details does not show anything more, only the same erro " No protocol:".

It does happens after building the project and almost all the references withing my project are highlighted in red; however, if I start a new project and include my code the references work fine, but as soon as I build it, they are gone again...

Have someone experienced this?

Thanks

ashishkin's picture

Great tool, I followed this video and have created and compiled my Arduino test project. But in the 3rd column my run target "Uno" is unavailable, I see only "Local" there. Of course I have created a lot of different connections and got "connected" message in terminal output. I am on Windows 10 x64 and had no problems with standard Arduino IDE and PlatformIO.

dschaefer's picture

Yes, there was a version mismatch in the MarketPlace and what we shipped with CDT Neon.2. Doing a Check for Updates will give you the correct version. And the MarketPlace page has been updated properly.

jwalters085's picture

I went through all of this. I eventually found a part of the setup that required running manually and after this and a restart of eclipse, lo and behold, my targets appeared. I was then able to compile and download a demo app but not run it. I gave up at this point and installed VisualMicro onto Visual Studio 2015. Worked straight out of the box and I was up and running in about 20 minutes.

This is my second attempt with Eclipse. First time was to do cross development on a Raspberry Pi and could never get that tool chain to work. That time I went to Netbeans and again was up and running in under an hour after weeks of faffing with eclipse. It's just too complicated and not in the least bit intuitive. Sorry chaps, needs a serious rethink.

jwalters085's picture

I've followed the YouTube video to install Neon C++ for Arduino, have successfully built a "Hello world" sketch and all appears fine. Now to the real task...
May target board will be an Arduino Due. I have loaded the arm-none-eabi-gcc tool chain with the Arduino Download Manager but I can't find any way of selecting it as the active tool chain for my project. Project/Properties/Libraries/Platform Libraries are set to "Arduino SAM Boards" but the build insists on using the avr-gcc tools.
What am I missing?

pcarew's picture

This is probably similar to what I do to switch between targets...
To switch between Arduino (AVR) and ESP8266 (Expressif), I need to select the correct launch target in the launch bar (3rd dropdown box).

Do you have a launch target configured for the Due board?

jwalters085's picture

Hi Paul,

My problem appears to be the same as Al Shiskin; the targets are simply not appearing in the launch Bar. All I have is Local and the option to create new targets. In similar vein, I can create targets that show up in the Connections tab and I can connect to them but that's about it.

pcarew's picture

Hello John,
One of the things I noticed in the beginning, was a problem in being able to select Arduino Project launch targets in the Launch Bar. I filed a CDT bug for this https://bugs.eclipse.org/bugs/show_bug.cgi?id=500251.

I'm not sure if this is what you're experiencing, but if so I found that after opening a project in the project explorer, I had to 'restart' Eclipse. After the restart, the correct launch target showed up in the launch bar.
Hope this helps.
Paul.

jwalters085's picture

I've followed the YouTube video to the letter and now have a fully functioning IDE that will build a demo project for an ATMega based board. Now for the real work....
The target board will be an Arduino Due with the Cortex M3 CPU. I've downloaded the SAM platform and now have the arm-none-eabi-gcc tool chain installed but I can't work out how to set up the project to use it. I've created a new Launch Target for the Due board but because I don't actually have a target processor connected at this time, it simply uses what appears to be the default tool chain.
How do I configure Eclipse / my project to use the correct tool set?

dcimminon11's picture

Hello,

I am having trouble adding a new library, I know you don't have the option of creating your own library yet, but if the library is already written and on github, Is it possible to add it to the library index json file and download it with the Arduino Download manager? Adding the library in the arduinocdt folder does not work and if I modify the json file, It downloads automatically the old one when I try to search for libraries. The attempted methods in the forum does not work.

Do you allow the community to modify the json file to add new libraries? this could be a temporary fix until the private library option is added.

Thanks for the plugin!

D.

pcarew's picture

I responded to your forum posting with the details, but essentially check that you have a 'library.properties' file in the root folder of your library.

tmcpharlin's picture

When one creates an Arduino project, there are a number of differences from what the IDE does for a standard C++ project:

The project Properties, C/C++ General group lacks the "Paths and Symbols" property group. Among the more useful missing properties are:
a. "Preprocessor Include Paths" settings not to mention that an "includes" folder is not created within the project tree (Next to "src" folder)
b. The "Libraries" and "Library Paths" property tabs are not supported, apparently.

Rather than simply explaining that these settings may be added in a future release, perhaps the author could explain his philosophy for omitting these settings. Was it an intentional design decision or simply omitted in these early releases?

tmcpharlin's picture

Or possibly the "user defined library support" feature you eluded to in an earlier post.
I'm guessing that a user-defined-bootloader may also be required in such scenarios but I have no idea (yet) how compatible the boards may be or how universal a bootloader could be made...

Is a universal SAMD bootloader feasible? How different would it be from, say, an AVR?

very cool project, keep up the great work, Doug.

My post in the main CDT forum:

https://www.eclipse.org/forums/index.php?t=msg&th=1083076&goto=1749742&#...

achestnov's picture

Where is support forum? Where can I ask a Question? I want to use and integrate my own library ? How can i do what. I don't want to write big Json file and push my library to git hub first. Please help. Thanks.

dschaefer's picture

The link to the forum is in the text above. This is open source and support is provided by the community and myself when I have time available.

And as I've stated a few times here and there, we currently do not have support for doing your own libraries. That's something I hope to add for next year's release (Eclipse Oxygen).

amikiciuk's picture

In new version of Eclipse Neon.1 (4.6.1) you can't create new project. Some of buttons is disabled to continue project creation wizard.

dschaefer's picture

I have refreshed the Arduino C++ update site with the neon.1 plug-ins on the weekend. Seems to be working now.

mheeg7k's picture

I've installed Eclipse Neon and this plugin today. But i can't create an Arduino Project! If i click on the "Arduino C++ Sketch" Button the "Next" Button does not activate. If I click on "Finish" the Project Window Closes and nothing happens.

tmcpharlin's picture

Watch the demo on youtube closely, he does not click the Next button, he clicks on the Arduino-Sketch uber-icon-thingy to the right... HTH

dschaefer's picture

If you are having problems after updating to Neon.1, make sure you enable the Eclipse C/C++ IDE for Arduino Neon update site in the preferences under Available Software Sites.

psane's picture

I just created a new Arduino project. It created a skeleton and a blank .ino file (with setup and loop). When I added a new source file (.C) to the project, it created a new file but this file is not part of a build system. I cannot get it to build with the .ino file created by default.

pcarew's picture

I believe that source files need to be cpp to be included in the build.

jcollinsgk3's picture

I'm a beginner... how do I include the Adafruit_WINC1500 library using the Eclipse C++ IDE for Arduino.

Most of the essential Adafruit libraries are present; however, there is not a library entry for Adafruit WINC1500, which I require. There is an entry for Adafruit CC3000...

Is this possible?

Please advise.

Thanks.

pcarew's picture

Is it possible to define multiple Build configurations?
I have a project where I want to target a UNO for a release build, but be able to create a debug build that runs on Windows.

I have a stub test harness for the application, that allows the logic to be run and debugged on a host environment. When I'm happy with it, I would then like to rebuild it, this time targeting an Arduino.

I looked under preferences, but didn't see a C++ setting menu (is that the correct way to setup different build configs?).

So far the Neon version for Arduino is working very well, it seems pretty fast and having the CDT source auto-complete is great.

Thanks
Paul.

dschaefer's picture

That's a use case I haven't considered yet. Generally, I do try to make sure CDT projects can target running locally and on embedded targets for the exact reason you mention. But for Arduino, I'm heavily relying on their build system metadata for builds and they don't include anything for building locally.

I'll definitely consider it and see if there's something easy I can do to support it. Might be time to think how I'd do Arduino with CMake like I'm doing with the ESP8266 boards. That will support building locally as well.

Feel free to raise an enhancement request in bugzilla so we don't lose this. Thanks!

pcarew's picture

I have created the enhancement bug and also posed a question about how this might possibly be achieved within the current Arduino Launch-bar environment.

ajanurikqmr's picture

Hi, I have a problem when I try to conect to the console. I click in "Open Command Shell" and I receive the following error message:
An internal error occurred during: "Making Connection".
org.eclipse.cdt.serial.SerialPort.open0(Ljava/lang/String;IIII)J
Anyone knows how to fix it?
Thanks

pcarew's picture

This worked ok on the Mars version, but on the Neon one I experience the same error when opening a command shell to a Uno. I verified that the correct com port (Com6 in this case) was configured.

pcarew's picture

Entered the log details in the bug report

pcarew's picture

I can confirm that Doug has resolved this in the latest build. It now works as expected.
Thanks.

ndarkness's picture

Hello Dough,

First of all thanks for the video and the plugin!

I have followed your steps and I am able to reach till the point of building my project, however while running it I don't see that it is being deployed in the target, an Arduino Leonardo. I have set the right target in the bar, but it doesn't load the binary onto it, since if I open a console terminal to it, I see the old program still running.

What can I do?

Thanks in advance!

rlevy678's picture

Installed the Plug-in.
The make phase is GREAT. I was really looking for a tool that will bring modern IDE technology to Arduino.
However - Trying to launch the program on my UNO failed. It appears the plug-in is looking for avrdude in a wrong path, and I have found no way to change that path.
Would appreciate any help.

sadisuprijanto's picture

Hi Doug,
I'm trying to follow the steps in your youtube video but Arduino Download Manager just freeze at installing tool avr-gcc. Let me know if you need more info about it. I have submit it to the bugzilla.

dschaefer's picture

Stephanus and I discussed this on the bug. But for everyone else, I have seen times when the servers were extra slow and it looks like the download is hung. I have submitted Bug 498226 to provide better information on the progress bar.

dschaefer's picture

Thanks for everyone's feedback and bug reports from the Mars Preview release. This new Neon release is much improved and supports many more boards. Assuming these comments are in order, everything below refers to the Mars release. Please try the new Neon release if you have any issues.

lmandell's picture

I'm just getting started with this and immediately ran into the problem that no serial ports are listed in the drop down menu. I've run into the same problem with the Jantje plugin. It works fin in the regular arduino IDE but to get that to work required installing usb to UART drivers from Silicon Labs.
What do I need to do to get the serial ports to show up with El Capitan?

Thank you

dschaefer's picture

What's the name of the serial port you are using. /dev/?. There's a filter so I don't show all devices that appear there. I can adjust the filter if I'm missing something. Could you raise a bug to track this?

lmandell's picture

Hi,

The serial port is /dev/cu.SLAB_USBtoUART. I will file a bug report as well.

Thank you