File Structure Overview

Breakout release file overview

This section provides and overview of the Breakout file structure. If you downloaded the Breakout release from this website, then you should have the following file structure:

release directory








The following sections describe the directory contents:


A log of the changes in each release.


This folder contains a few examples that demonstrate how to use Breakout without StandardFirmata. See  Using Breakout Without StandardFirmata for details. The schematics.pdf file contains wiring diagrams for the examples. Any libraries required to run the example files are included in the libs subdirectory.


The dist directory contains the minified Breakout files. You will need to include one of these files in your applications. There are 3 versions described below:


This is the minified version the full Breakout javascript library. Everything in Breakout/src/ except the files in Breakout/src/custom/ is included.


This minified file contains everything in Breakout/src/ except the files in Breakout/io/. Use this version if you are not using any of the IO objects (from Breakout/io/) or would only like to include the IO objects you are using in your application. In the later case, you must include the IO objects individually after including the Breakout-base.js file. Also, if an IO object has a corresponding Event object, the Event object must be included before the IO object. For example if the only IO object you are using is an analog accelerometer, you could include the following rather than the full Breakout.js file which would include all IO objects:

<script src="../dist/Breakout-base.js"></script>
<script src="../src/AccelerometerEvent.js"></script>
<script src="../src/AnalogAccelerometer.js"></script>



This file contains only the minimal objects required to communicate with the I/O board. The only use for this version is in creating applications that don’t rely on StandardFirmata. See the Breakout/custom_examples/rfid_example2.html. Currently this file contains more than you need for custom applications. A lighter file will be created in the future for this type of application.


This folder contains the documentation of the objects in the Breakout javascript library. Launch index.html to view the documentation. You can also view it online from the Docs link.


Examples are created for many of the objects in the Breakout library. See the various subdirectories for examples to use certain types of components such as actuators or sensors. There are also examples for using Breakout with other javascript frameworks such as Three.js and Processing.js. The schematic.pdf file contains wiring diagrams for all of the example files. The libs subdirectory contains any libraries required by the examples.


The firmware folder contains the AdvancedFirmata arduino sketch. You must upload AdvancedFirmata to your board before using Breakout. Open the AdvancedFirmata.ino file in the Arudino IDE (version 1.0 or higher), select your board from Tools -> Board, compile and upload.


This file contains the text of the MIT license that applies to Breakout.


A node.js-based version of Breakout Server used to be included with Breakout. However not it resides in its own github repository. See the instructions in the README file to get started if you want to use this server. Note however that it is more difficult to use than the simple GUI version of Breakout Server.

This file provides an overview of the Breakout project. It is also what you see when you view the Breakout project on github.


If you downloaded the Breakout beta release package, the contents of the server directory should be as follows:

server release





If you see more files than above such as a build and lib folder etc, then you downloaded (or cloned) the full Breakout repository rather than the distribution release. That’s okay, just refer the server section of Breakout Repository file structure overview below.

The release version of the server directory contains a compressed version of each server. You will need to expand the Server for your platform (see the Installation section of the Using Breakout Server guide for details). You can also delete the files for the other platforms. In order to simplify the downloadable Breakout distribution, the download does not include the server source code. You must clone the Breakout source code on Github to get the Breakout Server source.


The src directory contains all of the javascript source files for Breakout.


The core files are the base of the Breakout framework.


The custom directory contains files for objects that do not use StandardFirmata, but are useful enough to be included in the distribution source code. The files in the custom directory are not included in the minified Breakout.js file. See Breakout/custom_exemples/ for examples of use.


This directory contains a number of objects that are used to filter analog input. See the examples in Breakout/examples/filters/ and the Using Filters guide for details.


This directory contains an oscillator object that can generate signals on an output pin. For example it can be used to blink or fade an LED. See the examples in Breakout/examples/generators/ and the Using Generators guide for details.


The files/objects in the io directory are hardware abstractions of physical components. These objects greatly simplify the ability to interface with various input (sensors) and output (actuators). Expect additional io objects to be added in the future. See the examples in Breakout/examples/actuators/ and Breakout/examples/sensors/. Also see the examples in Breakout/examples/processing_js/ and Breakout/examples/three_js/ for applications of using sensors with WebGL graphics.


The utils folder contains javascript files that are used in Breakout but are not specific to Breakout. These provide common utilities such as event handling, timers, namespacing, etc.

Breakout repository file structure overview

If you cloned the repository from github then you’ll have some additional folders and files:

clone dir








The biggest difference between the repository and the release build is the structure of the Breakout/server/ directory. By cloning the repository you have access to the Breakout Server source code. In the repositoy the server directory contains the following files:

server release








  • The first 4 items are versions of the server for Mac, Win and Linux.
  • The build subdirectory contains the Jar file. You can run Breakout Server from this jar file or if you’re using Mac OS X or Windows you can use the more convenient executables found in the respective platform folders above.
  • An eclipse_archive is included as a convenience for any eclipse users who would like to modify the source code.
  • The lib subdirectory contains the jar files required to build the server.
  • explains how to build Breakout Server. The build step is only required if you modify Breakout Server. Pre-built versions are already included for Mac, Win, and Linux.
  • The release subdirectory contains graphics and other files used to build the executables.
  • src contains the java source files and the manifest file.

The repository also includes the following files and folders that are not present in the release distribution:


This folder contains the Closure Compiler that is used to minify the Breakout javascript code. There are several build files that can be run to minify the Breakout code. See the README file for build instructions.