There are four different types of hardware components:
See the tutorial for an explanation of how everything works together.
Bricks are 4 x 4cm (1.57” x 1.57”) boards equipped with a 32bit microcontroller, an USB port, two status LEDs, connectors for stacking and up to four connectors for Bricklets. There are Bricks that perform complex sensor tasks (e.g. IMU Brick), communicate (e.g. Master Brick) and drive motors (e.g. DC Brick).
Bricks can be stacked together to a stack. A Master Brick at the bottom of this stack can control all boards within the stack. This master routes the messages between the boards in the stack and the PC (High Level Programming Interface). For the user, the stack behaves as if all Bricks were connected separately over USB with the PC. See Tutorial Stacking for more information about stacks.
Besides the High Level Programming Interface it is also possible to use Bricks with the Low Level Programming Interface or the On Device Programming Interface.
| Name | Description | TCP/IP | C/C++ | C# | Java | PHP | Python |
|---|---|---|---|---|---|---|---|
| DC | 3A DC Motor Driver | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Debug | JTAG and serial console debug capabilities | ||||||
| IMU | IMU with 9 degrees of freedom | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Master | Allow building of stacks, 4 Bricklet Ports | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Servo | Control up to 7 Servos | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Stepper | 2.5A Stepper Motor Driver | TCP/IP | C/C++ | C# | Java | PHP | Python |
When using the High Level Programming Interface concept, Master Bricks can route messages between Bricks and the PC. To establish a connection between a PC and the Master Brick, typically the USB port is used. Master Extensions can be utilized to change the interface of a Master Brick. There are cable based and wireless Master Extensions available. From a programming perspective the different interfaces are transparent. A stack with Master Extension behaves as if every board in the stack would be directly connected to the PC over an USB connection. This means:
You can develop an application with all boards independently connected to the PC over USB. Later you can stack these boards together to stacks, add Master Bricks and cable based or wireless Extensions and you can run the previously written code without any changes.
| Name | Description |
|---|---|
| Chibi Extension | Wireless Chibi Master Extension |
| RS485 Extension | Cable based RS485 Master Extension |
Bricklets can be used to extend the features of Bricks. There are Bricklets to measure physical values such as rotation, voltage, current and ambient light as well as Bricklets for control purposes such as switching relays, digital input/output and drawing on LCDs.
Unlike Bricks, Bricklets have no fixed size. Each Bricklet has the minimum size possible. Each Brick has up to four connectors for Bricklets.
On startup a Brick detects connected Bricklets. The Bricklet plugins, stored in the EEPROM of the Bricklet, are copied into the flash of the Brick. This adds methods to the Brick, that can then be called from the PC.
See High Level Programming Interface for more information.
| Name | Description | TCP/IP | C/C++ | C# | Java | PHP | Python |
|---|---|---|---|---|---|---|---|
| Ambient Light | Ambient Light Sensor | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Analog In | Measures voltages from 0 to 45V | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Analog Out | Generates voltages from 0 to 5V | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Breakout | Makes all Bricklet signals available | ||||||
| Current12 | Bidirectional Current Sensor max. 12.5 A | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Current25 | Bidirectional Current Sensor max. 25 A | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Distance IR | Measure Distances with IR Light | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Dual Relay | Equipped with two relays | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Humidity | Humidity Sensor | TCP/IP | C/C++ | C# | Java | PHP | Python |
| IO-16 | Input/Output 16-Channel | TCP/IP | C/C++ | C# | Java | PHP | Python |
| IO-4 | Input/Output 4-Channel | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Joystick | Two directional Joystick with Button | TCP/IP | C/C++ | C# | Java | PHP | Python |
| LCD 16x2 | 16x2 alphanummeric chars display with backlight | TCP/IP | C/C++ | C# | Java | PHP | Python |
| LCD 20x4 | 20x4 alphanummeric chars display with backlight | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Linear Poti | Linear Potentiometer | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Piezo Buzzer | Buzzer for signaling | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Rotary Poti | Rotary Potentiometer | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Temperature | High Precision Thermometer | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Temperature IR | Infrared Thermometer | TCP/IP | C/C++ | C# | Java | PHP | Python |
| Voltage | Sensor to measure voltages | TCP/IP | C/C++ | C# | Java | PHP | Python |
A stack can be powered by the master of the stack over its USB connection. This option is limited by the USB specification (500mA). A large stack may need more power than 500mA.
To provide greater currents, power supply boards are available. These boards power the stack and can additionally be used to supply the power for driver Bricks (e.g. DC Brick). Power supply boards have the same size as Bricks and are stacked in at the bottom of the stack.
| Name | Description |
|---|---|
| Step-Down Power Supply | Powers a stack with 6-27V input |