Messen und Kalibrieren · für Steuergeräte und Arduino

Blick ins Steuergerät. Live, im Millisekundentakt.

XCP-Ray misst und kalibriert Steuergeräte live: Fahrzeug-Steuergeräte über CAN und LAN mit Standard-XCP und DBC, und genauso deinen eigenen Arduino oder ESP32 über das USB-Kabel. Jede Variable als Kurve sehen, Werte ändern, während die Firmware läuft.

XCP on CAN / CAN FDXCP on UDP/IPXCP über USB-SeriellDBCArduino & ESP32A2L aus ELFLinux & Windows

▼xcpray-gui – live messen, kalibrieren während der Messung×

Auch für Arduino gemacht

▼In den Sketch hineinsehen

Jede globale Variable deines Arduino live als Kurve, zehn und mehr gleichzeitig, auf einem Nano mit bis zu 100 Werten pro Sekunde.

Keine zusätzlichen Serial.print()-Zeilen, keine Grenzen des Serial Plotters. Deine eigene Textausgabe läuft in der Konsole weiter.

▼Einstellen ohne neu zu flashen

Schwellwerte, Verstärkungen und Zeiten ändern, während der Sketch läuft, und die Wirkung sofort sehen.

Die passenden Werte gefunden? Dann einmal in den Code übernehmen, statt nach jedem Versuch.

▼Ohne XCP-Vorkenntnisse

Eine Bibliothek, eine Liste der Variablen. Die Beschreibungsdatei (A2L) erzeugt das Kit nach jedem Build selbst.

Gebaut für Fahrzeug-Steuergeräte, funktioniert genauso mit deinem Arduino, und kostenlos. So geht's

▼Automotive×
XCP-Ray mit einem Steuergerät über XCP on CAN und einem Fahrzeugbus aus einer DBC-Datei auf demselben CAN-Kanal: Scopes mit drei Y-Achsen, eine Wertetabelle mit Parametern und Aufzählungen, eine Balkenanzeige mit Grenzen

Ein CAN-Kanal, zwei Quellen: das Steuergerät über XCP und der Fahrzeugbus aus seiner DBC, gemeinsam auf einer Zeitbasis aufgezeichnet.

Standard-XCP und DBC auf einem CAN-Bus

A2L des Steuergeräts laden, Signale wählen, F5 drücken. XCP-Ray plant die DAQ-Listen, prüft vor dem Start die Buslast und zeichnet nebenbei alles auf, was laut DBC über den Bus läuft.

  • XCP on CAN und CAN FD, dynamisches DAQ mit Zeitstempeln des Steuergeräts, Verlusterkennung und automatischem Wiederverbinden nach einem Reset.
  • Mehrere Steuergeräte gleichzeitig, auf einem Kanal oder auf vielen, gemeinsam gemessen und aufgezeichnet.
  • DBC-Dekodierung des Busverkehrs: Intel und Motorola, vorzeichenbehaftete und Gleitkomma-Signale, Multiplexing, Wertetabellen.
  • Kalibrieren per Name in physikalischen Einheiten, Aufzählungen als Auswahlliste, mit Rücklesen zur Kontrolle.
  • PEAK-Adapter unter Windows und Linux, zum Beispiel PCAN-USB Pro FD, unter Linux außerdem jeder SocketCAN-Adapter. Die Bitrate stellt XCP-Ray selbst ein.
▼Maker×

ESP32 über LAN (XCP on UDP/IP) und ein Arduino Nano über USB, gemeinsam gemessen. Die Serial.print()-Ausgabe des Nano läuft in der Konsole weiter.

Dein Arduino und ESP32 werden messbare Steuergeräte

Eine Bibliothek ins bestehende Projekt, fertig. Jede aufgelistete globale Variable lässt sich dann live als Kurve anzeigen und im laufenden Betrieb ändern, ohne neue Print-Ausgaben und ohne neu zu flashen.

  • Arduino Nano und andere AVR-Boards über die USB-Schnittstelle. Die XCP-Pakete laufen zwischen deiner Textausgabe, Serial.print() funktioniert also weiter und erscheint in der Konsole des Tools.
  • ESP32 über LAN mit XCP on UDP/IP, getestet mit einer 1-ms-DAQ-Liste über 60 s ohne verlorenes Paket.
  • Die A2L schreibt sich selbst nach jedem Build: Adressen und Datentypen aus der ELF-Datei, Einheiten und Umrechnung aus einer kurzen JSON-Liste.
  • Klein: auf dem ATmega328P braucht die Bibliothek etwa 500 Byte seiner 2 KB RAM.
  1. Bibliothek nach lib/ kopieren, das A2L-Skript neben die platformio.ini.

  2. XCP in setup() starten und in loop() bedienen:

    x1xcp::Config xcp;
    xcp.events = kEvents;
    xcp.eventCount = 2;
    x1xcp::begin(Serial, xcp);
  3. Die zu messenden und zu kalibrierenden Variablen in a2l/variables.json eintragen und bauen: Die A2L liegt danach neben der Firmware.

  4. Das Board in XCP-Ray hinzufügen, Konsole öffnen, messen:

    13:16:42 > stats
    13:16:42 commands 146,
             dtos 5024,
             bad frames 0

Funktionen

▼Scopes

Bis zu zehn Y-Achsen pro Scope, automatisch skaliert oder in getrennte Bänder gestapelt. Min/Max-Hüllkurven zeigen jede Spitze bei jedem Zoom.

Messcursor mit Werten, synchron über alle Scopes. In einer Aufzeichnung folgen Werte- und Balkenanzeigen dem Cursor.

▼Kalibrieren

Parameter in physikalischen Einheiten bearbeiten. Aufzählungen werden zu Auswahllisten, Grenzen aus der A2L werden eingehalten.

Auch Messgrößen lassen sich zeilenweise überschreiben, wenn ein Wert erzwungen werden soll.

▼Aufzeichnungen

Jede Messung wird für alle Steuergeräte und Busse auf einer Zeitbasis aufgezeichnet und danach in eine .x1rec-Datei gepackt.

Aufzeichnungen öffnen sofort, auch stundenlange: die Zeitpyramide wird mit den Daten gespeichert.

▼Seiten und Monitore

Scopes, Wertetabellen, Balken und Konsolen auf Seiten anordnen. Eine Seite auf einen zweiten Monitor ziehen; das Layout wird mit dem Projekt gespeichert.

Ein Projekt samt A2L- und DBC-Dateien als ein Zip exportieren.

▼A2L aus ELF

x1-a2l-studio vergleicht deine A2L mit einem neuen Firmware-Build, aktualisiert Adressen und Datentypen und fügt neue Variablen blockweise hinzu.

Umrechnungsregeln per Typedef: einen Typ einmal benennen, und jede Variable dieses Typs bekommt Einheit und Umrechnung.

▼Simulator und Kommandozeile

xcp-sim spielt ein Steuergerät auf einem virtuellen CAN-Bus, über UDP oder eine serielle Leitung, mit DBC-Testmustern. Alles ausprobieren ohne Hardware.

xcpray-cli liest, schreibt und misst aus Skripten.

▼Download×

Kostenlos nutzbar. Version 0.9.0

XCP-Ray ist Freeware: keine Lizenzgebühr, auch nicht bei gewerblicher Nutzung. Es ist nicht Open Source. Prüfsummen: SHA256SUMS.

▼xcpray-0.9.0-linux-x86_64.tar.gz

XCP-Ray für Linux

Das Tool, die Kommandozeile, der Simulator, die A2L-Werkzeuge und ein Beispielprojekt auf einem virtuellen CAN-Bus.

x86-64 · X11 oder XWayland · glibc 2.38+
Ubuntu 24.04, Debian 13, Mint 22, Fedora 39 oder neuer
5,9 MB

Download
▼xcpray-0.9.0-windows-x86_64.zip

XCP-Ray für Windows

Dieselben Werkzeuge ohne Installation: entpacken und starten. start-demo.bat startet den Simulator und ein Beispielprojekt auf diesem Rechner.

Windows 10 oder 11, 64 Bit
CAN: PEAK-Adapter mit dem PEAK-Treiber (PCAN-Basic)
9,5 MB

Download
▼x1xcp-arduino-kit-0.9.0.zip

Arduino-Kit

XCP über die USB-Schnittstelle für Arduino-AVR-Boards, mit der Textausgabe in der Konsole des Tools. PlatformIO-Bibliothek, A2L-Skript, Beispiel, Anleitung (Englisch).

Getestet: Arduino Nano (ATmega328P) · PlatformIO · 1,1 MB

Download
▼x1xcp-esp32-kit-0.9.0.zip

ESP32-Kit

XCP on UDP/IP über das Netzwerk (LAN) für ESP32-Projekte mit dem Arduino-Framework. PlatformIO-Bibliothek, A2L-Skript, Beispiel, Anleitung (Englisch).

Getestet: ESP32-WROOM-32 (NodeMCU-32S) · PlatformIO · 1,1 MB

Download
▼FAQ×
Funktioniert es mit anderen XCP-Tools und Steuergeräten?

XCP on CAN, CAN FD und UDP/IP folgen dem ASAM-Standard: XCP-Ray spricht mit Standard-Steuergeräten, und dein Steuergerät spricht mit anderen Tools. Die serielle Übertragung des Arduino-Kits nutzt ein eigenes Rahmenformat, damit Textausgabe und XCP sich die Leitung teilen können; das liest nur XCP-Ray.

Welche CAN-Adapter werden unterstützt?

Unter Windows: PEAK-Adapter, zum Beispiel PCAN-USB und PCAN-USB Pro FD, über PCAN-Basic, das mit dem PEAK-Gerätetreiber kommt. Unter Linux: jeder Adapter mit SocketCAN-Treiber im Kernel, PEAK eingeschlossen (Treiber peak_usb). Die Bitrate stellt XCP-Ray selbst ein; unter Linux braucht es dafür das Recht CAP_NET_ADMIN, das du einmalig im Terminal vergibst: sudo setcap cap_net_admin+ep bin/xcpray-gui. XCP-Ray ruft nie selbst sudo auf; fehlt ein Recht oder eine Schnittstelle, zeigt es den genauen Befehl zum Kopieren.

Ich habe nur einen Arduino. Ist XCP-Ray etwas für mich?

Ja. Du musst weder XCP kennen noch einen CAN-Adapter besitzen: Das Arduino-Kit bringt XCP in deinen Sketch, über das USB-Kabel, das du ohnehin benutzt, und erzeugt die A2L-Datei nach jedem Build. Das Kit ist für PlatformIO gemacht (zum Beispiel in VS Code); getestet mit einem Arduino Nano, andere AVR-Boards wie der Uno sollten funktionieren. Für den ESP32 gibt es ein Kit über LAN.

Gibt es eine Windows-Version?

Ja. Windows 10 und 11 (64 Bit) mit denselben Funktionen: CAN und CAN FD mit PEAK-Adaptern, XCP on UDP/IP, COM-Ports für das Arduino-Kit, Aufzeichnungen und die A2L-Werkzeuge. Ohne Installation: Zip entpacken und die Programme starten.

Brauche ich eine A2L-Datei?

Für ein Steuergerät ja: Sie benennt die Variablen und ihre Adressen. Für deine eigene Arduino- oder ESP32-Firmware erzeugen die Kits sie nach jedem Build aus der ELF-Datei. CAN-Busse brauchen nur ihre DBC-Datei.

Kann ich es ohne Hardware ausprobieren?

Ja. Unter Windows start-demo.bat doppelklicken: Das startet den Simulator (XCP on UDP/IP auf diesem Rechner) und öffnet das Beispielprojekt; dann F5 drücken. Unter Linux eine virtuelle CAN-Schnittstelle anlegen, xcp-sim starten und das Beispielprojekt öffnen, wie im README beschrieben.

Ist das Programm auf Deutsch?

Die Oberfläche und die Anleitungen der Kits sind auf Englisch.