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

Installs Last Update: 
Saturday, February 17, 2018 - 13:32
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

ndarkness's picture

I could figure out the problem number 2, on windows you need to install avr mingw, and later it is needed to install "make" on hardware/tools/avr/utils/bin under Windows.

REgards

jrzepecki's picture

Dear Doug,
I'm having trobles running your fantastic eclipse plugin for Arduino.
I did everything according to your video guide but without luck.

First:
Can't compile the code for my Arduino Due board. After a while, I managed to build it by adding one variable to the platform.txt file:

build.system.path=c:/Users/Jacek/.arduinocdt/packages/arduino/hardware/arduino/sam/1.6.6/system

Then, I managed to get the same effect by adding the variable into Eclipse -> Window -> Prefferemces -> C/C++ -> build -> Build Variables

I did another change in the platform.txt file changing the:
"{build.path}/core/syscalls_sam3.c.o"
into:
"{build.path}/platform/cores/arduino/syscalls_sam3.c.o"

After those changes I was able to successfully build the "blink" project.
But Stil can't upload to my board.
Seems like Eclipse can't find the Arduino.h file and project is full of errors (there must be another path variable issue)

Additionally, I'm getting an error message when clicking "Lauch" button:
"No device found on {serial.port.file}"

Please help.
Jack

jcann's picture

Hello Doug,

The plug-in looks fantastic (in the videos). I'm trying to get this set up and running, but each time I create a new Arduino project (or start Eclipse with after the plug-in is installed) I get the following error:
An internal error occurred during: "C/C++ Indexer".
java.lang.NullPointerException

I'm running on Mint 17.3 (with Oracle JDK 8).
I've also been able to reproduce this error on a clean Ubuntu 15.10 live image. (boot image on USB, install OpenJDK 7, download and run Eclipse IDE for C/C++, add plug-in from market-place, create new Arduino project).

I've seen a lot of posts that suggest deleting existing *.pdom files created by the indexer, but this doesn't help.
Any ideas?

Regards,
Jeff.

ryoung20u's picture

This one has me stumped, I'm really enjoying this new take on the Arduino IDE, but when I extend my test blinky very simply...

#include
#include

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
mySerial.begin(4800);
mySerial.println("Hello, world?");
//delay, indicate
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

It can't find the SoftwareSerial.h file.

I've tried all sorts of fun stuff, including the files in the local project directory, adding an include path statement, and other logical things. I must be missing something simple. I guess my question is how to add a library more generally...

Thanks for outstanding effort!

R.

bboelaert's picture

Hi,

Very nice plugin - Plug & Play I would say!!!
During my first try-out, I saw that you cannot enter another serial port than /dev/ttyUSB0, /dev/ttyUSB1 and /dev/ttyUSB2.
My Arduino Ethernet is connected to /dev/ttyACM0.
So when I try to run it, avrdude always tries to upload the sketch to /dev/ttyUSB2.
Would it be possible to correct this?

Thanks in advance!

Bart.

dschaefer's picture

Sorry about that Bart. In recent releases, I've enabled the serial port selection to be a text box so you can enter any port. I thought we also added support for ttyACM0. Do you have the latest? Try "Check for Updates" from the help menu.

bboelaert's picture

Hello Doug,

I checked for updates but Eclipse couldn't find one. Below are the versions that I have on my system :
Arduino C++ Tools - Preview 8.8.0.201512282018 org.eclipse.cdt.arduino.feature.group Eclipse CDT
Remote Command Shell Console 2.0.1.201508262001 org.eclipse.remote.console.feature.group Eclipse PTP
Serial Port Remote Services 2.0.1.201508262001 org.eclipse.remote.serial.feature.group Eclipse PTP
The the Connection properties dialog still shows a ComboBox where I can overwrite e.g. /dev/ttyUSB0 by /dev/ttyACM0, but that value doesn't get stored when hitting "Apply".
I also saw that the value of "Board Type" is not saved. On my system it goes back to "LilyPad Arduino USB".
I would send you some screenshots to clarify my point, but this interface does not allow me to.

Kind regards,

Bart.