<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ESP-KVM</title>
    <link>https://espkvm.io/blog/</link>
    <atom:link href="https://espkvm.io/blog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Engineering notes from building an open-source IP-KVM on the ESP32-P4.</description>
    <language>en</language>
    <lastBuildDate>Thu, 27 Aug 2026 09:00:00 +0000</lastBuildDate>
    <item>
      <title>The demo is a whole fake computer now</title>
      <link>https://espkvm.io/blog/the-demo-is-a-whole-fake-computer/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/the-demo-is-a-whole-fake-computer/</guid>
      <pubDate>Thu, 27 Aug 2026 09:00:00 +0000</pubDate>
      <description>The interactive demo moved to its own address and stopped being a screenshot: it is the real console, driving a machine that boots, crashes and lets you update its firmware.</description>
    </item>
    <item>
      <title>A case, printed by somebody else</title>
      <link>https://espkvm.io/blog/a-case-somebody-else-printed/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/a-case-somebody-else-printed/</guid>
      <pubDate>Thu, 27 Aug 2026 09:00:00 +0000</pubDate>
      <description>Colin Hickey printed one for the ESP32-P4-ETH with the C790 inside, and published the model on Printables.</description>
    </item>
    <item>
      <title>0.38.0 - a mouse jiggler</title>
      <link>https://espkvm.io/blog/0-38-0-the-mouse-jiggler/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-38-0-the-mouse-jiggler/</guid>
      <pubDate>Thu, 27 Aug 2026 09:00:00 +0000</pubDate>
      <description>A machine left alone locks its screen, and then what you were watching is behind a password. One pixel, there and back, as often as you like.</description>
    </item>
    <item>
      <title>0.37.0 - the screen as two kilobytes</title>
      <link>https://espkvm.io/blog/0-37-0-the-screen-as-two-kilobytes/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-37-0-the-screen-as-two-kilobytes/</guid>
      <pubDate>Wed, 26 Aug 2026 09:00:00 +0000</pubDate>
      <description>Work a machine over a phone tether by sending the characters instead of the video, hand a dashboard a view-only token, and go back to any published release.</description>
    </item>
    <item>
      <title>0.36.0 - a panel that can stay open, and arrows on a phone</title>
      <link>https://espkvm.io/blog/0-36-0-a-panel-that-stays-open/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-36-0-a-panel-that-stays-open/</guid>
      <pubDate>Tue, 25 Aug 2026 09:00:00 +0000</pubDate>
      <description>Pin a panel beside the picture instead of over it, and drive a boot menu from a phone that has no arrow keys.</description>
    </item>
    <item>
      <title>0.33.0 - rev 3.x images for the NANO and the Guition</title>
      <link>https://espkvm.io/blog/0-33-0-rev3-images-for-two-more-boards/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-33-0-rev3-images-for-two-more-boards/</guid>
      <pubDate>Mon, 24 Aug 2026 09:00:00 +0000</pubDate>
      <description>The same board can arrive with either family of chip, and the wrong image simply refuses to flash. Both boards now publish both.</description>
    </item>
    <item>
      <title>0.32.0 - settings to a file, and back</title>
      <link>https://espkvm.io/blog/0-32-0-settings-to-a-file/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-32-0-settings-to-a-file/</guid>
      <pubDate>Sun, 23 Aug 2026 09:00:00 +0000</pubDate>
      <description>Save the configuration before you change it, or bring a second device up like the first.</description>
    </item>
    <item>
      <title>0.31.0 - updates that take on the first try</title>
      <link>https://espkvm.io/blog/0-31-0-updates-that-take-the-first-time/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-31-0-updates-that-take-the-first-time/</guid>
      <pubDate>Sun, 23 Aug 2026 09:00:00 +0000</pubDate>
      <description>A chip fault during its own restart made updates look like they reverted themselves. Fixed, along with uploads that died part-way over HTTPS.</description>
    </item>
    <item>
      <title>0.30.0 - any size of little OLED</title>
      <link>https://espkvm.io/blog/0-30-0-any-size-of-oled/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-30-0-any-size-of-oled/</guid>
      <pubDate>Sat, 22 Aug 2026 09:00:00 +0000</pubDate>
      <description>Not every status panel is 128x64. Six SSD1306 sizes and four SH1106 ones now work, and a shorter panel drops the lines that matter least.</description>
    </item>
    <item>
      <title>0.29.0 - you can watch an update happen</title>
      <link>https://espkvm.io/blog/0-29-0-watching-an-update-happen/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-29-0-watching-an-update-happen/</guid>
      <pubDate>Sat, 22 Aug 2026 09:00:00 +0000</pubDate>
      <description>The console takes over the screen during an update, names the step it is on, and afterwards says which version actually came back.</description>
    </item>
    <item>
      <title>0.28.0 - reading the screen as text, and watching it while you are away</title>
      <link>https://espkvm.io/blog/0-28-0-reading-the-screen-as-text/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-28-0-reading-the-screen-as-text/</guid>
      <pubDate>Fri, 21 Aug 2026 09:00:00 +0000</pubDate>
      <description>Select and copy the words off a BIOS screen instead of typing them out, and let the device raise an alert when a phrase you care about appears.</description>
    </item>
    <item>
      <title>0.26.0 - one cable in a rack, and images for the other chip</title>
      <link>https://espkvm.io/blog/0-26-0-poe-and-the-other-silicon/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-26-0-poe-and-the-other-silicon/</guid>
      <pubDate>Wed, 19 Aug 2026 09:00:00 +0000</pubDate>
      <description>A build for the PoE board, so a KVM in a rack needs one cable, plus images for rev 3.x silicon beside the existing ones.</description>
    </item>
    <item>
      <title>0.25.0 - the device keeps its own log</title>
      <link>https://espkvm.io/blog/0-25-0-the-device-keeps-its-own-log/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-25-0-the-device-keeps-its-own-log/</guid>
      <pubDate>Tue, 18 Aug 2026 09:00:00 +0000</pubDate>
      <description>A log that survives a restart, so the boot that failed is still readable after the device has come back on something that works.</description>
    </item>
    <item>
      <title>0.24.0 - point a phone at the screen to get in</title>
      <link>https://espkvm.io/blog/0-24-0-point-a-phone-at-it/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-24-0-point-a-phone-at-it/</guid>
      <pubDate>Tue, 18 Aug 2026 09:00:00 +0000</pubDate>
      <description>The round LCD shows the rescue hotspot as a QR code, the certificate finally names the address DHCP gave the device, and the reset button shows that it heard you.</description>
    </item>
    <item>
      <title>0.23.0 - IPv6</title>
      <link>https://espkvm.io/blog/0-23-0-ipv6/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-23-0-ipv6/</guid>
      <pubDate>Mon, 17 Aug 2026 09:00:00 +0000</pubDate>
      <description>The device answers on IPv6 as well as IPv4, on Ethernet and WiFi, with a certificate that names the address and a network panel that hands it to you.</description>
    </item>
    <item>
      <title>0.22.0 - two firmware slots, and a way back</title>
      <link>https://espkvm.io/blog/0-22-0-two-slots-and-a-way-back/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-22-0-two-slots-and-a-way-back/</guid>
      <pubDate>Wed, 12 Aug 2026 09:00:00 +0000</pubDate>
      <description>The firmware panel shows both slots and can boot the other one, so going back to a build that worked needs no cable.</description>
    </item>
    <item>
      <title>0.21.0 - a little screen on the box itself</title>
      <link>https://espkvm.io/blog/0-21-0-a-little-screen-on-the-box/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-21-0-a-little-screen-on-the-box/</guid>
      <pubDate>Tue, 11 Aug 2026 09:00:00 +0000</pubDate>
      <description>Solder on a small OLED or a round colour LCD and the device shows its address, its link and its health without a browser at all.</description>
    </item>
    <item>
      <title>0.20.0 - virtual media grows up</title>
      <link>https://espkvm.io/blog/0-20-0-virtual-media-grows-up/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-20-0-virtual-media-grows-up/</guid>
      <pubDate>Mon, 10 Aug 2026 09:00:00 +0000</pubDate>
      <description>An ISO is offered as a CD-ROM and everything else as a disk, and the whole microSD card can be handed to the target at once.</description>
    </item>
    <item>
      <title>0.19.0 - your own control server, and a card you can write</title>
      <link>https://espkvm.io/blog/0-19-0-headscale-and-a-writable-card/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-19-0-headscale-and-a-writable-card/</guid>
      <pubDate>Fri, 07 Aug 2026 09:00:00 +0000</pubDate>
      <description>Point the device&#x27;s Tailscale client at your own Headscale, and on rev 3.x boards upload images to the microSD card from the console.</description>
    </item>
    <item>
      <title>0.17.0 - WiFi, and a hotspot for when it fails</title>
      <link>https://espkvm.io/blog/0-17-0-wifi/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-17-0-wifi/</guid>
      <pubDate>Thu, 06 Aug 2026 09:00:00 +0000</pubDate>
      <description>On boards with an ESP32-C6 the KVM can run over WiFi, put up its own hotspot when the network is gone, and open the console on your phone by itself.</description>
    </item>
    <item>
      <title>0.16.0 - Tailscale, right on the device</title>
      <link>https://espkvm.io/blog/0-16-0-tailscale-without-a-gateway/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-16-0-tailscale-without-a-gateway/</guid>
      <pubDate>Tue, 04 Aug 2026 09:00:00 +0000</pubDate>
      <description>The KVM joins your tailnet by itself - no gateway, no VPS, no port forwarding - and the console installs to a phone&#x27;s home screen.</description>
    </item>
    <item>
      <title>0.15.0 - bring your own certificate</title>
      <link>https://espkvm.io/blog/0-15-0-bring-your-own-certificate/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-15-0-bring-your-own-certificate/</guid>
      <pubDate>Mon, 03 Aug 2026 09:00:00 +0000</pubDate>
      <description>Install a certificate from your own CA, or a real public one, so browsers trust the device with nothing to import.</description>
    </item>
    <item>
      <title>0.14.0 - WireGuard, and an API simple enough for a script</title>
      <link>https://espkvm.io/blog/0-14-0-wireguard-and-an-api-for-agents/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-14-0-wireguard-and-an-api-for-agents/</guid>
      <pubDate>Fri, 31 Jul 2026 09:00:00 +0000</pubDate>
      <description>Reach the KVM over a WireGuard tunnel without opening a port, and drive the target with plain HTTP calls instead of a binary protocol.</description>
    </item>
    <item>
      <title>0.13.0 - the KVM shows up in Home Assistant</title>
      <link>https://espkvm.io/blog/0-13-0-home-assistant/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-13-0-home-assistant/</guid>
      <pubDate>Fri, 31 Jul 2026 09:00:00 +0000</pubDate>
      <description>Turn on MQTT and the device is discovered as one Home Assistant device, with sensors for what it sees and buttons for what it can press.</description>
    </item>
    <item>
      <title>0.11.0 - the device becomes its own certificate authority</title>
      <link>https://espkvm.io/blog/0-11-0-the-device-is-its-own-authority/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-11-0-the-device-is-its-own-authority/</guid>
      <pubDate>Wed, 29 Jul 2026 09:00:00 +0000</pubDate>
      <description>Import one small certificate once and the browser trusts the device for good - which is also what unlocks H.264 and the keyboard channel.</description>
    </item>
    <item>
      <title>0.9.0 - pressing the power button from a browser</title>
      <link>https://espkvm.io/blog/0-9-0-the-power-button/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-9-0-the-power-button/</guid>
      <pubDate>Tue, 28 Jul 2026 09:00:00 +0000</pubDate>
      <description>Two cheap optocoupler modules let the device press the target&#x27;s power and reset buttons and read its power LED back.</description>
    </item>
    <item>
      <title>0.10.0 - phones, and taking turns at the keyboard</title>
      <link>https://espkvm.io/blog/0-10-0-phones-and-taking-turns/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-10-0-phones-and-taking-turns/</guid>
      <pubDate>Tue, 28 Jul 2026 09:00:00 +0000</pubDate>
      <description>The screen becomes a trackpad on a phone, and a second person opening the console can see who is driving and ask for the keyboard.</description>
    </item>
    <item>
      <title>0.7.0 - a second board, and a release for each</title>
      <link>https://espkvm.io/blog/0-7-0-a-second-board/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-7-0-a-second-board/</guid>
      <pubDate>Sun, 26 Jul 2026 09:00:00 +0000</pubDate>
      <description>The Espressif ESP32-P4 Function EV board joins the Waveshare one, and CI now builds and publishes every board separately.</description>
    </item>
    <item>
      <title>0.6.0 - the console gets out of the way</title>
      <link>https://espkvm.io/blog/0-6-0-the-console-gets-out-of-the-way/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-6-0-the-console-gets-out-of-the-way/</guid>
      <pubDate>Sat, 25 Jul 2026 09:00:00 +0000</pubDate>
      <description>The firmware version becomes a badge that shows updates and their progress, diagnostics and media move out of Settings, and the whole button rail can switch sides.</description>
    </item>
    <item>
      <title>0.5.0 - macros, for the sequence you type every time</title>
      <link>https://espkvm.io/blog/0-5-0-macros/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-5-0-macros/</guid>
      <pubDate>Sat, 25 Jul 2026 09:00:00 +0000</pubDate>
      <description>Save a named script of key chords, text and delays, and replay it with one click.</description>
    </item>
    <item>
      <title>0.4.0 - Wake-on-LAN and a fixed address</title>
      <link>https://espkvm.io/blog/0-4-0-wake-on-lan-and-a-fixed-address/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-4-0-wake-on-lan-and-a-fixed-address/</guid>
      <pubDate>Sat, 25 Jul 2026 09:00:00 +0000</pubDate>
      <description>Power a sleeping machine on without any wiring, and give the KVM a static IP that a typo cannot turn into a brick.</description>
    </item>
    <item>
      <title>0.3.0 - it knows what the target is running</title>
      <link>https://espkvm.io/blog/0-3-0-it-knows-what-the-target-is/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-3-0-it-knows-what-the-target-is/</guid>
      <pubDate>Fri, 24 Jul 2026 09:00:00 +0000</pubDate>
      <description>The device guesses the target&#x27;s operating system from how it plugs in, keeps a rescue image in its own flash, and stops undoing updates that were fine.</description>
    </item>
    <item>
      <title>0.2.0 - boot the target from an image on a card</title>
      <link>https://espkvm.io/blog/0-2-0-boot-the-target-from-an-image/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-2-0-boot-the-target-from-an-image/</guid>
      <pubDate>Fri, 24 Jul 2026 09:00:00 +0000</pubDate>
      <description>A disk image on the microSD card is handed to the target as a USB drive it can boot from - a rescue system, an installer, a live image.</description>
    </item>
    <item>
      <title>0.1.2 - the first working KVM</title>
      <link>https://espkvm.io/blog/0-1-2-the-first-working-kvm/</link>
      <guid isPermaLink="true">https://espkvm.io/blog/0-1-2-the-first-working-kvm/</guid>
      <pubDate>Thu, 23 Jul 2026 09:00:00 +0000</pubDate>
      <description>The first tagged builds. HDMI capture, a keyboard and mouse the target cannot tell from real ones, a web console over HTTPS, and updates over the network.</description>
    </item>
  </channel>
</rss>
