Blog

15 neue Bricklets, Teil 2 - Vom Industrial Counter zum Sound Pressure Level Bricklet

Im letzten Blogeintrag haben wir euch bereits einen Teil unserer neuen Bricklets vorgestellt. Dabei handelte es sich grundsätzlich um bestehende Bricklets, die jeweils von einer neuen Version ersetzt wurden. Neben den verbesserten Versionen gibt es aber auch brandneue Bricklets, die wir euch gerne kurz vorstellen möchten. Das Industrial Dual Relay Bricklet, Sound Pressure Level Bricklet, Industrial Counter Bricklet sowie das Particulate Matter Bricklet werden ab sofort in unsererm Shop sowie in der Dokumentation zu finden sein.

Industrial Dual Relay Bricklet: Mit dem Industrial Dual Relay Bricklet vergößert sich unser Sortiment an Industrial Bricklets. Es ersetzt zudem das Dual Relay Bricklet. Das Industrial Dual Relay Bricklet besitzt zwei Relais mit jeweils drei Anschlüssen (Wechsler) zum Schalten von Lasten bis zu 240VAC/10A sowie 30VDC/7A. Im Gegensatz zum Vorgänger besitzt das Bricklet nun ebenfalls die steckbare Anschlussklemme der Industrial Bricklets und identische Abmessungen. Da das Bricklet häufig zusammen mit anderen Industrial Bricklets eingesetzt wurde, ist somit die Kompatibilität hergestellt. Ein Dual Relay Bricklet im "Industrial Bricklet Formfaktor" war eine der häufigsten Änderungswünsche die wir bekommen hatten.

Sound Pressure Level Bricklet: Das Sound Intensity Bricklet wird vom Sound Pressure Level Bricklet abgelöst. Das Sound Pressure Level Bricklet kann den Schalldruckpegel in dB(A/B/C/D/Z) und ITU-R 468 bewerten. Dafür nutzt es einen Frequenzbereich von 40Hz bis 40960Hz und kann Lautstärken zwischen 30dB und 120dB feststellen. Außerdem besteht mit dem Sound Pressure Level Bricklet die Möglichkeit die Frequenzzusammensetzung (Spektrum) zu bestimmen. Anhand der Spezifikationen ist es mit einem 200€ teuren Messgerät vergleichbar.

Particulate Matter Bricklet: Viele unserer Kunden wollten mit dem Dust Detector Bricklet Feinstaubmessungen durchführen, jedoch war das Bricklet nicht für diesen Anwendungsbereich ausgelegt. Mit dem Particulate Matter Bricklet gibt es nun ein Bricklet mit dem die Feinstaubkonzentration in den Kategorien PM1.0, PM2.5 und PM10, sowie die Anzahl der Partikel in 100ml Luft in Größen von 0,3µm bis 10µm gemessen werden kann. 

Industrial Counter Bricklet: Das Industrial Counter Bricklet ist ein Frequenzzähler mit 4 galvanisch isolierten Kanälen. Mit dem integrieten Flankenzähler können Tastverhältnisse, Perioden sowie die Frequenzen von 0,03Hz bis zu 4MHz pro Kanal gemessen werden. Da die Richtung des Zählers konfigurierbar ist und das Bricklet mir einer Zeitauflösung von bis zu 10,4ns misst, kann es zum Beispiel sehr gut zum Auslesen von Sensoren eingesetzt werden, die einen Flankenzähler- bzw. Frequenzausgang besitzen.

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.