# ESP32 Micromod + PoE-Ethernet = no boot. invalid header 0xffffffff

**URL:** <https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989>\
**Category:** MicroMod\
**Created:** [May 7, 2025, 2:51pm UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989 "2025-05-07T14:51:32Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![michaelheiml82](https://avatars.discourse-cdn.com/v4/letter/m/8edcca/32.png) [@michaelheiml82](https://community.sparkfun.com/u/michaelheiml82)\
**Post date:** [May 7, 2025, 2:51pm UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/1 "2025-05-07T14:51:32Z")

</div>

(Important information, more detail at the end of this post - if I do the same thing on the mainboard with 2 function slots, it works in function slot zero).

I run into the exact same issue the user @avsteele descibed in this unsolved thread from 2023:

> [@Tech Support: ESP32 + Ethernet Carrier = no boot. invalid header 0xffffffff](https://community.sparkfun.com/t/tech-support-esp32-ethernet-carrier-no-boot-invalid-header-0xffffffff/45362):
>
> - Micromod single slot main board - Micromod ESP32 Processor - Micromod Ethernet If i have only the ESP32 hooked up to the main board I am able to to upload a simple sketch (LED blink) and communicate with the processor via serial. (notwithstanding the hideous bug here: [viewtopic.php?f=182&t=55461&p=239992#p239992](https://forum.sparkfun.com/viewtopic.php?f=182&t=55461&p=239992#p239992)) However if I add then power down, and insert the Ethernet function board and power back up (via a PC’s USB) the sketch no longer runs (LED not blinking), and on a serial monitor I see this: rst:0x10 (RTCWDT\_RTC\_RESET),boot:0x33 (SPI\_FAST\_FLASH\_BOOT) invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff invalid header: 0xffffffff ets Jul 29 2019 12:21:46 This sequence repeats If I remove the Ethernet board the ESP32 seems to work fine again. Without the Ethernet board the main board’s lights are all lit except for “CHG”. When the Ethernet board is connected The li…

I have bought both components new in April 2025 and set them up just how it is described in the hookup guide [MicroMod Ethernet Function Board - W5500 Hookup Guide](https://learn.sparkfun.com/tutorials/micromod-ethernet-function-board---w5500-hookup-guide/hardware-assembly)

As Board definition I tried:

- vanilla ESP32 in Arduino 2.3.6
- Espressify ESP32 ([https://espressif.github.io/arduino-esp32/package\_esp32\_index.json](https://espressif.github.io/arduino-esp32/package_esp32_index.json)
- Arduino Sparkfun boards)([https://raw.githubusercontent.com/sparkfun/Arduino\_Boards/main/IDE\_Board\_Manager/package\_sparkfun\_index.json](https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json))

Initially I used the second board definitions from Espressify Github and flashed the test script from the hookup guide. It did lead to the issue right away.

I’ve tried using the other 2 board definitions, same result.

When I remove the PoE-Ethernet and/or use the Wifi+Bluetooth Micromod Module, everything works fine.

I have attached screenshots of the flash and boot process. Notice that when the flashing fails, the flash memory is not detected properly and set to 4MB (instead of the correct 16MB), maybe that is important. Manually setting 16MB does not help though.

I’ve also tried several variants, like flashing with or without PoE supply, did not help either.

I’ve noticed that in the Ethernet hookup guide, in the hardware overview it says:  
" WP OPEN Pulls EEPROM Write Protect pin to **3.3V** /HIGH Close to pull this pin to **0V** /LOW to disable write protect."  
Is that related to the issue?

**ALSO I have another mainboard with 2 Micromod ports.**  
**When I insert the ESP32 and the PoE-Ethernet here into Function Zero, IT WORKS.**  
**If I insert the PoE-Ethernet into Function One, I get the same error as described above.**

 ![boot success no micromod board](https://canada1.discourse-cdn.com/sparkfun/original/2X/3/3c3997e40ae82a8a0665c34fe6bf66b0f7215260.png)  
 ![flash fail with micromod poe-ethernet](https://canada1.discourse-cdn.com/sparkfun/original/2X/3/36aee584ab59302ee90ab67385e25d2121dea6e2.png)  
 ![flash success -using SparkFun ESP32 Boards Definition - no micromod function board attached](https://canada1.discourse-cdn.com/sparkfun/original/2X/7/773fcf1fc52eeede56e158c29fe3de3893603f17.png)  
 ![flash success with micromod wifi](https://canada1.discourse-cdn.com/sparkfun/original/2X/e/e06c57dceb5757ee4d256ccfb67b8d5361540109.png)

---

<div class="post-metadata">

**Author:** ![paulvha](https://avatars.discourse-cdn.com/v4/letter/p/65b543/32.png) [@paulvha](https://community.sparkfun.com/u/paulvha)\
**Post date:** [May 9, 2025, 11:13am UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/2 "2025-05-09T11:13:05Z")

</div>

Looking at the schematics, the issue is related to using GPIO12- PWM1 on the ESP32. A side note on the MM ESP32 states: _ **Pulling GPIO12 high may prevent flashing and/or booting.** _  
The ESP32 GPIO12 is connected to pin 47 for MM-2222 processor connector.

On a single MM motherboard, the processor pin 47 is used for for PWR-EN0 and connected to the function board MM connector pin 71. On the Ethernet function board this is can be used to DISABLE power (pulling low). It has a pull-up of 10K to 3v3. **Hence is does prevent flashing and booting**

On a double MM motherboard, the processor PIN 47 is used PWM1 on function board connector FC1. And this is not connected and thus it works.

Just in case you wonder, how is FC0 / pin 71 /PWR-EN0 connected… it is connected to pin 66 on processor MM and on an MM ESP32 this pin is not connected.

---

<div class="post-metadata">

**Author:** ![michaelheiml82](https://avatars.discourse-cdn.com/v4/letter/m/8edcca/32.png) [@michaelheiml82](https://community.sparkfun.com/u/michaelheiml82)\
**Post date:** [May 9, 2025, 11:44am UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/3 "2025-05-09T11:44:49Z")

</div>

“Not much you can do except for cutting a trace on the ESP32MM, the MM motherboard OR Ethernet MM. Easier, best workaround is using double MM mother board.”

1. double is not an option (very limited space) - what and where exactly do I have to “cut” on the board?

2. I find it strange that this issue exists at all, doesn’t that mean that every customer with that config would run into that? It sounds like something Sparkfun should take a closer look or provide info in the hookup guide if its just a matter of cutting a trace?

---

<div class="post-metadata">

**Author:** ![paulvha](https://avatars.discourse-cdn.com/v4/letter/p/65b543/32.png) [@paulvha](https://community.sparkfun.com/u/paulvha)\
**Post date:** [May 9, 2025, 12:14pm UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/4 "2025-05-09T12:14:38Z")

</div>

I have taken the BRD-file from the single motherboard and looked up the line that runs from Pin71 on the function board connector to the pin 47 of the processor connector.

it is the line highlighted in RED and Blue (Red runs on one side, Blue on the other side of the motherboard). Looks to me there are places it can be cut in the blue area.. at your own risk.. never tried it.. no warranty..

 ![image](https://canada1.discourse-cdn.com/sparkfun/original/2X/7/7b69b5f432d5680a9d8bc622a174ab8531b5d807.png)

Point 2 is for Sparkfun to handle / answer.

---

<div class="post-metadata">

**Author:** ![TS-Russell](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/ts-russell/32/6092_2.png) [@TS-Russell](https://community.sparkfun.com/u/TS-Russell)\
**Post date:** [May 9, 2025, 8:02pm UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/5 "2025-05-09T20:02:06Z")

</div>

Essentially, yes…there are several processor + function combos that don’t jive well :-/

If you attempt to cut the trace mentioned above we _won’t_ void the warranty on it

---

<div class="post-metadata">

**Author:** ![michaelheiml82](https://avatars.discourse-cdn.com/v4/letter/m/8edcca/32.png) [@michaelheiml82](https://community.sparkfun.com/u/michaelheiml82)\
**Post date:** [May 12, 2025, 7:17am UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/6 "2025-05-12T07:17:22Z")

</div>

Hi @paulvha and @TS-Russell

Thank you, I confirm, cutting at the blue position solves the problem.

Maybe add this info to the PoE hookup guide?

How likely is it that the board is updated to a newer revision? Because we want to build several devices (at least 40) based on this combo and can either apply this workaround or wait for a revision.

---

<div class="post-metadata">

**Author:** ![paulvha](https://avatars.discourse-cdn.com/v4/letter/p/65b543/32.png) [@paulvha](https://community.sparkfun.com/u/paulvha)\
**Post date:** [May 12, 2025, 7:56am UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/7 "2025-05-12T07:56:16Z")

</div>

thanks for sharing the positive result Michael.

The questions are of course for Sparkfun to answer.

---

<div class="post-metadata">

**Author:** ![TS-Russell](https://yyz1.discourse-cdn.com/sparkfun/user_avatar/community.sparkfun.com/ts-russell/32/6092_2.png) [@TS-Russell](https://community.sparkfun.com/u/TS-Russell)\
**Post date:** [May 12, 2025, 5:54pm UTC](https://community.sparkfun.com/t/esp32-micromod-poe-ethernet-no-boot-invalid-header-0xffffffff/64989/8 "2025-05-12T17:54:12Z")

</div>

Excellent! Very unlikely for a revision, I’d just go with the workaround (and similarly, we’ll honor the warranties)

I’ll suggest adding it to the guide! In the meantime hopefully they can find the info here on the forums
