USB-Kabel ist nicht gleich USB-Kabel, oder: Wieso ein Raspberry Pi 3 einen gelben Blitz anzeigt

Von meinem Dashboard, meinem ganzen Stolz über all die Jahre, habe ich hier ja bereits mehrere Male berichtet (Ausgangspunkt).

Seit Juni 2016 verwende ich zum Betrieb des Dashboards einen Raspberry Pi 3 — und wahrscheinlich genau so lange hat das Ding mir auf dem Bildschirm einen gelben Blitz angezeigt:

Bis letzte Woche hatte ich keinen blassen Schimmer, was dieses Symbol zu bedeuten hat — nerven tat es auf jeden Fall. Doch dann stolperte ich auf Grund folgender Fehlermeldung im Debian Kernel Log (unter /var/log/kern.log) …

...
Oct 9 05:00:06 DASHBOARD kernel: [ 2.116304] Under-voltage detected! (0x00050005)
Oct 10 05:00:08 DASHBOARD kernel: [ 2.089827] Under-voltage detected! (0x00050005)
Oct 11 05:00:07 DASHBOARD kernel: [ 2.080389] Under-voltage detected! (0x00050005)
Oct 11 05:17:06 DASHBOARD kernel: [ 2.080005] Under-voltage detected! (0x00050005)
Oct 11 05:17:04 DASHBOARD kernel: [ 2.071669] Under-voltage detected! (0x00050005)
Oct 11 05:17:04 DASHBOARD kernel: [ 2.089371] Under-voltage detected! (0x00050005)
...

… über folgenden Artikel:

If a lightning bolt image appears in the top-right corner of the screen, it means Raspberry Pi is not getting enough voltage (4.65V according to this forum post).

Quelle: Lightning Bolt (Under-Voltage Warning) on Raspberry Pi

All die Jahre erschien dieses Symbol, aber ich realisierte nicht, dass mir mein RPi3 etwas Wichtiges damit sagen wollte!

Ich hätte das Problem wie im Artikel beschrieben mit der Quick-and-Dirty-Symptombekämpfungslösung wegmachen können (avoid_warnings=1-Eintrag in /boot/config.txt), doch ich war an der tatsächlichen Lösung des Problems interessiert: Mehr Volt für meinen RPi!

Der Raspberry Pi hängt seit 2014 an einem AOC E2460SHU Monitor, für welchen der Hersteller mit einem roten und einem Power-Schriftzug markierten USB-Anschluss wirbt (Direktlink auf das Bild). Daran konnte es doch nun kaum liegen?!

Zu Beginn der Recherche machte ich den Fehler, dass ich nach Lösungen für zu wenig Ampere (Strom) über den USB-Bus suchte. Dabei stiess ich auf folgendes Kabel („Dual Input USB Power“) und war kurz davor, es zu bestellen — bis ich mir noch einmal die Fehlermeldung zu Gemüte rief. Dort liest man nichts von „under-current“, sondern von „under-voltage“, das heisst zu tiefer Spannung!

Nach wenigen Minuten stiess ich auf unzählige Forumsbeiträge zum Thema; einen Interessanten hier:

under voltage detection – Raspberry Pi 3 B+

Stutzig wurde ich, als in mehreren anderen Forenbeiträgen empfohlen wurde, nicht zuerst die Stromquelle selber als Problem zu vermuten, sondern auch das verwendete USB-Kabel genauer anzuschauen und gegebenenfalls auszuwechseln. Begleitet wurden diese Empfehlungen von Rückmeldungen vieler Benutzer, die rein mit dem Austausch des Kabels die Meldung weggebracht hatten.

Doch wieso ist das so? Folgende zwei Artikel geben Auskunft über das Phänomen:

USB Cable Resistance: Why your phone/tablet might be charging slow

How to choose a good USB data and charging cable for your mobile phone

In vielen Fällen rührt das Problem davon, dass man keine qualitativ hochstehenden USB-Kabel verwendet (ja, ich weiss, vergoldete HDMI-Kabel für 99 CHF …). Das heisst anstelle von explizit „Charging Cable“ genannten Waren nur „Data Cables“. Das Problem der qualitativ minderwertigen Kabel ist, dass sie einen zu kleinen Querschnitt und somit einen zu hohen Widerstand haben. Dies führt dazu, dass die 5V Betriebsspannung am USB-Anschluss (der Stromquelle) bis zum RPi problemlos um 0.25V bis über 0.5V abnehmen kann — und somit wie oben genannt weniger als 4.65V beim Raspberry Pi ankommen (Grafik).

Kann wirklich das USB A-auf-USB Mikro-Kabel das Problem sein?! Offenbar schon, wenn man folgenden Artikel in einem RPi-Forum durchliest: Best Micro USB cables

Ein gutes Kabel erkennt man, wenn es einen Aufdruck mit einem numerisch tiefen AWG-Wert enthält.

Zurück von der Arbeit durchsuchte ich meinen USB Mikro ZIP-Lock-Sack. Rasch musste ich feststellen, dass kaum (mehr) Kabel einen AWG-Wert angeben. Einige wenige Kabel hatten einen Aufdruck, und ich machte mich daran, das bis heute genutzte USB-Kabel des RPi auszutauschen.

Das erste Kabel war fälschlicherweise ein USB A- auf USB Mini-Kabel (statt Micro). Dabei wäre es perfekt gewesen: 28AWG/1P+24AWG/2C plus zusätzlich ein Ferritkern an einem Ende.

Das zweite Kabel mit 26AWG/1P 26AWG/2C wäre brauchbar gewesen, doch leider scheint es defekt zu sein — der RPi3 tat keinen Wank, weshalb ich auf Kabelbruch tippte.

Das dritte Kabel funktionierte schlussendlich. Es ist sehr, sehr kurz und trägt den Schriftzug 28AWG/1P and 28AWG/2C. Zuerst befürchtete ich, dass dies bereits ein zu hoher AWG-Wert ist — doch der gelbe Blitz ist seither nicht mehr sichtbar.

Kabel Nummer 1:

Kabel Nummer 2:

Kabel Nummer 3:

Nachtrag 1

Ich muss noch bemerken, dass ich das Kabel seit langem nicht mehr direkt in den USB-Port des Monitors einstecke, sondern noch ein USB-Winkelstück (90 Grad; männlich, weiblich) gekauft habe, damit das Kabelende nicht so hässlich am oberen Ende des Monitors heraussticht. Ein solches Stück kann selbstverständlich auch noch zu Spannungsverlusten führen; in meinem Fall ist der Verlust zusammen mit einem qualitativ hochstehenden Kabel aber offenbar vernachlässigbar.

Nachtrag 2

Leider sind die Kernel-Meldungen nicht ganz weg. Seit Austausch des Kabels habe ich in kern.log folgende Einträge gefunden:

...
Oct 16 19:18:55 DASHBOARD kernel: [ 370.259369] Under-voltage detected! (0x00050005)
Oct 16 19:20:06 DASHBOARD kernel: [ 440.980952] Under-voltage detected! (0x00050005)
Oct 16 20:31:53 DASHBOARD kernel: [ 4748.658891] Under-voltage detected! (0x00070005)
Oct 16 20:38:41 DASHBOARD kernel: [ 5156.348023] Under-voltage detected! (0x00050005)
Oct 16 20:49:53 DASHBOARD kernel: [ 5828.208492] Under-voltage detected! (0x00070005)
Oct 16 20:53:00 DASHBOARD kernel: [ 6015.403857] Under-voltage detected! (0x00070007)
...