PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ch9329 Kommunikation stabilisieren



Schlepser
08.01.2023, 21:31
Grüße,

Ich versuche über eine Arduino Plattform mit dem Chip Ch9329 zu kommunizieren, das funktioniert auch bisher auch nur ist die Zuverlässigkeit leider nicht geben.

Kurtze Erläuterung:
Der Chip Ch9329 dient als USB Schnittstelle zur Kommunikation mit Computer Systemen über das HID Protokoll.
Die Kommunikation läuft über UART/TTL bei 5V;
Das Modul sieht wie folgt aus : https://www.amazon.com/-/de/dp/B0BJZ5RZHV/ref=sr_1_4
Das was ich als Dokumentation gefunden habe war leider nur das :
https://www.alldatasheet.com/datasheet-pdf/pdf/1148630/WCH/CH9329.html
https://github.com/Blue-Beaker/9329KeyboardRemote/blob/main/ch9329_keyboard.py

Zur Kommunikation mit dem Chip verwende ich das :
https://github.com/ChengZu/ch9329
Ebenso wird SoftwareSerial verwendet.

Mein Problem ist das die Tastenbefehle nicht zuverlässig funktionieren.

Tasten wie Shift wird nicht gedrückt oder losgelassen, das gleiche ist bei ALT GR zu beobachten.
Das Manuelle abfeuern der Tasten über die Konsole über das von mir erstellte Arduino interface, ist das leider auch zu beobachten. Mal funktioniert es, mal nicht.
Tasten wie A-Z & 0-9 Funktionieren zuverlässiger. Die Komma weniger zuverlässig.

Ich weiß leider nicht wo da das Problem liegt. Ich bin leider auch ein ziemlicher Anfänger in C++.

Ich hoffe ihr könnt mir mit euren Erfragungen helfen.

Mit freundlichen Grüßen.

Anhang:
Tasten Tabelle 35877
Code der Text Verarbeitung 35878

Rabenauge
09.01.2023, 08:06
SoftSerial ist immer ne Notlösung.
Funktioniert ...mehr oder weniger, und nicht besonders schnell.

Das mit Shift und altGr- war es nicht so, dass diese Tasten nur in Verbindung mit anderen Tasten funktionieren?
Ich wüsste jetzt keine einzige Anwendung, wo die alleine irgendwas bewirken.

Wegen diesem Zusatzboard: wieso nimmst du nicht gleich nen Arduino Leonardo?

Schlepser
10.01.2023, 17:31
Grüße,

Ich habe ein kleines Programm geschrieben welches mir anzeigt welche Tasten gedrückt werden:
35880
Wenn z.b. Shift und A gedrückt wurde, würde es "A, Shift" anzeigen.

Oder wenn nur Shift gedrückt wurde, würde ich die Taste dementsprechend sehen.

Damit kann ich eine direkte Wirkung beobachtbar machen.

Wegen dem Bord, ich benutze ein Ardoino Bluno Beetle:
35881

Dieses Board ist sehr klein und hat einen integrierten BL-Chip, das ist somit auch der Hauptgrund.

Damit habe ich diesen Prototypen gebaut :
35882

Geplant ist, das ich den stick in einen PC stecke und diesen dann über eine Android App(über BL) Steuer.

MfG

Rabenauge
10.01.2023, 21:16
Niedlich.
Warum softSerial?
Wie gesagt: das funktioniert...gelegentlich.
Oft nicht so richtig.

Schlepser
10.01.2023, 21:49
Ihr könnt mich gerne korrigieren aber die Klasse Serial ist doch mit der Verbindung zum PC/Handy belegt.

Oder habe ich da was falsch verstanden?

ich wüsste jetzt nicht wie man das anderes manchen.

Rabenauge
10.01.2023, 22:29
Scheinbar kennt hier ausser dir niemand dieses Board.
Möglich wärs schon.
Dann hast du eben ein für den Vorhaben möglicherweise ungeeignetes Board gewählt.

An der softSerial (ich grusele mich schon bei dem Namen, weil ich damit meine Erfahrungen gemacht hab) kann man noch versuchen, die Baudrate runter zu drehen. Hilft manchmal.

Schlepser
13.01.2023, 23:04
Ich verstehe.

Was muss das Board haben, dass ich das vernünftige umsetzen kann?

Kanns du Boards vorschlagen womit es umsetze bar wäre?

Mfg

oberallgeier
14.01.2023, 09:49
.. über eine Arduino Plattform mit dem Chip Ch9329 zu kommunizieren .. zur Kommunikation mit Computer Systemen ..Grüß Dich!

Sorry für meine vermutlich unpassende Frage: musst Du die Kommunikation unbedingt mit dem Ch9329 machen und auch für alle "Sonder-"Tasten/-Codes haben? Muss es USB sein? Gehts nicht über UART? Denn vom Arduino zum Computer geht das ja "direkt" über UART bzw RS232, und mit nem CH340 oder so auch über USB. Eine weit verbreitete Möglichkeit. Mit meinen Platinen (auch arduino - aber dann fast immer umgequarzt/aufgebohrt auf 20 MHz) läuft das problemlos.

Schlepser
14.01.2023, 18:35
Grüße

ich weiß nicht genau ob ich das richtig verstanden habe.

Die HID Kommunikation muss über USB stad finden. Der Ch9329 ist nur mittel zum zweck.

Die Informationen die dann über HID übertragen werden, sollen am ende über Bluetooth kommen.

Wie es am ende umgesetzt wird ist nicht absolut sicher.

Beim HID ist mir nur wichtig das alle Zeichen (A-Z, a-z, 0-9) und Sonderzeichen(!"§$%&/()=?..-) übertragen werden können und eventuell Enter und Tab.
Die F-Tasten oder Win oder andere Steuer-Tasten wie Pos1, werden nicht benötigt.

Ich habe mal eine Konzept-Zeichnung gemacht, was das Gerät am ende machen soll:
35883

Ich möchte es überall hin mitnehmen können, daher versuche ich es so kompakt wie möglich zu machen.

Das Teil soll mir die ganzen Passwort eingeberreihen ersparen.

Rabenauge
14.01.2023, 22:27
Wenn du dieses Zusatzboard schonmal hast, wäre ein Arduino (Clone tuns auch) Mega 2560 ne Möglichkeit.
Der hat nämlich mehrere echte serielle Schnittstellen (ich glaube, drei).

Schlepser
15.01.2023, 01:06
Interessant, die Bibliothek hatte mir nicht den Anschein gemacht das es möglich sei mehrere Serielle Schnittstellen anzusprechen.

Auf meiner suche kam ich auf das Board Teensy 4.0 : https://www.pjrc.com/store/teensy40_pins.html
Dieses hat gleich 7 Serielle Schnittstellen und ist immer noch recht klein, auch wenn es nicht so klein ist wie das jetzige.

Gib es dazu Erfahrungswerte?

Zu diesem Board benötige ich aber dann extra Bluetooth Modul, das genauso möglichst winzig ist.

Gibt es Empfehlungen?

Ich bin auf dieses gestoßen : https://de.aliexpress.com/item/32362867703.html?gatewayAdapt=glo2deu

Wobei dafür wird die suche nach der Dokumentation wieder die Hölle sein, vermutlich. ](*,)

PS:
Empfehlungen bitte ohne Pins, die abzulöten zu müssen ist echt eine nervige Fummel Arbeit.

Rabenauge
15.01.2023, 07:29
Mal ganz ketzerisch gefragt: wieso eigentlich der ganze Zirkus?
Du kannst doch das Handy einfach mittels BT mit dem Laptop koppeln...

Zu Arduino und Bluetooth: HC-05/06.
Funktioniert prächtig.

Schlepser
15.01.2023, 12:28
Jo,

1. Smartphone mit BL mit einen Leptop zu verbinden bringt mir nichts, es meldet sich nicht als HID an.

2. Auch wenn eine Verbindung bestünde, ist die Sicherheit der Informationen nicht unbedingt gewährleistet.

3. Es soll an allen Geräten funktionieren, z.b. einen Fernseher oder an einer Konsole. Diese haben nicht unbedingt eine BL Schnittstelle. (Das Leptop Symbol sollte nur ein Platzhalter für das Endgerät sein. ich hätte an dieser stelle was anderes nehmen sollen, sorry)

4. Das Smartphone sollte auch Austausch bar sein, an dem treiben vom Smartphone zu basteln kann zu Problemen führen und ich müsste Android oder IOS eventuell aufbrechen. Da ist eine App zu schreiben für eine Serielle Kommunikation ist hier für wesentlich einfacher.

5. last, but not least, ich mach das zu meinem vergnügen. :D

Rabenauge
15.01.2023, 22:25
Wenn man etwas will, muss man sich durch beissen, schon klar, hehe.
Kann aber ein steiniger Weg werden: die SoftSerial funktioniert in _vielen_ Fällen durchaus (mehr oder weniger) zufriedenstellend.
Wirklich gut aber eben oft auch nicht.

Wenn man dann noch mehrere eher exotische Hardware-Kompoenten in einem Projekt verbauen will, kanns passieren, man verliert die Lust.
Wenn _ich_ das so bauen wollen würde, ich würd den Leonardo nehmen, ein HC-05 (oder 06) dazu und fertig ist die Laube.
Das aber vor allem, weil ich einen da hab...

An deiner Stelle eher den Mega2560 (da gibts bei den einschlägigen Chinesen auch ne Mini-Version von, hab ich aber bisher nur gesehen, noch nicht in den Händen gehabt, interessiert mich aber brennend, die wäre dann viel kleiner), den kann man sowieso immer mal brauchen (die schiere Masse an Pins und Schnittstellen ist einfach Klasse), und dann dein USB-Teilchen dazu, zusammen mit nem HC-05/6 für BT.
Da der mehrere echte serielle Schnittstellen hat, müsste das prächtig funktionieren.

Teensy's hab ich auch noch nicht bespielt, aber viel gutes von gehört.

Schlepser
21.01.2023, 20:03
Ich danke für deiner Hilfe bisher.

Mir ist aufgefallen, dass das BL - Modul (welches du vorgeschlagen hast) ein Adapter Board benötigt, worauf es aufgelötet wird. Warum wird es benötigt?

Ich kaufe mal alle Boards und Probiere sie mal aus.

Ich wünschte es gäbe mehr Leute die ihre Erfahrungen zum besten geben würden, aber nun gut.

Wenn ich ein fertiges Gerät entwickelt habe, werde ich mich mit SMD Technik beschäftigen und versuchen, das Gerät noch kleiner zu bekommen.

Rabenauge
21.01.2023, 22:52
Meine Module brauchen keinen Adapter.
Siehe hier z.B: https://funduino.de/tutorial-hc-05-und-hc-06-bluetooth