概要
- WiFiスマート電球を 改造 し、検閲された書籍を 配信 する「Banned Book Library」プロジェクトの紹介
- Tasmota ファームウェアやESP32C3チップの利用経緯、ハードウェア分解の詳細説明
- ストレージ拡張 やファームウェア書き換えのための試行錯誤
- Arduino IDEによる 独自ファームウェア 開発の流れ
- microSDカード活用の課題と プロトタイピング の工夫
Banned Book Libraryプロジェクトの発想と背景
- スマート電球を WiFiアクセスポイント 兼 ウェブサーバ として改造し、検閲書籍を地域で共有するアイデア
- Ben Brownの短編「Library」やCory Doctorowの「Unauthorized Bread」から着想
- 電球型デバイスの利点: 目立ちにくさ、 安価さ、 設置の容易さ
- 重要な書籍や資料の サイバーパンク的デッドドロップ としての応用
ハードウェア選定とTasmotaの検討
- DEFCONミートアップで Tasmota ファームウェアの存在を知る
- Tasmotaは クラウド依存からの解放 と ローカル制御 を実現
- ESP32C3 4MB搭載の Tasmotaプリインストール電球 を購入
- GPIOピン情報:
- R:GPIO6
- G:GPIO7
- B:GPIO5
- CW:GPIO3
- WW:GPIO4
- OTAアップデート対応で 分解不要 の可能性に期待
- 4MBの ストレージ制限 が課題、microSDカード増設を検討
電球の分解と基板調査
- 白色プラスチック部分を カッターで切断 し、LED基板と母基板を分離
- ESP32C3本体やアンテナ、電源回路の配置を確認
- ピンが露出 しており、拡張の可能性を模索
- 母基板の ラバーポッティング 除去作業は困難で再組立も危険
- プロジェクトの 簡便性・安全性 を重視し、分解を必須としない方向性へ
シリアルプログラミング準備
- AliExpressの製品情報から ピン配置 を特定
- VCC、GND、TX、RXピンにワイヤーをはんだ付け
- IO9ピンを GNDにショート してダウンロードモードに
- esptoolで ファームウェアダンプ に成功
- コマンド例: esptool --chip esp32c3 --port /dev/ttyUSB0 --baud 114200 read-flash 0x0 0x4000000 ./tasmota_original_firmware.bin
自作ファームウェア開発とArduino利用
- Tasmotaの ソースコード解析 は複雑で断念、 軽量化 のため自作へ方針転換
- Arduino IDEで ESP32C3向け開発環境 を構築
- シリアル出力による Hello World プログラムで動作確認
- Arduinoの アップロード機能 でファームウェアの書き込みに成功
WiFiアクセスポイントとWebサーバ構築
- オープンな WiFi AP と Webサーバ のセットアップに成功
- 初期はLED制御用チュートリアルを参考に、後に Async Web Server へ移行
- 検閲書籍の 配信基盤 として機能実装
microSDカード拡張の試みと課題
- Sparkfunの microSDカードブレイクアウト を購入
- ESP32C3の データシート を調査し接続方法を検討
- プロトタイピングは Adafruit ItsyBitsy ESP32 で実施、 ヘッダーピン化 で配線容易化
- LittleFSで ファイルホスティング も実現
- 実機(電球)では はんだ付け困難、安全性・再現性の観点から断念
今後の展望と教訓
- スマート電球を用いた 検閲回避デバイス の可能性と課題
- ハードウェア改造の 敷居の高さ を痛感
- 安価・目立たない IoTデバイスによる情報共有の新しい形
- プロジェクトの 簡便化・安全性向上 に向けた今後の課題