Tinkering Around With TinkerForge

Geek Culture

TinkerForge BricksTinkerForge Bricks

TinkerForge Bricks (Image: TinkerForge)

While I have a great fondness for developing and prototyping my electroncis projects on the Arduino platform, and I always will love the Arduino and Atmel microcontrollers, there is new favorite in my toolkit now as well. The TinkerForge system.

The TinkerForge system is a set of pre-built electronics boards that are built in such a way that you can stack the boards (known as bricks), attach accessories (known as bricklets), and have your prototype and and running quickly. Unlike systems, such as the Arduino or Launchpad, the TinkerForge has to be attached to a computer and the computer does all of the work. With an easy set of application programming interfaces (APIs) available in C/C++, C#, Java, PHP, and Ruby, the system is easy to interface and program over USB in a snap. I am usually a C/C++ programmer as a preference but I decided to take the time to learn something new with the TinkerForge so I have been working on rapid prototyping in Python. TinkerForge won the 2012 CHIP award for Product of the Year where the two years prior had been won by Panasonic and Lufthansa.

The heart of the TinkerForge system is the Master Brick. The Master Brick runs on an Atmel ATSAM3S4C microcontroller so I am sticking with my love of Atmel controllers — they’re everywhere! The Master Brick provides the USB interface and main communications portal between the computer and the stack. In addition to USB, you can also utilize Master Extensions that provide alternate communications interfaces. There is an RS485 interface available and, when I got my kit, a sub 1GHz radio interface known as a Chibi Extension. For various reasons, the TinkerForge team has informed me that they have stopped producing this extension but are working on an 802.11 interface in its place. The really neat thing about the way they have implemented the Master Extensions is that they are seamless to the user. Once they are configured it doesn’t matter if your stack is separated across the interface or all on the same physical stack, talking to all of the components on the stack works with the same code interface.

Additional bricks provide more functionality. Three of the additional bricks provide interfaces to motors and servos. One is a pure DC motor driving brick that provides up 25 V and 5 A. One provides the ability to drive a stepper motor up to 38 V and 2.5 A per stepper phase. Finally, there is a Servo Brick capable of driving up to seven servos up to a maximum of 3 A. For all of these devices, there is an independent DC power input should you need to use the power ranges above the standard USB 5V and (generally) less than an Amp power supplied over USB. There is also a debugging module that allows you to pull JTAG and serial console debugging information.

There is one more Brick that deserves a shout-out of its own. The IMU Brick. IMU stands for Intertial Measurement Unit and provides information about position and rotation of the brick. The IMU Brick features measurements via a 3-axis magnetometer, a 3-axis accelerometer, and a 3-axis gyroscope resulting in 9 degrees of freedom. For position calculations. The TinkerForge team goes out of their way to make using such a complex device simple, providing the position information as both a roll, pitch, and yaw or as a quaternion set. All of the calculations on-board are computed with quaternions, avoiding the gimbal lock that comes with Euler Angles. It is amazingly simple to use!

From the Master Brick, connections are enabled to a set of Bricklets that allow for various sensor inputs and output to and from the stack. As of this writing, there are 20 available Bricklets. The two LCD Bricklets make information output to an LCD about as easy as it gets and comes in two flavors, a 16×2 LCD and a 20×4 LCD. There is a large list of sensors available including light, humidity, temperature, voltage, and current. There are also Bricklets that allow for analog input to add your own favorite analog sensors. Potentiometers, a buzzer, digital IO expansions, relay controls, and a joystick help round out the category.

Connecting to a stack and working with the inputs and outputs is simple and only requires a few lines of code. For example, in Python, to connect to the stack, take a temperature measurement, and output it to the LCD takes only a few simple lines of code. Less than two dozen, actually, by my code.

Overall, I give the TinkerForge system very high marks. I am using it right now to start prototyping a my home automation system which I am calling the Home Administration and Laboratory system, or HAL. It was very easy to go from nothing to having a system gather information remotely via the wireless extension, report the information out to an LCD and also record the data to a Cosm feed, creating an Internet of Things system very quickly. Be mindful that they are located in Europe so taking into account the Euro conversion and shipping if you are in the US. I can’t say enough about how much fun this product has been to use!

Liked it? Take a second to support GeekDad and GeekMom on Patreon!
Become a patron at Patreon!