ESP-WROOM-02を使ってみる2 -外付けSPIフラッシュの書き換え-
ESP-WROOM-02はモジュール内にプログラム/データ格納用のSPIフラッシュを
持ち、UARTブートモードで書き換え可能です。前回技適なしのハズレモジュールの
殻わりをして16MBitのSPI-ROMの存在を確認しましたが実際の
技適版ESP-WROOM-02は32MBitのものが搭載されているそうなので書き換えの
ついでに確かめてみましょう。
20161108追:
SDKのバージョンは時々刻々と変化していき、詳しい手順をせっせと作っても
あっというまに使えないものとなってしまいます。しかしなるべく最新の
手順を紹介していくよう努めさせていただきます。
20161108追:
前回初めて通電した時の「AT+GMR」コマンドで表示されたバージョンストリングです。
現在はSDKのバージョンもV2.0.0まで進んでいます。さらにATコマンドの
バージョンも進んでいて今はV1.3.0.0となっています。
今回はESP-WROOM-02をUARTブートモードで起動させ、最新のATコマンドファーム
ウエアに書き換えます。
注:本ぶろぐエントリで紹介しているのはEspressifが配布している公式のATファームの
書き換え方法です。SDKを利用しコンパイルしたカスタムファームの際は書き込む
アドレスが異なるケースがありますのでご注意ください。
公式BBSのこちらのエントリからESP8266_NONOS_SDK_V2.0.0_16_08_10.zip
をダウンロードしておきます。
展開して出てくる"ESP8266_NONOS_SDK/bin/at/1024+1024"以下のファイル群が
書き込むメインのプログラムとなります。つぎにこちらのエントリからFlash書き込み
ツールFlash Download Tools V3.4.2 (ESP8266 & ESP32)をダウンロードし、
適当な場所に展開し起動します。エクスプローラから解凍するとなぜか失敗しやがる
ので、7Zipを使って確実に解凍してくださいF**K!ちくしょうマカーめ!!11!1
起動したらこんなダイヤログが出ますがESP8266 DownloadToolを
選択してください。
ESP-WROOM-02はねむいさん謹製のピン配置表を参考にして
UARTブートモードで起動させておきましょう。UARTブートモードでは115200bpsが
安定して書き込める速度ですが230400bpsで上手くいくならばその値でもかまいません。
さて、先に結果を言ってしまいますがESP-WROOM-02は実際に32MBit(=4Mbyte)の
SPI-ROMを持っています。それにしたがってこちらのエントリのにある
2B-ESP8266__Non-OS_SDK__IOT_Demo_Guide__CN.pdfの23ページ目の
4096kByteFlashを参考に各バイナリを書き込むアドレスを指定していきます。
SPIフラッシュに書き込むバイナリのアドレスの構成は上記にならいます。
20161108改変:
"boot_v1.6.bin"は0x0000
"user1.2048.new.5.bin"は0x1000
"blank.bin"は0xFE000
"esp_init_data_default.bin"は0x3FC000
もう一ちょ"blank.bin"は0x3FE000
上記構成はブート領域を書き込むがFOTAを行わない場合の構成です(後述)。
書き込む予定のバイナリにはチェックフォームにチェック(緑に反転する)を忘れずに。
ツールの下段の項目は
CrystalFreqは"26M"
SPI SPEEDは"40MHz"
SPI MODEは"QIO"
FLASH SIZEは"32MBit-C1"を選択してください。
SDKで提供されているデフォルトのATファームのバイナリは20151203現在SPI-ROMの
サイズが1024kByte(8Mbit)と2048kByte(16MBit)版、そしてブートローダー無し版
の3つです。当記事ではブートローダー無し版は対象外ですので無視してください。
ESP-WROOM-02では32MBit(4096kbyte)のSPI-ROMを持ちますが2048kByte版でも
使用可能です。従ってuser1.2048.new.5.binを書きこむATファームのバイナリと
します。また、SDKに同梱しているesp_init_data_default.binについて、これを
ESP-WROOM-02に書き込むとSTAモードとAPモードのMACアドレスやSSID、そして
RFの出力設定のデフォルト値が書き換えられます。書き換えの際はSTAとAPの
それぞれのMACアドレスとSSIDを事前にATコマンドで読み出しておいて
"必ず"控えてください。
「AT+CIPSTAMAC_DEF? 」と「AT+CIPAPMAC_DEF?」が読み出しコマンドです。
それはさておきv0.23以前のファームのモジュールをお持ちの方はATコマンドの
ファームウェアのアップデートの際はesp_init_data_default.binとblank.binも
同時に書き換えておかないと変な値が設定されて送信出力が極端に低い値になって
しまうことがありますのでご注意ください。過去にこのぶろぐエントリで書いた書き
変え手順では省略しても可と述べていましたが現在は上記二つのファイルは必ず
適切なアドレスに書き込んで下さい!
これらの設定をストアするデータ領域のアドレス構成だけこちらから抜き出して
みました。ESP-WROOM-02の外付けSPI-ROMはブロック消去単位が4kByteセクタ
区切りでコンフィグデータも上記のように4kByte区切りでストアされます。
FOTA(ネットワーク書き込み)する場合は0xFE000にblank.binの代わりにEspressif
からダウンロードしてくるmaster_device_key.binを書き込みます。
ところでなんで何も書き込んでない領域が存在する中途半端な歯抜け状態と
なっているかというと公式の"2a-Esp8266 Iot Sdk User Manual.pdf"内でそういう
指示があるからです。
Download Panel1のSTARTボタンを押すと書き込みが始まります。
このときDETECTED INFOの項目にSPI-FLASHのデバイスIDが表示されて実際に
32MBitの品種が搭載されているのが分かります。
無事書き換えが完了したところです。一旦電源を落としてSPI-FLASHブート
モードに戻してからESP-WROOM-02に電源を再投入します。
「AT+GMR」でバージョンを確認します。無事アップデートできたのが分かります。
いろいろ試していると変なバイナリをうっかり書き込んでしまい上手く起動
できなくなる・・・!なんてことがよく出てきます。
そうなったらとにかく上記の方法でデフォルトのバイナリに書き換えてしまえば
復帰可能ですので参考にしてください。
●今となってはどうでもいい脱線
※技適について※
現在のATコマンド(v0.24以降)のファームウエアは上記のRF出力設定もコマンドで
変更可能になっています。モジュール出荷の時点でデフォルトでフルパワーの82
(=尖頭値電力20.5dBm(112.2mW))が設定されています。その最大設定で技適が
(FCCの試験レポートを見ると上限いっぱいの23dBmで通してるようでtelecのお墨付きに
書いてある8.09mW/MHzをもって電波法上限の帯域幅26MHz使ってると想定して
逆算すると23dBm弱になりだいたい計算が合うのでやっぱりフルパワーで通ってます)
通っていて(yuna_digickさんのヒのURL先参照)ESP8266のチップ単体の性能上
これ以上の空中線電力は実質出せず、つまりモジュール上のアンテナを違法に改造
しない限りは好きに書き換えても技適に違反しないはず
…ですがそうは問屋がおろさずこのモジュールの外付けSPIフラッシュに書き込む
バイナリはRF部をコントロールするコアの部分が必ず含まれさらにファーム変更後の
技適の保証を示す資料が現時点ではどこにも見当たらないため、誰にも干渉されず
正々堂々と使うならば書き換えるなら個人で再申請して技適を再取得するのが筋です。
(↑"書き換たことで工事認証を失効し、それを使うと電波法に抵触する"と断定していない点に注意!)
BluegigaやInventekのモジュール等はその辺きっちりクリアしていてRFをコントロール
するブロックはユーザーが絶対に触ることができないように分離されているものがあります。
20151021さらに追:
少し前ですがtiger22様のブログ記事のコメント欄のやり取りにてESP-WROOM-02と
非常に似たケースの見解がありました。
>メーカー製のファームウェアアップデートはこちらに申請が無いかぎり、
>技適認証にかかわる部分の変更をやっていないと判断している。
>それ以外のファームウェアは把握していないのでわからない(DD-WRTとか聞き返しても同じ回答)。
>ファームウェアアップデートにおいて、日本の法律を越える出力が可能になることが、
技適を無効にさせる条件にはならない。個別の総合的な判断である。
↑ファームの書き換えでオーバーパワー・スプリアス増大・オフバンドの3アウト
となるのならばさすがに電監が動いてパーペキにゲームセットだと思います。(※上級国民除く)
ESP-WROOM-02においては"メーカー製ファーム"とはSDKに付属しているデフォのAT
ファームを意味します。私のようにEspressifが提供しているATファームだけを使い
続けるだけならば、電波法に反すると
ファームウェアだけを信用して使っている。そんなこと私に言わずにEspressifに
直接言え!もちろん英語でな!」…と反論しノイズをシャットアウトできます。
むしろEspressifと関係ない一個人が勝手な解釈で法律的判断を下すこと自体大きな
ミステイクです。ちゃんと技適マークは取れてお上のお墨付きももらってるん
ですからEspressifさんを信用して(←このアピール重要)バンバン書き換えまくって
使い倒しましょう!!!
Espressif提供のスタティックライブラリを含むSDK使ってコンパイルしたファームでも
同じ理屈でなんだか反論出来そうなので技適を名目に難癖付けるのだけが趣味の人
たちには「私に聞くのはお門違い。Espressifに直接言え!」のお題目で
突っぱねちゃいましょう。
繰り返しますが現時点で確実に工事設計認証が無効になり電波法違反になる行為は、
技適マークが刻印されているESP-WROOM-02の金属ケースを外したりもしくは
基板上のパタンアンテナを傷つけたり削ったりアンテナにリード線を半田付けしたり
新たに外付けアンテナを取り付けたモジュールをシールドルームの外で動作させる
ことです。
20160129さらに追:ついに白黒が付いた!!
スイッチサイエンスさんから公式に問い合わせた結果が公表されております。
以下引用
ユーザーによるファームウェアの書き換えが、ESP-WROOM-02の工事設計認証を無効にする可能性について、メーカーのEspressif Systemsに確認をしました。同社は登録証明機関に確認した上で、Arduino core for ESP8266 WiFi chipとSDKを使っている限りにおいては、認証には影響を与えないという回答を下さいました。他の開発環境など、ファームを書き換える部分によっては、認証に影響を及ぼし得るとのことですので、ご注意ください。
引用終わり
SDKを使用してビルドしたファームウェアなら書き換えても最早なんの問題も
心配もありません!!みんな遠慮せずどんどんやりまくれ!!!!!!!!!!!!
-
免責・連絡先は↑のリンクを
↓SNSもやってます↓
powered by まめわざ- ARM/STM32 (117)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (13)
- FPGA (4)
- GPS/GNSS (19)
- MISC (80)
- STM8 (2)
- Wirelessなアレ (16)
- おきぱ (1)
- ブラウザベンチマーク (28)
- 日本の自然歩道 (25)
- STM32U0はぢめました
⇒ ねむい (08/07) - STM32U0はぢめました
⇒ ひかわ (07/28) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (05/17) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - いろいろ試す61(と今年の反省会)
⇒ ねむい (01/02) - いろいろ試す61(と今年の反省会)
⇒ ひかわ (01/02) - いろいろ試す61(と今年の反省会)
⇒ ひかわ (01/01) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (12/31) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ひかわ (12/31)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (2)
- January 2024 (1)
- December 2023 (4)
- November 2023 (2)
- October 2023 (2)
- September 2023 (1)
- August 2023 (2)
- July 2023 (1)
- June 2023 (2)
- May 2023 (3)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (2)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (2)
- November 2021 (2)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- March 2021 (1)
- February 2021 (1)
- January 2021 (1)
- December 2020 (3)
- November 2020 (1)
- October 2020 (1)
- September 2020 (1)
- August 2020 (1)
- July 2020 (1)
- June 2020 (2)
- May 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- December 2019 (3)
- November 2019 (1)
- October 2019 (1)
- September 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (1)
- January 2019 (1)
- December 2018 (3)
- November 2018 (2)
- October 2018 (1)
- September 2018 (1)
- August 2018 (1)
- July 2018 (1)
- June 2018 (1)
- May 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (1)
- January 2018 (1)
- December 2017 (2)
- November 2017 (2)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- February 2017 (2)
- January 2017 (2)
- December 2016 (7)
- November 2016 (2)
- October 2016 (2)
- September 2016 (1)
- August 2016 (1)
- July 2016 (1)
- June 2016 (1)
- May 2016 (2)
- April 2016 (1)
- March 2016 (2)
- February 2016 (1)
- January 2016 (1)
- December 2015 (3)
- November 2015 (1)
- October 2015 (3)
- September 2015 (2)
- August 2015 (2)
- July 2015 (3)
- June 2015 (3)
- May 2015 (4)
- April 2015 (2)
- March 2015 (4)
- February 2015 (1)
- January 2015 (3)
- December 2014 (3)
- November 2014 (2)
- October 2014 (1)
- September 2014 (2)
- August 2014 (2)
- July 2014 (3)
- June 2014 (2)
- May 2014 (1)
- April 2014 (1)
- March 2014 (4)
- February 2014 (4)
- January 2014 (3)
- December 2013 (5)
- November 2013 (4)
- October 2013 (3)
- September 2013 (2)
- August 2013 (2)
- July 2013 (2)
- June 2013 (3)
- May 2013 (2)
- April 2013 (2)
- March 2013 (2)
- February 2013 (2)
- January 2013 (3)
- December 2012 (4)
- November 2012 (2)
- October 2012 (2)
- September 2012 (4)
- August 2012 (1)
- July 2012 (3)
- June 2012 (2)
- May 2012 (3)
- April 2012 (3)
- March 2012 (2)
- February 2012 (3)
- January 2012 (3)
- December 2011 (5)
- November 2011 (3)
- October 2011 (2)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (3)
- December 2010 (7)
- November 2010 (1)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (4)
- May 2010 (1)
- April 2010 (2)
- March 2010 (2)
- February 2010 (2)
- January 2010 (3)
- December 2009 (3)
- November 2009 (8)
- October 2009 (7)
- September 2009 (5)
- August 2009 (4)
- July 2009 (6)
- June 2009 (7)
- May 2009 (14)
- January 1970 (1)
Copyright(C) B-Blog project All rights reserved.
Comments
Post a Comment