Eclipse Arduino Setup

Setup ArduBlock Development in Eclipse; How to Hack ArduBlock; Exemple de programme simple: Feu de carrefour; 2012/04/03 Update: Copy-n-Paste implemented, Korean and Italian translations added; ArduBlock Piano; More “Getting Started with Arduino” ArduBlock examples. Here is a simple schematic showing a minimal setup using an external crystal. Skip the crystal and the two 22pF capacitors if you're using the internal oscillator. If you don't want to mess with breadboards, components and wiring; simply use your Arduino UNO! Click to enlarge. Download Arduino Addon in the Marketplace When the IDE loads, you should be presented with the eclipse welcome screen, and, near the bottom, you should see an option labeled “Launch the Eclipse Marketplace”. Click this, and a separate window should appear. In the search bar, enter “Arduino” and then click the search icon. Many Arduino libraries are set up to allow Eclipse to semi-automatically add them to your projects and load updates when available. Such libraries each come with a.json file showing the location of the library.

Eclipse is an open-source Integrated Development Environment (IDE) supported by IBM. The mother site is @ www.eclipse.org. Eclipse is popular for Java project development. It also supports C/C++, PHP, Python, Perl, and other web project developments via extensible plug-ins. Eclipse is cross-platform and runs under Windows, Linux and Mac OS.

Arduino Nano Ide Setup

How to Install Eclipse C/C++ Development Tool (CDT) 8.1.2 for Eclipse 4.2.2 (Juno)

Step 0: Install MinGW GCC or Cygwin GCC

To use Eclipse for C/C++ programming, you need a C/C++ compiler. On Windows, you could install either MinGW GCC or Cygwin GCC. Choose MinGW if you are not sure, because MinGW is lighter and easier to install, but having less features.

  1. MinGW GCC: Read 'How to Install MinGW'.
  2. Cygwin GCC: Read 'How to Install Cygwin'. Make sure that you select 'gcc', 'g++', 'gdb', and 'make' packages under the 'Devel' (Development) category - these packages are not part of the default installation.
Step 1: Install Eclipse C/C++ Development Tool (CDT)
Eclipse Arduino Setup

Two ways to install CDT, depending on whether you have previously installed an Eclipse:

  1. If you have already installed 'Eclipse for Java Developers' or other Eclipse packages, you could install the CDT plug-in as follows:
    Launch Eclipse ⇒ Help ⇒ Install New Software ⇒ In 'Work with' field, pull down the drop-down menu and select 'Kepler - http://download.eclipse.org/releases/kepler' (or juno for Eclipse 4.2; or helios for Eclipse 3.7).
    In 'Name' box, expand 'Programming Language' node ⇒ Check 'C/C++ Development Tools' ⇒ 'Next' ⇒ .. ⇒ 'Finish'.
  2. If you have not install any Eclipse package, you could download 'Eclipse IDE for C/C++ Developers' from http://www.eclipse.org/downloads, and unzip the downloaded file into a directory of your choice.
Step 2: Configuration

You do NOT need to do any configuration, as long as the Cygwin or MinGW binaries are included in the PATH environment variable. CDT searches the PATH to discover the C/C++ compilers.

Writing your First C/C++ Program in Eclipse

C++ Program

Step 0: Launch Eclipse
  1. Start Eclipse by running 'eclipse.exe' in the Eclipse installed directory.
  2. Choose an appropriate directory for your workspace (i.e., where you would like to save your works).
  3. If the 'welcome' screen shows up, close it by clicking the 'close' button.
Step 1: Create a new C++ Project

For each C++ application, you need to create a project to keep all the source codes, object files, executable files, and relevant resources.

To create a new C++ project:

  1. Choose 'File' menu ⇒ 'New' ⇒ Project.. ⇒ C/C++ ⇒ C++ project.
  2. The 'C++ Project' dialog pops up.
    1. In 'Project name' field, enter 'FirstProject'.
    2. In 'Project Types' box, select 'Executable' ⇒ 'Empty Project'.
    3. In 'Toolchains' box, choose your compiler, e.g., 'Cygwin GCC' or 'MinGW GCC' ⇒ Next.
  3. The 'Select Configurations' dialog appears. Select both 'Debug' and 'Release' ⇒ Finish.
Step 2: Write a Hello-world C++ Program
  1. In the 'Project Explorer' (leftmost panel) ⇒ Right-click on 'FirstProject' (or use the 'File' menu) ⇒ New ⇒ Source File.
  2. The 'New Source File' dialog pops up.
    1. In 'Source file' field, enter 'Hello.cpp'.
    2. Click 'Finish'.
  3. The source file 'Hello.cpp' opens on the editor panel (double-click on 'test.cpp' to open if necessary). Enter the following codes:
If 'Unresolved Inclusion Error'

If error 'unresolved inclusion' appears next to #include statement, the 'include paths for headers' are not set properly. Select 'Project' menu ⇒ Properties ⇒ C/C++ General ⇒ Paths and Symbols ⇒ In 'Includes' tab:

For Cygwin GCC:

  1. 'Add' the following directories to 'GNU C', where $CYGWIN_HOME is your Cygwin installed directory:
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xinclude
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xinclude-fixed
    • $CYGWIN_HOMEusrinclude
    • $CYGWIN_HOMEusrincludew32api
  2. 'Add' the following directories to 'GNU C++', where $CYGWIN_HOME is your Cygwin installed directory:
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xincludec++
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xincludec++i686-pc-cygwin
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xincludec++backward
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xinclude
    • $CYGWIN_HOMElibgcci686-pc-cygwin4.5.xinclude-fixed
    • $CYGWIN_HOMEusrinclude
    • $CYGWIN_HOMEusrincludew32api

For MinGW GCC:

  1. 'Add' the following directories to 'GNU C', where $MINGW_HOME is your MinGW installed directory:
    • $MINGW_HOMElibgccmingw324.6.xinclude
    • $MINGW_HOMEinclude
    • $MINGW_HOMElibgccmingw324.6.xinclude-fixed
  2. 'Add' the following directories to 'GNU C++', where $MINGW_HOME is your Cygwin installed directory:
    • $MINGW_HOMElibgccmingw324.6.xincludec++
    • $MINGW_HOMElibgccmingw324.6.xincludec++mingw32
    • $MINGW_HOMElibgccmingw324.6.xincludec++backward
    • $MINGW_HOMElibgccmingw324.6.xinclude
    • $MINGW_HOMEinclude
    • $MINGW_HOMElibgccmingw324.6.xinclude-fixed

NOTE: To find the header paths, you can do a search on headers such as 'stdio.h' (for C) and 'iostream' (for C++) under the Cygwin or MinGW installed directory.

Note: If you encounter 'error while loading shared libraries' during link. Install 'libmpfr4' in cygwin.
Step 3: Compile/Build

Right-click on the 'FirstProject' (or use the 'Project' menu) ⇒ choose 'Build Project' to compile and link the program.

Step 4: Run

To run the program, right-click on the 'FirstProject' (or anywhere on the source 'test.cpp', or select the 'Run' menu) ⇒ Run As ⇒ Local C/C++ Application ⇒ (If ask, choose Cygwin's gdb debugger) ⇒ The output 'Hello, world!' appears on the 'Console' panel.

NOTE: You need to create a new C++ project for EACH of your programming problems. This is messy for writing toy programs!

C Program

Follow the same steps as above. Create a 'C Project' (instead of 'C++ Project'). Try the following Hello-world program (called 'Hello.c').

C++ Program with Makefile

In the previous examples, we use so-called managed-make where Eclipse automatically generated a makefile to build the program. We can also choose to write our own makefile for complete control of the building process.

Step 1: Create a C++ Makefile Project

From 'File' menu ⇒ New ⇒ Project.. ⇒ C/C++ ⇒ C++ project ⇒ In 'Project name', enter 'HelloCppMakefile' ⇒ In 'Project type', choose 'Makefile Project ', 'Empty Project' ⇒ In 'Toolchains', choose 'Cygwin GCC' or 'MinGW GCC'. Ignore the warning message.

Step 2: Write a C++ Program

Right-click on the project ⇒ New ⇒ Source File ⇒ In 'Source file', enter 'Hello.cpp' ⇒ Enter the following source codes:

Step 3: Write a Makefile

Right-click on the project ⇒ New ⇒ File ⇒ In 'File name', enter 'makefile' ⇒ Enter the following codes. Take note that you need to use a Tab (NOT Spaces) for the indent.

Step 4: Build the Project

Right-click on the project ⇒ Build Project.

Step 5: Run the Program

Right-click on the project ⇒ Run As ⇒ Local C/C++ Application.


[TODO] Write a makefile to compile toy-programs under one project.

Read the Documentation

At a minimum, you SHOULD browse through Eclipse's 'Workbench User Guide' and 'C/C++ Development User Guide' - accessible via the Eclipse's 'Welcome' page or 'Help' menu. This will save you many agonizing hours trying to figure out how to do some things later.

Debugging C/C++ Programs in Eclipse CDT

Able to use a graphics debugger to debug program is crucial in programming. It could save you countless of hours guessing on what went wrong.

Step 0: Write a C++ Program - The following program computes and prints the factorial of n (=1*2*3*..*n). The program, however, has a logical error and produce a wrong answer for n=20 ('The Factorial of 20 is -2102132736' - a negative number?!).

Let us use the graphic debugger to debug the program.

Step 1: Set an Initial Breakpoint - A breakpoint suspends program execution for you to examine the internal states (e.g., value of variables) of the program. Before starting the debugger, you need to set at least one breakpoint to suspend the execution inside the program. Set a breakpoint at main() function by double-clicking on the left-margin of the line containing main(). A blue circle appears in the left-margin indicating a breakpoint is set at that line.

Step 2: Start Debugger - Right click on the project (or use the 'Run' menu) ⇒ 'Debug As' ⇒ 'Local C/C++ Application' ⇒ choose 'Yes' to switch into 'Debug' perspective (A perspective is a particular arrangement of panels to suits a certain development task such as editing or debugging). The program begins execution but suspends its operation at the breakpoint, i.e., the main() function.

Pink river dolphin pictures at lonehollow. As illustrated in the following diagram, the highlighted line (also pointed to by a blue arrow) indicates the statement to be executed in the next step.

Step 3: Step-Over and Watch the Variables and Outputs - Click the 'Step Over' button (or select 'Step Over' from 'Run' menu) to single-step thru your program. At each of the step, examine the value of the variables (in the 'Variable' panel) and the outputs produced by your program (in the 'Console' Panel), if any. You can also place your cursor at any variable to inspect the content of the variable.

Single-stepping thru the program and watching the values of internal variables and the outputs produced is the ultimate mean in debugging programs - because it is exactly how the computer runs your program!

Step 4: Breakpoint, Run-To-Line, Resume and Terminate - As mentioned, a breakpoint suspends program execution and let you examine the internal states of the program. To set a breakpoint on a particular statement, double-click the left-margin of that line (or select 'Toggle Breakpoint' from 'Run' menu).

'Resume' continues the program execution, up to the next breakpoint, or till the end of the program.

'Single-step' thru a loop with a large count is time-consuming. You could set a breakpoint at the statement immediately outside the loop (e.g., Line 12 of the above program), and issue 'Resume' to complete the loop.

Alternatively, you can place the cursor on a particular statement, and issue 'Run-To-Line' from the 'Run' menu to continue execution up to the line.

'Terminate' ends the debugging session. Always terminate your current debugging session using 'Terminate' or 'Resume' till the end of the program.

Step 5: Switching Back to C/C++ perspective - Click the 'C/C++' perspective icon on the upper-right corner to switch back to the 'C/C++' perspective for further programming (or 'Window' menu ⇒ Open Perspective ⇒ C/C++).

I can's stress more that mastering the use of debugger is crucial in programming. Explore the features provided by the debuggers.

Other Debugger's Features

Modify the Value of a Variable: You can modify the value of a variable by entering a new value in the 'Variable' panel. This is handy for temporarily modifying the behavior of a program, without changing the source code.

Step-Into and Step-Return: To debug a function, you need to use 'Step-Into' to step into the first statement of the method. You could use 'Step-Return' to return back to the caller, anywhere within the method. Alternatively, you could set a breakpoint inside a method.

Setup Function Arduino

NOTE: If you receive error message 'Can't find a source file at /cygdrive/c..' during debugging, you need to configure a mapping between '/cygdrive/c' and 'c:/' (assuming that your program in kept in drive c. From 'Window' ⇒ 'Preferences' ⇒ 'C/C++' ⇒ 'Debug' ⇒ 'Common Source Lookup Path', select 'Add' ⇒ 'Path Mapping'.

Tips & Tricks

Eclipse Arduino Setup Instructions

Read Eclipse for Java's Tips & Tricks for general tips in using Eclipse.

C/C++ Software Development Using GCC

Ide
  1. You can find the commands used in Eclipse CDT for build the project at '<workspace>.metadata.pluginsorg.eclipse.cdt.uiglobal-build.log'.
  2. Setting include-paths, library-paths, and libraries: When building the program, the compiler needs the header files to compile the source codes; the linker needs the libraries to resolve external references. The compiler searches the 'include-paths' for the headers specified in #include directives. The linker searches the 'library-paths' for 'libraries' needed to link the program. In GCC, include-path is specified via -Idir option or environment variable CPATH. The library-path is specified via -Ldir option, or environment variable LIBRARY_PATH. The library libxxx.a is specified via -lxxx option (lowercase letter 'l', without the prefix lib and .a extension).
    In Eclipse CDT, you can set the include paths, library paths and libraries by right-click on the project ⇒ Properties ⇒ C/C++ General ⇒ Paths and Symbols ⇒ Under tabs 'Includes', 'Library Paths' and 'Libraries'. The settings are applicable to the selected project only.
    To set the include paths and library paths for all the projects, set the environment variables CPATH and LIBRARY_PATH. In Eclipse, choose 'Window' ⇒ Preferences ⇒ C/C++ ⇒ Build ⇒ Environment.
    Alternatively, copy the headers and libraries into system directories, and you can omit the include-paths and library-paths.
  3. OpenGL with GLUT: For Cygwin, you need to install gcc, g++, gdb, make (under Devel category) and opengl, freeglut (under graphics category). The headers gl.h, glu.h, glut.h are kept in $cygwinusrincludew32apiGL. Use #include <GL/gl__.h> to include the headers. The libraries libopengl32.alibglu32.a and libglut32.a are kept in $cygwinlibw32api. To specify these libraries in linking, use -lopengl32-lglu32-lglut32 options (without the lib prefix and .a extension).
  4. OpenGL with SDL: Download SDL from http://www.libsdl.org. Choose Development Libraries ⇒ win32 ⇒ mingw32 ⇒ Unzip. Copy the headers directory SDL (under include) to $cygwinusrincludew32api; copy all the library files in lib into $cygwinlibw32api; copy the run-time library SDL.dll (under bin) into Windows/System32. In your program, include these two headers: #include <SDL/sdl.h> and #include <SDL/sdl_opengl.h>. For linking, add these libraries: -lSDL-lSDLmain.
  5. #pragma Comment Directive: pragma comment directive, e.g., #pragma comment(lib, 'opengl32.lib'), is often used to include a particular library (same as -l option). This system-dependent directive works on Windows's compiler, but NOT in GCC.
  6. Error 'multiple target patterns': There is a problem with GNU make (at $Cygwinbinmake.exe). Replaced by this copy @ http://www.cmake.org/files/cygwin/make.exe.
  7. fflush(stdout): The gcc library uses buffered I/O (in accordance with the C Specification). Output is only written out to the output stream after a newline character. You can flush the output with a fflush().
  8. Project name shall not include the word 'setup': If you name your C/C++ project with a name including the word 'setup', then the resultant '*setup*.exe' will trigger UAC (User Authorization Control) and require administrator right to run. (This took me a few hours to figure out! Try renaming a 'hello.exe' to 'mysetup.exe'.)

File I/O in Eclipse

Refer to Eclipse for Java's File IO.

REFERENCES & RESOURCES

  1. Eclipse's 'C/C++ Development Tool User Guide', accessible via Eclipse's Help menu.
  2. GCC (GNU compilers) mother site @ http://gcc.gnu.org; GCC manual @ http://gcc.gnu.org/onlinedocs.
  3. An Introduction to GCC @ http://www.network-theory.co.uk/docs/gccintro/index.html.

This is the firmware which controls the Maslow CNC machine

This is the firmware for the Maslow CNC Router

Steps to setup the Firmware development environment

First clone the Firmware repository, then install and setup the IDE of your choice.

Using Arduino IDE

  1. Download Arduino IDE 1.8.1 or higher
  2. Install Arduino IDE and run Arduino IDE
  3. Navigate menus: File, Open
  4. In the file chooser navigate to the cloned repository and choose the 'cncctrlv1.ino' file to open
  5. Navigate menu: Tools, Board, change to 'Arduino/Genuino Mega or Mega 2560'
  6. Navigate menu: Sketch -> Upload

This should compile the project without errors, and possibly some warnings.

Eclipse Arduino Setup

Using PlatformIO

  1. Download package for Atom
  2. Follow directions for installing PlatformIO within Atom
  3. Within Atom navigate menus: PlatformIO, Open Project
  4. Select 'Firmware' directory
  5. Click 'Open Firmware'

Using Eclipse Neon C/C++ with Sloeber plugin

  1. Download Eclipse C/C++ Neon or higher
  2. Install Eclipse C/C++ and run Eclipse
  3. Install Sloeber Arduino plugin
    • Navigate menus: Help, Install New Software..
    • Copy this URL in the 'Work With' field: http://eclipse.baeyens.it/update/V4/stable
    • Select 'Add' button
    • Select 'Sloeber Arduino IDE' check box
    • Select 'Finish' button
    • Accept defaults and accept licenses, the plugin will restart Eclipse, and configure the plugin
  4. Change to Arduino perspective, navigate menus: Window, Perspective, Open Perspective, Other..
    • Choose the 'Arduino' perspective and select 'Ok' button
  5. Create an Arduino project
    • Navigate menus: File, New, New Arduino Sketch
    • Project Name: cncctrlv1
    • Select 'Next' button
    • Select appropriate item from 'Platform folder' drop down listing
    • Select Board: Arduino/Genuino Mega or Mega 2560
    • Select Upload Protocol: Default
    • Select Processor: ATmega2560 (Mega 2560)
    • Select 'Finish' button
  6. Import project source code
    • Select project folder, navigate menus: File, Import..
    • Expand 'General' and select 'File system'
    • Select 'Next' button
    • Select the 'Browse' button to select the source location (location of the cloned repository cncctrlv1 directory)
    • Select whole source directory in the left pane
    • Open Advanced Settings by klicking on 'Advanced>>' button
    • Select 'Create Links in Workspace' and 'Create virtual folders' leave other settings untouched
    • Select 'Finish' button
    • Eclipse asks if overwriting the original cncctrlv1.ino file is ok. Confirm with 'yes'.
  7. Update eclipse project include paths
    • Select the project folder in the project explorer and click Project->Properties in the menu.
    • In the Project properties left Pane select C/C++ Build->Settings
    • In the right Pane select the 'Tool Settings' Tab and add the path to the source location to the include paths of all compilers/linkers of the toolchain.
    • The last two steps may differ between toolchains.

Using NotePad++ in Conjunction with the Arduino IDE

  1. Download NotePad++ (Windows only) link
  2. Download the Arduino IDE link
  3. Set that you would like use an external editor from within the Arduino IDE by clicking File -> Preferences -> Use External Editor*The Arduino editor will no longer allow you to edit the files, but instead will only work to compile and upload your code. *The code can be edited from within NotePad++*This method can be used on other platforms with editing programs other than NP++

Installing new firmware on your machine is important. We come out with a new firmware version every other week so be prepared to do this regularly. This process will also install the proper drivers to connect to your Arduino on some older computers so if you have trouble connecting it can be helpful to do this process on the same computer you will control the machine with.

Step 1: Connect Your Arduino

Connect your Arduino to your computer using the provided USB cable.

Step 2: Download The Arduino IDE

Download and install the last Arduino IDE from https://www.arduino.cc/en/Main/Software. Older versions of Arduino IDE have problems with libraries when compiling the firmware, so make sure you have the latest version.

Note - For Windows there are three options: 'Windows Installer', 'Windows Zip', and 'Windows App'. Some users have reported problems with the 'Windows App' version.

Step 3: Download The Latest Maslow Firmware

You can do this at http://github.com/MaslowCNC/Firmware/releases/ Click the zip file for the most recent release to download it. Extract the files from the zip folder.

Step 4: Open Firmware

Click File -> Open and then open the firmware by selecting cncctrlv1.ino

Step 5: Select The Board Type

Select the board type by clicking Tools -> Board -> Arduino/Genuino Mega or Mega 2560

Step 6: Select The Serial Port

Select the correct port to connect to by clicking Tools -> Port -> Your Port. On Windows this will be something like COM3, on Mac and Linux computers it will be something like dev/tty/. You can find the right one by plugging and unplugging your Arduino compatible board and checking which option disappears.

Step 7: Upload The Firmware

Upload the newest firmware to your machine by clicking the upload button in the top left corner. The arrow looks disabled until you hover over it! Linux users: if you are getting timeout or permissions errors, you may need to add your username to the dialout group and then logout and back in. Instructions here.

Step 8: Finish

You are now running the latest firmware. Great Job! Make sure you close the Arduino IDE before proceeding.

Step 9: Proceed

You have finished setting up the Maslow firmware. Proceed to the next step to install Ground Control on your OS.

Eclipse Arduino Install


The firmware is and always will be free!

Eclipse Install Arduino Library

You can download the latest version here