This update includes the following new features:
- Ability interface with Serial devices (such as GPS receivers, LCD screens, RFID readers, etc). Only simple serialRead and serialWrite examples are provided so far. Device specific modules will be added in the future (contributions are always welcome).
- A new INPUT_PULLUP pin mode
- The ability to set a single digital pin value rather than a digital port value
- Updated tooling and cleaner formatting (additional lint checks, jsbeautifier, etc)
The biggest changes to be aware of:
- Breakout now requires ConfigurableFirmata rather than Firmata. This is to add support for the new Firmata Serial feature and to make it easier to add additional features going forward. Compile and upload the new BreakoutFirmata sketch located in Breakout/firmware/.
- The node.js version of breakout server (breakout-server) has been updated and moved to its own repository on github: https://github.com/soundanalogous/breakout-server. This should help keep the server up-to-date regardless of the Breakout.js update schedule. See the README to get started using the updated server.
Updates the version of AdvancedFirmata included in Breakout/firmware. The version that was included with Breakout v0.3.1 had a bug.
This update includes the ability to auto connect upon launching Breakout Server. Be sure to delete your old version of Breakout Server and use the one included in this download instead. When you launch the server, you should see
Breakout Server v0.3.0 printed to the console. To use the new auto connect functionality, you first have to attach an IOBoard (Arduino, etc) and select the serial port from the dropdown in the status panel. Then click on the settings tab. Check the “Auto Connect” box. From now on, whenever you launch Breakout Server it will auto connect to this board. Note however that in order for this to work, the board must always be plugged into the same usb port.
Breakout 0.3.1 includes an updated version of AdvancedFirmata that enables the use of high current stepper motor drivers (or drivers that require a 2 microsecond rather than 1 microsecond step delay) such as a TI DRV8825 driver. To use, pass an interface type of
Stepper.DRIVER_HIGH_CURRENT as the second parameter of the Stepper object constructor.
Additional changes were under the hood. Take a look at the change log for the full list.
Also, OS X Mavericks users. If you’re using Breakout Server you will need to disable the App Nap feature. To do this, right-click on the Breakout Server icon and select Get Info. Then check Prevent App Nap in the General section of the Info panel. This will fix the issue of Breakout Server becoming unresponsive after the window has been out of focus for a couple of minutes.
New grunt-based build system
The biggest change in this release is that grunt is now used to build Breakout. This is a huge improvement over the previously cobbled together system. Anyone interested in modifying the breakout source files or contributing to BreakoutJS development will now have a much easier time. Just install nodeJS and grunt-cli then run
npm install and you’ll be all set. See Breakout/build/README.md for instructions and details.
Now includes both dev and minified files
Breakout/dist/ directory now includes dev (Breakout.js) and minified (Breakout.min.js) versions of each file. Previously only minified versions were available but the filenames did not include “min”. All of the example files have been updated to reflect this change, but you’ll also want to update any of your applications to use the minified files (change Breakout.js to Breakout.min.js). Your apps will continue to work if you don’t change the filename, but you’ll be including the much larger dev files. The dev files are convenient for debugging.
Examples now work with both servers
All example files now include the socket.io client library. This means all of the examples will now work with the command line (nodeJS) version of breakout server without modification. However the side affect is that if you use the GUI version of Breakout Server you’ll see an error since there is no socket.io file to load (since you’re not using node). This error does not adversely impact your application though. It was the only way I could get the examples to work with both versions of breakout server.
See the change log for additional updates.
This release includes performance improvements for both Breakout Server (GUI) and the headless node JS version of breakout server.
The node JS server was also broken as of node JS version 0.10. This issue has been resolved but you may need to upgrade to node JS version 0.10 or greater and be sure to rerun
npm install from the Breakout/node_server/ directory to update the npm modules.
If you have been running Breakout Server from your Applications directory or another directory other than Breakout/ be sure to replace it with the server included in the Breakout v0.2.3 download.
Other changes include a reduced startup delay (time to launch after a browser reset) and the /sensors/temperature.html example has been updated to use the TMP36 sensor in place of the LM335 sensor.
The source code for the Java-based Breakout Server has also been moved from Breakout/server/ to a new repository.
This release fixes a bug in Breakout Server that was preventing any serial ports other than the first port in the drop-down list from being selected.
Most of the changes were under the hood. IOBoard was significantly refactored. Unit tests were added for the core Breakout files (I know… I know… but better late than never). Unit tests and lint checks are run automatically as part of the build process (Breakout/build/) so if you make any contributions make sure unit tests and lint checks pass before submitting code. See the test readme for more info. Tests are not included in the Breakout release download, they are only included if you clone the source or download a the v0.2.1 tag from github.
Some notable changes:
- A new method
getAnalogPinCountwas added to IOBoard to report the number of analog pins.
- A new getter
statewas added to Pin in order to report the current state of the pin. This is useful if you are running multiple client applications against a single board and want to inquire about the state on a particular pin on the board. For example if another client application is setting PWM on the board, you can call
queryPinState(refToPinObject)and listen for the response. Then you can check the pin state to get the pwm value set by the other client application. See the docs for Pin.state for more info. Also note that pin.value is not = pin.state.
removeFilter(filterToRemove)method was added to Pin to remove a specified filter from the Pin object.
- Example files can now be opened directly (double-click on html file) in addition to being loaded for a server.
- A new example was added to Breakout/custom_examples/ to demonstrate sending a JSON string from the Arduino to the client application using Firmata sendString. See custom_examples/simple_json and the corresponding Arduino sketch in custom_examples/sketches/.
- Applications using custom firmware can now also make use of system reset callbacks. If you had previously writing custom firmware, note that you should update your code to listen for IOBoard.READY rather than IOBoard.CONNECTED see custom_examples/simple_json.html.
See the change log for the full list of updates.
The biggest change in this release is a move to AdvancedFirmata. AdvancedFirmata will enable new features to be introduced faster than they were with StandardFirmata. AdvancedFirmata is included with the Breakout distribution. You’ll find it in Breakout/firmware/AdvancedFirmata/. Open the AdvancedFirmata.ino file in the Arduino IDE (version 1.0 or higher), compile and upload to your board. AdvancedFirmata is also available separately on github.
Breakout 0.2.0 adds stepper motor support. Examples are included for driving stepper motors in 2 wire and 4 wire configurations as well as using the EasyDriver. See the examples in Breakout/examples/actuators. Schematics for wiring up stepper motors are included on pages 11 – 13 of the schematics.pdf file (Breakout/examples/schematics.pdf or breakoutjs.com/examples/schematics.pdf).
The Breakout/server/ directory has also been updated. The server for each platform (Mac, Win and Linux) is now in a folder. There are also separate builds for Win 32 and Win 64. The default webserver root has also changed to ../../ since the platform folders added an additional level of depth. However it’s best to go to the Settings panel in the Breakout Server application and set your webserver root by choosing the root directory with the file chooser. An eclipse archive of BreakoutServer is also included (if you clone Breakout from github – the server source is not included in the download).
See the ChangeLog for the full list of updates.
This release includes a number of contributions by Fabian Affolter. See the change log for a list of all changes.
Some highlights are an examples index page. You’ll find this in Breakout/examples/index.html. This makes it much easier to run the examples from your PC or a mobile device (especially much easier on a smartphone). A few more examples have also been added to the /examples/getting_started/ directory and a new schematic is available on page 3 of /examples/schematics.pdf that can be used for all of the getting started examples.
The nodeJS server has been updated. You can now add command line options when starting up the server. If you have been using the nodeJS based server (in Breakout/node_server/) please note that the default port has been changed from 8080 to 8887. Also you no longer set the 3rd parameter of the IOBoard constructor to true when using the nodeJS server. Now simply including the socket.io client library indicates the intent to use the nodeJS server rather than Breakout Server. See the wiki page for more info on using the nodeJS server. I also hope to create an npm package for the server in the near future.
Breakout v0.1.6 is now available. This version adds a few new examples, adds the fritzing files used to create the schematics, and fixes an issue with the accelerometer.html example in Breakout/examples/processing_js/.
You will find 3 new examples in Breakout/examples/device_sensors/ that demonstrate how to use the HTML5 DeviceMotion and DeviceOrientation APIs (if your mobile device supports these APIs) to control the RGB and Hue values of an RGBLED and a BlinkM RGBLED module. You will also find 2 new examples in Breakout/examples/getting_started/ (analog_input.html and simple_led.html) contributed by Fabian Affolter.
If you are updating from a previous version, note that the Breakout Server application has not changed since v0.1.1 so if you want to make updating easier you can continue to use your existing version of Breakout Server. If you have not already, move the Breakout Server application to your Applications directory (or elsewhere outside of the Breakout directory), then launch the application, click on the Settings tab, click on Choose New Webserver Root, then navigate to your Breakout directory, highlighting the Breakout folder then click Choose. I will make an announcement when any changes are made to the Breakout Server application. Until then you can continue using the existing version rather than extracting the files from Breakout/server/ each time an update to the Breakout library is released.