世界を動かす技術を、日本語で。

使い捨て電子タバコでのウェブサイトホスティング

概要

  • 使い捨てVape のマイコンで Webサーバー を動かす試み
  • PUYA製PY32 マイコンの調査と特徴
  • SLIPプロトコルsemihosting を活用した通信手法
  • uIP による軽量IPスタック移植とパフォーマンス改善
  • 実装と最適化のポイント、プロジェクトリソースの紹介

使い捨てVapeでWebサーバーを動かす

  • 近年の 使い捨てVape は、USB-Cや再充電バッテリー搭載の高機能化
  • 中身を分解し、 PUYA ロゴの IC(PY32シリーズ) を発見
  • PUYAは主に フラッシュメモリ で有名だが、 ARM Cortex-M0+ 搭載マイコンも展開
  • 複数モデルのVapeから PY32ベース の基板を収集・調査
  • デバッグピンが明示されており、解析が容易

PUYA PY32F002Bのスペック

  • PUYA C642F15 チップを解析し、 PY32F002B と特定
  • 主な仕様
    • 24MHz Cortex-M0+ コア
    • 24KiBフラッシュ
    • 3KiB SRAM
    • 最低限の周辺機能のみ利用
  • 性能は控えめだが、 Webサーバー 用途には十分

SLIPとsemihostingによる通信

  • semihostingは、 ARMマイコン向けのシステムコール機構
  • デバッガ経由で 双方向通信 が可能
  • USBシリアル経由で SLIP(Serial Line Internet Protocol) を利用
  • LinuxやmacOSで slattach コマンドを使い、仮想ttyを生成しIPパケット通信を実現
  • pyOCDsocat でsemihostingをtelnetポート→仮想ttyへ変換し、SLIPでIP通信を確立

uIP移植と最適化

  • uIP はRTOS不要の超軽量IPスタック、 最小限のHTTPサーバー 例付き
  • SLIPコードをsemihosting対応に移植し、Webサーバーとして稼働
  • ARMでは メモリアラインメント 制約があり、uIPの一部コードを修正
  • Perlでファイルシステム生成スクリプトも調整し、移植性向上

パフォーマンス改善

  • 初期実装では 1.5秒Ping・50%パケットロス、ページ表示20秒超

  • SLIPの 1バイト単位通信 がボトルネック

  • 3KiBのRAM を活かし、 リングバッファ でバッチ転送を実装

  • 書き込みもバッチ化し、パフォーマンス大幅向上

  • Ping 20ms・パケットロス0%、ページ表示160ms を実現

  • RAM・フラッシュの使用率も最適化

    • FLASH: 5116B/24KB (20.82%)
    • RAM: 1380B/3KB (44.92%)

実装・応用例

  • 20KiB弱 のストレージでも、ブログ記事程度なら十分配信可能
  • 静的ページだけでなく、C言語で サーバーサイド処理 も実装可能
  • JSON API エンドポイントも追加し、リクエスト数やマイコンIDを返却

参考リソース・プロジェクト

  • 本プロジェクトの コードリポジトリ を公開
  • PY32C642に関する先行プロジェクトも存在
  • SLIPの後継として PPP(Point-to-Point Protocol) も補足

このプロジェクトは、極限までリソースが限られたマイコンでも、工夫次第で実用的なWebサーバーが構築できることを示す好例。

Hackerたちの意見

前に話題になったけど、最初の投稿はすぐにフロントページから消えちゃったと思う。直接vapeserverにリンクしてたから、すぐに負荷でダウンしちゃったんだよね。https://news.ycombinator.com/item?id=45243800

負荷に耐えられなくなった後、最後に一発の勇敢な煙を吐き出した。

こういうデバイスを再利用するのはめっちゃクールだよね。ポストアポカリプスのシナリオで、街がこんなランダムなコンピュータデバイスの寄せ集めで動いてるのを想像できる。でも、マイクロコントローラーが入った使い捨てのベイプ(最近の報告ではフルゲームやスクリーンもあるらしい)は、電子廃棄物のひどい元凶だよ。ここにはいろんな意味でのバカが詰まってるね。

バトラーの聖戦は全てのベイプを見つけるのかな?

これらの使い捨てベイプの中にある完全に再利用可能なリチウムバッテリーについては知ってたけど、それだけでもひどいよね。でも、FTAのはフルサイズのマイクロコントローラーとUSB-Cコネクタが付いてるんだ!これらのコネクタが外からアクセスできるのか、パッケージを壊さないとダメなのかはよくわからない。君が言ったように、「ここにはいろんな意味でのバカが詰まってる」そのハードウェアは、実際の製品の価値の半分以上はあるはずだよ!

その違法な使い捨てベイプを持って、ラディックパスのスペースに捕まらないといいね。

もう一つの例として、マイクロコントローラーと光センサーを使って結果を読み取って、Bluetoothでスマホに接続して結果を表示する一回限りのコロナ検査があるよ。前の議論はここで見られるよ: https://news.ycombinator.com/item?id=29698887

これを思い出すな: https://duskos.org https://collapseos.org

こういう負の外部性を前払いの価格に含めるのがほぼ不可能なのは残念だね。

こんなものが売れるってことは、どこかに規制が足りないってことだね。

「ベッドの横にあるムードオルガンから自動アラームで送られた小さな電流がリック・デッカードを目覚めさせた。」 > ディックは、IoTが集団計算で機能する巨大な人工生態系の源であると書いている。

昔のスペックとのミスマッチがちょっと面白い。コモドール64は64KBのRAMを持ってたけど、そのRAMは8ビット、1MHzのCPUに繋がってた。このデバイスはコモドール64の半分のRAMしかないけど、32ビット、24MHzのCPUに繋がってる。1980年代には夢のまた夢みたいなやつだよね。そして、2025年には使い捨て。変な意味でかなり印象的だよ。

RAMは3k、フラッシュは24kしかない。最近のフラッシュは、少し前のメモリと同じ帯域幅のこともあるけど、レイテンシはもちろん違うけどね。

RAMがたったの3KBしかないんだよ、VIC-20よりも少ない。

使い捨てベイプは、なんか社会が普通だと認識しちゃった忌まわしい存在だよ。

社会は広告予算があるものを普通に受け入れちゃう傾向があるよね。

それに、肺に与える極端なダメージも見逃せないし、そのダメージはすぐに出るからね。

現在の技術の状態は...変だね。AIが私たちの仕事じゃなくてアートを作るようになったり、eシガレットでウェブサイトをホスティングしたり。今のところ「変」という言葉しか思いつかないよ。

これらのデバイスがどれだけ役立つかを示してくれて嬉しいよ。「使い捨て」として扱うのはちょっと狂気だね。捨てられたやつをいくつか空の鉢から回収して、リチウムポリマーバッテリーを取り出したんだけど、これが充電可能で、充電回路もついてる(リポにとっては簡単じゃない)。一度きりしか使えないように設計するのがOKだなんて、なんかおかしいよね。修理可能性の真逆だし、再利用や再充填が不可能にされてる。自分の工作好き(エコな)心がすごく悲しい。

再利用可能なベイプもあるし、信頼できる店はそういうのしか扱ってないけど、使い捨てベイプに比べて何倍も高いのが一般的だね。使い捨ては密輸業者(利益率)や未成年者(価格や親/教師/警察による押収の可能性)に好まれてる。使い捨てベイプは若者をキャリア犯罪者や組織犯罪に接触させちゃう。お金がなくても喜んで手を貸してくれるから、結果的に若者が犯罪者に借金を背負わされることになる。これはドラッグの借金と同じような問題を引き起こすよ。そうなると、若者は借金を返すために他の犯罪を強要されることになる。

使い捨てベイプを集めて音楽フェスティバルで機能するe-bikeバッテリーを作る動画がすごく面白いよ。https://www.youtube.com/watch?v=VcVp9T8f_W4 なんで使い捨てが合法なのか全く理解できない。ポスト・ブーマー世代が本当に廃棄物について気にしていると思ってたのに。

安くてパワフルなデバイスと言えば、中国のUZ801 4G LTE(Qualcomm MSM8916)ドングルもいいよ。たった4-5ドルで、かなり印象的なハードウェアが詰まってる:4GBのeMMC、512MBのRAM、実際の4Gモデムに時々2SIM切り替えサポートも。古いAndroid SOCだから、GPUやGPSも入ってるしね。サポートも結構進んでるよ:https://wiki.postmarketos.org/wiki/Zhihe_series_LTE_dongles_... https://github.com/OpenStick/OpenStick だから、変なホームラボプロジェクト用のハードウェアプラットフォームを探してるなら、これがいいかも。

[1]が始めるのに最適なガイドだと思うよ。Linuxをインストールした後に再フラッシュするためのファームウェアパーティションのコピーを作る必要があるんだ。5ドルでこれだけのものが手に入るのは本当におかしいよ。パワーバンクを追加するか(この投稿の精神で廃棄されたベイプバッテリーから自作してもいいし)、WiFiと4Gが使えるフルLinuxマシンがどこでも使えるようになるよ。[1] https://wvthoog.nl/openstick/

著者がバポールウェアを動かすための究極のコンピューティングプラットフォームを見つけたと言えるかな?

だから毎日ハッカーニュースに行くんだよね <3

へい!プレアクトはそのシチュエーションにぴったりだね;小さく作られたリアクトのクローンだし!ちなみに、すごくインスパイアされる作品だよ!