Originally the Bricktronics software libraries for Arduino were all integrated together in one large library. That was not optimal in terms of adding new features such as improved APIs and new sensor support. It also meant that we had to include copies of all the helper libraries. In July 2015 we released a set of completely-rewritten software libraries, where each sensor/motor is its own library, plus libraries for the Bricktronics Shield and Bricktronics Megashield. These new libraries are referred to as “Bricktronics v1.2” code. There are a few helper libraries that are used by some of the Bricktronics libraries, that you’ll need to install separately. Links to helper libraries are provided from all example sketches and on the GitHub pages for each Bricktronics library.
The new libraries are compatible with all Bricktronics hardware released to date, and we strongly recommend that everyone migrate to the new libraries. They include new features and functionality that makes them easier to use. We’ve also added support for the sound and light sensors. The motor library now includes both position and angle control PID algorithms. The new and old libraries are not compatible however, so you should not try to use both old and new libraries in the same sketch.
The code for the projects in the book are contained in the Bricktronics Shield library, so be sure to check them out!
Bricktronics software libraries v1.2
- BricktronicsMotor – Support for NXT 2.0 and EV3 servomotors
- BricktronicsLight – Support for NXT monochrome light sensor
- BricktronicsColor – Support for color sensors
- BricktronicsSound – Support for sound sensors
- BricktronicsButton – Support for pushbutton sensors
- BricktronicsUltrasonic – Support for the NXT 2.0 ultrasonic sensor
- BricktronicsShield – Support for the Bricktronics Shield
- BricktronicsMegashield – Support for the Bricktronics Megashield
Old code releases (single-library code architecture)
- Download the Bricktronics Shield 2015-01-22 software release. This includes all the examples!
- Download the Bricktronics Megashield 2015-02-22 software release. This also includes all the examples, tweaked to work with the Megashield.
Quit the Arduino application.
For GitHub libraries, click the “Download ZIP” button at the bottom of the right column. Non-GitHub libraries should have a ZIP download on their website. Uncompress the ZIP archive. This should result in a new folder probably ending in “-master”, and inside that folder should be a bunch of files and folders, including README.md. You should remove the “-master” from the folder name.
Copy the newly-renamed folder.
Find your sketchbook directory. On Windows, this is usually “My Documents\Arduino”. On Mac, it is usually “Documents/Arduino”. On Linux, it is usually “~/Arduino”.
If there isn’t a libraries directory inside your sketchbook directory, create one.
Paste the library folder inside the libraries folder in your sketchbook.
Restart the Arduino application. The new library should appear in the Sketch->Include Library menu, and there should be examples in File->Examples->LibraryName.
The Bricktronics libraries are GPL2+, except for the ColorSensor part, which is MPL 1.0. The Bricktronics Shield uses an MCP23017 I/O expander chip, which uses the Adafruit MCP23017 (BSD licensed).
If you need alternative licensing, let us know.
The Bricktronics libraries are open source software, and you’re free to use it without Bricktronics products–but purchasing our products is the best way to make sure we’re able to spend time making more open source software and hardware in the future. The second best way is to tell all your friends how much you like our stuff!
There were a lot of other libraries used in the creation of the Bricktronics libraries. Special thanks to Adafruit, William Grieman, jrraines, the leJOS team, Filipe Janela and Francisco Janela, and the LEGO team!
The LEGO Ultrasonic sensor has some quirks that we need to work around in firmware. We need repeated start/restart support, and we need to tweak the clock bit after a read. We modified the SoftI2CLibrary by William Greiman to do this.
We used the leJOS firmware, and looked at the source for the NXT firmware to get the Color Sensor working with Arduino.
We need a little faster performance than digitalWrite for the Color Sensor. Normally we’d just twiddle PORT and DDR directly, but as we’re playing around with alternative Arduino architectures like the ChipKit, we decided to try out a set of macros (digitalWriteFast) that are almost as fast as twiddling the PORT registers directly. jrraines implemented these for Arduino, based on some work by Paul Stoffregen.
The Bricktronics kits were developed with Kicad, an open source electronic design suite. It is available for Windows, Linux, and OSX.
- Bricktronics Shield
- Bricktronics Megashield
- Bricktronics Motor Driver
- Bricktronics Breakout Board
Licensing – We consider the Bricktronics kits to be open source hardware. All files are licensed Creative Commons Attribution-Share Alike 3.0, except the firmware which is licensed under the GNU Public License (GPL).
For the Creative Commons files, this means you may copy, distribute, and display them (and any modifications or “derivative works” you make) if you give credit to Wayne and Layne, LLC, link back to this website, and you must also license any modifications or derivative works under this exact same Creative Commons Attribution-Share Alike 3.0 License.
There are similar rights granted by the GPL, but attribution is not required. It’s appreciated, though!
This software is licensed under the CC-GNU GPL version 2.0 or later
Bricktronics Shield by Wayne and Layne, LLC, is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
Different licensing may be available. Contact us for more information.
Note: Wayne and Layne, LLC and our products are not connected to or endorsed by the LEGO Group. LEGO, Mindstorms, and NXT are trademarks of the LEGO Group.