Інженер та художник оригамі Богдан Іонеску, знаний під псевдонімом BogdanTheGeek, розробив унікальний вебсервер, використавши для цього електроніку від одноразового вейпу. Представлений проєкт під назвою VapeServer демонструє потенціал навіть найменших і, здавалось би, непотрібних пристроїв.
Про це розповідає ProIT
Як працює VapeServer: технічні деталі
Іонеску зібрав велику колекцію вейпів з метою використання їх у майбутніх розробках. Зацікавившися можливістю запуску серверів на процесорах Arm, він вирішив поєднати своє хобі зі світом вебтехнологій. Особливу увагу привернув один із вейпів, у якому містилася мікросхема PUYA C642F15. Виявилося, що це процесор PY32F002B на базі Arm Cortex M0+ із частотою 24 МГц, 24 КБ флешпам’яті та 3 КБ оперативної пам’яті, що підтримує декілька інтерфейсів підключення.
Незважаючи на те, що потужність цього чипа значно поступається навіть старим смартфонам, Богдан вважав його достатнім для свого експерименту. Він створив емуляцію комутованого модему на мікроконтролері, використавши протокол SLIP через USB-з’єднання. Для передачі IP-пакетів застосовувалися програми slattach і socat під Linux. Мікроконтролер було оснащено легковаговим TCP/IP-стеком uIP і налаштовано вебсервер. Весь проєкт вдалося розмістити на 20 КБ пам’яті пристрою, хоча наразі сервер видає помилку 503.
Проблеми з продуктивністю та оптимізація
Перші спроби використання сервера показали дуже низьку швидкість роботи: пінг сягав 1,5 секунди, а завантаження сторінки тривало до 20 секунд. Проте інженер не здався та визнав, що основна проблема полягала в початковому коді. Застосувавши буферизацію та пакетний запис інформації, йому вдалося значно прискорити роботу пристрою. Після оптимізації затримка зменшилася до 20 мілісекунд без втрати пакетів, а сторінка стала завантажуватися за близько 160 мілісекунд.
“Оптимізація сервера для бодай мінімального прийнятного користування зіткнулася з кількома труднощами. Богдан пише у блозі, що він мало не здався після перших тестів, оскільки продуктивність була сміховинно поганою. Пінг становив ~1,5 секунди, а просте завантаження сторінки займало 20 секунд. Однак він визнає, що головною проблемою був його код.”
Код VapeServer оприлюднено на GitHub. Автор наголошує, що подібні проєкти розширюють уявлення про можливості використання навіть найпростіших електронних компонентів. Іронічно зауважено, що, можливо, у майбутньому на вейпі зможуть запустити й Doom.