Jump to content

How do I create my own bricklet


Recommended Posts



I have the Industrial 0-20ma Current Loop bricklet and I would like to have a Thermocouple bricklet.


Has anyone created their own bricklet.  I think you would need to store some identification data in the EEPROM of your bricklet.  There is probably some type of a format for the information so that the Daemon can identify the bricklet. You would also need to modify the Master Brick code and the Daemon code so that your bricklet could be handled.  Then you would need to modify the API so that you could communicate with the Bricklet in a .Net language or Labview.


If this is a possibility then let me know everything about it.


Link to comment
Share on other sites

Yes you can create your own Bricklet. FlyingDoc in the German board is currently developing his own Differential Pressure Bricklet.


The Brick/Bricklet system does not work exactly as you described it. Let me just give a brief overview. There are basically three big steps you need to accomplish to create your own Bricklet:


1. Design and build the Bricklet hardware.

2. Write a firmware plugin for the Bricklet.

3. Write a API bindings generator config for the Bricklet.


The EEPROM on the Bricklet does not just contain an identifier but a firmware plugin for the Bricklet. This plugin is loaded and executed by the connected Brick. The Brick firmwares and the Brick Daemon doesn't know or care about individual Bricklets and therefore don't need to be modified to support a new Bricklet.


All our API bindings are generated, so you don't modify them directly. The API binding generators read a config file per Brick/Bricklet and generate the actual API bindings based on this information.

Link to comment
Share on other sites



Your comments have led me to this article "Firmwares and Plugins".

The article describes the Brick Firmware and Bricklet Plugins. 


Any information out there on how to create the configuration and then generate the API Binding? I would like to access my bricklet using a binding for .NET to be used with C#, VB.NET and Labview.  I see some generators on GitHub. 



Thanks for all your help Photron





Link to comment
Share on other sites

There is no official documentation about how the generator system works in detail. But you can dive into it and ask questions along the way.


You need to clone our generators git from GitHub. It contains the generators for all supported programming languages and the configuration files.


In the configs directory there is a config file for each Brick and Bricklet that describes its API. If you want to add a new Bricklet you need to write such a config file. You can look at all the other config files that are already there as examples.


Once you have your config file you can run the generators. The C# bindings are the basis for all the .NET based bindings. Go to the csharp directory and run:


python generate_csharp_bindings.py


You'll need to have Python installed for this. This script will generate a bindings subdirectory containing the generated C# code for the bindings along with a .csproj file. You can now open the .csproj file in Mono Develop (Visual Studio should also work) and compile it.


Link to comment
Share on other sites

You might want to know that Sourcery CodeBench Lite is not longer available.

This means that the article "Firmwares and Plugins" on Tinkerforge is out of date.  I think my only option is to use the 30 day free trial.  Any ideas?



From Mentor Graphics site:

Sourcery CodeBench Lite releases for ARM EABI, ARM GNU/Linux, ARM AARCH64-Linux, IA32/IA64 GNU/Linux and ELF are no longer available.

Link to comment
Share on other sites

That mentor.com site gets increasingly harder to navigate, ridiculous!


That said, "Sourcery CodeBench Lite" is just GCC with some patches, which is GPL. So they have to release it. I acutally don't know how you find this link anymore, but if you get an account at mentor.com, log in (let the site set a cookie) and then go here: https://sourcery.mentor.com/GNUToolchain/subscription3053? You can still get all of the "Sourcery CodeBench Lite" versions.

Link to comment
Share on other sites

I stand corrected. Sourcery CodeBench Lite 2014.05-28 is available and it worked.


For a test, I did the following:

  Downloaded the Firmware Source for the master Brick 2.1

  Erased the Firmware on the Master Brick.

  Built the .bin file and flashed it to the Master Brick


I have a digital Input Bricklet attached and that still switched Hi and Low so I think all is well. 


Thanks for your help everyone!


Link to comment
Share on other sites

  • 1 month later...

It seems that they completely removed it. As far as i can tell they are now not GPL compliant anymore, since i can still buy the commercial version that has the GCC etc inside.


As an alternative i would recommend the gcc-arm from launchpad: https://launchpad.net/gcc-arm-embedded. It is available for Windows/MAC/Linux and maintained by ARM employees.


We will switch to it for our new builds from now on too.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...