Ethernet/Three routes/ESP32-P4: built-in MAC, no Wi-Fi radio
Lesson 11 of 12 · in 3D and VR

ESP32-P4: built-in MAC, no Wi-Fi radio

The ESP32-P4 has an Ethernet MAC inside, RMII pins chosen from short lists, a clock that can come in or go out and back, a timestamp on every frame, and no Wi-Fi radio of its own.

Lonely BinaryUpdated 2026-10-094 min readNo board required

View it in VR

Lesson 11 of the Ethernet course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/ethernet/11

A MAC inside, a PHY outside

The ESP32-P4 has an Ethernet MAC of its own, as the classic ESP32 does, and like it needs a separate PHY to reach the cable, at 10 or 100 Mbit/s. The hardware can talk to that PHY over MII or RMII, but ESP-IDF supports RMII only, so in practice a P4 board uses the seven RMII signals and the two management wires of lesson 7.

Pins from short lists

On the classic ESP32 the RMII data lines sit on fixed pins. On the P4 each data signal can use one of two or three GPIO:

  • TX_EN on 33, 40 or 49; TXD0 on 34 or 41; TXD1 on 35 or 42.
  • CRS_DV on 28, 45 or 51; RXD0 on 29, 46 or 52; RXD1 on 30, 47 or 53.

That leaves a board designer room to route round other parts, but the list is the limit. A pin that is not on a signal's list cannot carry it, and the pins named in the software have to be the pins the traces go to.

Who makes the clock

REF_CLK can come in from outside, from the PHY for example, on GPIO32, 44 or 50. Or the P4 can make it, and send it out to the PHY on GPIO23 or 39. Then the same clock must also be wired back, on the board, into one of those three clock-in pins, because that is where the P4's own MAC reads it.

Leave that loop off and the PHY has a clock while the MAC has none. Every RMII line is read against REF_CLK, so no frame crosses in either direction.

A time on every frame

The P4's MAC gives every frame it sends and receives a 64-bit timestamp, as IEEE 1588-2008 describes. IEEE 1588 is a protocol for precise synchronisation of clocks in networked measurement and control systems: it is what lets devices on a network line up their clocks.

No Wi-Fi radio of its own

The P4 has no Wi-Fi radio. A board that wants Wi-Fi adds a second, Wi-Fi capable ESP chip connected to it, which Espressif's software calls Wi-Fi expansion. As one implementation, Espressif's ESP32-P4-Function-EV-Board carries an ESP32-C6-MINI-1 module that provides Wi-Fi and Bluetooth. On a board without such a chip, Ethernet is how the P4 reaches the network.

Lesson 12 puts the three routes side by side and finds a fault layer by layer. For a real board's wiring, see Ethernet instead of Wi-Fi in the ESP32 book.

Common mistakes

  • Routing an RMII signal to a pin off its list. Each P4 signal has two or three GPIO to choose from, and no others.
  • Making the clock on the P4 and leaving out the loop. REF_CLK out on GPIO23 or 39 must be wired back in to GPIO32, 44 or 50, or the MAC has no clock.
  • Expecting Wi-Fi from the P4 alone. It has no Wi-Fi radio of its own; Wi-Fi needs a second ESP chip on the board.

Edit this page — content/fundamentals/ethernet/esp32-p4-built-in-mac.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →