Hallo,

Am 14.05.2010 schrieb Karl Köckemann:
> Michael Ostermeier writes:
>> Will man mehr Tasten belegen, so muss man:
>>   a) Irgedwas wieder doppelt haben, oder
>>   b) Ziffernblocktasten richtung Hauptfeld verschieben, oder
>>   c) Irgendwas wieder von der Fn-Ebene holen, oder
>>   d) Andere Scancodes senden (Multimediatasten, eigene erfinden, …)
>> Was schlägst Du vor?
> 
> e) mehr Zeichen pro Ebene.

Entweder ich habe das nicht verstanden, oder Du schlägst vor, weitere
Tasten zu haben, auf denen 6 Ebenen belegbar sind. Diese Tasten müſsten
dann einen Scancode an den PC senden. Es sind aber schon alle
Standard-Scancodes belegt. Dein Vorschlag entspricht also d)?

Die Verwendung von Ziffernblocktasten auf dem Hauptfeld finde ich
problematisch, da diese Scancodes ja weiterhin von einem eventuell
angeschlossenen separaten Ziffernblock gesendet werden.

Die Verwendung von Scancodes, die nicht von der Standardtastatur
gesendet werden finde ich ebenfalls problematisch, weil sie mit der
Standardtastatur nicht verwendbar sind. Es gäbe also
Kompatibilitätsprobleme.

Ich würde also b) und d) nicht ernsthaft in Erwägung ziehen.

> Mit der entsprechenden Ausrüstung (SMD-Technologie) sollten die ICs sich von
> Hand löten lassen.

Ich habe noch nie QFN von Hand zu löten versucht, aber die sind
allgemein unter Handlötern nicht allzu beliebt, da sie keine Beinchen
haben, an die man gut mit dem Lötkolben rankommt. Gut geht das meiner
Meinung nach nur mit Heißluft-Lötkolben (habe ich privat nicht).

> Nach meinen Recherchen soll das Programmieren von Mikrocontrollern (µC) für
> USB-Zwecke selbst für erfahrene Kenner eine komplizierte Angelegenheit sein.

Ich will nicht verhehlen, dass mir das ebenfalls sehr kompliziert
vorkommt. Darin sehe ich das größte Problem überhaupt. Falls sich unter
uns kein erfahrener Programmierer findet, der das übernehmen will, finde
ich das Projekt Standard-Mikrocontroller extrem gefährdet. Ich hätte
geplant, einen Interessierten mit einem kostenlosen Hardware-Exemplar
zu „bestechen“.

> Ferner sieht USB standardmäßig bis zu 6 gleichzeitig gedrückte Tasten vor,
> weswegen echtes n-key-rollover angeblich nur über Umwege realisierbar sein 
> soll.

Ich bezweifle, dass jemand mehr als 4 Tasten gleichzeitig drücken
will/muſs. Welche Kombination erfordert denn mehr als 6 gleichzeitige
Tastendrücke (Strg+Alt+Mod4+C wird als Strg+Alt+Entf gesendet, sind
also 3 „Tasten“)? Gibt es Kobinationen aus mehr als 6 Tasten, die das
Betriebssystem zu etwas sinnvollem auswertet?

Meiner Meinung nach ist die Diskussion nur eine ‚Wortklauberei‘, die
verdeutlichen soll, dass es keine USB-Tastaturen mit N-Key-Rollover
geben kann, also auch nicht damit geworben werden soll.

> Der Einfachheit halber sehe ich vorerst nur PS/2 vor.

Meine beiden Rechner haben leider keinen funktionierenden
PS/2-Anschluss. :-(

>> Meine Firmwareidee:
>>   • Firmware erkennt automatisch, ob USB oder PS/2 gesprochen wird.
>>   • Im EEPROM benutzerdefinierte Tastenbelegungen ablegbar.
> 
> Da den Benutzern nicht zugemutet werden kann, den µC auszubauen und in ein
> (meist teures) Programmiergerät zu stecken, kommen nur µC in Frage, die im
> eingebauten Zustand programmierbar sind.

ISP (In-System-Programmierung) sehe ich schon länger als wichtig an. Da
sind wir uns durchaus einig. Ich würde sogar noch weiter gehen, und für
Benutzer, die eigene Modifikationen vornehmen wollen, eine
Schnittstelle bereitstellen, die keinen ISP voraussetzen.

<Einschub> Firmwareträumereien

Per ISP wird die Firmware einprogrammiert. Diese ist das
„Betriebssystem“ der Tastatur. Wenn beim Power-up eine vorher
festgelegte Tastenkombination (z.B. a+b+c oder besser n+e+o :-))
detektiert wird, und die Tastatur am US-Bus hängt, so meldet sich die
Firmware nicht als Tastatur (ist für BIOS-Emulation nötig), sondern als
USB-Hub mit angeschlossenem „Massenspeicher“ und Tastatur. Die Tastatur
ist dann normal benutzbar (außer im BIOS und unter HURD). Über den
Massenspeicher können kleine Textdateien mit vordefinierten Namen und
Aufbau auf das μC-EEPROM übertragen werden. In diesen Dateien können
benutzerdefinierte Modifikationen festgelegt werden (z.B. Datei1:
Vi-Miche-Navigationsblock, Datei2: Neo-über-qwertz, Datei3: Tasten 1–5
mit 6–0 vertauscht, …) zwischen diesen Modifikationen kann mit einer
weiteren Tastenkombination jederzeit hin- und hergeschalten werden
(z.B. Strg-L +Strg-R+0 für standard, Strg-L +Strg-R+1 für Datei1 …).

(Es sollte dem Leser aufgefallen sein, dass für Modifikationen keine
spezielle Hard- oder Software erforderlich ist)

</Einschub>

Technisch wäre das möglich. Aber wer will sich die Umsetzung antun???
Ich habe mir sagen lassen, dass Massenspeicher momentan noch nicht mit
der libusb möglich sind.

> Vielleicht wäre es gut, zwei Hardwareversionen anzustreben, eine mit und eine
> ohne benutzerdefinierte Tastenbelegungen.

Ich fände das obige besser. ;-)

> Deine Antwort regt mich zum Weiterdenken an. Vielen Dank dafür.

Gern geschehen ;-)
Wer ‚zu viel‘ nachdenkt gilt im Allgemeinen als ‚Spinner‘, aber laſs
dich davon nicht einschüchtern!

Gruß

Miche

Antwort per Email an