Hardware Neo "Treiber" - wer macht mit ? #531
Tunnisteet
Ei tunnistetta
(╯°□°)╯︵ ┻━┻
Bug
Diskussion
Dokumentation
Duplikat
Gitea
Hardware
Hilfe
Invalid
Java
Lernen
Qt
Remote
Subversion
Tablet
Tastaturbelegung
Test
Treiber/Android
Treiber/iOS
Treiber/Linux/Konsole
Treiber/Linux/xkbmap
Treiber/Linux/xmodmap
Treiber/MacOS
Treiber/Windows/AHK
Treiber/Windows/kbdneo
Treiber/Windows/ReNeo
Verbesserung
Website
Windows 11
Wontfix
Worksforme
Ei merkkipaalua
Ei käsittelijää
5 osallistujaa
Ilmoitukset
Määräpäivä
Määräpäivää ei asetettu.
Riippuvuudet
Riippuvuuksia ei asetettu.
Reference: neo/neo-layout#531
Ladataan…
Viittaa uudesa ongelmassa
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
https://github.com/kingdase/hasu-usb-usb-neo
Es geht darum, ein Neo2 Mapping für einen USB-USB Arduino Zwischenstecker für USB-Tastaturen zu programmieren.
Hier kann man auch Online ein Layout definieren:
www.tmk-kbd.com/tmk_keyboard/editor/unimap/?usb_usb
Es gibt auch Layer - keine Ahung ob die für Mod funktionieren.
Ich habe Bone für meine (etwas unorthodoxe) Tastatur auf qmk-Basis implementiert, da lässt sich potentiell einiges übernehmen.
Vielleicht hilft dir diese Mail von mir, die ich am 12.5.2019 über diskussion@neo-layout.org verteilt habe:
Adapter ist angekommen.
Hat nur 3 Tage von Tokio nach Frankfurt gebraucht.
Der deutsche Zoll hat dann noch 17 Tage benötigt ...
Im Auslieferungszustand führt der Adapter ein 1:1 Mapping durch.
Die Firmware von Manuel habe ich dann auch recht schnell auf den Adapter bekommen.
Lese mich jetzt erst mal in die umfangreiche Firmware-Doku ein.
Was ich schon entdeckt habe: Es gibt eine Macro Funktion, mit der man z.b. Tastensequenzen senden kann. Damit könnte man Unicode Zeichen generieren. Das wäre dann allerdings OS spezifisch.
Mit Alt + Zahlen vom NumPad kann man so unter Windows Unicode Zeichen generieren.
Meine Ziele:
Hallo hrnz, das hilft sicherlich. Danke !
Moin,
habe mich für die QMK Firmware entschieden, da diese wesentlich umfangreicher als die TMK Firmware ist.
In QMK ist UniCode und Mause Unterstützung enthalten.
Wer Interesse hat: https://github.com/kingdase/hasu-usb-usb-neo/tree/master/qmk
Nach Anleitung: Ordner neo unter qmk_firmware/keyboards/converter/usb_usb/keymaps/ anlegen und die drei Datein aus meinem GitHub Repo dort reinkopieren.
Im Ordner qmk_firmware make converter/usb_usb:neo ausführen.
Flashen mit QMK Toolbox
Was bisher geht:
Kombinationen und Ebene 5 und 6 fehlen.
Aktuell hat die Firmware noch 1360 Byte frei.
Eine Ebene belegt bei QMK 512 Byte
Hallo,
Wie ist der Stand des Projekts? Kann aus deiner Sicht eine vollständige Unterstützung des Devices erreicht werden mit dieser Hardware oder sind wir hier zu limitiert?
Ich hatte nämlich nach dem Lesen des Posts die spontane Idee, einfach einen Arduino Pro micro mit einem mini usb host shield zu evaluieren. Preislich wären wir hier auf jeden fall unter 15€ bei Bezug aus China.
Eine komplette Unterstützung mit allen Compose-Sequenzen ist bei einem Pro Micro mit lediglich 32kb Speicher (mit dem Bootloader noch 28672 Bytes) unrealistisch. Die 6 Neo-Ebenen und die toten Tasten für Diakritika sollte man jedoch problemlos unterbekommen können.
Der limitierende Faktor ist eher die Betriebbsystem-Seite. Da USB-HID keinen Unicode-Input-Modus hat, kann man nur die Zeichen produzieren, die das softwareseitige Layout bietet — oder die paarweise verschiedenen ziemlich beschissenen, nicht standardmäßig aktivierten, schnarchlangsamen und Artefakte auf den Bildschirm malenden Unicode-Eingabemöglichkeiten der Betriebbsysteme nutzen.
Es gibt kein universell verfügbares Software-Layout, das einen akzeptablen Zeichenvorrat bietet (das deutsche Standardlayout E1 nach DIN 2137 erscheint ganz brauchbar, ist aber nirgends implementiert (Windows und Mac OS implementieren sogar nicht mal T2 oder T3 [citation needed]); US-intl klingt einheitlich, ist aber auch überall anders und hat zumindest weder die griechischen noch die mathematischen Symbole. Es ist nicht absehbar, dass sich in näherer Zukunft irgendetwas daran ändern wird.
tl;dr: alles ist scheiße.
Danke für die schnelle Rückmeldung. Wie ich dich verstehe ist das grundlegende Problem Eingabe von Unicode und Program Flash für Compose Sequenzen. Ich habe mir die Hardware trotzdem mal bestellt um über Weihnachten damit ein bisschen herumzuexperimentieren, vielleicht komme ich ja zumindest so weit wie dein Projekt und hätte es somit kostenoptimiert ;)
Ich bin gespannt, was du berichtest! Ich bin nach vielen Versuchen gescheitert per Arduino-Hostshield Tastendrücke zu empfangen. Vielleicht war das Board defekt, vielleicht hab ich es per ESD beschädigt... ich wünsche dir mehr Glück und genug Ausdauer:D
@manuel91 die erste Hardware-Hürde habe ich genommen, man kann über extrem viele Dinge stolpern, ich hatte schon einiges recherchiert aber das shield ist alles andere als Plug und Play, man muss erstmal einen Bohrer und nen kabel rausholen um das Layout zu korrigieren und auch den richtigen Arduino Micro muss man besorgen und dann auch korrekt aufsetzen, alles in allem eine sehr zeitraubende Angelegenheit.
Ich habe mir ein paar Stichpunkte aufgeschrieben, über die ich gestolpert bin, bei der Inbetriebnahme: https://github.com/Jonas-commits/Neo-Keyboard-Adapter
So nachdem ich seit einer Woche meine Feierabende nur noch mit dem Arduino verbracht habe, muss ich sagen: Es funktioniert prächtig.
Layer 1 und Layer 2 funktionieren jetzt vollständig (mit Bugs) inkl. Unicode.
Das Projekt wird noch einiges an Arbeit verschlingen, aber ich bin überzeugt eine relativ vollständige Umsetzung erreichen zu können.
Angesprochene Probleme:
• Unicode: Ich habe erstmal mit der Windows Umsetzung angefangen, da ich Windows Anwender bin und der Software Treiber unter Linux deutlich weniger Probleme macht. Ich sehe die Eingabe über Alt+Numcode unkritisch. Der Arduino ist so schnell, das Zeichen ist trotz der langen Eingabesequenz praktisch sofort da.
• Speicher: Ebenfalls nicht besonders kritisch. Einbinden und Nutzen der notwendigen Bibliotheken etwa 14k/28k. Der eigene Code ist nicht besonders groß und braucht ebenfalls weniger als 1kB bislang. Ein Layer nach meiner Implementierung max. 300Byte für die LUT. Das bedeutet man kann hier über 30 Ebenen draufpacken, wenn man denn möchte. Dead keys brauchen Max. 18 ebenen + die 6 Standard Ebenen. Hier sollte noch genug Reserve sein für Bugfixes und vielleicht auch noch ein paar Compose Sequenzen.
• Performance: Im Moment sehe ich keine Verzögerungen, selbst bei dem akteull längsten Pfad, den Unicode-Sequenzen. Folglich bin ich auch hier guter Dinge.
Kritisch sehe ich insbesondere den Zeitaufwand, die ganzen Ebenen abzutippen, das wird ewig brauchen, von daher werde ich mich vermutlich auch erstmal auf 6 Ebenen ohne die nicht-Standard dead keys beschränken.
Ich habe vor, das Projekt nach persönlicher Zeitverfügbarkeit auf jeden Fall bis Layer6 zu Ende bringen, werde aber auf jeden Fall noch Zeit brauchen, da meine Frezeit als festangestellter doch begrenzt ist und bin überzeugt, dass es der beste Treiber sein wird, sofern man eine externe Tastatur nutzt und hoffe endlich mal die vollen Neo Feautures ohne die Sperenzchen der beiden Treiber nutzen zu können. Aktuellen Stand könnt ihr auf meinem Github-Repo verfolgen.
Nach 2 Tagen testen auf der Arbeit noch paar Kleinigkeiten gefixed, alle Ebenen ohne Dead-Keys funktionieren soweit. Die einzigen großen Pakete die offen sind, sind somit nur noch die Compose Keys in einer eigenen Datenstruktur anzulegen und die Maps in eine eigene Klasse auszulagern, um den Code etwas übersichtlicher zu gestalten. Würde mich freuen, wenn ihr den Treiber nachbaut :)
Nach 2 Tagen testen auf der Arbeit noch paar Kleinigkeiten gefixed, alle Ebenen ohne Dead-Keys funktionieren soweit. Die einzigen großen Pakete die offen sind, sind somit nur noch die Compose Keys in einer eigenen Datenstruktur anzulegen und die Maps in eine eigene Klasse auszulagern, um den Code etwas übersichtlicher zu gestalten. Würde mich freuen, wenn ihr den Treiber nachbaut :)
@Jonas-commits, @kingdase: Ich unterstütze gerne bei der Implementierung. Wo ist Euer aktueller Stand zu finden? Ich sehe den Stand von @kingdase in seinem GitHub-Repo.
Arbeitet ihr parallel an dem Projekt oder gemeinsam aus einem Repo?
Ich werde die Implementation auf einem DIY-Adapter auf Basis des Promicros testen.
@tim6her bin so gut wie fertig. Benutze das Ding jetzt täglich und nur kleinere Bugs gefunden. Größte Arbeitspaket ist das Abtippen von noch mehr Compose/Deadkey Sequenzen, was noch offen ist, aber ich denke, das Base-Modul sollte die Woche noch durch gehen (hier fehlt nur noch die Hälfte der Dead-Keys), dann tippe ich noch ein paar wenige aus meiner Sicht wichtige Compose-Sequenzen aus anderen Modulen ab und dann widme ich mich dem Fine-Tuning. Das Projekt findet sich wie oben geschrieben hier:
https://github.com/Jonas-commits/Neo-Keyboard-Adapter
Habe dort auch den Hardware Aufbau noch einmal ausführlich beschrieben.
Noch zur Ergänzung: Ich habe das Projekt komplett neu gestartet. Die QMK Firmware ist eine gute generische Lösung für ein remapping, allerdings war mir die Architektur für das Problem zu starr. Meine Lösung hat den Nachteil, dass das Keyboard-Layout relativ starr auf die Neo-Architektur ausgerichtet ist.
Der Vorteil ist, dass ich das Layout inklusive Compose fast vollständig unterstützen kann und dies mit deutlich weniger Speicherbedarf, sodass der Arduino Pro-Mirco + Host Shield tatsächlich ausreichend ist.
Zur Info: Habe das Projekt von Jonas nachgebaut und es funktioniert tadellos, Hardwarebeschreibung ist super. Habe den Code erweitert, sodass auch der Trackpoint meiner Tastatur (maus+tastatur kombi) funktioniert, d.h. durchgeschleift wird. Wer interesse hat, hier.