Wake-on-LAN-Nachrüstung mit ESP8266: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Das Wake-on-LAN unseres neuen™ Mediacenters funktioniert sehr unzuverlässig. Daher haben wir |
Das Wake-on-LAN unseres neuen™ Mediacenters funktioniert sehr unzuverlässig. Daher haben wir folgende netzwerkbasierte Boot-Signalisierung auf Basis eines ESP8266-Moduls nachgerüstet. Mit dieser lässt sich das Mediacenter z.B. via [[OpenHAB]] zuverlässig hoch- und herunterfahren. |
||
== Idee == |
== Idee == |
||
* Ein ESP-01 (minimalistisches ESP8266-Board, haben wir zu viele von rumliegen) wird zwischen den Powerbutton und das Mainboard gehängt. |
* Ein ESP-01 (minimalistisches ESP8266-Board, haben wir zu viele von rumliegen) wird zwischen den Powerbutton und das Mainboard gehängt. |
||
* Auf dem ESP läuft ein |
* Auf dem ESP läuft ein MQTT-Client, der bei einem entsprechenden Befehl (<code>ON</code>/<code>OFF</code>/<code>TOGGLE</code>) einen Knopfdruck auf den Powerbutton simuliert, indem die entsprechende Leitung kurzzeitig mit GND kurzgeschlossen wird. |
||
* Beim <code>TOGGLE</code>-Befehl wird dies immer ausgeführt, bei den <code>ON</code>/<code>OFF</code>-Befehlen wird vorher geprüft, ob das Mediacenter schon läuft. Als Input hierfür fungiert ein "nicht-standby" 3V3 oder 5V Power Pin auf dem TPM-Header des Mainboards, der nur im laufenden Betrieb mit Strom versorgt wird. |
|||
* Damit kann das Mediacenter sowohl gestartet, als auch heruntergefahren werden. |
* Damit kann das Mediacenter sowohl gestartet, als auch heruntergefahren werden. |
||
== Umsetzung == |
== Umsetzung == |
||
Für den Einbau des ESP-01 haben wir ein kleines Adapter-PCB entworfen (Bilder 1,2 |
Für den Einbau des ESP-01 haben wir ein kleines Adapter-PCB entworfen (Bilder 1,2). |
||
Leider haben wir festgestellt, dass alle beim ESP-01-Board verfügbaren Pins beim Power-Up mindestens einmal den logischen Zustand wechseln. Das führte dazu, dass das Mediacenter immer automatisch gestartet wurde, sobald der ESP startete. Um dieses Problem zu umgehen, haben wir das ESP-01-Board modifiziert, um anstatt des GPIO2-Pins den GPIO4-Pin herauszuführen. Dieser bleibt während dem Start dauerhaft auf LOW, und ist am ESP8266 zum Löten einfach zugänglich (Bild 4). |
Leider haben wir festgestellt, dass alle beim ESP-01-Board verfügbaren Pins beim Power-Up mindestens einmal den logischen Zustand wechseln. Das führte dazu, dass das Mediacenter immer automatisch gestartet wurde, sobald der ESP startete. Um dieses Problem zu umgehen, haben wir das ESP-01-Board modifiziert, um anstatt des GPIO2-Pins den GPIO4-Pin herauszuführen. Dieser bleibt während dem Start dauerhaft auf LOW, und ist am ESP8266 zum Löten einfach zugänglich (Bild 4). |
||
Line 17: | Line 18: | ||
<gallery> |
<gallery> |
||
File:Espwol schematic.png|Schaltbild des PCBs. |
File:Espwol schematic.png|Schaltbild des PCBs. |
||
File:Espwol pcb.png|CAD-Zeichnung des PCBs. |
File:Espwol pcb.png|CAD-Zeichnung des PCBs. Auf den 2x4-Pinheader wird das ESP-01 Modul gesteckt. Der grosse SOT-223-IC ist der Spannungsregler, die kleinen SOT-23 die beiden MOSFET. |
||
File:Espwol esp01.png|Modifikation des ESP-01-Chips. An der rot markierten Stelle wird die Trace zerschnitten, und stattdessen wie in grün eingezeichnet ein kleines Stück Spulendraht verlötet. |
|||
File:Espwol 3d.png|3D-Modell des PCBs. Auf den 2x4-Pinheader wird das ESP-01 Modul gesteckt. Der grosse SOT-223-IC ist der Spannungsregler, der kleine SOT-23 der MOSFET. |
|||
File:Espwol connected and isolated.jpg|Fertiges Modul, Kabel gehen zum Powerbutton und zum TPM-Header auf dem Mainboard. |
|||
File:Espwol esp01.png|Modifikation des ESP-01-Chips. |
|||
File:Espwol |
File:Espwol cabling.jpg|Kabel auf dem Mainboard. Nach links zum TPM-Header für die +5VSB (Stromversorgung, oben beschriebener +5V SENSE Pin in dieser Iteration noch nicht vorhanden), nach rechts zum Anschluss des Powerbuttons. |
||
File:Espwol cabling.jpg|Kabel auf dem Mainboard. Nach links zum TPM-Header für die +5VSB, nach rechts zum Anschluss des Powerbuttons. |
|||
</gallery> |
</gallery> |
||
== Code == |
|||
Unter https://git.kabelsalat.ch/ccc-basel/espwol finden sich das [https://www.kicad.org/ KiCad]-Projekt für die Adapterplatine sowie ein [https://platformio.org/ PlatformIO]-Projekt mit dem ESP8266-Code. |
|||
Latest revision as of 07:03, 29 June 2022
Das Wake-on-LAN unseres neuen™ Mediacenters funktioniert sehr unzuverlässig. Daher haben wir folgende netzwerkbasierte Boot-Signalisierung auf Basis eines ESP8266-Moduls nachgerüstet. Mit dieser lässt sich das Mediacenter z.B. via OpenHAB zuverlässig hoch- und herunterfahren.
Idee
- Ein ESP-01 (minimalistisches ESP8266-Board, haben wir zu viele von rumliegen) wird zwischen den Powerbutton und das Mainboard gehängt.
- Auf dem ESP läuft ein MQTT-Client, der bei einem entsprechenden Befehl (
ON
/OFF
/TOGGLE
) einen Knopfdruck auf den Powerbutton simuliert, indem die entsprechende Leitung kurzzeitig mit GND kurzgeschlossen wird. - Beim
TOGGLE
-Befehl wird dies immer ausgeführt, bei denON
/OFF
-Befehlen wird vorher geprüft, ob das Mediacenter schon läuft. Als Input hierfür fungiert ein "nicht-standby" 3V3 oder 5V Power Pin auf dem TPM-Header des Mainboards, der nur im laufenden Betrieb mit Strom versorgt wird. - Damit kann das Mediacenter sowohl gestartet, als auch heruntergefahren werden.
Umsetzung
Für den Einbau des ESP-01 haben wir ein kleines Adapter-PCB entworfen (Bilder 1,2).
Leider haben wir festgestellt, dass alle beim ESP-01-Board verfügbaren Pins beim Power-Up mindestens einmal den logischen Zustand wechseln. Das führte dazu, dass das Mediacenter immer automatisch gestartet wurde, sobald der ESP startete. Um dieses Problem zu umgehen, haben wir das ESP-01-Board modifiziert, um anstatt des GPIO2-Pins den GPIO4-Pin herauszuführen. Dieser bleibt während dem Start dauerhaft auf LOW, und ist am ESP8266 zum Löten einfach zugänglich (Bild 4).
Danach haben wir den ESP und das Adapter-PCB grosszügig mit Heissleim isoliert (Bild 5), um ihn sicher im Gehäuse verbauen zu können (Bild 6).
Code
Unter https://git.kabelsalat.ch/ccc-basel/espwol finden sich das KiCad-Projekt für die Adapterplatine sowie ein PlatformIO-Projekt mit dem ESP8266-Code.