Also von der Logik her sollte es (auch einem Arduino) egal sein, welche Zeichen in einem Namen verwendet werden.
Jedem Zeichen ist ein Zeichencode von 0x00 bis 0xFF zugeordnet, wobei 0x00 eine Sonderfunktion hat und eine Zeichenkette als beendet markiert. Somit dürften alle verbleibenden 255 Zeichen verwendbar sein.
Eine weitere Einschränkung sollte dahingehend bestehen, daß sich bei Device- und Confignamen die verwendbaren Zeichen auf die druckbaren, also sichtbaren Zeichen, beschränken. Auch bei den sichtbaren Zeichen macht es keinen Sinn, Symbole oder Grafikzeichen zu verwenden, will man die Begriffe nicht sinnentstellen, aber selbst das dürfte, rein logisch betrachtet, keine Einschränkung darstellen. Ausschlaggebend ist hier wiederum auch der verwendete Zeichensatz. Dieser wiederum ist abhängig von den Lädereinstellungen des Windows-Systems. Ein deutscher Zeichensatz beinhaltet andere Zeichen als der englische oder französische Zeichensatz.
Insofern macht es Sinn, sich auf Zeichen zu einigen, die in allen Zeichensätzen identisch sind. Das wäre meines Erachtens der ASCII-Zeichensatz. ASCII steht für American Standard Code for Information Interchange oder auf deutsch für Amerikanischer Standard-Code für den Informationsaustausch. Bezeichnet wird dieser Zeichensatz auch als ISO 8859 oder UNICODE-Zeichensatz.
Er besteht aus den Zeichen: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Dies sind aber nur die "druckbaren" Zeichen und haben den HEX-Code 0x20 bis 0x7E oder dezimal von 32 bis 127. Das sind 95 Zeichen.
Die Verwendung dieser Zeichen sollte somit keine Probleme bei der Benutzung machen. Sebastian müßte diesbezüglich einmal Stellung beziehen.
Nachdem nun der Umfang der verwendbaren Zeichen beschrieben wurde, geht es um deren Verarbeitung.
Bis Version 7.4 gab es hinsichtlich der Bezeichnungen für Devices und Configs keinerlei Einschränkungen. Seit Version 7.5 ist die Länge von Bezeichnungen und Gerätenamen auf 16 Zeichen beschränkt worden. Grund hierfür ist der Speicherbedarf im Arduino MEGA (und sicher auch anderen).
Pro MEGA ist die Anzahl der Devices auf 40 LEDs und/oder 50 Buttons begrenzt. Konnten vorher max. 50 Devices deklariert werden, die theoretisch mit bis zu 255 Zeichen Länge haben durften, entspricht dies einem Speicherplatz von mindestens 256 Bytes x 50 = 12.800 Bytes oder 12,5 kBytes, wenn die Zeichenkette + 1 Byte betragen würde - immer bezogen auf einen MEGA. Mit der Verkürzung der Zeichenketten auf 16 Zeichen werden "nur" noch 850 Bytes oder 0,83 kB an Speicher belegt. Ein enormer Unterschied!
Hinzu kommt, daß die Devices im EEPROM des MEGA abgelegt werden. Die Speichergröße des EEPROM beim MEGA beträgt aber nur 4096 Bytes. Es dürfte jedem sofort klar werden, daß bei einer unbegrenzten Länge (bis 256 Bytes) der Speicherbereich bereits bei 15 Devices erschöpft ist (einige Bytes sind reserviert für den Modulnamen und interne Verwaltung). Das kann also nicht funktionieren!
Mit der Begrenzung auf max. 16 Zeichen pro Devicenamen können also theoretisch 256 Devices dort abgespeichert werden. Da aber nur max. 50 Devices zugelassen werden, begrenzt dies den erforderlichen Speicherplatz auf 850 Bytes zuzüglich der für die Verwaltung notwendigen Bytes. Es verbleibt also noch ein Speicherplatz von 3kB im EEPROM.
Es möge nun jeder einmal nachprüfen, wie lang er seine Devicenamen gemacht hat und ob die 4096 Bytes dabei überschritten sein könnten.
Eine Kürzung der Devicenamen macht also absoluten Sinn!
Fazit: Nicht die verwendeten Zeichen selbst dürften hier das Problem darstellen, sondern die Länge der Einträge in ihrer Gesamtheit.
Sollte ich mit meiner Betrachtung auf dem Holzweg sein, bitte ich um Korrektur. Es wäre nicht das erste Mal, daß ich etwas dazulerne