Blog

New Bricklets February 2018 part 2: Outdoor Weather Bricklet and more

In the last blog entry we introduced the new Remote Switch Bricklet 2.0, Motion Detector Bricklet 2.0, Analog In Bricklet 3.0 and NFC Bricklet.

In todays part we want to present the Outdoor Weather, Temperature IR Bricklet 2.0, Rotary Encoder Bricklet 2.0 and the Solid State Bricklet 2.0.

As mentioned in the previous blog entry, all of the new Bricklets have a 7 pole Bricklet connector.

Outdoor Weather Bricklet

In the past we discovered that it is pretty hard to make a water proof enclosure that can be used for environment measurements with Bricks and Bricklets. To circumvent this problem we now offer the Outdoor Weather Bricklet. The Bricklet serves as a receiver for the Outdoor Weather Station WS-6147 and the Temperature/Humidity Sensor TH-6148.

With a 433MHz receiver the Bricklet is able to receive measurements from up to 255 outdoor weather stations as well as up to 255 sensors. Every sensor gets a unique ID at the first startup that can be used to match measurements to specific sensors/stations.

The Outdoor Weather Station WS-6147 is easy to build up and it measures temperature, wind speed, wind direction, rain as well as humidity. The measurments are transferred wirelesly with a frequency of 45 seconds. Additionally we add the Temperature/Humidity Sensor TH-6148 to our product line. The sensor measures temperature in °C as well as humidity in %RH.

The Outdoor Weather Brickelt in combination with the Outdoor Weather Station or the Temperature/Humidity Sensor is the perfect solution to add outdoor weather data to  the Starter Kit: Weather Station.


Temperature IR, Solid State Relay und Rotary Encoder Bricklet 2.0

The Temperature IR Bricklet, Solid State Relay Bricklet and Rotary Encoder Bricklet got an update to hardware version 2.0. All of the three Bricklets have a user configurable status LED as well as the new 7 pole connector. The Temperature IR Bricklet 2.0 and the Rotary Encoder Bricklet 2.0 additionally got the new and improved callback API. With the utilization of a co-processor we were able to increase the sampling rate of the Rotary Encoder. It is now practically impossible to ever loose any steps.

The technical specification of the three Bricklets stays essentially the same. The Temperature IR Bricklet 2.0 contactlessly measures temperature in the range of -70°C up to 380°C, the Solid State Relay Bricklet 2.0 can switch solid state relays with up to 380V/25A AC or 50V/80A DC and the Rotary Encoder Bricklet 2.0 is rotatable by 360° and it has 24 single steps in sum.

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!