pc-switch - first testing boards arrived
pc-switch prototype arrived and I need to fix some things. But it is working perfectly!
As you can see in the picture, I got the pc-switch boards! Two of those boards are on the way of my contractor who built the board.
Wrong socket
After inspecting the device I immediately found a "mistake". We used the wrong socket! The USB 2.0 header on the motherboard has 9 pins and usually one port on the hole in the corner is blocked.
That way you can not possibly plug it in the wrong way. As I remember from my Master in Quality Engineering this is called Poka Yoke: make it impossible for an error to occur or make it obvious once it has occurred 🤓
Wrong orientation
Another physical thing that caught my attention: The plug needs to be rotated 180 degrees. It is currently facing down. That way we do not see the RGB LED.
Used a strapping pin
So we used a so-called strapping pin which crashed the program in a way that I had to utilize the reset button on the board. We need to switch to a regular GPIO pin which does not have specific boot behaviour.
LED power is detected but power led in case does not light up
I am not sure what is wrong here. But I tested this on 3 cases I have at home. I can perfectly detect the power on state with the power led. However, the power led on the case does not work anymore. Maybe its resistance from the cables or the wrong optocoupler. My hardware guy is looking into this.
Antenna
Of course, I bought the wrong antennas in the beginning. Antennas are so badly labeled and even if you search for the antenna with a specific connector you might get results for a wrong connector.
The connector which can be used is one of these: w.FL / MHF3 / IPEX3
I found this antenna from Adafruit with a 220mm long cable: https://www.adafruit.com/product/5445
Software
This works!
Had to tweak a bit here and there but it works. This is my current code which will be uploaded to GitHub soon:
esphome:
name: server-switch
friendly_name: server-switch
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
flash_size: 4MB
# Enable logging
logger:
# level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: ""
ota:
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Server Fallback Hotspot"
password: ""
captive_portal:
web_server:
port: 80
light:
- platform: neopixelbus
type: GRBW
variant: SK6812
pin: GPIO8
num_leds: 30
name: "LED Strip"
effects:
- addressable_rainbow:
sensor:
- platform: wifi_signal
name: "WiFi Signal"
update_interval: 2s
switch:
- platform: gpio
pin:
number: GPIO7
inverted: true
mode:
output: true
pulldown: true
id: power_pin
internal: true
- platform: gpio
pin:
number: GPIO6
inverted: true
mode:
output: true
pulldown: true
id: reset_pin
internal: true
- platform: template
name: "Power Switch"
id: power_switch
internal: true
turn_on_action:
- switch.turn_on: power_pin
- delay: 2000ms
- switch.turn_off: power_pin
- platform: template
name: "Power Switch Force"
id: power_switch_force
internal: true
turn_on_action:
- switch.turn_on: power_pin
- delay: 10000ms
- switch.turn_off: power_pin
- platform: template
name: "Reset Switch"
id: reset_switch
internal: true
turn_on_action:
- switch.turn_on: reset_pin
- delay: 1000ms
- switch.turn_off: reset_pin
binary_sensor:
- platform: gpio
pin:
number: GPIO10
inverted: true
id: pc_power_sensor
name: "Power State"
device_class: running
icon: "mdi:desktop-classic"
button:
- platform: template
name: "Power Button"
id: power_button
icon: "mdi:power-standby"
on_press:
then:
- switch.toggle: power_switch
- platform: template
name: "Force Power Off"
id: force_power_off
icon: "mdi:power-plug-off"
on_press:
then:
- switch.toggle: power_switch_force
- delay: 1000ms
- switch.turn_off: power_switch_force
- platform: template
name: "Reset Button"
id: reset_button
icon: "mdi:restart"
on_press:
then:
- switch.toggle: reset_pin
Last Words
How am I doing and what do you think about this project?
I love hearing from readers, and I am always looking for feedback. Is there anything you would like to read more or less of? You can just click on the 👍 or 👎 down below. What do you enjoy most about the newsletter, just let me know in the comments.
Have a great day! 👋