OLIMEX / ESP32-POE

ESP32 IoT development board with 100Mb Ethernet and 802.3 Power Over Ethernet (POE)
Apache License 2.0
292 stars 110 forks source link

Ground Issue with PoE on Rev I-Industrial #31

Closed AndrewBHarmon closed 1 year ago

AndrewBHarmon commented 2 years ago

I'm experiencing some strange issues with Rev I (industrial version) that I haven't seen with prior revisions. Rev I shuts down when PoE is connected and another path to ground is introduced.

'Tests' Done:

  1. PoE connected, attempt to plug in microUSB (Not best practice, I know. I've done this with prior revisions without issue).
  2. Ethernet connected with PoE active. MicroUSB cable plugged into computer, NOT ESP32-PoE. Touch microUSB cable to USB header or ESP cover.
  3. Ethernet connected with PoE active. ESP32-PoE connected via I2C to another microcontroller. Plug secondary microcontroller into PC
  4. Ethernet connected with PoE active. ESP32-PoE connected via I2C to another microcontroller. Connect peripheral with its own ground into secondary microcontroller

All 'tests' result in ESP32-PoE crashing (loses Ethernet connection if applicable), all lights off. ESP recovers when the secondary ground is removed. I attempted to reproduce the issue with the ESP32-PoE connected to my computer with debugging enabled, but with no luck.

Any advice on how to stop this issue if possible would be appreciated. I have a good number of these boards that need to go into prototypes and would like to avoid a redesign.

DanKoloff commented 2 years ago

Overall what you do is highly unsafe. Especially what you describe in point 1 - this can damage your computer. I've literally seen damaged USB ports and motherboards from having both PoE powering and USB powering simultaneously active on ESP32-POE.

About points 2, 3, and 4 - it is probably caused by ground voltage differences. Measure the voltage between grounds like in the setup described in point 2 (PoE enabled and connected, microUSB not connected; measure voltage between microUSB's cover GND and ESP32-POE's GND). Try if the issue persists if you power your I2C device FROM ESP32-POE's UEXT port (it has 3.3V out and GND).

Also when you say I2C, do you have the GNDs connected between ESP32-POE and the other board, and also in what order do you enable power source, what happens if you power the setup in reverse order?

My advice, if you expect these scenarios happening with your product, is to consider ESP32-POE-ISO.

AndrewBHarmon commented 2 years ago

Point taken on the PoE & USB.

When using another microcontroller connected via I2C, I have the second microcontroller powered via the ESP32-PoE board. So the second board is powered via the 3.3v header on the ESP32-PoE, grounds are connected, and the two I2C lines are connected with nothing else connected. In this scenario, to start, the PoE is the only external connection made to either board. As soon I connected anything else with its own ground to either the ESP32-PoE or the second microcontroller, I see both shut off until the second ground is removed.

Trying in reverse (second ground connected before PoE), the ESP32-PoE fails to power on or boot until the second ground is removed.

I did as you said and measured voltage between USB ground and ESP ground. Rev. I - Industrial measured 46v. I tried with an ESP32-PoE Rev E (Non industrial version) and was unable to get a steady reading, but it was consistently below 1v.

DanKoloff commented 2 years ago

Yeah, 46V is not good. So the options are:

AndrewBHarmon commented 2 years ago

I am currently doing what you suggest in your first bullet point. The issue arises when I connect anything external to either the ESP32-PoE or to the second board attached to it (powered completely via the ESP32-PoE. I have multiple prototypes that were designed around this board. The best in terms of illustrating my problem is this:

ESP32-PoE is connected to a second microcontroller via I2C. The second microcontroller gets its power and ground from the ESP32-PoE. The second microcontroller is used to analyze audio. As soon as I plug in the audio source, both the ESP32-PoE and the second microcontroller power down and will not boot until the audio source is removed. This design worked on older versions of the ESP32-PoE board, but now I'm concerned that I'll not only damage both microcontrollers, but my audio source as well.

If I do as you said in your third point -- connect everything before activating PoE -- the ESP32-PoE fails to power on.

I have this prototype among others waiting to be built with the 50 ESP32-PoE Rev I boards that I have sitting on hand. All designs have been tested and known working with Rev E: many tested with older revisions as well.

DanKoloff commented 2 years ago

My advice is to get one or two ESP32-PoE-ISO and test with it. I am not sure what you purchased recently, but if you purchased many ESP32-PoE boards recently we can arrange return and refund or exchange for ESP32-PoE-ISO over support@olimex.com - ESP32-PoE-ISO is the more fitting board for your hardware setup and for your typical usage.

AndrewBHarmon commented 2 years ago

I emailed support@olimex.com yesterday in reference to this. I have PCBs and cases that were designed around the ESP32-PoE board. The ISO board will not fit either of these. I really need a way to fix the issue on the Rev I boards or to replace with a version of the ESP32-PoE board that does not have this issue.

I also tested a design which uses an isolated 485 chip to drive DMX output with both a Rev E board and a Rev I board. The E board worked as expected (as have previous revisions with this setup), but the Rev I board would not work. It is messing up the outbound signal in a way which causes random spikes in the resulting DMX signal.

DanKoloff commented 2 years ago

Ok, is it possible that the power supply of the audio device that you connect is galvanically isolated instead? Maybe try to isolate that part of the hardware setup, if changing to ESP32-PoE-ISO is out of question. What exactly is the audio device that you connect? How is that powered?

As far as I understand your hardware setup is like this:

esp32-poe (powered by PoE) - i2c - audio analizer module (powered via esp32-poe) - audio jack - audio device under test (with own power supply)

So maybe isolate the power supply of the audio device.