Get started
One command installs kvm32, a small tool that puts the firmware on the Waveshare ESP32-P4-NANO over USB. You do it once; after that the console takes the updates.
Copy and paste into terminal to try. Then kvm32 provision: it finds the board, flashes it and opens the console.
What you need
- macOS or Linux, with
python3(3.10 or newer) andcurl. The installer says so plainly when python3 is missing. - A USB-C lead from the board's Type-C port to your computer.
- The board alone on USB: unplug other boards and serial adapters, so the right port is found without a question, and leave the board's Type-A port unplugged while you provision.
What kvm32 provision does
- Finds the port. It looks for the board's USB-UART chip among the serial ports. When there is more than one candidate, you pick with the arrow keys.
- Flashes the board. It downloads the firmware from the stable channel and writes it, keeping what the device holds: its settings, its console password and its certificate. With
--licenceit activates your code for this board first and fetches the Enterprise firmware. - Waits for the address. It watches the board's log until the board reports the address the network gave it, by Ethernet or by WiFi.
- Opens the console. It prints the address,
https://a.b.c.d/, and opens it in your browser. If no address shows up within 90 seconds, it openshttps://ip-kvm32.local/instead.
Every step prints one calm line, and an error says what to do about it. The device makes its own certificate, so the browser warns on the first visit. Set a console password first thing, and keep it.
Options: --licence CODE for an Enterprise code, --channel stable|beta (the beta channel is available to everyone; Enterprise devices get the internal beta builds), --port PATH to name the serial port, and --yes to skip the port question when there is only one. Codes are bought on the licence page.
The other commands
kvm32 ports- Lists the serial ports it would consider, the likely board marked.
kvm32 flash FILE- Flashes a firmware you already have: a zip from a channel, or a bare app image.
kvm32 monitor- Shows the board's serial log until you press Ctrl-C.
kvm32 update- Installs a newer kvm32, the same way the installer did.
Before you plug anything in
The board has two USB ports with different jobs. The Type-C port is for power, flashing and the serial log. The Type-A port goes to the machine you want to control, as its keyboard and mouse. The Type-A port's 5 V is always on, so never connect the Type-C port and the Type-A port to the same computer unless the 5 V wire of the Type-A lead is blocked: the computer would see two ports sharing one supply and switch them off. For the target, use a lead with the 5 V wire blocked.