ワイヤレスmicroSDカード


はじめに

3DプリンターやCNCのオフラインコントローラーには,microSDカードスロットがついていてデータをやり取りできるものがあります.しかしパソコンで作成したGコードを毎回記録メディアにコピーしてデータを移動するのは面倒です.FlashAirのようにWiFiでアクセスできるSDカードもありますが,小さなデータを時々転送するだけなのでややオーバースペックで高価です.そこでESP32を使用してWiFiでデータを送ることができるmicroSDカードアダプターを作成しました.

設計と制作

本機は外部の機器からアクセスされた場合は通常のmicroSDカード(電気的にはSDカードと同じ)と同様に振る舞います.SDカードの信号をソフトウェアでエミュレートするのではなく,本物のSDカードを内蔵して外部からのアクセスはそのまま通します.WiFiからのアクセスに対しては,ESP32を使用してSPIインターフェース経由で内蔵SDカードの読み書きを行います.ESP32でのアクセス中は信号の衝突を防ぐため3ステートバッファを使い外部と切り離しますが,もし同時に書き込み処理を行った場合はファイルが壊れる可能性があります.なおSDカードには高速にデータを転送するためにSPI以外の端子もありますが今回は配線していないため,SPIでアクセスする外部機器のみに対応しています.microSDカードのコネクタ部分は,SDカードとmicroSDカードを変換するアダプターを分解して使いました.回路図は左下の図になります.ケースは3Dプリンターで作成しました.

ESP32のファームウェアはArduinoで書きました.Webサーバーを動作させて,ファイルのアップロード,ファイルの一覧取得,全ファイルの削除,SDカードのリセットを行うことができます.転送速度はやや遅くて,3.8MBほどのファイルを送るのに60秒かかります.容量が128MBという相当古いSDカードを使っているのも問題かもしれません.3DプリンターのAnet A8と,CNCルーター用のオフラインコントローラーに接続して使ってみましたが,どちらも正常に動作しました.

回路図
ケースに組み込んだ基板
ブラウザの画面

ソフトウェア


[戻る]
2020-03 制作
2020-08-23 ページ作成
T. Nakagawa