Thanks to the myriad of embedded development boards available, nowadays it is easier than ever to build things in your own household. From extremely simple connected switches or relays for home automation purposes, to more advanced fully fledged robots, only sky is the limit, and since additive manufacturing has become mainstream and accessible, you can 3D print virtually any physical part you need for your project.
But what if you could combine the unique way of building with LEGO bricks with the power and versatility offered by the Raspberry Pi embedded board?

Created by American company Dexter Industries, BrickPi is a two-part system that allows you to bring these two amazing development platforms together. It allows you to connect LEGO Mindstorms motors and sensors to the Raspberry Pi, as well as mount the whole assembly to your project with LEGO Technic bricks and parts.
Up to four Mindstorms NXT or EV3 servo motors, and up to five NXT sensors can be connected to the BrickPi board via standard Mindstorms RJ12-style sockets. Two-way communication is enabled allowing for motor encoder data to be read. Both analog and digital I2C sensors are supported on four ports, and only digital sensors on the fifth. There are no limitations, compared to the NXT intelligent brick, which means the unit can be replaced entirely with no limitations.
[yellow_box] Read more Sensors and Accessories for the Mindstorms NXT[/yellow_box]
The BrickPi circuit board itself is the same size as the Raspberry Pi Model B or B+ units, and attaches to it via the standard 26-pin header. It is built around two ATmega328 microcontroller chips running on Arduino firmware which share a serial channel to communicate with the Raspberry Pi.
BrickPi also supplies power to all hardware attached to it. It supplies 5VDC through a voltage regulator to all the logical components — the Raspberry Pi, MCU, NXT sensors and other hardware, while motors are powered directly from the 9-12VDC power source.

Click to enlarge
The kit also includes a sturdy acrylic enclosure which can hold the BrickPi board together with a Raspberry Pi, and features standard sized mounting holes for receiving LEGO bricks.
Programming the BrickPi can be done in Python, C, visually in Scratch, with Wyliodrin, and many more supported by Raspi. Pretty complex function libraries are readily available for download from the BrickPi repository as well as example programs and other information to get you started.
[yellow_box]Read about Visually programming the Raspberry Pi from your browser[/yellow_box]
Installing BrickPi to the Raspberry Pi can be done in two ways, either by downloading a modified Raspbian image, or by modifying your own. To avoid the hassle, you can also buy a SD card with a modified Raspbian image from Dexter Industries’ shop.
A standard BrickPi kit, which includes the board and casing can be bought for US$ 65, while a full bundle, including a Raspberry Pi model B, WiFi dongle, power pack and advanced power module, SD card with custom Raspian image costs US$ 140.
Check out the resources below for getting started guides, repositories and other information.