Liefert nur eine Webseite: Bastler baut Webserver nur mit Mikrocontroller
Ein Webserver auf einem Mikrocontroller ist eigentlich nichts Besonderes – diverse Projekte mit ESPs oder Raspberry Pi Pico W (g+) liefern Webseiten aus. Doch es geht auch noch einfacher, wie der Entwickler Maurycy Zalewski mit seinem jüngsten Projekt zeigt(öffnet im neuen Fenster) (via The Register(öffnet im neuen Fenster)). Sein Webserver besteht nur aus einem AVR64DD32-Mikrocontroller(öffnet im neuen Fenster) von Mikrochip, zwei Kondensatoren und zwei Stiftleisten.
Der 8-Bit-Controller taktet mit gerade einmal 24 MHz und verfügt über 8 kByte SRAM. Herzstück des Controllers ist ein AVR-Kern, der auch in den Atmegas älterer Arduinos steckt. Dessen Leistung reicht nicht nur, um eine statische HTML-Seite auszuliefern, der Controller implementiert auch die Netzwerkschnittstelle. Da seine Peripherie allerdings selbst für 10 MBit Ethernet zu langsam ist, nutzt Zalewski das Serial Line Internet Protocol(öffnet im neuen Fenster) (SLIP).
Es dient dazu, eine Verbindung mittels Internet Protocol (IP) etwa zwischen einem Modem und einem Computer über eine serielle Schnittstelle herzustellen. Während SLIP und IP einfach zu implementieren waren, stellte das Transmission Control Protocol (TCP) den Entwickler vor größere Herausforderungen. Die Komplexität von TCP rührt daher, dass das Protokoll zustandsbasiert ist.
Der Mikrocontroller-Server braucht einen großen Bruder
Der minimalistische Server lässt sich für wenige Euro selbst nachbauen. Neben dem Mikrocontroller, der bei Distributoren rund 1,30 Euro kostet, ist eine Adapterplatine die teuerste Komponente.
Ein SLIP-Modem hatte Zalewski offensichtlich nicht zur Hand, weshalb er seinen Mini-Server über einen USB-Seriell-Wandler an einen Linux-Computer anschloss. Der Wandler liefert praktischerweise gleich die Versorgungsspannung von 5 V. Mittels des Programms slattach wird aus der seriellen eine Netzwerkschnittstelle, die geroutet werden kann. Über eine Unterseite von Zalewskis Blog(öffnet im neuen Fenster) ist der Mikrocontroller-Server öffentlich erreichbar. Das Blog läuft allerdings auf einem Virtual Private Server, weshalb eine Verbindung zum Rechner, an dem der Server hängt, per Wireguard hergestellt wird.
Allzu viele Anfragen kann der Mikrocontroller-Server allerdings nicht bewältigen. Der Seitenaufbau dauert spürbar, da die Paketgröße auf 500 Byte begrenzt ist. Außerdem legt der Server fest, dass immer nur ein Paket unterwegs sein darf. Das vereinfacht zwar die Fehlerbehandlung, reduziert aber die Bandbreite. Die ist bereits durch die serielle Schnittstelle auf rund 10 kB/s begrenzt.
- Anzeige Hier geht es zu Wireguard im Einsatz bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.



