Windows/Linux/Mac Eclipse plugin to compile and upload arduino sketches

Hi,

Thanks for the clarifying question. I am referring to the verification step in the upload process where the code is read after writing and verified. Happy to donate more to bump on a list of feature requests.

Regards,
Joe.

Ahh, I got you! Well, I know that almost doubles the upload time, I didn't ever thought about disabling it, but I guess it might speed up the process sensibly with big firmwares

Seems I'm no longer informed messages get added here :o
@delateurj
As far as I understand your question: the behaviour you ask for is the only supported behaviour in the plugin right now.
The build before upload feature (which is the default arduino behaviour) is on the todo list.

@SK-Arduino
You have not specified your arduino IDE version. Assuming it is >1.5.6: This is indeed the behaviour on windows due to a change in the arduino delivered toolchain. See this issue avr-gcc 1.4.8 in windows sometimes ommits drive and start of path. · Issue #2422 · arduino/Arduino · GitHub

@Headroom
Thanks, and well said

Jantje

Hello Guys, I am one of the satisfied user of this eclipse plugin. I am really happy you made it!

Well not completely satisfied, when I do not count, that on widows I am not able to build projects with v2.2 and arduino >1.5.6 what i read, that on windows there are still some bugs.
What bothers me more is, that on Linux mint 17 kernel:3.13.0-24-generic I can compile my project with 1.5.8 IDE but I can not upload it to arduino UNO or DUE. Error which I get is:

"No device on /dev/ttyACM0"

I chosen right tools/board and tools/port I marked exactly this port but still does not work.

I would really like if you will give me some advice how to resolve it. I goggled a lot and I found some Solutions but non of those worked. Please some working fix!

Thank YOU!!!

Hi jaruj9
I'm using redhat enterprise edition as OS which is also a Linux.
There used to be a problem in linux This page has been moved but that was fixed a long time ago.
The DUE is a bit of a problem as I never got it to work on my system (not even with the Arduino IDE; the port is never recognized) but the uno works fine here and I know it works fine on any other linux systems.

As you may know we moved away from rxtx to someting new which is only in the nightly build for now.
Can you upgrade to the nightly and see wether that works?
Here is a link on how to upgrade http://eclipse.baeyens.it/rlogiacco/how_to.shtml

Please let us know how it worked.
Jantje

jaruj9, with your error;

"No device on /dev/ttyACM0"

can you go into your command line, say in terminal and list your devices by typing;

ls /dev

to check if ttyACM0 does in fact exist?

If the operating system doesn't list the port, then it will fail to upload.

Unplug the cable to the Arduino, wait 5 seconds, plug it back in and do that command again and see if you can see it or any other new tty port since you pluged it back in.

Yes, this plugin by Jantje is wonderful, I wouldn't use Arduino's now if I wasn't able to use the Eclipse IDE.


Paul

Thank you for all of your responses!! I am really happy for it.

@jatje I will have to stay on linux mint becuase I habe there already lot of stuff installed which are payed and I need exactly this one for my university. I still did not have time to try my uno. But Teensy with hacket ide 1.5.8 works great I can update and upload my projects to teensy 3.1. But with due is not possible. I updated eclipse ide to 2.4 what I guess is the latest possible.

I reallysed that i can not upload project to due even in arduino ide as you said. SO probably there will be general problem in linux + due or?

@rockwallaby
Yes it it is seeable also in lsusb, maybe it can be someting with rules as teensy has that necessary?

Thank you so much guys for help!

UPDATE: after changing bound rate before uploading file on comport /dev/ttyACM0 to 1200 (automatically is 115200) I managed upload my project to arduino due but just ONCE what is kind of bad and good. Do you have some more ides?

Do you think it can be something with due hardware? Like here describes Due appears as COM6 port but gives error "No device found on COM6" on upload - Arduino Due - Arduino Forum .

I am sure somebody already have done it. Nobody had similar problem?

I tried this tutorial here but on the part setting udev(for due) and setting permissions I have troubles. I do not understand it really properly + what i did, did not work for me. Maybe do you have some better explanation?
http://playground.arduino.cc/Linux/All

Juraj

@jaruj9
I don't have a clue what you are talking about.

Ok sorry, I explained it wrong, so let me start again.

Actual configuration: I am running Linux mint 17 with kernel: 3.13.0
I have arduino IDE 1.5.8, teensyduino 1.20 and eclipseArduino v2.4. I added to arduino IDE 1.5.8 all necessary files to make it work for teensy. following this tutorial:

my actual state with TEENSY: I am able compile and upload my projects in eclipseArduino to teensy with teensybootloader - works as it should. What does not work, is compile project in arduino IDE. It returns following error:

Arduino: 1.5.8 (Linux), Board: "Teensy 3.1, Serial, 96 MHz (overclock), US English"

Cannot run program "/opt/arduino-1.5.8/hardware/teensy/teensy/tools/linux/arm-none-eabi/bin/arm-none-eabi-g++": error=2, No such file or directory

As this error says it searches a file /teensy/teensy which,ofc, does not exists! I tried already some combinations where to save /teensy folder, but I never reached successful compilation. I have to say this error does not bothers me, because I will never use Arduino IDE for developing. I will always use eclipseArduino which works correctly. I am giving you just information that it does not work.

my actual state with ARDUINO DUE:

I can not upload project to arduino due(eclipseArduino arduino IDE), it writes error:
No device found on ttyACM0

I followed this tutorial: [SOLVED] uploads fail from debian to due: "no device found on ttyacm0" - IDE 1.x - Arduino Forum
where they explain that before uploading to arduino due you have to set bound-rate to 1200 with following command:
stty -F /dev/ttyACM0 speed 1200 cs8 -cstopb -parenb

After using this command, I am able to upload ONCE my project but after,even I run again this command in terminal, I get always error No device found on ttyACM0

after executing commang ls /dev/tty* in terminal, I see that Linux see arduino due on port /dev/ttyACM0. Even lsusb sees my DUE:
Bus 003 Device 011: ID 2341:003d Arduino SA

I tryed to follows this tutorial :
http://playground.arduino.cc/Linux/All

I did not move with this error. I am not sure if I sated permissions correctly.

I hope after this explanation you will have more Ideas where is the problem on DUE + linux

This makes more sense to me. Thanks for that.
I think you have 2 problems:
Problem 1: Teensy not working in Arduino IDE.
No one ever said that should or could work, it simply doesn't, it never has.

Problem 2:Due not uploading.
If I understood correctly it doesn't upload in the Arduino IDE and it doesn't upload in arduino eclipse plugin.
As it does not work in the Arduino IDE it won't work in the Arduino eclipse plugin.
The plugin doesn't work on my system
So basically you're posting in the wrong location for this problem.

I'm sorry I can't help you out here.

Best regards
Jantje

jaruj9:
Ok sorry, I explained it wrong, so let me start again.

Actual configuration: I am running Linux mint 17 with kernel: 3.13.0
I have arduino IDE 1.5.8, teensyduino 1.20 and eclipseArduino v2.4. I added to arduino IDE 1.5.8 all necessary files to make it work for teensy. following this tutorial:

Installation of the Arduino Eclipse IDE – Teensyduino – Win 7 | Trippy Lighting

my actual state with TEENSY: I am able compile and upload my projects in eclipseArduino to teensy with teensybootloader - works as it should. What does not work, is compile project in arduino IDE. It returns following error:

Arduino: 1.5.8 (Linux), Board: "Teensy 3.1, Serial, 96 MHz (overclock), US English"

Cannot run program "/opt/arduino-1.5.8/hardware/teensy/teensy/tools/linux/arm-none-eabi/bin/arm-none-eabi-g++": error=2, No such file or directory

As this error says it searches a file /teensy/teensy which,ofc, does not exists! I tried already some combinations where to save /teensy folder, but I never reached successful compilation. I have to say this error does not bothers me, because I will never use Arduino IDE for developing. I will always use eclipseArduino which works correctly. I am giving you just information that it does not work.

my actual state with ARDUINO DUE:

I can not upload project to arduino due(eclipseArduino arduino IDE), it writes error:
No device found on ttyACM0

I followed this tutorial: [SOLVED] uploads fail from debian to due: "no device found on ttyacm0" - IDE 1.x - Arduino Forum
where they explain that before uploading to arduino due you have to set bound-rate to 1200 with following command:
stty -F /dev/ttyACM0 speed 1200 cs8 -cstopb -parenb

After using this command, I am able to upload ONCE my project but after,even I run again this command in terminal, I get always error No device found on ttyACM0

after executing commang ls /dev/tty* in terminal, I see that Linux see arduino due on port /dev/ttyACM0. Even lsusb sees my DUE:
Bus 003 Device 011: ID 2341:003d Arduino SA

I tryed to follows this tutorial :
Arduino Playground - All

I did not move with this error. I am not sure if I sated permissions correctly.

I hope after this explanation you will have more Ideas where is the problem on DUE + linux

Teensy/Teensyduino are not compatible with Arduino 1.5.8. You cannot even install Teensyduino into Arduino 1.5.8 as it will not allow you to do it. If you want to use the Arduino IDE with Teensy, you need to install Teensyduino into Arduino IDE 1.0.6.
The Arduino 1.5.8 IDE is required for you to use Teensy with the Arduino Eclipse Plugin/IDE.

Also, the instructions you are referring to on my blog explain that the hardware folder can reside anywhere and does not have to be copied into the Arduino 1.5.x IDE. I personally actually avoid doing that so i don't have to redo all that when I want to test out a newer version of the Arduino 1.5.x IDE.

I am working with the Arduino Eclipse 2.4 IDE. When I create a new project it automatically creates .ino files.

How do I turn this off in cases where I prefer to work with .cpp/.h files ?

@headroom
In the sketch creation wizard after the page where you have selected the board you can select your "template" (cpp ino custom template or example sketch). There you can also select "use selection as default".

Note that when you have selected a example setting the default will not save the example sketches you have selected. Only that you want to start from an example.

Best regards
Jantje

Aahh...cool. I've never seen that dialog as one step before you can already click "finish". Tanks for the tip!

Hello,

First of all very cool project! :slight_smile:

I have 2 questions:

  1. The first pertains to the makefile created. My project doesnt build correctly either from the command line or the IDE. Looking at the makefile there are a couple of oddities:

A) -include ../makefile.init <-- Doesnt exist
B) I dont see an "all" target in the makefile

  1. Second question, what is the way to create a library output from the build?

Thanks!
Ron

Hi Ron

The plugin does not make the makefile. It provides the "correct" info to CDT so it can make the makefile.
So I can't help you with yout first question.

I do not understand the second question.

Best regards
Jantje

Ok, this is really strange.

I ran make with logging on and got the following (Def not all of it its > 1m):

Reading makefile makefile'... Reading makefile ../makefile.init' (search path) (don't care) (no ~ expansion)...
Reading makefile sources.mk' (search path) (don't care) (no ~ expansion)... Reading makefile subdir.mk' (search path) (don't care) (no ~ expansion)...
Reading makefile arduino/core/avr-libc/subdir.mk' (search path) (don't care) (no ~ expansion)... Reading makefile arduino/core/subdir.mk' (search path) (don't care) (no ~ expansion)...
Reading makefile Logger/Time/subdir.mk' (search path) (don't care) (no ~ expansion)... Reading makefile Logger/Appenders/subdir.mk' (search path) (don't care) (no ~ expansion)...
Reading makefile Logger/subdir.mk' (search path) (don't care) (no ~ expansion)... Reading makefile Libraries/SPI/subdir.mk' (search path) (don't care) (no ~ expansion)...

So, its getting those subdirectories.

BUT..

Considering target file Logger/Logger.cpp.d'. File Logger/Logger.cpp.d' does not exist.
Looking for an implicit rule for Logger/Logger.cpp.d'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.o'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.c'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.cc'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.cpp'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.p'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.f'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.r'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.s'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.mod'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite Logger/Logger.cpp.d.sh'. Trying pattern rule with stem Logger.cpp.d'.
Trying implicit prerequisite `Logger/Logger.cpp.d,v'.

I havent a clue where that .d at the end is coming from, that seems to be what is causing it to not build. Any ideas?

Said .d is the dependcies, which arent getting created :frowning:

Ok, after messing about for quite a while I figured it out. The errors were not propagating to the console, I got it to work.

Unfortunately with this current methodology I have to run my builds from the command line.