Arduino IDE (Arduino Programming Software)

Arduino IDE, Version 1.0.1, With Teensy 2.0 Connected

Arduino Interactive Development Environment

The Arduino IDE contains a text editor for writing code, a notification area, a toolbar with buttons for necessary functions, and menus. It used to write Arduino code and upload it to the board.

Writing Programs/Sketches

Source Code written using Arduino are called sketches. These sketches may be written in the text editor. And are saved with the file extension .ino. It has features for cutting/pasting and for searching/replacing text. The notification area gives feedback while verifying, saving and uploading and also displays errors. The console displays text output by the Arduino environment including complete error messages and other info. The bottom righthand corner of the window displays the current board and serial port. The toolbar buttons allow you to "verify" and "upload" programs, "create", "open", and "save" sketches, & to open the serial monitor.

Note: Versions of the IDE prior to 1.0 saved sketches with the extension .pde. It is possible to open these files with version 1.0, you will be prompted to save the sketch with the .ino extension on save.
Compiles your source Code & look for errors in it. If any error is indicated it will display it in the message section.

Compiles your code and uploads it to the Arduino I/O board.
Importnant Note: If you are using an external programmer, you can hold down the "shift" key on your computer when using this icon. The text will change to "Upload using Programmer"

Creates a new source code/sketch.

Presents a menu of all the code/sketches in your text editor(Arduino sketchbook). Clicking one will open it within the current window.
Note: due to a bug in Java, this menu doesn't scroll; if you need to open a sketch late in the list, use the File | Sketchbook menu instead.

Saves your code/sketch in .pde or .ino format.

Serial Monitor
Opens the serial monitor to see all the serial communication activity at a particular BAUD rate.

Additional commands are found within the five menus: File, Edit, Sketch, Tools, Help.


  • Copy for Forum
    Copies the code of your sketch to the clipboard in a form suitable for posting to the forum, complete with syntax coloring.
  • Copy as HTML
    Copies the code of your sketch to the clipboard as HTML, suitable for embedding in web pages.


  • Verify/Compile
    Checks your sketch for errors.
  • Show Sketch Folder
    Opens the current sketch folder.
  • Add File...
    Adds a source file to the sketch (it will be copied from its current location). The new file appears in a new tab in the sketch window. Files can be removed from the sketch using the tab menu.
  • Import Library
    Adds a library to your sketch by inserting #include statements at the code of your code. For more details, see libraries below.


  • Auto Format
    This formats your code nicely: i.e. indents it so that opening and closing curly braces line up, and that the statements inside curly braces are indented more.
  • Archive Sketch
    Archives a copy of the current sketch in .zip format. The archive is placed in the same directory as the sketch.
  • Board
    Select the board that you're using. See below for descriptions of the various boards.
  • Serial Port
    This menu contains all the serial devices (real or virtual) on your machine. It should automatically refresh every time you open the top-level tools menu.
  • Programmer
    For selecting a harware programmer when programming a board or chip and not using the onboard USB-serial connection. Normally you won't need this, but if you're burning a bootloader to a new microcontroller, you will use this.
  • Burn Bootloader
    The items in this menu allow you to burn a bootloader onto the microcontroller on an Arduino board. This is not required for normal use of an Arduino board but is useful if you purchase a new ATmega microcontroller (which normally come without a bootloader). Ensure that you've selected the correct board from the Boards menu before burning the bootloader.


The Arduino environment uses the concept of a sketchbook: a standard place to store your programs (or sketches). The sketches in your sketchbook can be opened from the File > Sketchbook menu or from the Open button on the toolbar. The first time you run the Arduino software, it will automatically create a directory for your sketchbook. You can view or change the location of the sketchbook location from with the Preferences dialog.

Tabs, Multiple Files, and Compilation

Allows you to manage sketches with more than one file (each of which appears in its own tab). These can be normal Arduino code files (no extension), C files (.c extension), C++ files (.cpp), or header files (.h).

Uploading Your Source Code

Before uploading your sketch, you need to select the correct items from the Tools > Board and Tools > Serial Port menus.
The boards are described below.
On the Mac, the serial port is probably something like /dev/tty.usbmodem241 (for an Uno or Mega2560 or Leonardo) or /dev/tty.usbserial-1B1 (for a Duemilanove or earlier USB board), or /dev/tty.USA19QW1b1P1.1 (for a serial board connected with a Keyspan USB-to-Serial adapter).
On Windows, it's probably COM1 or COM2 (for a serial board) or COM4, COM5, COM7, or higher (for a USB board) - to find out, you look for USB serial device in the ports section of the Windows Device Manager.
On Linux, it should be /dev/ttyUSB0, /dev/ttyUSB1 or similar.
Once you've selected the correct serial port and board, press the upload button in the toolbar or select the Upload item from the File menu.
Current Arduino boards will reset automatically and begin the upload. With older boards (pre-Diecimila) that lack auto-reset, you'll need to press the reset button on the board just before starting the upload.
On most boards, you'll see the RX and TX LEDs blink as the sketch is uploaded.

The bootloader is active for a few seconds when the board resets; then it starts whichever sketch was most recently uploaded to the microcontroller. The bootloader will blink the on-board (pin 13) LED when it starts (i.e. when the board resets).


Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch, select it from the Sketch > Import Library menu. This will insert one or more #include statements at the top of the sketch and compile the library with your sketch. Because libraries are uploaded to the board with your sketch, they increase the amount of space it takes up. If a sketch no longer needs a library, simply delete its #include statements from the top of your code.
There is a list of libraries in the reference. Some libraries are included with the Arduino software. Others can be downloaded from a variety of sources.

Third-Party Hardware

Support for third-party hardware can be added to the hardware directory of your sketchbook directory. Platforms installed there may include board definitions (which appear in the board menu), core libraries, bootloaders, and programmer definitions. To install, create the hardware directory, then unzip the third-party platform into its own sub-directory. (Don't use "arduino" as the sub-directory name or you'll override the built-in Arduino platform.) To uninstall, simply delete its directory.
For details on creating packages for third-party hardware, see the platforms page on the Arduino Google Code developers site.

Serial Monitor

Displays serial data being sent from the Arduino board (USB or serial board). To send data to the board, enter text and click on the "send" button or press enter. Choose the baud rate from the drop-down that matches the rate passed to Serial.begin in your sketch. Note that on Mac or Linux, the Arduino board will reset (rerun your sketch from the beginning) when you connect with the serial monitor.


Some preferences can be set in the preferences dialog (found under the Arduino menu on the Mac, or File on Windows and Linux). The rest can be found in the preferences file, whose location is shown in the preference dialog.
Click Here to view information about all other official Arduino boards available in the market.