Breakout grew out of a need for a simple platform to enable designers to prototype functional web-based interfaces to the physical world. It is based largely on the Funnel toolkit and informed by the experiences of the developers of both Funnel and Breakout as designers, technologists and educators.
Breakout is currently beta software. The API is stable, but bugs are possible. Please submit an issue if you suspect a bug.
See breakoutjs.com for detailed documentation and other helpful information.
See the detailed Getting Started guide or the quickstart guide below.
The first step is to upload AdvancedFirmata to your Arduino (or Arduino-compatible) board and wire up some components:
- After downloading or cloning Breakout, navigate to Breakout/firmware/AdvancedFirmata/ and open AdvancedFirmata.ino in the Arduino IDE (version 1.0 or higher).
- Compile AdvancedFirmata for your board and upload.
- Wire up a button, led and potentiometer to your I/O board as illustrated on page 3 in Breakout/examples/schematics.pdf (or download here).
The next step is to run the Breakout Server application:
- Make sure your I/O board is attached and the AdvancedFirmata sketch is uploaded.
- You'll find Breakout Server for your platform (mac, win or linux) in Breakout/server/. Unzip and open the folder for your platform and launch the application. Mountain Lion users may need to temporarily disable Gatekeeper to launch the app for the first time. Note: Linux users may need to run
sudo apt-get install librxtx-javaor manually install the librxtxSerial.so driver before launching the BreakoutServer.jar application.
- Select the serial port for your board from the drop-down if it is not the current port displayed.
- If your firewall is enabled, make sure port 8887 is open (or enter a new port that is open).
- Click the Connect button. You should see the message "Server running on: [your server name]: 8887/" followed by "Connected to IOBoard on: [serial port name]".
- Open http://localhost:8887/examples/index.html in Chrome (v14 or greater), Firefox (v11 or greater), or Safari (v5 or greater) and try the Getting Started examples. Note that if you changed the network port in step 4, you will need to update the 2nd parameter of the IOBoard constructor to the new port number.
You can also interact with the examples on your smartphone or tablet as long as your mobile browser supports websockets (Safari, Chrome for Android, Firefox Mobile). Instead of "localhost:8887/examples/" enter the IP address or hostname of the computer running Breakout Server (192.168.2.1:8887/examples/ or yourhostname.local:8887/examples/). Also make sure your mobile device is connected to the same wi-fi network as the computer running the Breakout Server application.
For more information on using Breakout Server including enabling multiple client connections, changing the webserver root directory, or using Breakout with mobile devices, see Using Breakout Server.
As an alternative to the Breakout Server application, a node.js-based server is also included. See the Using the node.js server for details.
Breakout is only supported for Arduino 1.0 and higher Download Arduino.
You will need one of the following I/O boards:
- An Arduino version Diecimila or newer (Uno, Fio, Mega, Pro, LilyPad, Leonardo, etc).
- Teensy 2.0, Teensy++ 1.0 or 2.0
- Many Arduino clones / variants should also work
- See Test Environment for full list of tested I/O boards
Note: In order to use Breakout with an Arduino Leonardo board, you need to update the Firmata library in your Arduino application. Please refer to the instructions here.
- Mac OS X 10.6 or higher
- Windows 7 or XP (Java JRE 1.6 or greater required)
- Has been tested successfuly on Ubuntu 11.10 running in 64-bit mode on an x86-64 processor
- May work on older versions of OS X and Windows as well but has not been tested
- May work on other Linux distributions but has not been tested
- Chrome version 14 - 24
- Firefox version 11 - 18
- Safari version 5 - 6
- Opera 12
Mobile Browsers (browser must support websockets):
- Safari mobile
- Firefox mobile version 7 or higher
- Chrome for Android (for Android 4.0 and higher)
- See Test Environment for list of tested phones and tablets
Contributions are welcome. If you have any ideas, suggestions for improvements, examples to share, or anything else you'd like to contribute please get in touch.
Submit pull requests for bug fixes and small changes. For any larger changes, please first start a discussing by opening a new issue.
Please submit pull requests against the dev branch. Code must pass unit tests in Breakout/test/ and must pass lint checks in order to be accepted. See build/README.md for more info. Run tests against Chrome, Firefox, Safari and Opera 12.
Breakout is developed by Jeff Hoefs.
Breakout is based largely on the as3 library of Funnel. The author is also a contributor to the Funnel as3 library.
Logo and icon designed by Claire Lin.
Breakout Server uses webbit
Breakout is distributed under the terms of the MIT License. See the LICENSE file.
See the ChangeLog file.