Trochę to trwało, ale wygląda na to, że ten „prodżekt” dobiega końca 🙂
Gdy już wszystko poskładałem, okazało się że w docelowym komputerze włącznik nie działa w sposób prawidłowy. Poprawnie działa część odpowiedzialna za włączanie komputera, lecz nie działała w sposób prawidłowy część odpowiedzialna za odczytywanie stanu włączenia komputera. Pin ESP8266 do którego miałem podłączony reset „zawisał” w stanie wysokim, co oznacza że po wyłączeniu komputera, w dalszym ciągu z uporem maniaka pokazywał, że komputer jest włączony.
Pierwsze założenie było takie, że popełniłem jakiś błąd przy lutowaniu płytki, ale mimo marnej estetyki, wszystko zdawało się być podłączone prawidłowo. Po jakimś czasie doszedłem do tego, że mogę nawet odpiąć wtyk od przycisku reset, a na pinie do którego był podpięty cały czas jest napięcie około 3V. Dopiero ręcznie ściągnięcie pinu do masy powodowało przełączenie w stan „low” do następnego razu, gdy komputer był włączony.
Po wielu próbach, stwierdziłem że być może uszkodziłem płytkę Wemos D1 Mini, więc kupiłem kilka kolejnych. Po odebraniu przesyłki w sobotę, pierwszą „nową” płytkę zalutowałem goldpinami, po czym umieściłem w swoim układzie. Efekt – taki sam.
Ostatecznie na trop naprowadziła mnie kolejna płytka. Postanowiłem wyjąć ją z opakowania, zaprogramować wszystkie piny D1-D8 jako input i sprawdzać miernikiem bez lutowania czegokolwiek. Efekt? Po starcie płytki, piny D3 oraz D4 są w stanie high i nie da się ich ściągnąć do stanu low nawet ręcznie zapinając je do masy. Piny D1, D2 oraz D5-D7 „zawieszają” się i jedynie D8 zachowuje się w oczekiwany sposób. To było to! Zrobiłem patcha kabelkiem i przepiąłem się resetem do pinu D8 i myślałem, że rozwiązałem cały problem. Otóż wcale nie 🙂

Tak wygląda stan wszystkich ośmiu pinów po podaniu a następnie usunięciu napięcia.
Gdy umieściłem układ po poprawkach w komputerze i podpiąłem wszystko, ESP8266 się nie podniósł. Reagował na przycisk reset, ale nie odpowiadał na ping (IP przypisane statycznie). Włączenie komputera pokazało, że przycisk reset jest cały czas „trzymany” przez mój układ. To na szczęście udało się rozwiązać w miarę szybko.
Wyszło na to, że płyta główna w moim komputerze (Gigabyte B550 Aorus Elite V2) po podpięciu zasilania podaje napięcie na przycisk reset. Dopiero wykonanie pełnego cyklu włączenia i wyłączenia komputera powoduje poprawne załączenie wszystkich trybów oszczędzania energii, wyłączenie portów USB i tego nieszczęsnego przycisku reset. ESP8266 z kolei, gdy jest włączane z pinem D8 (GPIO15) podciągniętym do góry, zawiesza się podczas włączania. Stąd widziałem to zachowanie („martwe” ESP8266 oraz komputer z „wciśniętym” przyciskiem reset).
Okazało się, że poszukiwania źródła napięcia 3,3V/5V które byłoby dostępne tylko przy włączonym komputerze nie były takie proste. Już miałem dokładać do przedłużacza ATX 24-pin kolejny kabelek do linii +3,3V, gdy udało mi się namierzyć w złączu TPM źródło napięcia 3,3V, które ze 100% skutecznością jest dostępne przy komputerze włączonym i znika gdy komputer nie jest włączony.
Ściana tekstu, żadnych zdjęć. Ostatnich parę dni spędziłem na próbach dojścia co jest nie tak 🙂
Dalej nie do końca rozumiem dlaczego piny D1-D7 „zawieszają” się. Ale jest! Działa! 🙂
TL;DR: trzeba było użyć pinu D8 / GPIO15 w Wemos D1 Mini oraz podpiąć się do złącza TPM zamiast przycisku reset aby mój układ zadziałał poprawnie. 5 dni zeszło na próbach rozwikłania tego.