Люди уже некоторое время перерабатывают аккумуляторы из одноразовых вейпов, но BogdanTheGeek пошел значительно дальше , преобразовав конкретную модель одноразового вейпа в веб-сервер.
Как это возможно? Вейпы, по-видимому, стали немного более сложными в последнее время, и некоторые из них интегрируют микроконтроллер Arm Cortex с портом USB-C, который можно использовать для организации сетевого интерфейса и запуска веб-сервера.
Конкретная одноразовая вейп-система (точная модель не указана, но Grok предполагает, что это может быть Bang King. Обновление: Неправильно! ), использованная BogdanTheGeek, оснащена одним из сверхдешевых микроконтроллеров Puya PY32 , а именно 24 МГц PY32F002B Cortex-M0+ MCU с 3 КБ SRAM и 24 КБ флеш-памяти.
Данный взлом веб-сервера предполагает использование SLIP (Serial Line Internet Protocol) через устройство /dev/tty для поднятия сетевого интерфейса вместе с облегченным стеком TCP/IP uIP . Первая реализация была очень медленной: пинги 1,5 с, множество потерь пакетов и загрузка веб-страницы примерно за 20 секунд. Это связано с тем, что uIP разработан для микроконтроллеров с ограниченными ресурсами и по умолчанию отправляет данные побайтово. Поскольку микроконтроллер PY32F0002B имеет 3 КБ SRAM, появилось некоторое пространство для реализации кольцевого буфера, что значительно улучшило производительность. Это означает пинги 20 мс, отсутствие потерь пакетов и полную загрузку минимальной веб-страницы за 160 мс.

Исходный код реализации semihost-ip можно найти на GitHub , а сам сервер доступен по адресу ewaste.fka.wtf, который в настоящее время недоступен из-за большого числа обращений, но копию можно найти в Wayback Machine . Vaporware стал реальностью!
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.