M5Stack ESP32 with POE - does it work?

I came up with a GREAT workaround, I designed a slim board on EasyEDA that has two Grove connectors on it, and passes the 5V through but also level-shifts so the ESP32 sees 3.3V. Spent $150 for a few dozen. They work great. Because they are slim, I just put them in shrink tubing so they’re robust too. Somebody should be selling this.

I have an example of this working at GitHub - DrJohnM61/poesp32-esphome: esphome built on a M5Stack ESP32 Ethernet Unit with PoE (poesp32)

@DrJohnM61 Thanks so much for this write up, after a few hours messing, I’ve finally got it running, and it’s now rock-solid! The only change I made was putting ota: in the yaml, so once in my home assistant’s ESPhome config, I can now keep it up to date, and change the config wirelessly.

Cool - I am pleased that you found it useful. Are you just using it as a switch/relay or something else? (I was wondering if the two GPIO pins could also be used as sensors).

@DrJohnM61 I have a few uses in mind for these devices. One will sit with the thermal store water tank using Dallas sensors to monitor tank temperatures. two will monitor gate alarms. and a third one will monitor the water level in the sewage treatment plant… not sure if I should go simple with a float switch, or look into some fancy water level sensor. I wanted PoE as some of these areas have marginal wifi coverage, and I wanted something more reliable, especially for the sewage treatment plant. The box had languished unused for a while, and I hated the fact it had gotten the better of me!

On a separate note, great to see a fellow digital user, ex-deccie here and OpenVMS system manager for many years!

Thx @DrJohnM61, followed your guidance with no issues at all. ‘Gate Control’ as a device showed up for configuration on the Integrations page (as well as a ‘New Device’ notice). And following entering the encryption key, the device became listed within the ESPHome devices tille.

Now to have a go at reconfiguring to fulfil my immediate requirement of reading a DS18B20 sensor, plus getting OTA set-up.

I presume the former simply involves redefining one of the Grove plug pins as the 1-Wire bus and configuring the yaml in accordance with:
https://esphome.io/components/sensor/dallas

Many thanks for your documentation on this.

Cheers

Interesting that I made some minor changes to the config yaml, which, while it all compiles AOK, fails to serial upload now due the following error:

================================= [SUCCESS] Took 25.27 seconds =================================
INFO Successfully compiled program.
ERROR Cannot upload Over the Air as the config does not include the ota: component

I’ve even resorted to attempting to reflash using the original unchanged yaml config file with the same result.

I guess the issue is that I initially included OTA set-up but that raised issues so I removed it in order to just focus on the Dallas component.

Does anyone know how to turn off the OTA component in the compiling in order to clear this issue?

SOLVED: For anyone else encountering this who is early in their engagement with ESPHome, on the first upload ESPHome installs a complete set of its compiled code. Thereafter it only uploads the user generated component. And as the OTA code is a part of its core code it won’t be erased if you subsequently remove it from your config. To remove OTA and regain the option to do a direct serial upload, it is necessary to fully erase the flash memory independently of ESPHome using esptools.

If you have esptools pre-installed the command line instruction would be:

$ esptool.py -port /dev/cu.usbserial-0000xxxx erase_flash

where /dev/cu.usbserial-0000xxxx is replaced with whatever your serial adapter is called.

1 Like

By the way @DrJohnM61, my very first programming exposure was Basic on a PDP11. Paper tape input with the boot address entered via toggle switches on the front panel! First o/p of any consequence; a routine to design a single NPN transistor amplifier that for a given input of required gain and precision, auto selected the bias resistors from standard EIA tolerance ranges.

Strewth I daren’t contemplate the amount of paper consumed to tweak the alignment offsets needed to get the calculated values to match the official numbers and take inventory simplification into account. Look up tables weren’t an option given working memory limitations.

The PDP11 was a nice machine. RSX-11+. Although having to work with overlays for those memory limits…

My preference was the DEC10 (36 bit word) and later, the DEC20 but the big turning point was the introduction of the VAX and VMS

Those were the days…

They were.

Did not find other ‘inside pictures’, PoESP32 does operate from a general ESP32-WROOM.
And this can offer more then the onboard connector, drilled a small hole and added an extra uart on GPIO32 & 33:

1 Like

any specific reason why you used only GPIO32 & 33 and not added more others?

btw, if you connect u.fl Wifi/BLE antenna, you can use Wifi & Bluetooth with PoESP32 device.
for some reason m5stack marked Wifi/BLE as disabled on their website, but it’s just works.

Did not need more for that location, of course there can be added more than just these 2.

1 Like

looks like whole left part of chip is not used.
from pin 1 to pin 14 on your photo.
you have a very good soldering skills. pins are so small.

Has anyone using the M5 PoESP32 device managed to get OTA updating via Ethernet to work after the initial hardware upload?

@dweston Did you read this information? It worked for me:

See post #13 - link (solution = SOLVED part)

@klim123123 be carefull not all pins are ‘playing’ nice; had an issue with a pull-up on pin 25 but did go well on pin 12…

1 Like

I tried flashing using “esphome flasher”, “esphome web” and “esptool.py”, all 3 methods indicated that flash was erased and the firmware was uploaded. However, the LEDs on the ethernet port do not light up. When using the esphome flasher, it indicated rtcwdt_rtc_reset.

What am I missing here? Was there specific parameters I should be using on esptool?

Cheers
Joe

Insofar as I’m aware, you can use the M5 PoESP32 device with ESPHome but only after initially flashing it via hardware serial as described here:
https://community.home-assistant.io/t/m5stack-esp32-with-poe-does-it-work/541117/8?

Once you have the device operating over Ethernet via that means the device should then show up in your ESPHome dashboard.

The trick though, and I’ve yet to master this, is to enable OTA via Ethernet. Once that is achieved I presume the device is then managable in the same way as any other device in the ESPHome ecosystem.

Hi @ggaljoen , yep I get it that the OTA code is installed as a part of the first upload. Its just that I’ve not been able to initiate an OTA update over Ethernet via the ESPHome dashboard. I can, however, ‘see’ the device as an Entity in HA and read it’s sensor data.

Maybe I’m still missing something in the way the ESPHome set-up works.