Compare boards
The ESP32-P4 boards ESP-KVM runs on, side by side. Pick the ones you are choosing between; the address of this page keeps the choice, so it can be sent to someone. "Untested" means built from the vendor's schematic and not yet run by anyone. Green marks the best of the boards shown. The first row is the board's rating for a KVM, out of five.
Compare the capture boards → · Every ESP32-P4 board, supported or not →
What counts in the rating
Untick what does not matter to you; the rating row follows, and this browser remembers it, here and on the board list.
78 x 21 mmWaveshare ESP32-P4-ETH | 88 x 74 mmEspressif ESP32-P4 Function EV Board | 50 x 50 mmWaveshare ESP32-P4-NANO | 92 x 62 mmGuition ESP32-P4-M3-Dev | 68 x 55 mmWaveshare ESP32-P4-WIFI6-POE-ETH | 71 x 21 mmWaveshare ESP32-P4-WIFI6 | 85 x 56.5 mmWaveshare ESP32-P4-WIFI6-DEV-KIT | 60 x 25.4 mmDFRobot FireBeetle 2 ESP32-P4 | 64 x 24 mmM5Stack Unit PoE-P4 | 52 x 50 mmWaveshare ESP32-P4-NANO-WIFI6-DB | 70 x 21 mmWaveshare ESP32-P4-WIFI6-DB | 85 x 56 mmWaveshare ESP32-P4-Module-DEV-KIT | 88 x 74 mmEspressif ESP32-P4X-C5-Function-EV-Board | 85 x 56 mmVIEWE ESP32-P4-Pi | 64 x 24 mmM5Stack Unit PoE-P4X | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Status | Tested | Tested | Tested | Tested | Tested | Tested | Tested | Tested | Tested | Tested | Tested | Untested | Untested | Untested | Untested |
| Fit for a KVM | 4 of 5 | 4.5 of 5 | 4 of 5 | 3.5 of 5 | 5 of 5 | 3.5 of 5 | 4.5 of 5 | 3 of 5 | 4 of 5 | 4.5 of 5 | 3 of 5 | 3 of 5 | 3 of 5 | 2 of 5 | 3.5 of 5 |
| Chip | ESP32-P4, rev 1.x or rev 3.x (an image for each) | ESP32-P4, rev 1.x or rev 3.x (an image for each); the unit here is rev 3.2 | ESP32-P4, rev 1.x or rev 3.x (an image for each) | ESP32-P4, rev 1.x; an image for rev 3.x is ready, but no rev 3.x board has been seen yet | ESP32-P4, rev 1.x or rev 3.x (an image for each) | ESP32-P4, rev 1.x or rev 3.x (an image for each) | ESP32-P4, rev 1.x or rev 3.x (an image for each); v1.2 boards carry rev 3.1 | ESP32-P4, rev 1.x | ESP32-P4, rev 1.x | ESP32-P4, rev 3.x | ESP32-P4NRW32X, rev 3.x | ESP32-P4, rev 1.x or rev 3.x (an image for each) | ESP32-P4, rev 3.x | ESP32-P4, rev 1.x | ESP32-P4, rev 3.x |
| PSRAM | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB | 32 MB |
| Flash | 32 MB | 16 MB | 16 MB | 16 MB | 32 MB | 32 MB | 16 MB | 16 MB | 16 MB | 16 MB | 32 MB | 16 MB | 16 MB | 16 MB | 16 MB |
| Ethernet | 100M | 100M | 100M | 100M | 100M | - | 100M | - | 100M | 100M | - | 100M | 100M | 100M | 100M |
| PoE | with an add-on module | - | with an add-on module | - | yes | - | with an add-on module | - | 802.3at | with an add-on module | - | with an add-on module | - | - | 802.3at |
| Wi-Fi | - | Wi-Fi 6, ESP32-C6 | Wi-Fi 6, ESP32-C6 | Wi-Fi 6, ESP32-C6 | Wi-Fi 6, ESP32-C6 | Wi-Fi 6, ESP32-C6 | Wi-Fi 6, ESP32-C6 | Wi-Fi 6, ESP32-C6 | - | dual-band Wi-Fi 6, ESP32-C5 | dual-band Wi-Fi 6, ESP32-C5 | Wi-Fi 6, ESP32-C6 | dual-band Wi-Fi 6, ESP32-C5 | Wi-Fi 6, ESP32-C6 | - |
| HDMI capture | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | M5Stack Add-on Display In | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | Geekworm C790 or Geekworm C792 or Waveshare HDMI to CSI Adapter | M5Stack Add-on Display In |
| Capture connector | 22-pin 0.5 mm camera connector (the Pi 5 / Zero kind) | 15-pin Raspberry Pi camera connector | 15-pin Raspberry Pi camera connector | camera connector J3 | 15-pin Raspberry Pi camera connector | 15-pin Raspberry Pi camera connector | 15-pin Raspberry Pi camera connector | 15-pin Raspberry Pi camera connector | 24-pin flat cable to the Add-on Display In | 15-pin Raspberry Pi camera connector | 22-pin 0.5 mm camera connector (Pi 5 kind) | 15-pin Raspberry Pi camera connector | 15-pin 1.0 mm camera connector | 15-pin Raspberry Pi camera connector | 24-pin flat cable to the Add-on Display In |
| To the target | USB 2.0 OTG on an MX1.25 connector | USB-C, the HS OTG one | USB-A (A-to-A cable, 5 V wire cut) | USB-C, the OTG-HS one | USB-A | USB OTG on an MX1.25 4-pin header | USB-A port 1 (jumper; A-to-A cable, 5 V wire cut) | USB-C, the OTG-HS one | USB-C, the one M5Stack labels Host | USB-A (A-to-A cable, 5 V wire cut) | USB OTG on a 4-pin header | USB-A (jumper; A-to-A cable, 5 V wire cut) | USB-C, the HS OTG one | USB-C, the OTG-HS one | USB-C, the one M5Stack labels Host |
| microSD | yes | yes | yes, pins not confirmed on hardware yet | yes, pins not confirmed on hardware yet | yes | yes | yes | yes | yes, on the capture module the board needs anyway | yes | yes | yes | yes | yes | yes, on the capture module the board needs anyway |
| Measured | 1080p MJPEG 20 fps; 720p 45 fps | 1080p H.264 at 22-24 fps, 720p at 28; about 155 ms from mouse to picture | - | - | 1080p H.264 at 23 fps (rev 3.x) | - | H.264 at about 23 fps (rev 3.1) | about 9 fps of 1080p MJPEG over Wi-Fi (0.56.2) | 720p: MJPEG 21-23 fps, H.264 17 fps; about 185 ms from mouse to picture | - | - | - | - | - | - |
| Antenna | - | - | - | - | - | - | - | - | - | - | two versions, a PCB antenna on the board or an external FPC one on a cable; tested with the FPC one | - | - | - | - |














