Trace: » arduino.html

[hemmerling] The Arduino / Freeduino Platform with Atmel ATmega, Microchip PIC, ARM, Freescale Coldfire

The Arduino Platform & the Arduino Project

The IDEs

Arduino IDE 1

  • File structure:
    • The IDE is configured to process a single C++ file or C file in a project directory. However, the extension of that file must be ”.ino”, neither ”.c” nor ”.cpp”.
      • The IDE may just load “*.ino” file into it's editor, i.e. so neither “*.c” nor “*.cpp” files.
      • If you want to compile the C++/C file with other compilers, you must name it to “*.c” or ”.cpp” respectively, before compilation.
      • There is no way to keep both the “*.ino” file and a file copy with “*.c” or “*.cpp” extension in the project directory :-(.
        • If you you try, you get unsolvable link errors like “multiple definition of”.
    • The “*ino” file must reside in a project directory with the same directory name, e.g. in the project directory “hello”, the “*ino” file must be named “hello.ino” ( path “\hello\hello.ino” ).
    • Include files #include “file.h” .
      • Must have the file extension ”.h” :-), i.e. “*.inc” is rejected :-(. Error message “No such file or directory” :-(
      • May reside in the project directory or in sub-directories of the project directory, i.e. #include “h\include.h” is ok.
      • May not reside in a directory upwards the project directory :-(, i.e. #include ”..\h\include.h” is rejected :-(, by the error message “No such file or directory”.
  • Software structure,for C++ projects:
    • Use the given functions “setup()” and “loop”.
    • If you want to use easy terminal communications by the “Serial” object, i.e. “Serial.println”, you are going to do a C++ project, not a C project.
    • There is already a “main()” function defined by the default Android library. So don´t define your own “main()” function!!! If you do so, you will overwrite the “main()” function implemented by the default Android library. Consequently, the functions “setup” and “loop” won't function either.
    • There are differences with the special Arduino C/C++ compiler for C and C++ project, not really known from other C/C++ compilers.
  • Software structure,for C projects:
    • There is no easy terminal communications :-(.

Arduino C/C++ Compiler

Arduino C/C++ Language & Library


Software Development Systems for Arduino


  1. PlatformIO - “It supports not only Arduino boards but many other boards such as Raspberry, ESP32, ESP8266 and many others”.
  2. The commercial Programino IDE for Arduino - “Download the latest version and try it 30 days for free!”.
  3. embedXcode for Mac OS X only :-(.
  4. Ktechlab - ” IDE for microcontrollers. This more than a simple IDE because it supports circuit simulation and it can simulate the microcontroller and its circuit”.
  5. Codebender - “A cloud Arduino IDE”.
  6. Visual micro - “Visual studio plugin”.
  7. Zeus IDE - “An editor that supports several programming languages: C#, Lua, Go,..”.
  8. Google Play "ArduinoDroid" - “It runs on Android devices and using it you can program your Arduino. This is the first IDE that runs on Android OS”.

Very special IDEs


Arduino Boards

Official Arduino Boards

Third-Party Arduino USB Sticks

Third-Party Arduino Boards

Arduino Shields

  • Arduino Shield List - List of hardware extensions for Arduino boards.
  • An important design criteria & buying critera for me is “The shield can operate at 3.3V”, so that it might be ready for use with the Arduino boards with Microchip PIC CPU and forthcoming Arduino boards with ATxmega CPU.

Video Shields

Ethernet Shields


CAN-Bus Shield

Black & White LCD Graphics Display Shields

LCD Text Display Shields

  1. Mark Sproul LCD Shield - 2×16 or 4×20 displays.
  2. Freetronics 16x2 LCD Shield, 16×2 - “Use of pins D4-D9 was selected so that it doesn't interfere with pins required by other popular shields such as the Ethernet Shield, so you can stack this on top of other shields to give you a local display”.

Storage Shields

Interface / Relay Shields

Prototype Shields

Shields which provide Options for Integration of Third-Party Components

  1. DFRobot Interface Shield → LCD display, SD card.
  2. Luke Weston Pebble Shield → LCD text display,..#.
  3. Sparkfun ModKit MotoProto Shield → Sensors, motor, LCD display.
  4. Watterott mSD Shield → LCD display.

The Arduino Platform with "ARM" CPU

The Arduino Platform with "Atmel ATmega" CPU

Software for "Atmel ATmega" CPU


Free Tools

Commercial Tools

Target Frameworks

SDCard Slots on Ethernet and CAN-Bus Modules

Host Frameworks

Hardware with "Atmel ATmega" CPU


  • Support for hardware debugging: Look for a mounted male 6-pin connector with “ICSP” ( “In Circuit Serial Programming” ) next printed on the board.
  • Reset.
    • You may need to do a minor modification to the Arduino before you can use the “debugWire” protocol with Arduino and JTAGICE3. Some designs may already have the necessary jumper to enable/disable the capacitor on the RESET line.
    • With some boards, there is a 10K resitor between Reset and VCC. Experts say that this is ok for use with JTAGICE3 debugger.
  • Arduino Forum "Arduino ATmega2560 And AVR ONE!" → Instructions how to do connect JTAG debugger to Arduino ATmega2560 and how to do JTAG debugging with Atmel Studio 5.1 :-).
    • “The ICSP header is NOT the JTAG header. You'll have to pick the JTAG signals off of additional pins. The JTAG pins are shared with the a-d converter, so they should be reasonably accessible”.

The Arduino Platform with "Freescale Coldfire" CPU

The Arduino Platform with "Microchip PIC" CPU

The Arduino Platform with "Renesas RX63" CPU

The Arduino Platform with Atmel AVR8 or Z80ino CPU



Appropriate OpenDirectory Directory Pages

en/arduino.html.txt · Last modified: 2024/02/27 19:26 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki