Blog

Build environment for Brick firmware development

We often get asked how to set-up a build environment that can be used to modify and compile Brick firmwares or Bricklet plugins and how to change or add API to the Bindings.

A script that sets up a build environment for the complete Tinkerforge ecosystem is now available. Additionally we wrote a tutorial that explains how to use different parts of the build environment.

With the build environment you can:

* Modify and compile Brick firmwares
* Modify and compile Bricklet plugins
* Modify and generate APIs/Bindings for all of our supported programming languages
* Modify and compile Brick Viewer/Daemon
* View and modify schematics and layout files for Bricks and Bricklets (with KiCad)
* View and modify case CAD files (with FreeCAD).
* Modify and build the documentation

MQTT with Tinkerforge

https://www.tinkerforge.com/static/img/_stuff/mqttorg-glow.png

Nowadays IoT (Internet of Things) and M2M (machine to machine) communication is a much talked about topic. One of the big hurdles seems to be to establish one standard/protocol to communicate between devices and machines. Our solution to this problem has always been to directly provide Bindings for a big number of programming languages. This guarantees easy usage and there is no need for the protocol-question. To show that it is nevertheless easy to talk to Bricks and Bricklets with a M2M protocol, we wrote a Brick MQTT Proxy.

The Brick MQTT Proxy is a Python script that supports most of our Bricklets. The script is designed to be easy to extend. If you are missing a function or similar, you can easily add it yourself. More information can be found in the Brick MQTT Proxy documentation.

MQTT was already developed in the year 2000 and is meant as a protocol to exchange data between devices/machines. Is is a Internet of Things protocol that was ahead of its time. MQTT uses a so called Broker. It exchanges data between Publishers (devices that want to send data) and Subscribers (devices that want to receive data). Data sets are called Topics (for example a temperature). Topics are offered by Publishers and subscribed to by Subscribers. A device can be Subscriber and Publisher at the same time and for different Topics. If you want to now more about this, you can for example read the article What is MQTT and how does it work with WebSphere MQ?.

We look forward to your feedback regarding the Proxy!