Blog

15 neue Bricklets, Teil 1 - Von C wie CAN 2.0 zu V wie Voltage/Current Bricklet 2.0

Es ist eine große Lieferung mit neuen Bricklets eingetroffen! Da es sich um insgesamt 15 unterschiedliche Bricklets handelt, werden wir alles auf zwei Blogeinträge aufteilen.

Viele der neu eingetroffene Bricklets haben ein Upgrade mit der Zusatzbezeichnung 2.0 erhalten und werden den jeweiligem Vorgänger ersetzen. Zusätzlich sind auch noch vier komplett neue Bricklets dabei, die unser Sortiment sowie auch die Anwendungsmöglichkeiten unseres Baukastensystems erweitern werden. Diese werden im nächste Blogeintrag genauer vorgestellt.

Alle neuen Bricklets sind grundsätzlich mit dem 7Pol Anschluss ausgestattet. Weitere Infos zu diesem Anschluss findet ihr hier. Folgende Bricklets besitzen nun einen Co-Prozessor anstatt eines EEPROMs und sind ab sofort in unserem Shop erhältlich:

Zusätzlich haben die folgenden Bricklets neben dem Upgrade auf 2.0 noch weitere nützliche Verbesserungen bekommen:

CAN Bricklet 2.0: Das neue CAN Bricklet 2.0 besitzt in seiner neusten Version einen Co-Prozessor, der den Arbeitsspeicher des Bricklets vergrößert. Dadurch ist das Brickelt deutlich leistungsfähiger und kann nun kurzfristig auch ein höheres Dautenaufkommen auf dem CAN-Bus handhaben.

RS232 Bricklet 2.0: Auch das RS232 Bricklet 2.0 besitzt gegenüber seinem Vorgänger einen größeren Arbeitsspeicher. Durch den vergrößerten Buffer wird die Handhabung des Bricklets erleichtert. Zudem findet auch hier die Streaming-API Anwendung, die wir bereits im Blogeintrag zum RS485 Bricklet (https://www.tinkerforge.com/de/blog/rs485-bricklet-and-new-streaming-api/) näher beschrieben haben.

LED Strip Bricklet 2.0: Neben vielen kleinen Änderungen erhält das LED Strip Bricklet 2.0 zusätzlich zwei signifikante Verbesserungen. Es ist nun möglich mit dem Bricklet bis zu 2048 RGB oder 1536 RGBW LEDs zu steuern. Damit kann das Bricklet 6x soviele LEDs steuern wie das Vorgängermodell. Zuvor gab es zudem die Einschränkung, dass bei voller Leistung des Bricklets einzelne Ports des verwendeten Bricks nicht genutzt werden konnten. Beim LED Strip Bricklet 2.0 ist das nicht mehr der Fall und es können auch bei voller Auslastung die übrigen freien Bricklets Ports am verbundetem Brick weiterhin genutzt werden.

Industrial Digital In 4 Bricklet 2.0, IO-4 Bricklet 2.0 und Industrial Quad Relay Bricklet 2.0: Die neuen Bricklets mit digitalen Ein-/Ausgängen haben eine verbesserte API bekommen. Die API nutzt jetzt Bool-Arrays anstelle von Bitmasken. Diese Änderung wurde erstaunlich oft angefragt. Vor allem in den Hochsprachen in denen man für gewöhnlich nicht mit Bitmasken arbeitet (LabVIEW, Matlab, Visual Basic .NET etc) hatten Kunden immer wieder Probleme mit den Bitmasken. Auf Protokoll-Ebene werden die Arrays weiterhin als Bitmasken übertragen, daher gibt es durch die Änderung keine Performanceeinbußen.

Morgen werden wir euch das Industrial Dual Relay Bricklet, Sound Pressure Level Bricklet, Particulate Matter Bricklet und Industrial Counter Bricklet im Detail vorstellen.

Tinkerforge und DSGVO

Wie Ihr wahrscheinlich schon mitbekommen habt tritt am 25. Mai 2018 die neue Datenschutz-Grundverordnung (DSGVO / GDPR) in Kraft. Die DSGVO ist eine EU Verordnung zur Verbesserung des Datenschutzes.

In diesem Blogpost wollen wir euch darüber informieren, wie die DSGVO bei uns umgesetzt wird:

Wir haben uns detailiert angeschaut welche Daten wir sammeln und diese im Hinblick der DSGVO betrachtet. Die einzige relevante Datenquelle die wir in der Firma ausfinding machen konnten, ist unsere Matomo-Installation (früher Piwik). Matomo setzte bisher einen Tracking-Cookie, für diesen Cookie gab es einen opt-out Button auf der Datenschutzseite. Da dies jetzt opt-in sein müsste um DSGVO-konform zu sein, haben wir den Cookie einfach aus unserem Matomo-Setup entfernt. Dies ändert in Wirklichkeit gar nicht viel, da wir auch vorher schon die "do-not-track"-Anfragen der Browser anerkannt hatten. Eigentlich alle modernen Browser setzen das "do-not-track" Flag standardmäßig, so dass Matomo auch vor der Änderung bereits keine Cookies gesetzt hatte.

Unsere Matomo-Installation sammelt jetzt anonymisiert Daten der Seitenbesucher. Diese können nicht mit einem Benutzerkonto, einer IP Adresse o.ä. korreliert werden. Die gesammelten Daten beinhalten

  • besuchte Seiten,
  • Besuchszeiten,
  • Herkunftsland,
  • Browser
  • und vergleichbares.

Die Daten werden genutzt um

  • tote Links zu finden (404),
  • Seiten zu finden die über Tinkerforge reden,
  • Auslastung des Servers anhand von Besucherzahlen/Ladezeiten zu bestimmen,
  • Effektivität von Artikeln/Werbung zu bestimmen
  • und vergleichbares.

Die Daten werden nicht

  • mit den Shop-Accounts in jeglicher Art und Weise korreliert,
  • genutzt um wiederkehrende Besucher zu tracken
  • oder genutzt um permanente Profile von Besuchern anzulegen.

Damit entsprechen wir den Vorgaben der DSGVO.

Zusätzlich betreiben wir einen Shop. Wenn Ihr ein Benutzerkonto in unserem Shop anlegt speichern wir die Adressinformationen und die Bestellungen. Diese Daten sind (offensichtlich) notwendig und unvermeidbar um einen Online-Shop zu betreiben. Wenn Ihr Euer Benutzerkonto aus unserem Shop entfernt haben wollt (Stichwort "right to be forgotten", Recht auf Vergessenwerden) schreibt uns eine Email. Wir können einen SQL-Query ausführen der alle Daten die zu einem Benuzterkonto gehören entfernt. Was bleibt ist eine archivierte ausgedruckte Kopie sowie eine archivierte digitale Kopie der Rechnungen die Ihr zu Euren Bestellungen bekommen habt. Wir sind dazu verpflichtet diese aufzubewahren (Stichwort Aufbewahrungspflicht). Wenn Ihr einsehen wollt, welche Daten wir über Euch speichern, könnt Ihr euch einfach in Euer Benutzerkonto einloggen und auf die "Mein Benutzerkonto"-Seite gehen. Dort befindet sich Euer Adressbuch sowie die Bestellinformationen. Diese Informationen entsprechen allen persönlichen Daten die wir haben.

Wenn Ihr Euch nicht in unserem Shop anmeldet und Produkte in den Warenkorb legt, setzt der Shop ein Cookie mit der ID des Warenkorbinhaltes. Wenn Ihr dann z.B. einen weiteren Tab öffnet wird der Warenkorbinhalt dort mit Hilfe dieser ID persistent angezeigt. Die ID beinhaltet keinerlei persönliche Informationen und kann auch nicht mit solchen korreliert werden. Die Dokumentation kann einen Cookie setzen falls Ihr explizit eine Sprache auswählt die nicht eurer Browser-Sprache entspricht. Dadurch werdet Ihr beim nächsten Besuch direkt auf die Seite mit der korrekten Sprache weitergeleitet. Hier falllen wieder keine persönlichen Informationen oder vergleichbares an.

Im Allgemeinen kann man sagen das wir unser Geld damit verdienen Hardware zu entwerfen, herzustellen und zu verkaufen. Wir sammeln nur die persönlichen Informationen die absolut notwendig sind dafür. Entsprechend sehen wir keine großen Probleme bei der Umsetzung der neuen DSGVO-Regeln.

Instagram

Wir haben jetzt ein Nutzerkonto bei Instagram: https://www.instagram.com/tinkerforge.

Wir werden immer wieder nach mehr Informationen über neue Bricks/Bricklets und unseren Produktionsablauf und vergleichbarem gefragt. Mit Instagram hoffen wir viele kleine schnelle Updates machen zu können und auch mehr Details von unserem Entwicklungsprozess und Entwicklungs/Test-Aufbauten zeigen zu können!

RED Brick Image 1.11: Große Leistungssteigerung

Das RED Brick Image Version 1.11 ist jetzt Verfügbar: http://download.tinkerforge.com/red_images/full/

Im RED Brick Image 1.10 hatten wir eine große Menge signifikanter Änderungen im Vergleich zu 1.9. Neben anderen Dingen haben wir den Linux Kernel von 3.4 auf 4.13 aktualisiert. Das war eine Menge Arbeit, wir mussten Treiber portieren, unseren SPI-Kommunikations-Code anpassen etc. Dadurch konnten wir einige notwendige Sicherheitsaktualisierungen einpflegen (z.B. der Fix für KRACK WPA) und neuen Treibersupport hinzufügen (z.B. für Bluetooth 5.0). Auf Grund der Sicherheitslücken im 3.4er Kernel war das Kernelupdate aus unserer Sicht alternativlos.

Leider gab es durch das Update einen Rückschritt in der Performance. Diese Regression kam hauptsächlich zustande durch Änderungen am Linux Kernel für Multi-Core Prozessoren (z.B. Busy Waiting auf IO in Interrupts). Diese Änderungen erhöhen die Performance in Multi-Core Systemen, wir hatten allerdings eine Verringerung der Performance des RED Bricks (ein Single-Core System). Der Performanceverlust war bei hohen IO-Belastungen besonders auffällig.

Da wir immernoch viele RED Bricks verkaufen und das Feedback durchgängig sehr positiv ist, haben wir uns dazu entschieden das "Großprojekt" anzugehen die Performance für die nächste Image Version wieder zu verbessern.

Unter anderem haben wir

Um diese Änderungen zu machen und vernünftig zu testen mussten wir zwei Monate Arbeit investieren. Es benötigte eine Menge "trial-and-error" um die eigentlichen Performance-Flaschenhälse ausfindig zu machen.

Wir haben mti drei verschiedenen Benchmakrs getestet:

Benchmark 1: CPU-Bound

Für die CPU-Bound Performance-Tests haben wir sysbench mit den Parametern "--test=cpu --cpu-max-prime=4096 run" genutzt.

Der governor (wenn zutreffend) war auf "performance" gestellt und die Verbindung zum RED Brick wurde über SSH durch die Ethernet Extension hergestellt.

Die durchschnittliche Ausführungszeit konnte von Version 1.10 auf 1.11 um 5,4ms verringert werden. Das entspricht einem Leistungsanstieg von 25%. Die Performance ist zusätzlich auch etwas besser als in dem 1.9 Image mit 3.4 Kernel.

Benchmark 2: IO-Bound

Für die IO-Bound Performance-Tests haben wir iper3 mit den Parametern "-c ishraq-tinkerforge -N -t 120" genutzt.

Der governor (wenn zutreffend) war auf "performance" gestellt und die Verbindung zum RED Brick wurde über SSH durch die Ethernet Extension hergestellt.

Wir haben mit und ohne Stapel getestet. In den Tests mit Stapel haben wir einen Master Brick mit Thermal Imaging Bricklet genutzt. Das Thermal Imaging Bricklet ist gut geeignet, da es hinreichend viele Daten generieren kann um die Stapel-Kommunikation zu saturieren.

Der Graph spricht für sich selbst. Wir konnten konnten einen Leistungsanstieg von 220% verglichen zu 1.10 und 23% verglichen zu 1.9 messen!

Benchmark 3: Stapel-Kommunikation

Zusätzlich haben wir auch noch Tests zur reinen Stapel-Kommunikation durchgeführt. In diesem Test nutzen wir ein Python-Script welches auf dem RED Brick ausgeführt wird und Daten vom Thermal Imaging Bricklet mit Getter/Callback sammelt und diese ohne zusätzliche CPU-Last zu erzeugen verwirft. Dabei berechnen wir die Bilder pro Sekunde (FPS).

In diesem Test konnten wir die Performance im Verglich zu 1.10 steigern, haben allerdings immer noch eine kleine Regression verglichen zu 1.9. Allerdings läuft die CPU im 1.9er Image in diesem Test bereits am Limit, während im neuen 1.11er Image noch CPU-Zeit für Berechnungen übrig ist. Das lässt sich auch gut im IO-Bound Test beobachten, dort wird CPU-Last hinzugefügt durch das zusätzliche Senden der Daten zum PC.

Insgesamt sind wir mit dem erreichten Kompromiss aus Stapel-Kommunikations-Durchsatz und verfügbarer CPU-Zeit sehr zufrieden. Wir sind zuversichtlich das die Performance in Image 1.11 in echten Anwendungen im Vergleich zu 1.10 erheblich und im Vergleich zu 1.9 moderat verbessert wurde.

Neue Bricklets Februar 2018 Teil 2: Outdoor Weather Bricklet und mehr

Im letzten Blogeintrag haben wir euch das Remote Switch Bricklet 2.0, Motion Detector Bricklet 2.0, Analog In Bricklet 3.0 und das NFC Bricklet vorgestellt.

Im heutigen Teil stellen wir euch das Outdoor Weather, Temperature IR Bricklet 2.0, Rotary Encoder Bricklet 2.0 und das Solid State Bricklet 2.0 vor.

Wie bereits im vorherigen Blogeintrag erwähnt, werden auch diese Bricklets mit dem 7-Pol Anschluss ausgestattet.

Outdoor Weather Bricklet

Wir mussten immer wieder feststellen dass es eine große Hürde ist ein eigenes sprtizwassergeschütztes Gehäuse zum Messen von Umweltdaten mit dem Baukastensystems zu bauen. Um dieses Problem zu umgehen bieten wir jetzt das Outdoor Weather Bricklet an. Das Bricklet dient als Funkempfänger für die Außen-Wetterstation WS-6147 sowie den Temperatur/Luftfeuchte Sensor TH-6148.

Über den eingebauten 433MHz Empfänger kann das Bricklet Messdaten von bis zu 255 Außen-Wetterstationen und zusätzlich von bis zu 255 Sensoren empfangen. Dabei bekommt jeder Sensor beim ersten Start automatisch eine eindeutige ID, damit die Daten einzeln ausgewertet werden können.

Die Außen-Wetterstationen WS6147 ist einfach aufzubauen und führt verschiedenste Messungen durch. Neben Temperatur, Windgeschwindigkeit und Windrichtung, misst es zusätzlich die Luftfeuchtigkeit und den Niederschlag und überträgt diese Werte kabellos im 45 Sekunden Takt an das Bricklet. Zusätzlich haben wir noch den Temperatur/Luftfeuchte Sensor TH-6148 mit in unser Sortiment aufgenommen. Der Sensor misst Temperatur in °C sowie die Luftfeuchtigkeit in %RH.

Das Outdoor Weather Bricklet in Kombination mit der Außen-Wetterstationen und/oder dem Temperatur/Luftfeuchte Sensor ist die perfekte Lösung um das Starter Kit: Wetterstation mit Außen-Umweltdaten zu erweitern.


Temperature IR, Solid State Relay und Rotary Encoder Bricklet 2.0


Das Temperature IR Bricklet, Solid State Relay Bricklet sowie das Rotary Encoder Bricklet haben ein Update auf Hardware-Version 2.0 bekommen. In der neuen Version haben die drei Bricklets jetzt eine einstellbare Status LED sowie den neuen 7-Pol Stecker. Zusätzlich nutzen das Temperature IR Bricklet 2.0 sowie das Rotary Encoder Bricklet 2.0 jetzt die neue verbesserte Callback API. Mit der Verwendung des Co-Prozessors konnten wir beim Rotary Encoder die Abtastrate signifikant erhöhen, so dass es jetzt nahezu unmöglich ist Schritte zu verlieren.

Ansonsten ist die technische Spezifikation der drei Bricklets im wesentlichen gleich geblieben. Das Temperature IR Bricklet 2.0 erlaubt Infrarot-Temperatur-Messungen im Bereich von -70°C bis zu 380°C, mit dem Solid State Relay Bricklet 2.0 können Solid State Relais mit Leistungen von bis zu 380V/25A AC oder 50V/80A DC geschaltet werden und das Rotary Encoder Bricklet 2.0 ist um 360° drehbar und hat insgesamt 24 Einzelschritte.