28 Punkte von GN⁺ 2025-09-16 | 6 Kommentare | Auf WhatsApp teilen
  • Experimentelles Projekt, das den in Einweg-E-Zigaretten verbauten leistungsschwachen ARM Cortex-M0+-Mikrocontroller nutzt, um einen Webserver zu betreiben
  • Analyse des PY32F002B-Chips von PUYA mit 24 KiB Flash und 3 KiB RAM; Implementierung der Netzwerkanbindung per SLIP
  • Portierung von TCP/IP-Kommunikation und HTTP-Server-Funktionalität über ein virtuelles tty unter Verwendung von Semihosting, dem SLIP-Protokoll und dem uIP-TCP/IP-Stack
  • Ursprünglich sehr langsam, aber durch Pufferoptimierung und Verbesserungen bei der Datenverarbeitung deutliche Steigerung von Reaktionszeit und Seitenladegeschwindigkeit
  • Selbst in einer Umgebung mit sehr wenig Speicher wurden dynamischer Servercode und API-Endpunkte realisiert
  • Der Code ist veröffentlicht; praktisches Hosting ist möglich, aber Ressourcen wie Speicher sind stark begrenzt

Einleitung

  • Vorab der Hinweis, dass dieser Artikel nicht von einem direkt auf der Einweg-E-Zigarette laufenden Webserver ausgeliefert wird, sondern derselbe Inhalt von einem separaten Server bereitgestellt wird
  • Ein reales Funktionsbeispiel ist unter http://ewaste.fka.wtf/ zu sehen

Hintergrund

  • Über mehrere Jahre wurden Einweg-E-Zigaretten von Bekannten gesammelt, um deren Batterien wiederzuverwenden
  • Interesse entstand daran, dass Einweg-E-Zigaretten in letzter Zeit immer ausgefeilter werden und inzwischen mit USB-C und wiederaufladbaren Akkus ausgestattet sind
  • Beim Zerlegen wurde ein ARM Cortex-M0+-Mikrocontroller mit eingebettetem Flash von PUYA entdeckt, ein Chip, der als günstiger Mikrocontroller gut bekannt ist
  • Diese Mikrocontroller wurden aus mehreren Modellen gesammelt; durch die Beschriftung der Debug-Pins war die Analyse einfach

Verwendete Hardware

  • Die Chip-Beschriftung lautete PUYA C642F15; tatsächlich handelt es sich vermutlich um die PY32F002B-Familie
  • Wichtige Spezifikationen:
    • 24 MHz Cortex-M0+-Kern
    • 24 KiB Flash
    • 3 KiB RAM
    • mehrere Peripherieeinheiten vorhanden, in diesem Projekt jedoch ungenutzt
  • Im Vergleich zu einem normalen Smartphone ist die Leistung gering, doch in einer Embedded-Umgebung ist der Aufbau eines einfachen Webservers durchaus möglich

Netzwerkverbindung

  • Die Grundidee war nicht völlig neu, doch beim Experimentieren mit dem Semihosting-Konzept entstand die Idee, einen Webserver zu betreiben
  • Semihosting ist eine Methode, auf Embedded-ARM-Systemen Syscalls nachzuahmen
    • Werden Werte oder Pointer in Register gelegt und ein Breakpoint ausgelöst, interpretiert der Debugger dies und führt die gewünschte Aktion aus
    • Üblicherweise wird dies zum Senden von Logs verwendet, aber auch bidirektionale Datenkommunikation ist möglich
  • USB-Seriell-Geräte unterstützen das Protokoll SLIP (Serial Line Internet Protocol), das hier als Netzwerkschnittstelle genutzt wurde
  • Unter Linux (und teilweise macOS) wurde mit slattach und socat eine SLIP-Netzwerkumgebung über ein virtuelles tty aufgebaut
    pyocd gdb -S -O semihost_console_type=telnet -T $(PORT) $(PYOCDFLAGS) &  
    socat PTY,link=$(TTY),raw,echo=0 TCP:localhost:$(PORT),nodelay &  
    sudo slattach -L -p slip -s 115200 $(TTY) &  
    sudo ip addr add 192.168.190.1 peer 192.168.190.2/24 dev sl0  
    sudo ip link set mtu 1500 up dev sl0  
    
  • Als TCP/IP-Stack wurde uIP gewählt: sehr klein, ohne RTOS nutzbar und leicht zu portieren
  • Aus den uIP-Beispielen wurde der HTTP-Server verwendet; durch die Portierung des SLIP-Codes auf den Semihosting-Ansatz gelang der Start des Webservers
  • Wegen eines 16-Bit-Ausrichtungsproblems auf der ARM-Architektur wurden das Skript zur Dateisystemerzeugung angepasst und Umwandlungen mit Perl vorgenommen

Geschwindigkeitsoptimierung

  • Im Anfangszustand waren Ping-Zeiten von 1,5 Sekunden, 50 % Paketverlust und Seitenladezeiten von über 20 Sekunden zu beobachten, also eine sehr langsame Reaktion
  • Ursache war der hohe Overhead von Byte-für-Byte-Ein-/Ausgabe
  • Durch konsequente Nutzung der 3 KiB RAM wurde ein Ringpuffer ergänzt und die SLIP-Funktion so verbessert, dass Daten gebündelt bereitgestellt werden
  • Schreibvorgänge wurden ebenfalls in Blöcke aufgeteilt und so übertragen, was ein schnelleres Cleanup ermöglichte
  • Nach der Optimierung wurden 20 ms Ping, kein Paketverlust und 160 ms Seitenladezeit erreicht
  • Gesamte RAM- und Flash-Nutzung:
    • Flash: 5.116 B von 24 KB (20,82 %)
    • RAM: 1.380 B von 3 KB (44,92 %)
  • Auch kompletter Blog-Content lässt sich in diesem Umfang problemlos ausliefern, und sogar serverseitiger C-Code kann ausgeführt werden

Weitere Funktionen und Abschluss

  • API-Endpunkte wurden direkt implementiert, die die Anzahl der Anfragen an die Hauptseite sowie die eindeutige ID des Mikrocontrollers zurückgeben
  • Dies ist ein Experiment, das selbst auf extrem schwacher Hardware und mit minimalem Speicher noch einen dynamischen Webserver und eine API realisiert

Referenz

6 Kommentare

 
thinkpad 2025-09-16

Ich habe das Projekt und den Artikel mit großer Freude gelesen. Aber ich war sehr schockiert, als ich erfahren habe, dass es Einweg-E-Zigaretten gibt, und dachte mir: Das geht wirklich nicht …

 
slowmo 2025-09-22

Ich bin auch Nichtraucher und wusste das daher nicht, aber vor Kurzem habe ich in dem unbemannten Café, das neu in meiner Nachbarschaft eröffnet hat, einen Automaten für Einweg-E-Zigaretten gesehen und es dadurch erfahren. Auch in den Hacker-News-Kommentaren unten geht es zur Hälfte um die absurde Verschwendung von Ressourcen. Haha

 
slowmo 2025-09-22

Als ich darüber nachdachte, nachdem ich den Kommentar geschrieben hatte, frage ich mich, wie bei einer Form wie einem Automaten in einem unbemannten Café die Altersverifikation funktioniert. Haben solche Automaten auch eine Funktion zur Ausweiserkennung..

 
preserde 2025-09-22

Da ich nicht rauche, wusste ich erst nicht, worum es geht, aber Sie meinen wohl, dass für ein Wegwerfprodukt viel zu viele Ressourcen verbraucht werden.

 
unknowncyder 2025-09-16

Wenn ich dampfen will und mein Vape irgendwo liegen gelassen habe oder auf Reisen bin ...
Dann ist es irgendwie auch nichts, noch ein Gerät zu kaufen oder wieder normale Zigaretten zu rauchen, aber Nikotin muss nachgeladen werden, also greife ich am Ende im Convenience-Store dazu.

 
GN⁺ 2025-09-16
Hacker-News-Kommentare
  • Wenn man nach günstiger, aber leistungsfähiger Hardware sucht, lohnt sich auch ein Blick auf den chinesischen UZ801 4G-LTE-Dongle (Qualcomm MSM8916). Das Gerät kostet nur etwa 4–5 Dollar, bietet aber beeindruckende Hardware wie 4GB eMMC, 512MB RAM und ein echtes 4G-Modem (manchmal sogar mit Unterstützung für 2-SIM-Umschaltung). Im Grunde ist es ein älteres Android-SoC, also sind auch GPU und GPS enthalten. Tatsächlich ist bereits einiges an Arbeit zur Unterstützung dieses Dongles geleistet worden.
    Infos zu LTE-Dongles der Zhihe-Serie
    OpenStick-Projekt
    Wer eine Hardwareplattform für ungewöhnliche Homelab-Projekte sucht, ist hier gut aufgehoben

    • Für Einsteiger scheint diese Anleitung am besten zu sein. Um Linux zu installieren, muss man die Firmware-Partition sichern und anschließend erneut flashen, damit das 4G-Modem funktioniert. Dass man für nur 5 Dollar so viel Hardware bekommen kann, ist wirklich absurd. Mit einer Powerbank dazu — oder selbst gebaut aus dem Akku einer weggeworfenen E-Zigarette — hat man eine Linux-Maschine mit WiFi und 4G, die man überall nutzen kann

    • Wer Links zu solchen SoCs oder ähnlichen Produkten sucht, findet bei Hackaday einen eigenen Artikel mit verschiedenen Verweisen.
      Hackaday-Artikel
      AliExpress-MSM8916-Beispiel
      Ich habe tatsächlich auch einen MSM8916-Dongle mit eingebautem Bildschirm gefunden (allerdings ohne Angaben zum RAM)

    • Es freut mich, Qualcomm MSM8916 erwähnt zu sehen. Das ist mein alter Freund Snapdragon 410. Dieser Prozessor steckte auch im Moto G3 von 2015 (das ich gelegentlich immer noch für WhatsApp benutze). Auf Android-Basis (Version 7) läuft er, solange man nichts Schweres macht, überraschend effizient. Beeindruckend ist, dass solche alten mobilen Chipsätze noch immer so lebendig unterstützt werden.
      Fun Fact am Rande: Dieser Chip war einer der ersten Prozessoren mit 64-Bit-Unterstützung für Android, aber Motorola schaffte es vor dem Release nicht, das System zu portieren, sodass nur 32-Bit-Android unterstützt wurde

    • Das erinnert mich an den LTE-Dongle, den Freedom Pop damals verschenkt hat und der mit Linux lief. Nach dem Zerlegen hatte man sogar Zugriff auf UART

    • Mein größtes Problem ist:
      a.) Die Welt der Elektronik entwickelt sich viel zu schnell
      b.) Mir fehlen Können und Zeit, um mit so etwas coole Dinge zu bauen
      Ich hatte mir einmal einen licheerv nano gekauft (ähnlich wie luckfox pico oder Milk-v duo), um daraus einen Open-Source-iPod-nano mit USB-C-Audioanschluss zu bauen.
      Ich konnte aber keinen 2,4-Zoll- oder kleineren 3-Zoll-Touchscreen finden, der mit dem MPI-Port des licheerv nano kompatibel gewesen wäre.
      Mit LVGL hätte man vielleicht einen kleinen tragbaren Audioplayer bauen können, aber das war mir zu schwierig

  • Solche Geräte wiederzuverwenden ist wirklich großartig. Wenn irgendwann einmal eine ganze Stadt aus einer Kombination solcher Geräte betrieben würde, hätte das etwas von einem Setting aus einem postapokalyptischen Film.
    Andererseits ist das auch enormer Elektroschrott, wenn man bedenkt, dass heutige Einweg-E-Zigaretten laut aktuellen Berichten nicht nur Mikrocontroller, sondern sogar Spiele und Bildschirme enthalten. Darin zeigt sich eine geballte Mehrfach-Dummheit

    • Ein anderes Beispiel sind Einweg-Corona-Tests. Sie enthalten Mikrocontroller und optische Sensoren und zeigen das Ergebnis per Bluetooth auf dem Handy an. Eine frühere Diskussion dazu gab es hier

    • Dass in Einweg-E-Zigaretten vollkommen wiederverwendbare Lithium-Akkus stecken, wusste ich. Schon das allein ist eine massive Verschwendung.
      Aber diesmal sind auch noch ein Mikrocontroller und ein USB-C-Anschluss dabei! Ich frage mich, ob dieser Anschluss von außen zugänglich ist oder ob man das Gehäuse dafür öffnen muss.
      Das ist wirklich Dummheit auf mehreren Ebenen. Der Wert der eingebauten Hardware dürfte mehr als die Hälfte des eigentlichen Produktpreises ausmachen

    • Ich frage mich, ob Einweg-E-Zigaretten wirklich so gravierender Elektroschrott sind. In Handys, Autos, Laptops und vielen anderen Dingen, die wir wegwerfen, steckt ebenfalls jede Menge wiederverwendbare Hardware, und dort wird meist auch nicht ordentlich damit umgegangen. Wenn die Hardware von E-Zigaretten irgendwann ein gewisses Maß an Standardisierung erreicht, könnte ich sie mir eher als Material für Schulprojekte wie bei Arduino vorstellen

    • Bei solchen Geschichten denke ich an duskOS und collapseOS

    • Schon die Tatsache, dass solche Produkte verkauft werden dürfen, ist ein Beleg dafür, dass die Regulierung nicht ausreicht

  • Die Diskrepanz zu alten Computern ist faszinierend. Ein Commodore 64 hatte zum Beispiel 64KB RAM an einer 8-Bit-CPU mit 1MHz. Heute hingegen ist sogar ein Einweggerät mit nur halb so viel RAM an eine 32-Bit-CPU mit 24MHz gekoppelt. Was in den 1980ern unvorstellbar gewesen wäre, erscheint 2025 auf diese Weise als Wegwerfprodukt. Das ist auf seltsame Weise beeindruckend

    • Tatsächlich sind es 3KB RAM und 24KB Flash. Klar, die Flash-Geschwindigkeit ist manchmal mit älteren Speichern vergleichbar, aber bei der Latenz gibt es keinen Vergleich

    • Mit nur 3KB RAM hat es sogar weniger als ein alter VIC-20

    • Die CPU ist nach Maßstäben der 1980er gar nicht so fantastisch. 1987 hatte der Acorn Archimedes einen 8MHz-ARM-Prozessor, allerdings war das ein teures Gerät und wurde mindestens mit 512KB RAM genutzt
      (Nebenbei bin ich schockiert, dass 1987 schon 38 Jahre her sein soll)

  • Es freut mich, gezeigt zu bekommen, wie nützlich solche Geräte sein können. Dass man solche Produkte als „Einweg“ behandelt, ist eine Form von Wahnsinn. Ich habe LiPo-Akkus aus weggeworfenen E-Zigaretten vom Straßenrand ausgebaut und verwendet; diese Akkus sind wiederaufladbar und haben sogar integrierte Ladeschaltungen (also keineswegs nur primitive Zellen). So etwas nur ein einziges Mal zu benutzen und dann wegzuwerfen, ist wirklich eine fatale Entwicklung.
    Das ist im Grunde der Endzustand von „Nicht-Reparierbarkeit“. Es wurde absichtlich so entworfen, dass Wiederverwendung und Wiederaufladung verhindert werden — völlig gegen jede Form von Umweltfreundlichkeit und Maker-Geist

    • Es gibt auch wiederverwendbare E-Zigaretten, und vertrauenswürdige Läden verkaufen nur solche Produkte. Diese sind aber deutlich teurer als Einweg-E-Zigaretten. Deshalb sind Einwegprodukte bei Schmugglern und Minderjährigen beliebt (wegen des niedrigen Preises und des Risikos, dass sie eingezogen werden).
      Das führt dazu, dass junge Leute mit kriminellen Organisationen in Kontakt kommen und sich sogar bei ihnen verschulden, wenn sie kein Geld haben. Die Auswirkungen sind am Ende ähnlich wie bei Drogenschulden. Um das auszugleichen, kann es sogar in andere Straftaten hineinwirken

    • Ich habe einmal ein großartiges Video gesehen, in dem jemand aus Einweg-E-Zigaretten, die auf einem Musikfestival eingesammelt wurden, einen Akku für ein E-Bike baut.
      Passendes Video
      Ich kann nicht verstehen, warum Einweg-E-Zigaretten legal sind. Ich hatte gehofft, dass die Generationen nach den 386ern wirklich etwas gegen Ressourcenverschwendung haben würden, und bin enttäuscht

  • Irgendwann wird sicher ein Anwalt erklären müssen, wie etwas mit USB-C und wiederaufladbarem Akku überhaupt als „Einweg“ eingestuft werden kann.
    Tatsächlich wurde diese Bauform wohl genau deshalb gewählt, weil sich Einweg-E-Zigaretten damit auch in Regionen verkaufen lassen, in denen sie verboten sind — technisch gesehen sind sie ja wiederverwendbar.
    Es ist eine Verkaufsstrategie, die gezielt auf bestimmte Nutzergewohnheiten abzielt: immer wieder neu kaufen und wegwerfen

    • Ich verstehe nicht, warum man überhaupt Einweg-E-Zigaretten kauft, wenn es vollständig wiederverwendbare Modelle gibt. Ehrlich gesagt halte ich sie nur dann für sinnvoll, wenn sie beim Aufhören mit dem Rauchen helfen sollen

    • Das ist genau wie bei der Regulierung von Plastiktüten, wenn dann einfach dickere Tüten für 10 Cent verkauft werden. Formal gelten sie eben als „wiederverwendbar“

    • Manche Produkte bieten austauschbare Pods oder Tanks, aber bei den meisten gibt es überhaupt keine Teile, an denen Nutzer selbst etwas machen könnten. Sobald die Flüssigkeit etwas weniger wird, beginnt die Coil zu verbrennen, und man wirft das ganze Gerät weg. Ein Laden behauptet zwar, gebrauchte Geräte zurückzunehmen und fachgerecht zu zerlegen, aber die meisten Nutzer entsorgen sie wohl einfach im normalen Müll

    • Der Grund für USB-C ist, dass der Akku im Verhältnis zur enthaltenen Flüssigkeit nicht genug Kapazität bietet. Man kann ihn also zwei- oder dreimal vollständig aufladen, bevor die Flüssigkeit aufgebraucht ist

  • Einweg-E-Zigaretten sind ein Phänomen, bei dem ich nicht nachvollziehen kann, wie die Gesellschaft das jemals normalisiert hat

    • Die Gesellschaft neigt oft dazu, Dinge mit Werbebudget als normal zu akzeptieren

    • Ganz zu schweigen davon, dass sie den menschlichen Lungen in sehr kurzer Zeit massive Schäden zufügen können

  • Für die Vorbereitung auf die Apokalypse: Munition, Konserven, Trinkwasser? Nein.
    1.200 Geek Bars in einem Faradayschen Käfig

  • Lang lebe das Hacking! Genau für solche Inhalte gibt es Hacker News, finde ich. Ein großartiger Artikel und ein unterhaltsames Projekt

  • Der heutige Stand der Technik ist wirklich bizarr. KI nimmt uns nicht die Arbeit ab, sondern malt Bilder, und jetzt hosten wir Websites auf E-Zigaretten. Mir fällt dafür wirklich nur ein Wort ein: bizarr

  • Man könnte sagen, der Autor habe die ultimative Computing-Plattform gefunden, um im wahrsten Sinne des Wortes „vaporware“ laufen zu lassen