Bastler baut kleinen 20-KB-Mini-Webserver aus E-Zigarette

vor 20 Stunden 1

Der rumänische Ingenieur und Origami-Künstler Bogdan Ionescu, der auf Youtube als BogdanTheGeek unterwegs ist, hat die Verdampferelektronik einer E-Zigarette in einen Mini-Webserver mit der Bezeichnung VapeServer umgebaut, wie aus einem Blogbeitrag hervorgeht. Mit 20 KB besitzt der Webserver nur wenig Speicher und gerät bei Webabfragen schnell an seine Grenzen.

Ionescu sammelte alte Batterien aus E-Zigaretten für seine Bastelprojekte. Dabei fiel ihm auf, dass in den E-Zigaretten immer speziellere Modelle mit fortschrittlichen Mikrocontrollern zu finden waren.

In einer der Zigaretten befand sich der PUYA C642F15-Chip. Dabei handelt es sich um einen 24-MHz-ARM-Cortex-M0+-Prozessor. Der Chip enthält einen Flash-Speicher mit 24 KB Größe sowie 3 KB RAM. Zusammengenommen ist diese Grundausstattung nicht besonders leistungsfähig, Ionescu wollte jedoch herausfinden, ob es möglich ist, daraus einen kleinen Webserver zu basteln.

Als Grundlage baute er aus dem Chip ein 56K-Modem, indem er das Serial Line Internet Protocol (SLIP) implementierte, um so eine Netzwerkverbindung herstellen zu können. Um TCP/IP-Kommunikation und Webdienste zu ermöglichen, ergänzte der Ingenieur den uIP 0.9 TCP/IP Network Protocol Stack, der ursprünglich für kleine 8- und 16-Bit-Mikrocontroller entwickelt worden war.

Zunächst war das Ergebnis enttäuschend. Pings von etwa 1,5 Sekunden Dauer bei Paketverlusten von 50 Prozent sorgten bei Ionescu zunächst für Frust. Auch das Laden einer Webseite ging nur langsam vonstatten und dauerte mitunter mehr als 20 Sekunden. Der Bastler verbesserte daraufhin die Performance, indem er Daten in einem Ring Buffer fester Größe speicherte. Dadurch und durch Code-Optimierungen gelang es ihm, Pings auf 20 ms ohne jeglichen Paketverlust zu drücken. Eine kleine Webseite kann so in etwa 160 ms geladen werden.

Zum Test des Mini-Webservers stellt Ionescu eine Kopie des Blogbeitrags zur umgebauten E-Zigarette zur Verfügung. Der Blogbeitrag wurde dabei so eingedampft, dass er in den 20 KB großen Speicher passt. Der Abruf der Webseite dauert in der Regel aber einige Sekunden. Mitunter fällt der Server auch wegen Überlastung aus und zeigt nur eine "503"-Fehlerseite an. Davon ist auszugehen, sobald dieser Artikel online gegangen ist und der VapeServer dann massenhaft ausgetestet wird.

Den Quellcode seines VapeServers stellt Ionescu auf GitHub bereit.

(olb)

Gesamten Artikel lesen