

ifm CR1140 Rust-HAL & SDK
Native Rust-Hardware-Abstraktionsschicht und SDK für das ifm CR1140/CR1141 ecomatDisplay — die eigene Anwendung läuft anstelle der ausgelieferten CODESYS-Runtime.
Beschreibung
Das ifm CR1140 / CR1141 (ecomatDisplay 4,3″) ist ein robustes Bediendisplay auf Basis eines NXP i.MX 8M Nano (aarch64) mit Yocto-Linux. Ab Werk läuft darauf eine CODESYS-Runtime. cr1140-hal ist eine native Rust-Hardware-Abstraktionsschicht, mit der du deine eigene Anwendung anstelle dieser Runtime baust und ausführst — volle Kontrolle über das Panel, kein CODESYS dazwischen.
Was sie bereitstellt:
- Display: eine stride-bewusste xRGB8888-
Surfacemitcopy_from-Blit, dazu ein fbdev/linuxfb-FbDisplay(800×480, formatgeprüft, optional Double Buffering und Backlight-Blanking). - Eingabe: evdev-Tastaturdekodierung —
InputEventzuButton/ButtonEvent, mit Geräteerkennung über den Namen undepoll-tauglichen File Descriptors. - CAN: ein
CanBusüber SocketCAN (öffnen / senden / empfangen). - System: ein typisiertes LED-Enum, Backlight-Steuerung, SoC-Temperatur und weiterer sysfs-basierter Gerätezugriff.
- Persistenter Speicher: ein Retain-Store, der Reflashs übersteht — über die beschreibbare Overlay-Partition des Geräts und das Werks-EEPROM.
Auf der HAL sitzen zwei UI-Stacks. Auf der Rust-Seite treibt cr1140-sdk (Run-Loop, Telemetrie, Konfiguration, Persistenz) Slint-Demo-Apps an, statisch für aarch64 mit cargo-zigbuild cross-kompiliert. Auf der .NET-Seite ist Cr1140.Avalonia eine Avalonia-LinuxFramebuffer/DRM-Support-Bibliothek — als NuGet-Paket veröffentlicht — mit evdev-Tastatureingabe, einem SoftKeyFooter-Control, rotierenden fbdev- und tearing-freien DRM/KMS-Ausgabe-Backends, Onboard-LED-Steuerung und einer System-Telemetrie-API; eine Avalonia-Demo-App rendert direkt nach /dev/fb0, und ein Desktop-Emulator (Cr1140.Avalonia.Emulator) lässt dieselbe App in einem Fenster mit Geräte-Bezel auf einem Entwickler-Host laufen. Reversible Deploy-Skripte deaktivieren und maskieren den CODESYS-Dienst — mit getestetem Weg zurück zum Auslieferungszustand.
GitHub: https://github.com/uptux/ifm-cr1140
Tech-Stack
- Rust
- C# / .NET
- Avalonia
- NuGet
- Slint
- SocketCAN
- Linux Framebuffer / DRM/KMS / evdev / sysfs
- NXP i.MX 8M Nano (aarch64)
- Yocto-Linux
- cargo-zigbuild




