Die Software spielt eine immer wichtigere Rolle im Leben des Embedded-Entwicklers. Für .net-Entwickler im Embeddedbereich gibt es sowohl am Server als auch am Client Updates. Die Eclipse Foundation lanciert eine MQTT-Alternative für das Internet der Dinge, während das Feldbus-Kernelmodul aus dem Linux-Kernel ausgelistet wird.
Eclipse Zenoh: MQTT „auf Speed“.
Nach der „Wefzung“ zwischen AMQP und MQTT konnte man als Beobachter davon ausgehen, dass im Bereich der Embeddedprotokolle „Ruhe im Karton“ sei. Eine vor wenigen Tagen ausgesendete Pressemitteilung der Eclipse Foundation zeigt nun, dass dieser Eindruck trübt:
1 |
Eclipse Zenoh 1.0.0 enthält neue Funktionen wie Shared Memory, Zero-Copy-Unterstützung, End-to-End-Protection-Funktionen, High-Performance-Zugriffskontrolle sowie spezielle Verbesserungen für Robotik- und Automotive-Protokolle. Außerdem gibt es für das 1.0.0-Release und Updates Abwärtskompatibilität und langfristigen Support. |
Wer die unter der URL https://zenoh.io/docs/getting-started/first-app/ bereitstehende Getting Started-Seite des Programms besucht, wird mit Python, Rust und C-Beispielcode konfrontiert. Anhand des folgenden Snippets lässt sich feststellen, dass Zenoh eine Abart von MQTT darstellt:
1 |
import zenoh, random, time |
2 |
|
3 |
random.seed() |
4 |
|
5 |
def read_temp(): |
6 |
return random.randint(15, 30) |
7 |
|
8 |
if __name__ == "__main__": |
9 |
session = zenoh.open(zenoh.Config()) |
10 |
key = 'myhome/kitchen/temp' |
11 |
pub = session.declare_publisher(key) |
12 |
while True: |
13 |
t = read_temp() |
14 |
buf = f"{t}" |
15 |
print(f"Putting Data ('{key}': '{buf}')...") |
16 |
pub.put(buf) |
17 |
time.sleep(1) |
Dieser Eindruck setzt sich auch im Empfänger fort:
1 |
import zenoh, time |
2 |
|
3 |
def listener(sample): |
4 |
print(f"Received {sample.kind} ('{sample.key_expr}': '{sample.payload.deserialize(str)}')") |
5 |
|
6 |
if __name__ == "__main__": |
7 |
session = zenoh.open(zenoh.Config()) |
8 |
sub = session.declare_subscriber('myhome/kitchen/temp', listener) |
9 |
time.sleep(60) |
Der nach Ansicht des Autors „wichtigste“ Unterschied zu MQTT ist das stärker formalisierte Datenmodell. Unter der URL https://zenoh.io/docs/manual/abstractions/ findet sich beispielsweise die in der Abbildung gezeigte Definition des Formats der Payload.
Bildquelle: https://zenoh.io/docs/manual/abstractions/
Linux-Kernel: Entfernung des Feldbus-Subsystems ante Portas
Der Linux-Kernel wurde im Jahr 2019 - eine „Historie“ findet sich bei Phoronix unter https://www.phoronix.com/search/Fieldbus - mit einem offiziellen Subsystem für die Interaktion mit aller Herrenfeldbus ausgestattet. Nun geht es dem System aufgrund von mangelnden Maintainer-Interesse an den Kragen.
Meadow-Runtime: Version 1.15 unterstützt TensorFlow Lite
Bryan Costanichs .net-Ausführungsumgebung Meadow war auf mikrocontroller net in der Vergangenheit immer wieder Thema. Vor wenigen Tagen wurde eine Erweiterung der Plattform angekündigt, die - unter anderem - Unterstützung für die Ausführung von AI-Payloads auf Basis von TensorFlow Lite mitbringt:
1 |
Meadow.OS |
2 |
|
3 |
Fixed a critical issue that was affecting the reliability of Meadow Sleep/Wake |
4 |
Added support for the Quectel EG21 modem |
5 |
Minor improvements to edge-case network reliability |
6 |
|
7 |
Meadow.Core |
8 |
|
9 |
OtA download progress reporting fix |
10 |
Improved reporting of deadlock conditions |
11 |
Improved network compatibility |
12 |
|
13 |
Meadow.Foundation |
14 |
|
15 |
Added TensorFlowLite for Microcontrollers support for Meadow F7 |
16 |
Renamed PCanBasic assembly to prevent OEM assembly name conflict |
17 |
Added ADS1263 Driver |
18 |
Added ChromaTek WS2812 momentary and latching button drivers |
19 |
Improved WS2812 driver |
20 |
--- via https://developer.wildernesslabs.co/Meadow/Release_Notes/v1/ |
Neben dem als Quelle genannten Changelog empfiehlt sich auch ein Besuch von https://developer.wildernesslabs.co/Meadow/Meadow.OS/AI/, wo es weitere Informationen zum Aufbau der AI-API gibt.
Windows Server 2025 for IoT verfügbar
Microsoft bietet seit Windows Server 2019 auch eine vor IoT-Variante des Diensts an. Vor wenigen Stunden wurde - siehe https://techcommunity.microsoft.com/blog/iotblog/announcing-the-general-availability-of-windows-server-iot-2025/4286803 - die Version 2025 des Servers für die allgemeine Verwendung freigegeben. Im Rahmen der Ankündigung betonte Microsoft Steigerungen im Bereich der VM-Fähigkeiten als auch im Bereich der Performance, die aus verfügbarer Hardware extrahiert werden kann:
1 |
Hyper-V, AI, and Machine Learning: With built-in support for GPU partitioning and the ability to process large data sets across distributed environments, Windows Server IoT 2025 offers a high-performance platform for both traditional applications and advanced AI workloads with Live Migration and High Availability. |
2 |
|
3 |
NVMe Storage Performance: Windows Server IoT 2025 delivers up to 70% more storage IOPs performance compared to Windows Server IoT 2022 on identical systems. |
4 |
|
5 |
. . . |
6 |
|
7 |
Maximum memory per VM: 240 Terabytes* (10x previous) |
8 |
|
9 |
Maximum virtual processors per VM: 2048 VPs* (~8.5x previous) |
10 |
|
11 |
*Requires Generation 2 VMs |
Interessant ist, dass Microsoft den Windows Server bzw. seine IoT-Variante als „ausschließlich“ für die Nutzung in Fixfunktions-Appliances vorsieht. Der Windows-Lizenzierungsspezialist Arrow bietet unter der URL https://www.arrow.com/ais/msembedded/wp-content/uploads/sites/3/2022/11/Microsoft-Windows-Server-Licensing-Guide_Oct-20.pdf ein Dokument an, das auf die Besonderheiten der Lizenzierung eingeht - die Abbildung zeigt das „Grundkonzept“.
Bildquelle: Arrow
Bei der „Lizenzierung“ von Windows für Embedded-Anwendungen gilt im Allgemeinen, dass die Interaktion mit einem gewöhnlichen Microsoft-Lizenzexperten wenig zielführend ist. Der IoT- und der allgemeine Vertrieb sind zwei komplett unterschiedliche Aufgaben - der Autor hat in der Vergangenheit in der Zusammenarbeit mit Arrow gute Erfahrungen gemacht. Es ist dabei allerdings empfehlenswert, die „Lizenz-Beschaffung“ in eine eigene Kapitalgesellschaft auszulagern, da man sich im Rahmen der Errichtung der Lizenzverträge mit Microsoft verschiedene Einschränkungen einhandelt, die die Nutzung von Microsoftsoftware in anderen Teilen des Unternehmens erheblich verteuern.
Billig-Chipdesign-Serie präsentiert webbasiertes Tapeout-Werkzeug
Die von ElectronicDesign vorangetriebene Serie zum Entwurf von Chips mit minimalem Investment wurde unter der URL https://www.electronicdesign.com/blogs/nonlinearities/article/55240373/electronic-design-dirt-cheap-asic-design-for-dummies-part-3-nmos-pmos-silicon-design-using-a-web-browser? fortgesetzt. Besonders interessant ist in dieser Ausgabe das in der Abbildung gezeigte Werkzeug SiliWiz - ein im Browser lebendes Werkzeug, dass das Tapeout von Chips erleichtert und bei Bedarf auch Spice-Simulationsausgaben generiert.
Bildquelle: https://app.siliwiz.com/
ST AIoT Craft - AI-Generatorsystem für ST-MEMS-Sensoren
Dass die Franco-Italiener in ihren MEMS-Accelerometern verschiedenste Funktionen der künstlichen Intelligenz unterbringen, ist per se nicht neu. Bisher galt allerdings, dass die Programmierung vor allem manuelle Aufgabe war. Mit einem als ST AIoT Craft bezeichneten Dienst möchte STMicroelectronics die Lernkurve abschwächen:
1 |
Der MLC, ein Alleinstellungsmerkmal des MEMS-Portfolios von ST, ermöglicht die Verarbeitung lernender Entscheidungsbaum-Modelle direkt im Sensor. Der MLC kann autonom und ohne Einwirkung des Hostsystems arbeiten. Er bürgt für geringe Latenz und einen niedrigen Stromverbrauch und kann auf effiziente Weise Aufgaben wie etwa Klassierungs- und Mustererkennungs-Routinen verarbeiten, die nach AI-Fähigkeiten verlangen. |
2 |
ST AIoT Craft integriert ferner sämtliche Arbeitsschritte zur Entwicklung und Bereitstellung von IoT-Projekten, die den Sensor für sensorinterne AI-Funktionen nutzen, und bietet hierfür ein ebenso sicheres wie benutzerfreundliches Konzept. |
Wer den unter der URL https://staiotcraft.st.com/index.html bereitstehenden Dienst aufruft, wird - wie in der Abbildung gezeigt - mit einem Assistenten konfiguriert, der auch zur Verbindungsaufnahme mit realer Hardware befähigt ist.
Bildquelle: STMicroelectronics
Cartotype-Update mit Veränderungen der API-Struktur
Wer einen von Amazon, Apple, Google und Co. unabhängigen Kartendienst sucht, wird seit Jahr und Tag vom britischen Unternehmen Cartotype bedient. Die vor wenigen Tagen angekündigte neue Version 8.12 des Diensts bringt Änderungen an den API-Namen mit:
1 |
Declarations in the iOS API are now all prefixed with Ct to avoid naming conflicts with other APIs. The former prefix, ‘CartoType’, which was applied incompletely, was too long for easy use, but compatibility aliases have been added using ‘CartoType’, so that you can continue to use CartoTypeFramework as well as the new CtFramework. |
2 |
--- via https://cartotype.substack.com/p/cartotype-812 |
Amphenol SV: RF-Steckverbinder mit mechanischer Befestigung
Dass SMD-Steckverbinder und SMD-Induktoren gerne mal AWOL gehen, ist bekannt - im Fall der Steckverbinder ist interessanterweise oft auf das Gewicht der angeschlossenen Kabel zurückzuführen sein. Im Bereich der RF-Steckverbinder plant SV Microwave nun eine ganze Flotte von Steckverbindern, die mit zusätzlicher Befestigungstechnologie ausgestattet sind.
Bildquelle: https://www.svmicrowave.com/pcb-mounting-hardware
Microchip Adaptec® Series maxCache 4.0 - SSD-Beschleuniger für Datacenter
Microsofts ReadyBoost-Technologie ermöglichte Nutzern von Systemen mit wenig RAM die Einbindung eines USB-Sticks, der danach zu einer zusätzlichen Beschleunigung führte. Ob des Preisverfalls von SSDs hat Microsoft diese Technologie vor einiger Zeit aus Windows 11 entfernt. Interessant ist, dass MicroChip - das Unternehmen ist seit langer Zeit nicht mehr nur Chiphersteller, sondern bietet Value Added Services an - diese im Datacenter nach wie vor anbietet. Spezifischerweise handelt es sich dabei um eine PCIe-Karte, die - wie in der Abbildung gezeigt - zusätzliches Caching hinter einem Festplattenverbund implementiert.
KDAB: Tutorial zur Verarbeitung von PCM-Audiodaten.
Wer „rohe“ PCM-Daten und ihre Verarbeitung verstehen möchte, findet unter https://www.kdab.com/implementing-an-audio-mixer-part-2/ ein kompaktes, aber doch lesenswertes Tutorial zur Thematik.