Display-Ausfall behoben!
Hoffentlich das Ende einer langen Ursachenforscherei-Odyssey! Nachdem sich meine BMW R100 GS als fahrendes EMV-Labor unter Worst-Case-Bingungen herausgestellt hat, kann ich jetzt nach einigen 100 gefahrenen km sagen: ES GEHT! Und zwar sicher!
1. Ursache
Voraussetzung war, erstmal am Labortisch die gleichen Bedingungen herzustellen wie an der BMW. Dazu hat Arnold ein Relais ohne Freilauf-Diode an die Stromversorgung gehängt. Mit Öffnen der Stromversorgung zum Relais gibt es eine nette Entladung in das Boardnetz - uns schwups ist das Display aus! Bei mir zuhause benutze ich meinen kleinen 'Blue-Display-Killer', ein sehr kleines Relais mit offensichtlich hoher Windungszahl, das ich per Taster ein/aus-schalten kann: 1x drücken: Linke Display-Hälfte wech, 2x drücken, alles wech!
2. Wirkung
Die Wirkung am Display ist allerdings anders, als wir zunächst vermuteten: Auch wenn das Display nichts mehr anzeigt, so ist doch noch aktiv und kann per Software beschrieben und gelesen werden! Das ist auch der Grund, warum wir bisher per SW auch keinen Workaround bauen konnten.
3. Analyse
Arnold fand dann schließlich die Ursache: Die hochfrequenten Störspannungen (Peaks) stören das Gesamtsystem + Display grundsätzlich nicht in ihrer Funktion, ABER ein Peak am RESET-Pin des Display-Moduls bewirkt ein kurzzeitiges Durchfahren des Reset-Modus im Display (was an sich so kurz ist, dass man es nicht sieht). Und nach dem Reset ist das Display in seinem Default-Modus, nämlich OFF!

Und OFF heisst, alles geht, aber die Anzeige der Pixel im Glas ist abgeschaltet. Je nach Intensität des Peaks trifft das nur einen oder beide Display-Controller (linke+rechte 64x64 Matrix getrennt). Per Software konnte ich das verifizieren: Nach einem solchen Peak lieferte der Display-Controller in seinem Status-Byte DISPLAY_OFF.
4. HW-Abhilfe
Arnold hatte solche Effekte vohergesehen und an der RESET-Leitung des Display einen 470 pF Kondensator (C25, unten links, nähe Display-Leiste) eindesigned, der für Störungen dieser (BMW-) Art aber offensichtlich zu klein ist. Ein 100 nF Kondensator (SMD-Bauform) einfach obendrauf löten: GEHT! Eine einfachere Korrektur eines solch fiesen Problems kann man sich als Entwickler nicht vorstellen! Keine Layout-Änderung, keine Patchdrähte, nur Bauteil austauschen! Und diese HW-Änderung wird natürlich in der nächsten SIxO-Charge auf jeden Fall vorgesehen.
Alle, die keine Probleme haben, weil sie nicht über so ein vorsintflutliches EMV-verschmutzes Bordnetz verfügen wie ich, brauchen sich um dieses Problem keine Sorgen zu machen: Ihr braucht nichts zu ändern!
Für alle betroffenen Anwender ist das natürlich nicht so einfach: Also: Bestückungsplan von der SIxO-Homepage besorgen, C25 auf Platine lokalisieren, 100 nF SMD Kondensator (ca. 0,11 EUR) aus Elektronikhandel beschaffen, einen Lötkolben (oder Menschen mit Lötkolben

) besorgen. 100nF einfach auf C25 obendrauflöten, fertig! Sollte relativ schnell gehen...
Der Vorschlag mit dem Ferrit-Kern am Kabel entfällt damit erstmal ersatzlos!
5. SW-Anpassung
Darüber hinaus habe ich in der SW eine Funktion eingebaut, die immer beim Löschen des Displays (und nur dann!) auch gleichzeitig das Display ON schaltet. Dies hat den Vorteil, das Display-Fehler auch in Zukunft auffallen, aber man nicht mehr die Stromversorgung trennen muss, um den Fehler zu beheben: Anzeige wechseln oder scrollen im MainDevice reicht, schon geht's wieder. Es wird dazu demnächst noch ein kleines SW-Update (V2.3.2) geben.
Sollten wider Erwarten bei irgendjemanden trotzdem noch Probleme auftauchen, bitte unbedingt an Arnold melden, damit er Empfehlungen zu Varianten von C25 geben kann.
So, und ich kann jetzt endlich zum TÜV....
Ralf