Flash it from here

Connect the board over USB and install the firmware from this page. No toolchain, no download, nothing uploaded anywhere — the image goes from the project’s release page straight to your board.

This browser cannot talk to serial devices. Chrome or Edge on a desktop can; Firefox and Safari cannot, and neither can any browser on iOS. Serial access needs a secure page. Open this over https.

What to expect

  1. Connect the board to this computer with a USB-C cable.
  2. Press Install and pick the board’s serial port from the list the browser shows. On Linux it is usually /dev/ttyACM0, on Windows a COM port.
  3. Wait about a minute. The whole flash is written — bootloader, partition table and firmware — so this also works on a board that has never run anything.
  4. Plug in Ethernet and open https://espkvm.local/. Accept the certificate warning, sign in as admin / admin, and set a password.
Two USB ports, one of them right. These boards have a USB-serial port and a USB-OTG port. Flashing goes through the serial one — the OTG port is what the target machine sees as a keyboard. If the port list is empty, try the other socket.
If Install fails to connect, hold the board’s BOOT button, press Install, and keep holding until it starts writing. That forces the chip into its bootloader when the automatic reset does not take.
If your board is already running ESP-KVM, you do not need this page or a cable: the console updates itself over the network, into a spare slot, and rolls back if the new image fails to start.

If the browser will not do it

Web Serial exists in Chrome and Edge on desktop, and nowhere else. Every other browser has to fall back to the command line, which does the same thing:

esptool --chip esp32p4 -b 921600 write-flash @flash_args

Take the full-flash archive from the releases page, unpack it, and run that inside the unpacked folder.