Hosting a website on an 8-bit microcontroller

· systems hardware · Source ↗

TLDR

  • AVR64DD32 ($1, 8KB RAM, 64KB flash) runs a TCP/IP stack over SLIP via USB-serial, proxied through a VPS to serve a real webpage.

Key Takeaways

  • AVR64DD32 cannot drive 10BASE-T Ethernet directly; IO pins cap at 12 MHz, so SLIP over USB-serial is used instead.
  • SLIP (RFC 1055) is still supported in modern Linux via slattach; setup requires no custom kernel modules or drivers.
  • IP layer is trivial: swap src/dst, reset TTL. TCP took several days to implement and still has bugs; HTTP is hardcoded single-response.
  • WireGuard tunnels the MCU through a Helsinki VPS, with nginx proxying /mcu to avoid breaking the main site.
  • IPv6 would eliminate the whole public-IP problem; author notes it has existed 30 years but remains inaccessible for many.

Hacker News Comment Review

  • No substantive HN discussion yet.

Original | Discuss on HN