If you do Arduino development using the Arduino IDE, you can use CEDET and EDE in Emacs as a replacement. So far, I have only verified usage of Arduino development with CEDET on Linux.
First, you need to install both the Arduino IDE http://arduino.cc/en/Main/Software, and arduino-mode for Emacs. https://github.com/bookest/arduino-mode
To create an arduino sketch, you will need to first use the Arduino IDE. Use the preferences to set the location of your sketchbook (where your arduino sketches will be kept.) You should also plug your Arduino into your computer, and try out one of the examples using the IDE. This will force the IDE to select the correct serial terminal to use, and it will configure other aspects of your Arduino.
Once the IDE has save your Arduino's information, Emacs will read the preferences file from the arduino IDE, and use that to development.
EDE will detect arduino projects once you have used the IDE to create your arduino preferences file.
When you use EDE to compile your arduino project, it will automatically generated a Makefile that will include the Arduino.mk helper makefile. This build system allows you to compile and upload arduino sketches into your arduino.
EDE provides the following convenience features for arduino projects:
The Arduino IDE has a serial monitor you can use to interact with your Arduino. You can open a serial monitor in Emacs for your arduino also.
The serial term in Emacs is imperfect in some ways becaus it can create a conflict with uploading new sketches to your Arduino, so be sure to kill it before uploading new sketches.
You can create macros for use with arduino-mode. (Files that end in .pde, or .ino.) By default, a handy empty file macro can be used to create the standard setup and loop functions.
The Arduino environment hides a common include file for wither
WProgram.h or Arduino.h, depending on the version of
your IDE. The smart completion engine will automatically load these
header files for buffers in
arduino-mode for use in smart