Eclipse Foundation Member
Eclipse C++ IDE for Arduino

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

2018-09 (4.9)
Photon (4.8)
Oxygen (4.7)


Neon (4.6)


Learn more...

Details Group Tabs

Tuesday, November 13, 2018 - 04:40
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

sadisuprijanto's picture

Hi Doug,
I tried to run your blinky sample that you post on youtube but it doesn't work. The error is unresolved inclusion: . I'm new to Eclipse and have tried to google about how to set the library path without any success.
I'm using Eclipse Mars and Mac osx. Could you share to us how to accomplish this?

pcarew's picture

Hello Doug,
No pressure, just curious if you have any projections for Arduino C++ IDE and Neon?

The Mars version shows great potential. I have been able to use it with the 'Emulare' AVR simulator ( http://emulare.sourceforge.net/ ) and do single step debugging on the simulator. After this, I could then target an Uno and download and run etc. All from your eclipse CDT IDE.

dschaefer's picture

Thanks! No pressure :). I'm putting the finishing touches on the IDE for Neon now and we're targeting it for CDT 9.0.1 which is scheduled for mid-July-ish.

pcarew's picture

I tried using this on an international air plane trip and realized that it wouldn't compile anything while offline line. Also the packages/boards were not available while offline.

dschaefer's picture

Yeah. I've had several reports of people having trouble with connectivity. The next release coming up at the end of June or early July on Eclipse Neon has a big change where I've moved the downloading of the package files to a more sensible place in the workflow in the new Download Manager that I just checked in.

pcarew's picture

Hello Doug,
I tried creating a '.S' assembly file, but it didn't get compiled/assembled with the project. Is there anything I should do to be able to include assembly files?

Thanks
Paul.

pcarew's picture

I am creating a test project and would like to generate a linker mapfile.

The ATMEL website uses the example of:
"avr-gcc -g -mmcu=atmega8 -Wl,-Map,demo.map -o demo.elf demo.o"

Is there anyway to add the liker options (" -Wl,-Map,projectName.map") to the avr-gcc command for your Arduino plugin?

Thank you for what looks like a very promising plugin.

pcarew's picture

I tried this out on Mars and it works nicely. Very straightforward.

Where are the Arduino header and library files located?
I went looking around the file system and couldn't see them.

dschaefer's picture

Thanks! The header and library files and compilers, etc. are located in the .arduinocdt under your home directory. On Windows, that's /Users/name. It's organized by platforms (hardware) and libraries. The hardware directory is organized by board types and such. It'll be there you find Arduino.h and friends.

pcarew's picture

I have the Neon version of Eclipse installed. Is there a setting tat I can change to allow me to install this plugin on Neon.

When I try directly from the MarketPlace, it says that my Eclipse version is not supported.

dschaefer's picture

No, this doesn't work with Neon yet. That's currently what I'm working on. I'll have a new version on the Marketplace when it's ready. Shouldn't be too long though. Neon releases late in June.

mromijnq0h's picture

Hi, thanks for the interesting contribution to Eclipse!
I used to use Jan Baeyens' solution for a number of Arduino projects and I'm looking to see if I can do the same with the Arduino C++ IDE.

What I'm missing, or what I have not figured out yet, is how to use my own libraries.
I created a number of libraries in the past and I could provide a 'private library path' for my own libraries. These were then shown when I imported a library in my projects.
How is that done with the Arduino C++ IDE?
When I look at the properties of an Arduino project, I don't see the "C/C++ General -> Paths and symbols" tab.

When I add an 'Android' connection to the 'Connections' view to my board (Arduino Uno clone) and try to 'Open Command Shell', I get an error popup:
'Making Connection' has encountered a problem.
Error opening serial port: 2

I'm on a Windows 10 platform with an USB-Serial FTDI connection, which is configured to be COM12. Using Putty, I can connect to my board.
Any ideas?

Many thanks,
Marcel

dschaefer's picture

Thanks for taking a look. I really appreciate the feedback.

I think all the issues you've raised are addressed in the next release coming out with Eclipse Neon. I am working now on Library support. That's the most request feature from the community. Note though that the Arduino C++ plug-in uses the new CDT build system. The Paths and Symbols tab is for the old one. The Arduino C++ IDE will automatically pick up Library projects based on a new, easier, mechanism.

Also, your serial port issue will also be fixed. We had an issue with COM port numbers that are two digits. Apparently they're not really COM12, but some UNC path thing.

mromijnq0h's picture

Hi Doug,
When I change the name of the serial port from COM12 to COM7, I'm able to 'Open Command Shell'. So it is indeed the double digits in the COM port name.
For the library support, I guess I'll have to wait a bit :-)

Many thanks,
Marcel

ikostov's picture

And one more time ....
Doug ( and the community ) thanks for the great plug-in.
I'm planning to use it from know on for my project.
However I had the following issues with a SAM board. I have workarounds for all of them, but a nicer solution will be ... well nice :) If you tell me how to fix them, I can do it, test it, and deliver it.

1) - build.system.path could not be resolved - I had to hardcode it in the platform.txt
like this - build.system.path="/home/ivan/.arduinocdt/packages/arduino/hardware/arduino/sam/1.6.7/system"
2) - syscalls_sam3.c.o could not be found
Again in platform.txt - changed to --start-group "build.path}/platform/cores/arduino/syscalls_sam3.c.o"
3) - uploading to SAM does not work. SAM requires funny flash erase procedure
calling this on the shell before uploading solves the issue
stty -F /dev/ttyACM0 speed 1200 cs8 -cstopb -parenb
4) - BOSSAC port could not be resolved
I had to hardcode in platform.txt the --port=ttyACM0

Again .. please help me to fix the issues in a clean way and I will provide the patch to the community after successful testing of course.

Cheers,
Ivan

bmerten's picture

Hello,

I have a problem, with own .h files, there appears an error, that they are not fund. I included the folder in the preprocessor include path but the .h files are still not found. Is there a solution for that problem?

ikostov's picture

Which files are missing? Which board ?
Paste the line calling the g++ compiler.

dschaefer's picture

How did you add the folder to the preprocessor include path? If you're doing it in the UI, that doesn't actually work for Arduino projects. I currently do not have a way to override the Makefile and add user specific settings. Please raise a bug and I'll get that in for the next release in June.

bbasto's picture

First of all, congratulations for the great initiative. I've been using Eclipse for ears for Java development and this is what was missing for me to do my stuff on microcontrollers.

I'd like to report an error:

When I try to install boards from: h t t p : / / drazzy.com/package_drazzy.com_index.json

I get this error message:
nstalling Arduino Board Platforms
Download failed, please try again.
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Would be nice to use it to program on my small ATtiny85.

dschaefer's picture

Thanks! Could you please reported as I mentioned in the description, by creating a bug in Bugzilla? https://bugs.eclipse.org/bugs/enter_bug.cgi?product=CDT

cmcguire's picture

after selecting and installing the list of boards the menu for selecting a board does not get populated. DOA

dschaefer's picture

I'm confused about what menu you are referring to. You create a Connection for the board and then it shows up in the drop down in the Launch Bar. You select that and hit the build or launch buttons.

ndarkness's picture

Hi,

I have noticed that after compiling my binary, eclipse indexer does not recognize the libraries any more, and all references went into red... I have to create a new project, import my libraries again and then it does work fine. Is that a bug?

Thanks!

dschaefer's picture

Sure sounds like it :). Please file a report with enough information that I could reproduce it. Thanks!

ncameron's picture

Sorry if this is a silly question, I'm not an Eclipse expert. Is there a way to change the location of the .arduinocdt install? I'm installing on a Windows 10 machine, and its putting it into C:\Users\Nick Cameron\.arduinocdt folder. I think that the space in the path is causing issues because I'm having problems downloading the ESP8266 board, and subsequently building anything causes an error.

dschaefer's picture

As I mentioned on the YouTube page, the location is currently hard fixed. I'll make sure to add a preference, so you can change the location. I'll also try to see if I can quote the files in the Makefile to handle the spaces in this case. If I can do it automatically, that would be better.

agala's picture

Hey, I really like Your plugin. Arduino IDE is a bit hell-ish for me, to work on. Always wanted to make a jump to eclipse, and with Your IDE it's easier than before. I really like what You did there, because to me it seems like You merged what was best between Eclipse and Arduino IDE :)

Just a quick tip for people struggling with ESP libraries. I did have problem with example sketches compiling in Your IDE. I wanted to test wifi mesh example "HelloMesh". The problem was, that even though Eclipse downloaded the libraries, they weren't used. I've looked into the .arduinocdt/packages/esp8266/hardware/esp8266/esp8266/2.1.0 and "arduino.h" which is compiling is loaded into "cores" folder. All libraries are in "libraries" folder... so I basically copied contents of src folder of libraries that interest me (ESP8266WiFi and ESP8266WiFiMesh) and... voila! no problem anymore.

If this functionality were to be automatic like in Arduino (that all libraries are accessible with short #include ) it would be perfect - but so far, this is enough to me! :)

jwilsonkra's picture

Hi Doug!

I'd love to use Eclipse to develop for my Arduinos but but there's a problem with my system (Mac running OSX 10.11.3). My disk is called HD 1 - the space breaks the build process:

Building Test1
make: *** No rule to make target `/Volumes/HD', needed by `uno/platform/cores/arduino/abi.cpp.o'. Stop.

Is there a work around?

Also would you consider adding Tennsy (www.pjrc.com/teensy/teensy31.html) to the default set of supported boards? I'm sure I could figure out how to add it myself but it would be nice to have it installed automatically.

dschaefer's picture

Thanks! Yes, you've run into one of the biggest issues with building C++ projects and that's problems with spaces in file names. It makes it very hard for make and the shell to parse command lines. There may be things I can do in the generated Makefile that could help. Please raise a bug in the link I have above.

Once I get things in good shape, I'll take a look at adding all the URLs listed in Arduino's 3rd party boards listing. Not sure teensy is there, but it's one of the first 3rd party boards ever built so should be.

jwilsonkra's picture

Hi Doug!
I raised a bug yesterday (Bug 490191). I think I found why the specific error occurs - it's an unquoted path in the makefile - details added to the bug report.

I've just noticed this at the top of the generated makefile:

ifeq ($(OS),Windows_NT)
SHELL = $(ComSpec)
RMDIR = rmdir /s /q
mymkdir = if not exist "$1" mkdir "$1"
else
RMDIR = rm -fr
mymkdir = mkdir -p $1
endif

shouldn't the last $1 be quoted too?

Cheers

John

jlankheet's picture

Thanks for the plugin. Installation and configuration was a breeze. I really like the near-zero configuration. I was able to compile most of the Arduino code that don't need external libraries.
However, I can't get anything sent to my Wemos D1 mini, or NodeMCU. It refuses to accept a different board. It moves back to Lilipad each time. And I get NPE's all the time. Deleting projects is not possible. And including a DHT library does not work. It won't compile my DHT code.
OS: Fedora 23, Eclipse Mars CDT, 64bit platform.
I would be happy to provide detailed steps, if required.

ndarkness's picture

HEllo, I think this is a great initiative to suppport arduino from Eclipse, keep doing it!

On the other side, I have followed the video, but I still get two issues
1. I cannot build my project since it does not find Arduino.h libraries... How/Where can I include the library since the plugin hides the compiler options field under C/C++ tab.

2. If i manage to solve the dependency, I get into the following error
Errors occurred during the build.
Errors running builder 'Arduino Builder' on project 'hello'.
'other' is different type of Path

I don't know where is this coming from, I use windows7

tthanks