This project uses an ESP32 P4 (Rev < 3) and a Toshiba TC358743 HDMI to CSI adapter as an Remote IP KVM
This is NOT production software! THis is a POC, use this at your own risk! There are many bugs, there is NOT security, none. There is no wifi in this firmware, there is only ethernet.
- Any esp32-p4 module with rpi camera compatible CSI interface + ethernet
- Toshiba TC358743 HDMI to CSI adapter
This ony works with the specific parts above:
- Use esp-idf, 6.0.1
- run menuconfig (select chip revision < 3, choose options in p4kvm>)
- idf.py build flash monitor (monitor is optional)
- Open p4kvm.local in your browser
- cd web
- npm install
- npm run build
- follow build/flash steps above
You will need some sort of vpn, like tailscale, wireguard, etc., do not expose this to the public internet.
This is not supported yet, but you can change the EDID in tc358743_edid_bin defined in tc358743_edid_1080p30.h if you want to experiment.
Afaik, it's not possible to change the escape key in a browser.
This is a POC, not a production project. Please fork it and customize it!
- if the source goes to sleep, the p4kvm doesn't always recover, WIP
- some systems don't like the EDID, try changing the EDID
- try plugging in your target system before booting the p4 kvm
- try a different HDMI cable or USB cable
- look at the diagnsotics for the tc358743: SYS_STATUS, i.e. (TMDS=1 HDMI=1 SYNC=1 DDC5V=1), they should all be 1
Chip revisions on the ESP32 P4 are very critical, this project assumes you have a Rev 1.3 chip. Rev 3+ chips will be able to use H264 encoding, hopefully, but it's not included in this firmware. CSI path is fixed to RGB888 for now, YUV doesn't work well with the jpeg encoder
P4KVM_TC358743_RST_GPIO: reset line (active low); use-1if unwired (default GPIO 23).P4KVM_JPEG_QUALITY: 1-100. (This is also available through the UI)- Ethernet:
P4KVM_ETH_ENABLEand RMII/MDIO/PHY GPIO options whenSOC_EMAC_SUPPORTEDapplies.