ESP-01Sフラッシュメモリの4MB化改造

投稿者: | 2020年8月4日

最小限なピン構成ながら、I2C用途がメインの私には少電力でとても便利なESP-01S、難点はフラッシュメモリが1MBしかないこと。普通にスケッチを焼く分にはそれでも十分なのですが、ESP Easyを焼いた後、OTAでFirmwareを更新しようとすると、必要な残り容量を確保出来ないことから、その機能を利用出来ない旨の警告が表示され、実際Update Firmwareしようとするとエラーになります。

図01.ESP Easy Warning OTA Not Possible

図01.ESP Easy Warning OTA Not Possible

これはこれで割り切っていたのですが最近、フラッシュメモリを載せ替えてしまう改造例を見付けてしまいました。

 

ハードウェア

早速、淘寶でW25Q32FVSIGを発注です(個当たりRMB1.0〜1.2程度+送料)。メモリ容量のビットとバイトの表記を以下にまとめます。

  • 25Q40BT     :  4Mbit = 512kByte (ESP-01 Blue)
  • 25Q80ASSIG  :  8Mbit =   1MByte (ESP-01S Black)
  • W25Q32FVSIG : 32Mbit =   4MByte (ESP-12E,ESP32,etc.)
  • W25Q64FVSIG : 64Mbit =   8MByte
  • W25Q128FVSIG:128Mbit =  16MByte (WeMos D1 mini Pro)

到着した4MBメモリと既にESP-01Sに搭載されている1MBメモリを比較してみます。平面寸法、厚み共に全く同じなことが分かります(図02は左から、ESP-01S, W25Q32FVSIG, W25Q64FVSIG)。

図02.ESP-01S搭載1MBと4MBメモリ比較平面視

図02.ESP-01S搭載1MBと4MBメモリ比較平面視

図03.ESP-01S搭載1MBと4MBメモリ厚み比較

図03.ESP-01S搭載1MBと4MBメモリ厚み比較

1MBメモリを外し、端子に残ったハンダを慣らしておきます。基板には親切にも1番ピンマークがプリントされています。

図04.1MBメモリ除去

図04.1MBメモリ除去

載せ替える4MBメモリのピンにも少しハンダを盛ってから基板に載せ、拡大鏡で確認しながら丁寧にハンダ付けしました(図05は左から、4MBメモリに載せ替えたESP-01S, 外した1MBメモリ)。

図05.4MBメモリハンダ付け

図05.4MBメモリハンダ付け

 

焼き込み

正常に認識出来るか、焼き込みに使うEspressif社謹製のesptool.py のflash_idオプションを使ってチェックしてみます。

問題なく4MBフラッシュが検出されました。それでは焼き込みの前に念の為、一度フラッシュを消去します。

それではいよいよ焼き込みです。バイナリイメージは、ESP-12Eで使う4MB用のESP Easyを使います。

esptool.pyを実行した各工程に於いて、実行後は一度ESP-01SをUSBライタごと母艦から抜き挿しする必要があります。挿したまま、複数のコマンドを実行させることは出来ません。

 

ESP Easy検証

それでは、ESP Easyを焼いたESP-01Sを以前作った開発ボードに載せて起動させてみます。WiFi初期設定後、早速Firmware更新機能を確認してみると、WARNINGは消えてOTA更新は可能になりました。

図06.ESP Easy OTA Update Acceptable

図06.ESP Easy OTA Update Acceptable

4MB化で何が変わったのか、ESP EasyのInfoページで比較してみましょう。まずは比較用に純正1MBの情報はこのようになっていました(System Info頁のFirmware, ESP Board, Storage項を抜粋)。

図07.ESP Easy System Info 1MB

図07.ESP Easy System Info 1MB

それが今回4MB化したことで、 以下のように変わりました。具体的には当然ながらFlash Chip Real Size, Flash IDE Sizeを始め、前述のOTAの可否に関する項目、そして大きな違いとしては、SPIFSS容量が格段に増えました。また少し気になったのは、ESP Board Nameが4MBではESP12Eとなっていること。この項は使ったイメージの中の決め打ち文字列なのかもしれません。

図08.ESP Easy System Info 4MB

図08.ESP Easy System Info 4MB

 

8MBメモリに挑戦

図02にもある通り、実は16MBメモリも大差無い価格だったので発注していました。これも物理寸法全く同じなので、4MBの時と同じ要領で載せ替えてみます(図09は左から、8MBメモリに載せ替えたESP-01S, 外した4MBメモリ、元の1MBメモリ)。

図09.8MBメモリハンダ付け

図09.8MBメモリハンダ付け

esptool.pyのflash_idオプションを使ったチェックでも、正しく8MB認識されています。

早速焼いてみるのですが、ESP Easyには8MBイメージが有りません。4MBのものを使いますが、flash_sizeオプション設定を8MBとして焼いた場合はこのようになりました。

図10.ESP Easy System Info 8MB (flash size 8MB)

図10.ESP Easy System Info 8MB (flash size 8MB)

次に同じイメージをflash_sizeオプション4MB設定にて焼いてみるとどうなるか、実験してみました。

図11.ESP Easy System Info 8MB (flash size 4MB)

図11.ESP Easy System Info 8MB (flash size 4MB)

比べてみると、Flash IDE Size に違いがあるのみで、Max OTA Sketch SIzeやSPIFFSは両者全く同じで、さらにそれは4MBの時と同じでした。4MBを越えるメモリの領域を最大限活かすには、ESP Easyのソースから例えばSPIFFSパーティション増やした設定でmakeするなど、踏み込んだ作業が必要です。

この辺り、大きなイメージのリリースがないか調べていたところ、ESP Easy公式GitHubに次のような記述があるのを見つけました。

実はこの8MBメモリのESP Easyを起動がいつもより時間掛かったり、立ち上がった後の動き(ページ遷移時など)も何か引っかかる感じで少し気になっていたのですが、これで納得しました。現状では、4MBへの載せ替えがベストと言えそうです。

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA