Wake-on-LAN-Nachrüstung mit ESP8266: Difference between revisions

From CCC Basel Wiki
Jump to navigation Jump to search
Content deleted Content added
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 eine netzwerkbasierte Boot-Signalisierung mittels eines ESP8266 nachgerüstet.
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 HTTP-Server, der bei einem <code>POST /wol</code> einen Knopfdruck auf den Powerbutton simuliert, indem die entsprechende Leitung kurzzeitig mit GND kurzgeschlossen wird.
* 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,3).
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 connected and isolated.jpg|Fertiges Modul, Kabel gehen nach links zum Powerbutton, nach rechts zum Mainboard.
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 den ON/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.