User Tools

Site Tools


ionpy:hardware:junsi_icharger

Junsi iCharger 4010Duo - Linux Setup Guide (Debian/LMDE)

Diese Dokumentation beschreibt die Einrichtung und Fehlerbehebung für den Zugriff auf Junsi iCharger Hardware unter Linux (getestet mit LMDE 7). Da der iCharger ein Composite-Gerät ist, wird der Zugriff über PyUSB anstelle von hidapi durchgeführt.

1. System-Voraussetzungen

Zuerst müssen die notwendigen System-Bibliotheken für die USB-Kommunikation und die Python-Umgebung installiert werden:

sudo apt update
sudo apt install libusb-1.0-0 libusb-1.0-0-dev python3-venv

Innerhalb der virtuellen Umgebung (venv) des Projekts muss PyUSB installiert sein:

pip install pyusb

2. USB-Architektur des iChargers

Der iCharger meldet sich am USB-Bus als Composite Device mit zwei Schnittstellen:

  • [cite_start]Interface 0 (HID): Zuständig für die Datenübertragung (Modbus via HID). [cite: 178, 179]
  • [cite_start]Interface 1 (Mass Storage): Stellt die SD-Karte als Laufwerk bereit. [cite: 140]

3. udev-Regeln konfigurieren

Um den Zugriff für Nicht-Root-Benutzer zu erlauben, muss eine udev-Regel angelegt werden. Diese sorgt dafür, dass die Gerätedatei unter /dev/bus/usb/ die richtigen Rechte erhält.

Erstellen Sie die Datei /etc/udev/rules.d/99-junsi.rules:

# Junsi iCharger 4010Duo - VID:0483 PID:5751
# 1. Erlaubt Schreib-/Leserechte für die Gruppe plugdev
# 2. Weist uaccess zu, um dem aktuellen User direkten Zugriff zu gewähren
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="5751", MODE="0666", GROUP="plugdev", TAG+="uaccess"

Aktivieren Sie die Regeln:

sudo udevadm control --reload-rules
sudo udevadm trigger

4. Diagnose-Verfahren

Sollte das Gerät nicht erkannt werden, prüfen Sie die folgenden Punkte:

A. Kernel-Treiber Check

Prüfen Sie, ob ein Treiber das Interface blockiert:

lsusb -t

Achten Sie auf die Zeile für den iCharger. Wenn dort Driver=usbhid steht, muss der Treiber im Python-Code via detach_kernel_driver() gelöst werden.

B. Rechte-Check

Suchen Sie Bus und Device Nummer:

lsusb | grep 0483

Prüfen Sie dann die Rechte (Beispiel für Bus 002, Device 016):

ls -l /dev/bus/usb/002/016

Soll-Ergebnis: crw-rw-rw- oder crw-rw—-+ (ACL).

C. Live-Monitor

Beobachten Sie das System beim Einstecken des Geräts:

udevadm monitor --environment --udev

Achten Sie darauf, ob die Zeile TAGS=:uaccess:seat: erscheint.

5. Integration im Framework

[cite_start]Der Transport nutzt das Modbus-Protokoll über HID-Reports. [cite: 418, 420]

  • [cite_start]Anfrage: Paket wird in einen 64-Byte Report verpackt. [cite: 418, 419]
  • [cite_start]Antwort: Der Lader antwortet mit Function Codes wie 0x03 oder 0x04. [cite: 184, 203]

6. Troubleshooting

Fehler Ursache Lösung
Access Denied udev Regel nicht aktiv udevadm trigger ausführen & neu einstecken.
Resource Busy Interface 1 (SD-Karte) wird gerade gemountet SD-Karte entfernen oder kurz warten.
open failed Kernel-Treiber (usbhid) blockiert Sicherstellen, dass der Transport claim_interface nutzt.

</code>

ionpy/hardware/junsi_icharger.txt · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki