Blog

Brick Firmware Update

We just released new Brick firmwares that fix three important bugs:

  • Fix RS485 timing bug. This is a very old bug that we were not able to figure out for many years. Bricklets that use I2C (for example Temperature Bricklet) would somtimes give false values every few 1000 messages if RS485 was used. This was caused by a mix of I2C/RS485 timing constraints. We now use DMA for I2C Messages to fix this.
  • The handling of the initial enumeration (the enumerate callback with enumeration type = CONNECTED) has been completely reworked. Double enumerations don't happen anymore and the enumeration also works if a USB cable is connected to an already powered stack. This also fixes some other strange behavior. For example: In a RS485 network, if you restarted the RS485 master stack you had to restart the slave stacks as well, otherwise they wouldn't enumerate again. With the update the RS485 slaves will automatically re-enumerate if the RS485 master re-enumerates itself.
  • We will now never do a real hard reset if triggered by USB. USB has reset/suspend/resume messages that triggered a hardware reset (internal messages). There are several possibilities, when a PC can trigger these messages. For example on startup or when the USB hardware detects EMI. So far the Brick firmware simply resets the hardware. With the new firmwares the USB state machine will be properly resetted (as requested by the PC), but everything else will keep on running. So the Bricks/Bricklets will not loose state and for example a stepper motor will keep running until the request is fully processed. From the PC perspective the Brick will disconnect and immediately connect again. A new initial enumeration will be send. If you have problems with unwanted resets (for example if a relay switches an inductive load) this will probably fix this issue! The PC will still reset the USB, but from the user perspective everything will keep running and working, no lost messages or similar.

Especially the last one (relay switching resulting in stack resets) is a problem that we have heard sometimes, but we where never able to reproduce that. A few weeks ago we finally were able to create a setup here where we could reliably reproduce this problem. After many hours of debugging it turned out that the problem is that the PC registeres an EMI event through the USB cable and as a result tells the Brick to reset itself (on Linux this happens if you get the dmesg message "disabled by hub (EMI?), re-enabling ..."). This reset will now not result in a real hardware reset anymore and everything will just keep running even if your USB hub does a reset.

To fix this we had to restructure a lot of code, we used this restructering to improve the hotplug/enumeration functionality a lot.

You can update your Bricks through Brick Viewer.

RED Brick Image 1.10 Beta Test

Today we enter beta phase for RED Brick image 1.10. Normaly, we would release a new RED Brick image right away, but this time we want to test the new image in a public beta test, because it contains several big changes (e.g. new Kernel and Debian version). You can find the new image here: http://download.tinkerforge.com/red_110beta1/. You'll also need the current Brick Viewer 2.3.11.

Changes include:

  • Update to Linux Kernel version 4.13
  • Update to Debian version 9
  • On-Demand CPU frequency control
  • Network management with Network Manager for faster response time in Brick Viewer
  • Support for more WIFI USB sticks (with better support for Access Point Mode)
  • Support for Bluetooth LE/4
  • Many software and programming language updates: Node.js 8, Nagios 4, Octave 4, openHAB 2, etc
  • Update all Brick/Bricklet Bindings for all languages to lastest version

Known problems:

  • Stack communication in Brick Daemon is currently not DMA-accelerated and uses more CPU power. This will be fixed for the final version.
  • The display resolution cannot be changed at runtime. We're looking into it at the moment. It's unclear if this can be fixed.
  • No support for 3D/OpenGL hardware acceleration. The necessary Mali drivers are currently not yet ported to the newest kernel versions. We will release a new image as soon as we can add the drivers again. 2D hardware acceleration (for normal desktop environment usage etc) is working fine!

There is a forum thread for your feedback.

Job offers

We now have a page with job offers: https://www.tinkerforge.com/en/home/jobs/.

Among others things we are currently searching for experience in Odoo development (Python), LoRa/BLE hardware, antenna design and EN 61000-6-3/4 conformity (KiCad) and marketing.

The idea of the page is to have a list of general areas that are currently understaffed. We will update this list regularly with the changed requirements.

Step-Down Power Supply with more protection

The Step-Down Power Supply is now available in hardware version 1.3. It is reverse polarity protected on the input as well as output connector and you can also accidentially confuse the input with the output.

In version 1.2 and below connecting 6-24V to the output connector (interchanging the black and green connector) could result in a catastrophic failure of a whole stack. In version 1.3 the Step-Down Power Supply is now protected against this failure mode.

Because of production delays the Step-Down Power Supply was out of stock for ~3 weeks. All of the backorders are now shipped and everyone that was waiting for a Step-Down Power Supply to be delivered will already receive the new version 1.3!

3D Models of Bricks and Bricklets

Lately the inquiries for 3D models of Bricks and Bricklets became more frequent, so we started to create them.

The models are created with KiCAD, it already knows the position of all parts. Some 3D models of standard parts are already available in the KiCAD standard library. Others are available as a download from the manufacturer. We create the remaining models ourself with FreeCAD

You can download the models from the documentation sites of the Bricks/Bricklets under the "Ressources" section. The models are available as .step and also directly as . FCStd (FreeCAD file). Additionally we upload all of the models to the A360 portal from autodesk, where you can view them in them online in the browser. Examples:

There you can not only view the models but also do length measurments of parts etc.

We are currently creating the 3D models for all Bricks and Extensions. Additionally we will release a 3D model now directly with new product releases. Since we are updating all Bricka anyway (with the new co-processor Bricklets), we will get 3D models for all Bricklets too in the future!