Hello! I wanted to share that I have several of these devices as PoE Bluetooth Proxies and they are working great. I have an abundance of PoE ports (and a congested 2.4Ghz IOT network) and it’s easier for me to add an Ethernet drop than it is for me to have a open wall plug or spare USB power port. Approx $30. Here’s what I did. You need:
- ESP32 Ethernet Unit with PoE | m5stack-store (boo, out of stock as of 12/28/2024, sorry, I might have bought the last few)
- Ipex connector antennae of ebay. Search for product 314957410400 and select the Color 3dbi 25x9mm and the connector type With ipex connector. A five pack costs approximately $5 USD. Without the antennae the bluetooth range is unacceptably low.
I also found it helpful to plug the device in to POE and make sure it powers on. Plus I get the MAC address for diagnostic purposes and DHCP reservation purposes. Next was the flashing in ESPHome. I haven’t figured out how to enter flash update mode without opening it up and connecting directly to the pins.
To flash take it apart, take a 1.5 mm hex and unscrew the only screw. Then spread apart the two side clips and remove the cover. Once the cover is removed, pull up on the blue grove port connector.
The sticker on the otherside is stuck on the RJ45 port, so peel the RJ45 off it
Once removed from the case, remove the POE Hat/Grove connector part
The flash pins are labeled on the underside. Connect 3V, RX, TX, GND and touch-connect the G0 PIN to the chip to enable flash mode. I used my thumb to press the pins and my index finger to hold G0 to the chip. Plug into USB.
I can’t quite figure this out, but there seems to be some weird thing where you can’t flash the device with a final config, you need an interim flash to ESPHome first via USB, then can flash it the rest of the way OTA.
Part One USB flash yaml example:
substitutions:
name: m5stackpoe
friendly_name: 'm5stackpoe'
#Based on:
#https://github.com/esphome/firmware/blob/27d45018c21bd298c1620f10988d7a2f888a0d73/bluetooth-proxy/m5stack-atom-lite.yaml
#https://github.com/DrJohnM61/poesp32-esphome/blob/906b03e9d4e37975a18f4ea3495988dec9994394/M5Stack_poesp32.yaml
esphome:
name: ${name}
friendly_name: ${friendly_name}
esp32:
board: m5stack-core-esp32
# Enable logging
logger:
ethernet:
type: IP101
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
power_pin: GPIO5
phy_addr: 1
# Enable Home Assistant API
api:
ota:
platform: esphome
password: ********YOUR_OTA_SECRET*******
Once flashed with the USB interim flash, leave it plugged in to USB for a 30 seconds. Put the PoE Hat/Grove port back on. Plug into switch and see if it powers back on. If not, try the Part one USB flash again.
If the USB flash is successful, use the following ESPHome config and flash it OTA
substitutions:
name: m5stackpoe
friendly_name: 'm5stackpoe'
#Based on:
#https://github.com/esphome/firmware/blob/27d45018c21bd298c1620f10988d7a2f888a0d73/bluetooth-proxy/m5stack-atom-lite.yaml
#https://github.com/DrJohnM61/poesp32-esphome/blob/906b03e9d4e37975a18f4ea3495988dec9994394/M5Stack_poesp32.yaml
esphome:
name: ${name}
friendly_name: ${friendly_name}
project:
name: esphome.bluetooth-proxy
version: "24.7.4.1"
esp32:
board: m5stack-core-esp32
framework:
type: esp-idf
logger:
api:
ota:
platform: esphome
password: ********YOUR_OTA_SECRET*******
dashboard_import:
package_import_url: github://esphome/firmware/bluetooth-proxy/m5stack-atom-lite.yaml@main
ethernet:
type: IP101
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
power_pin:
number: GPIO5
ignore_strapping_warning: true
phy_addr: 1
esp32_ble_tracker:
scan_parameters:
active: true
bluetooth_proxy:
active: true
text_sensor:
- platform: ethernet_info
ip_address:
name: "IP Address"
icon: mdi:ip-network-outline
Once that is done, you’ll need to install the ipex connector onto the device.
This might be easier to do with the PoE Hat/grove connector off. To reassemble go in reverse and the only slightly tricky part moving the wire through the device so that the antennae can stick to the non-circuit board side of the case which I found works best for me. I also value the aesthetics, so the antennae is adhered to the inside the case, not outside and no wires poking out.
The nice thing about this is that with the grove connector, you can also use these for other things as well, not just BLE proxy. I’ve got one with an IR Receiver/Transceiver and one with a Thermal Camera (to check if the stove and / or the gas fireplace is on). The possibilities are endless M5 SENSOR | m5stack-store. Plus many of these sensors have configs thanks to this github repo GitHub - Chill-Division/M5Stack-ESPHome: Collection of information for getting M5Stack sensors / controllers working with ESPHome.
Big thanks to poesp32-esphome/M5Stack_poesp32.yaml at 906b03e9d4e37975a18f4ea3495988dec9994394 · DrJohnM61/poesp32-esphome · GitHub