ESP-WROOM-32を使ってみる5 -ESP-WROOM-32が物故割れた!1!1!!-

ESP-WROOM-32の目次に戻る



ESP-WROOM-32はとっくに飽きてしまったのはずなのですがKimio Kosaka氏のブログ
とてもとても気になるエントリを見つけました。

以下引用

色々なタイミングでのプログラムの書込みをやっていたら…ESP32挙動不審な動作を
はじめ、” flash read err, 1000 “が出現しプログラムの書き込みにエラーが
発生するようになった。

引用終り

もう一つ、wakwak_koba氏のブログでも・・・・
以下引用
WiFi.h を include するだけで、漏れなく halt してしまう ESP32 に成り果ててしまいました(涙)
やったことは、2.2〜2.8V 付近の電圧で起動と停止を繰り返しただけ。(それぞれ数秒ずつ置いて)
電源の逆接とかハード的なミスならば自業自得で諦めますが、仕様範囲内の電圧で起動しなくなるってのはどうよ。
動作中に電圧を弄ったとは言え、Δ0.1V/秒 くらいの、超ゆっくりな操作だったのに。
(ハードな試験をしていたわけでもなく、実運用中にも起きえる程度の動作条件下で壊れた)

引用終り

やっぱりねねむいさんそう思ったんですよぅ電源がドロップして動作保障電圧の2.2V
どころか3.0V以下になると何か変な動作になるんじゃないの・・・って


両氏に共通する事象はESP-WROOM-32が意図せず不可逆変化を起こしたことに尽きます。


ESP-WROOM-32のメインチップESP32にはeFUSEと呼ばれるメモリ領域があり、ここに
MACアドレスやChipのID、さらにJTAGやSDIOの使用可・不可を設定できるように
なっています。AVRのヒューズビットやKinetisのFSEC領域のようなものですね。

これが何らかの原因(SPIフラッシュ書き込み時の急なドロップ・電源断)で不意に
書きかえれてしまうとヤバイ方向に転がってしまうのではないかと考えました。
何か電源の不安定な変化でeFUSEの秘孔を突いてしまうのではないか・・・ト・・!ピプー


Kosaka氏はESP-IDFv2(もうv2になってるのか)にあるespsecure.pyなるpythonスクリ
プトで復帰を試みました。ねむいさんもまずは健康な状態のESP-WROOM-32のeFUSEの
値を読み出しました。eFUSEの値は下のコマンドでパースされます(COM3の場合)。
ねむいさんの解説を読んでESPTOOLのパスは通しておいてください。
また、全てUARTブートモード下の操作となります。
espefuse.py --port COM3 summary


まだ健全なモジュールなので全部ゼロになってますね〜
Flash encryption mode counter の値は0です。


さて、ここからESP-WROOM-32を潰しにかかります!!
基本のLチカのプログラムを書き込んでる最中に給電元のUSBのケーブルごと引っこ
抜いて
書き込みを故意に失敗させまくります。
この時は上記のようなエラーになります。昔はPCごとお堕ちてたもんだ〜。


ちがう・・・これじゃない・・・
強化した電源ラインが仇になったのかなかなか事象が再現しません・・・
試行すること2時間と20分・・・


―――――――――!
秘孔突いた!テーレッテー
(flash read err, 1000)ってメッセージで無限ループしてます。
(実際はhaltがかかってその後ウオッチドッグリセットで無限ループにみえる)
たしかにSPI-ROMの書き換えが出来ないです・・・
20170220追:
Kosaka氏と同じエラーメッセージ出てますが氏の元で発生した不具合は
ねむいさんとこと違ってSPI-ROM完全破壊状態のようです…☠
そんな故障モードもあるのか…
20170220追:

20170521追:
Facebookで私の記事に対し「eFUSEのプロテクト外したから化けたんじゃね?」という
指摘がありましたが私は何も触ってないまっさらの状態で試しこの現象を
確認しました。SPIROMの書き込み動作中の電源断で何故eFUSEが化けたかは深いところ
まで調査を詰めてないので保障は出来ませんが中途半端に低い電源電圧がその原因の
一つにあることは間違いないです。

逆に言うと電源さえしっかりしてたらeFUSEが化ける確率をゼロに近い値まで大幅に
引き下げる事が出来るのですが・・・・
ねむいさんが何故ADP3338選んだかを無視して「***さん(←何故か別の人)お勧めの
ADP3338とか値段高いから中華通販で買った1117系のLDO使いました(^^)
高価なLDO使わなくても大丈夫だと"思います"」とか言う人まで出る始末でちょっと
頭痛がしてきましたがなんというかmgo-tecさんのブログで私がコメントした通りの
展開になってきてますがまぁ売り物作るわけじゃないから自己責任の範囲で当人が
満足すればそれでいいんじゃないかな〜と思います♨
尤も本当に困って私に泣き付いたときにはESP8266の時も遭遇しましたが私は
何聞かれても「馬鹿野郎」としか返答しませんのであしからず。
ていうかこのwifiモジュール関連はどうもいつもと違う客層のあんまし素性がよろしくない
山師みたいな輩ばっかり寄ってくるので以後はご意見無用といきたいところです☠
20170521追:


ここで落ち着いて復活の呪文を唱えます
espefuse.py --port COM3 burn_efuse FLASH_CRYPT_CNT


Flash encryption mode counter の値は1→3になりました。


makeの際にsdkconfigのsecure boot configurationの項目でdisable encryptionに
なってることをしっかり確認してビルドしなおします。



やった!書けた!もちろんLEDは再び点滅をするようになりました。
無事復帰しました・・・



・・・といいたいところですがこの復帰動作は何度も出来るわけではなく制限があり、
Flash encryption mode counter の値が7の状態でもう一度復活の呪文をとなえたら
秘孔が炸裂して"Bricked(ひでぶ)"してしまいます。お前はもう死んでいる

ねむいさんの英語力は中学生レベルですのでかなり怪しいですが原文を読む限りは
復活の呪文を3回となえたら4度目はない
と思ったほうがよいですね。

公式のgithubESP32のForumでも話が持ち上がっていますが結構な確率で意図せずに
この状態に入ってしまうのでしょうか???ねむいさんも"電ぶち"で再現させまし
たがこれ貧弱な電源使って書いた貼ったしてると秘孔突き捲ってしまうのでは・・・
とくにVCCが2V付近でうろちょろするような状態がかなりやばそうです。
・・・
でもまぁいっか!あと半年くらい待てば安定するでしょう・・・
それまでSTM32F7で遊びますよぅ!








新しい事が分かったらちゃんと追記修正していきますか怒らないで〜♥

ESP-WROOM-32を使ってみる4 -SPI-ROMの吸出し・最初にそれやれとか言われそう-

ESP-WROOM-32の目次に戻る


今回はやらかしてしまった時に初期状態に戻すために前もって工場出荷時のファームを
吸い出す手順を紹介します。なお、オシロの波形ばっかり見せられて辟易していた方の
中でねむいさんに突っ込み入れたい方は落ち着いて今回のサブタイトルを100回ほど
音読してください。
20170216追:
ESP-WROOM-32は暗号化してプログラムをフラッシュに書き込むそうで、
書き込み中に途中で電源を落とすなど異常な状態が起こるとプロテクトが
発動しESP-WROOM-02の時みたいには容易に回復とはいかないようです。
こちらの件は現在調査中ですのでしばらくお待ちください!!!


●工場出荷時のファームを吸い出す
さて、前回はIDF(IoT. Development Framework)をgitでダウンロードしてExampleを
ビルドする手順
を紹介しました。このIDFにはESP32に繋がっている外付けSPI-ROMを
書き込むためのフラッシュライタのプログラムも同梱されています。
普段はmake flashで呼び出されるものですがこれから単独で操作して逆にROMの中身を
吸い出しちゃいます!


まずは前回の手順の"4."まで完了しているものと想定して進めます。このときまだ
homeにいるのでこの場で以下の呪文を唱えます。

source ${IDF_PATH}/add_path.sh

このシェルスクリプトは"IDF_PATH"が設定されているときに発動して、pythonスクリプト
esptool.pyのあるディレクトリにパスを通します。

次にボードのENボタンBOOT(IO01相当の)ボタンを押しっぱなしに(Loに固定する)
して以下の呪文を唱えます。たったこれだけ!(VCOMのポートがCOM3の場合です)
↑間違いをずっと放置してましたorz 間違った情報でうなされたaisuke様申し訳ありません。
 ENをGNDに落としてたらそりゃうごかんがや
esptool.py --port COM3 --baud 921600 read_flash 0 0x400000 original_contents.bin


921600bps早い・・・4MBの読み出しもあっという間です・・・
これで工場出荷時のバイナリの読み出しはおしまいです。
書き戻す時はESPTOOLで0x0からoriginal_contents.binを書いてやれば復活します!


たったこれだけの手順でとても簡単にサルベージ出来ますので皆さんもESP-WROOM-32の
ボードを入手したら真っ先に吸い出しておきましょう!




●ついでなので公式のExample以外の作例も試してみる

尺が余ったのでもう少しだけESP-WROOM-32で遊んでみます。既に有志でちょっとだけ
有用なプログラムが公開されていますが簡単にwifiの機能を試すプログラムとして、
ねむいさんはこちらの方の"ESP32_WifiScan"に目をつけました。

もはやgitで落とすのすらめどいのでzipで纏めて落としてhomeに展開しました!

そしてビルドしているところです。
OpenOCDのビルド時もそうですがねむいさんなんでか無事にビルドが通るようビルド
画面見ながら応援する変な癖
があります・・・


無事にビルドが完了してmake flashで書き込みます。
921600bpsで圧縮だと400kByteが4Secですか・・・超早いすね・・・。


このプログラムは近場にあるwifiのAPをスキャンしてひたすら表示します。
テスト対象としてESP-WROOM-02を久々に稼動させてみます!夢の競演です♥


ESP-WROOM-02のAPが無事表示。やったぜ。
お隣さんのAPまで見えちゃったので自分の以外は隠しました。




というわけでねむいさんがESP-WROOM-32でやれることは全部やりきったつもりなので
今度こそホントの本当にSTM32に戻りますよぅ!

ESP-WROOM-32を使ってみる3 -基礎の基礎、Windows環境でMSYS2を用いてIDFをビルドしてLチカる-

ESP-WROOM-32の目次に戻る



金曜ロードショーのベイマックス面白かったわー!食わず嫌いは良くないですね〜

20170407追:
ESP-IDFのバージョンは時々刻々と変化していき、詳しい手順をせっせと
作ってもあっというまに陳腐化してすぐに使えないものとなってしまいます。
しかしなるべく最新の手順を紹介していくよう努めさせていただきます。
20170407追:




そんなわけでねむいさんも上位レベルアレルギーな食わず嫌いを克服するために
ESP-WROOM-32のSDKをビルドして動かしてみますよぅ!!
今回はBLEとかwifiは置いといて基本のLチカのプログラムを動かします。とにかく
ねむいさんのとおりにすればみなさんもLチカれます!!


基本的には公式のチュートリアルに従います。windows環境でもmsys2のxtensaの
ツールチェインが設定されたビルド環境がまるっと配布されているのでこれを
ありがたく利用しちゃいましょう!

espressif公式のgithubからesp32_win32_msys2_environment_and_toolchain-20170330.zip
をダウンロードします。479MBもありやがるのでがんばって落としましょう!

おとしたら中身の"msys32"をひとまず"C:¥"直下に解凍します。フォルダは
C:¥msys32¥と展開されていたらOKです。

そしてmsys2フォルダ内の"msys2_shell.cmd"で起動します。


コマンドプロンプトが現れますがまずはPATHを通す呪文を唱えます!

1.

cd /home

↑msys2の"home"フォルダに移動します。
 結構忘れやすいので注意!

2.
export IDF_PATH=/home/esp-idf

↑次にIDFのパスを通します。
 IDFとは、"IoT. Development Framework"を意味します。
3.
export PATH="$PATH:/usr/bin:/mingw32/bin:/opt/xtensa-esp32-elf/bin"

↑最後にツールチェインのパスを通します。

4.
git clone https://github.com/espressif/esp-idf.git esp-idf

↑gitのコマンドでespressifから最新のIDFをとってきます。
 "esp-idf"の部分は2.で設定した名前と同じにします。

ここまでは無事進むと思います・・・


5.
cd esp-idf/
git checkout v2.0
git submodule init
git submodule update

↑もうめどいので端折ります・・・
 現状のプログラムの最新化の反映を行っています。



なんか不安な文字列が見えたけど気にしない気にしない・・・

6.
cd examples
cd get-started/blink


↑examplesのさらに中にあるget-started/blinkフォルダに入ります。
 そしておもむろにmake!


ぁーなんかそれっぽいの走ってる〜!たのむ!通ってください!


ビルドを進めていると唐突にsdkconfigの設定画面になります。
ここは需要なのでしっかりと設定してください。




まずはDefault serial portがlinux系のデバイス表記になっているので
書き換えてあげましょう。私のESP-WROOM-32ボードのVCOMはCOM3と
なっていたのでCOM3に書き換えました。


ボーレートも同じように書き換えます。
230400bpsで十分です。



次はExample Configurationです。
デフォルトのままだとblinkするI/OポートはIO5になっているので2に
書き換えます!doit.amのESP32ボードは青LED点滅用ポートがIO2なので
そうします。


以上の設定を行った後saveを行い設定を保存します。


最初のconfig画面まで戻りexitを押すとsdkconfigの設定画面からぬけ、makeが
続行されます。おっ、無事にビルドが完了したようですね☆


次に"make flash"でビルドしたプログラムを書き込みます。pyserialもMSYS2セットに
コミコミなので従来のESPTOOLとかでせこせこアドレスを指定するは必要なくらくちんです☆
アドレス指定ミスによる書き間違いも無いですし。これからは積極的に"make flash"
で行こうと思います。
"make flash"がうまくいかない場合は自動で書き込みモードに入るシーケンスが
上手くいっていません。この場合はBOOTボタンをmake flash中押し続けるとうまく
いくようになるとおもいます。
CP2102のDTRとRTSがENとBOOTに繋がってるくせにこの自動操作が完全じゃないので
結局自分でボタン操作をする必要がありちょっと難有りです。
このBOOTボタンをおしっぱなしにする技ですが公式のForumでもこの技で切り抜けろ!
とコメントありました・・・・。



無事書き込み完了です。
ENを一度押してリセットを掛けます。


やったぜ。


このときUARTのターミナルを開いているとbootプログラムのメッセージが
流されます。




と言うわけでESP-WROOM-32開発の第一歩となるLチカが達成できました!
尤もESP3212自身がESP-WROOM-02と違って現状かなり水物でソースコードも
まだまだ整備中なので上位層の有用なプログラムが現れるまではねむいさん
としては様子見となると思います。


・・・もう飽きたから私STM32F7に戻っていいかしら・・・

ESP-WROOM-32を使ってみる2 -そんな電源で本当に大丈夫か-

ESP-WROOM-32の目次に戻る


別にねむいさんががんばらなくても意識が他界系の人たちが「IoTだウェーィwwww」
とかほざきながらNAVERまとめと変わらんレベルのqiitaとかのやたら検索で引っ掛かる割には糞の役にも立たない
チュートリアルもどきをマンボウの産卵みたいにボコボコ作リ出して情報ノイズを増加させやがるのは
ESP-WROOM-02で予習済みなんですけどまぁアプリレベルの話はそれでもいいんですけど問題はそれ
以前のハードウェアよりの話でねむいさんが散々警告したにもかかわらず電圧
ドロップの問題に今更引っかかったのか納期に間に合わないせいか捨て垢のフリー
メールで日本語になってない日本語で「これは何が悪いと思いますか!!1!!1!」とか
あわよくばねむいさんの発言の揚げ足とってこっちに全責任押し付けてやろうというような
性根が見据えた文面のハナクソ野朗が絡んできて虹裏メイドの中でも特に温厚で
優しい
ねむいさんもさすがにブチ切れて「お前みたいな奴が"ものづくり(←この単語
ねむいさん大嫌いですがあえて使います)"してんじゃねーですよぅこのハナクソ野郎
何が悪いっておまえの存在全てが悪だよバカヤロコノヤロ」と返信したいのをぐっっっっと
我慢してなるべく誠意ある対応を心がけてきましたがもうダメです限界です!もうでちゃいます1!!111
そういえばもう年末だね

ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ア"ーーーーーーッ!!!11!
(CV:ストーム・イグッリード)

本日の記事これにて完結!!



































今回はwifiモジュールでありがちな消費電流の問題についてESP-WROOM-32の実測を
しながら検証していきたいとおもいます。

wifiモジュールは基本的に多飯喰らいで特にリセット直後の挙動は注意しなくては
いけません。wifiモジュールが使う3.3Vが大きく落ち込むとブラウンアウトリセット
が掛かり無限ループになる危険性もあります。

前回私が購入したモジュールは1117系のLDOが実装されたモジュールでしたが昨年の
私の測定結果
を見れば分かりますがLDO自身のドロップアウトが1V近くあります。
このdoit.am製のボードのUSBコネクタを抜き差ししたときの電圧/電流波形を測定して
本当に安全か確認していきます。


まずはこのボードに電流プローブをつける儀式・・
ここに乗ってる3.3Vを作る1117系LDOはNCP1117かな〜


LDOを一旦はずしました。
すぐさま測定用に"立てて"付け直します。


Voutを浮かして電流プローブを付けられるようにしました。


SDIOの時と違ってプロービングやっけつですが測定対象は比較的遅い変化の電源波形
だから問題ないです。その代わりオシロのピーク検出機能は有効にしておきます。

それではようやく実測にうつります。



電源投入直後っ!
うぉぉう・・・一瞬ですが1.4Aくらいガッツリ電流喰ってますね・・・
XbeeWifi並みですよぅ…。でもこれはResetごとではなくVccの立ち上がり限定
だけのようで安心です☆
なわけないですけど。ていうかこの突入電流て相手側PCにダメージいくんじゃない
と言いたいところですが先に進めませんので見なかったことにします


もう少し時間レンジを窄めました。リセット直後の電流消費は丸で囲った部分の
2発目の大きい電流波形です。BLEブロックがこんな数百mAオーダーで電流喰うわけ
無いのでwifiのブロックがメインとなって動いてますね。


その2発目の部分を拡大です。青色で示す電流波形に注目!
なんと瞬間的に最大600mAも喰ってますよぅ!!!
もちろんこの間+3.3Vラインがおもいくそドロップしてます。


2発目の部分を少し引いた画像です。リセット後の大きな電流消費が収まった後は
電流波形も落ち着きます。しかしながら常時180mA近く消費しています・・・。

ボード上のLEDとCP2102の電流消費をさっ引いても160mA以上消費してるのは確実で
しょう。尤もCP2102は5V->3.3Vの内部レギュレータがあるのでこいつはLDOの+3.3V
には何の影響もないです。つまりESP-WROOM-32自身がめっちゃ喰ってるって訳です。
こんだけ電流喰ってるってことは・・・まさか・・・まさか・・・+5Vラインも仲良く…


おぃいいいいーーーー!!!11!!!!!!
完全に去年と同じ展開ですね・・・しかも瞬間600mAだからドロップが悪化しますよぅ!!
…おや…どこからともなく声が聞こえる…

>ねむいさんねむいさん、ESP-WROOM-32の最低動作電圧2.2Vを全然割ってないから
>ひと時のおちこみくらい見逃してあげましょうよ気にしちゃだめですって!
>おちんこでる時も気にしない、それが皆が知ってるがんばりやさんのねむいさんですよ!

ぁぁ・・・そうですね・・・入力の+5Vラインさえぱわふりゃーな電圧源使えばなんの
問題もありませんたとえドロップアウトが1V以上の1117系のLDO使ったとしても・・・
・・・

そんな↓わ↑け↓あ↑るかー!!

今のままでは余裕度が0.4Vくらいしかないじゃないですかー!
測定の際に使ったUSB-MicroBケーブルは30cm程のごくごく一般的なものです。
コネクタ部の接触抵抗やケーブルそのものの抵抗成分による電圧ドロップを加味すると
一般的なPCのUSB2.0のコネクタよりVbus電源を取るとこのような状態に簡単に陥って
しまいます!!



てわけで早速+3.3Vラインのパワーアップ大作戦です!!
1117系LDOと同じピン配置をもつADP3338を使います。こいつは負荷の高速応答、
セラミックコンデンサ可、なによりドロップアウト電圧がMAX190mVと大変優れた
逸材です!!!
覚えてらっしゃる方もいると思いますがクリスタルが発振せず電源ラインが発振
したことで有名な某C級出版製のゴミ
にも搭載されてしまった不名誉なLDOですが
F特の1uFを出力に乗っけるような愚を犯さなければ何の問題もありません。

今回のESP-WROOM-32板にはもともとLDOの出力に100uFのチップタンタルが乗っていて
容量としては必要十分なのでコンデンサは変えず、単純に1117と置き換えだけ行って
測定してみました☆

ADP3338を一般使いする場合は入出力とも16V/10uFくらいでX7Rもしくは
B特以上の性能の積層セラミックコンデンサ(MLCC)を選びましょう。
秋月さんだとこれとかこれとかお勧めです☆
このLDOの出力に積層セラミックコンデンサ(MLCC)を使うのは意味があります。
MLCCはESRはとても低く一度に大量の電荷を吸い込み/掃出しが可能なので
wifiデバイスのようにいきなり大電流を消費するような回路のデカップリングに
必須なのです。もちろんLDO側も急峻な負荷変動に対応できる瞬発力が要求されます。

単に出力電流容量やコンデンサの容量だけで部品を決めてはなりません。
常日頃データシートとにらめっこして適切な箇所に適切なデバイスを適用
できるように心がけましょう。


+5Vラインが落ち込んでも出力の+3.3Vには全く影響は出ていません!これで電源の心配
無しに思う存分使うことができます♥やったぜ
とはいえ上半身(+3.3V)に比べて下半身(+5V)が貧弱だと他の+5Vデバイスも一緒に
動かしているときに不都合が生じるのでデジタルテスタで遅い変化を測るだけで
終わらずオシロでしっかり波形を確認しながら製作していく癖をつけましょうね。
昨年に引き続き大事なことなので累積で4回言いました!


一応注意点ですがADP3338の入力最大電圧は1117系の半分以下の8Vとなります。
専らUSBのVusbである+5VをLDOのVinとする時の補強を狙っております。
9V以上のACアダプターを主に使う人はADP3338に変えるメリットは何もないです。

まぁこんだけ電気喰うモジュールにLDOに9V以上の入力電圧加えたらLDO自身の発熱が
どういうことになるか皆さんご存知でやはりVusbの+5V程度を入力電圧とすべきなの
は自明と思いますがねむいさん的には30USDくらいになってもいいからDCDCくらいは
組んでほしかったなぁ〜なんて思いましたっ!

ちなみにこのボードの「Vin端子」とVbusはショットキバリアで切られておらず何も
考えずに電圧同時印加すると当たり前にぶっ壊れるステキ設計となっております♥
尤もねむいさんのぶろぐの読者にそんなことやらかす頭がぶっ壊れた奴がいるとは
思えませんから杞憂でしょうけども(カメラ目線で



そいえばDCDCで思い出したけど以前コメントでHX1001進められたけどあれって結局
どうしたの?とお思いの方がいると思います。
実はEMSで配達指定したESP-WROOM-32の方が先に届いてしまったので評価はもう少し
先になると思います。その前にSDカードネタももう一つやりたいのでもうHX1001は
もすこしお待ちください。

20170227追:
ねむいさん+5Vや+3.3Vの事ばかり言ってますがGNDについても帰還電流の流路を意識し
なるべく広いグランドプレーンを確保するのはもはや常識と思っております。
側面から出ているGNDのピンとは電気的には繋がっておりますがESP-WROOM-32の背面の
GNDパッドの接続もぜったいに省略してはいけません!このようなパタンが設けられている
のはちゃんと意味があるのです。特にブレッドボードで工作される方はこの重要性を理解せず
動作させようとされる方がものすごく多いのですが「動いているようです」で済ませるとこの先
必ずトラブルが起こります。
面倒くさがらずに土台はしっかりと固めておきましょう!



20170220追:
mgo-tecさんが当ブログエントリの内容を追実験してくれました。
ねむいさんと同じADP3338を用いてよい結果を出されています
また、電源投入時->リセット時の電流の変化もシャント抵抗を用いた測定法に
よりねむいさんと同じ測定結果を記録しております


第三者による検証の再現性もばっちりとれているのでねむいさんのやったことは
間違ってなかったとまたひとつ確信させていただきましたっ☆
ちなみにねむいさんのdoit.amの出来合いボードのパタンが1117系でちょうど
ADP3338で楽に置き換えできたからこれを選んだわけで、ねむいさんとしましては
秋月で安価に購入できて各種保護回路も万全に備わっていてドロップアウト電圧も
1.5Aでたったの0.34Vと最強に強まっているLT1963Aを強く推させていただきます。

技適マーク付きESP32モジュールESP-WROOM-32を使ってみる

20170218追:
♥併せて読みたいESP-WROOM-32の記事♥
その2(たのしいたのしい電源編)
その3(IDFを使ったビルド・書き込み指南編)
その4(SPI-ROM吸出し救出編)
その5(ウンチーコング編)
20170218追:







macsbugさんの記事を見てねむいさんも速攻発注して手に入れました!!!!1!!
(12月13日に到着してたんですが忙しすぎて触れたの今日ですが・・・)


これがッ!

技適マークつきのっ!

wi-fiとBLEが使えるESP3212モジュール
ESP-WROOM-32だぁあぁああぁあっ1!!!11


はぁはぁ・・・
ねむいさんはこちらの店から19USDで購入しましたが今見たら3ドル上がって
ました。今はクーポン効くからねむいさんのときと同じ値段で替えますけど。




実際にはこんな感じのNodeMCUを意識した出来合いボードに実装されています。
20161220現在は製造元のdoit.amのサイトにはこのボードの詳細は乗っていませんが
回路はいたって単純なのでラクに追えます。



また、このボードにはUSB-VCOMチップのCP2102と、


1117系のLDOが実装されています。
1117系ってなんかやばい予感がしますけど多分気のせいですね気のせいハハ



何はともあれ早速動かしてみました!!!
MicroBコネクタにケーブルを挿して電源投入すると
電源を示す赤LEDのほかに青LEDが点滅しました。



・・・ターミナルを開いてみたはいいのですがESP-WROOM-02と違ってATコマンドの
ファームが存在しないようで自由度が高すぎて何やってよいか分かりません><
↑micropythonのスクリプト言語が走っているようです。


しかたが無いので取っ掛かりとなるUARTの文字列を吐くアプリケーションを
MSYS2でビルドしていきます。これについての詳しい解説は次回以降に行いますので
皆様首を長くしてお待ちください♥
使い方よりも先に電源を見ます



Flash書き込みも"make flash"で一発です☆
コマンドラインビルドが出来るとこの環境でも移植しやすいので要検討ですね〜


やったぜ
小さな文字列ですが大きな一歩を歩みだしました!もはやこっちのもんです!
とりあえずビルド環境を立ち上げるのがESP-WROOM-32を使いこなす鍵となりそう
です。また、OpenOCDとかいう単語もちらちら見えるのでねむいさんにも嬉しい
32bitマイコンになってくれるかもしれません♥


というわけで今回はほんの触りですがESP-WROOM-32をご紹介しました。
公式を見る限りでは現在急ピッチで簡単に開発できる環境作りが進められている
ようです。ESP8266と違ってBLEも扱えてCPUパワーもRAMも圧倒的になりましたので
使用できる用途がさらに広がりますね!

昨年はESP-WROOM-02の到来をもって「新しい時代が来た」と言いましたがこの度の
ESP-WROOM-32の登場により加熱したIoTシーンはさらに過激な領域へと突入
していくと言うことができるでしょう!

技適マーク付き★STマイクロ製BTモジュールを使ってみる

あけましておめでとうございます。
といいたいところだけどぜんぜん明けてねぇよバカヤロコノヤロ(たけし風に)

今年も残すところ11ヶ月きってしまいました。ぇっと年末から続く副業先(ねむいさん
の本業は虹裏メイド)のトラブルはまだぜんっぜん解決してませんが意地でもぶろぐ
は更新します!!!!!あと頂いたコメントやご質問の返信もわずかな時間を見つけ
て行っていますのでもう一ヶ月くらいおまちください・・・


さて、今回紹介するのはSTマイクロ社製のBluetoothモジュールSPBT2632C2A.AT2です。
このモジュールはRN-42と同じくUARTでやり取りができるものですが、Bluetoothの
バージョンは3.0,そして実装面積もRN-4x系より少ない逸品です。


↑SPBT2632C2Aデータシートより
内部構造はRFモジュールとその制御部に分けられており、制御用MCUとしておなじみ
STM32が使用されております!ファームウェアもUARTブートローダで更新が可能です。



そしてもちろん技適マークがあります!!

ねむいさんより注:
ご多忙に漏れず海外通販で扱っている同型番のモジュールには技適マークが刻印されて
いないF**Kな奴があります。現時点で確実に技適マーク入りの奴が購入できるのはRS
コンポーネンツさんのところからだけ
です。


ていうわけで早速Xbee風にしてみます。やっぱしプラットフォームを合わせておくと
らくちんですね〜・・・
どうでもいいけど秋月さん早くESP-EROOM-02のXBeeピッチ変換出してくれないかな・・・


電源を投入すると"Amp'ed Up!"とかいう得体の知れないサウンドデバイスとして認識
されます・・・一瞬購入するモジュール間違えたと思いましたがこれで正しいようです。


やっぱしオーディオとビデオデバイスとか出てますがちゃんとシリアルポートは作成
されるようですよかったよかった・・・。


デフォルトでは115200bps,8ビット,ノンパリティ,1ストップビットとなっています。
画像はBluetooth経由で相互に通信しているところです。ボーレートは2000000bpsとか
むちゃくちゃな高い値も設定できるようですが戻せなくなるとやばいので230400bps
までしか試してません。


さらにこの時Bluetoothとして通信が確立している時はGPIO1がHiレベルとなり、LED等
を接続して画像のようにインジケーターとして利用できます(デフォルト時)。


GPIOの割り振り表です。後述しますがATコマンドで別の機能も指定可能です。
注意すべき点はI/Oの出力レベルが3.3Vでは無く2.5Vとなっている点です。これはモジ
ュール内部でレギュレータがかまされ中のSTM32とRFモジュールが2.5Vで駆動している
からで、ここにVfの高い青色LEDとかを直結すると全く光りませんのでご注意下さい。
ねむいさんまんまと嵌りましたorz無難に赤色で行きましょう・・・。


モジュール自身の設定は"abSerial"なる独特なATコマンド群で可能です。
ちゃんとコマンド表もありますが独特すぎて最初は何がなんだか分かりませんでした。

とにかく"AT+AB なんたら"のフォーマットでモジュールとお話できるようです。
たとえばモジュール全体のバージョンを知りたい場合は・・・
"AT+AB Version"で確認できます。

設定を間違えた時にボーレートを強制的に元に戻す技が現時点で見当たらなかったので
これ以上はまだ触ってませんがSPIやI2Cを吐かせたりSTM32ならではの柔軟な設定が
可能なようです。


というわけで2ヶ月以上前に購入したモジュールをようやくほんの少し弄って紹介
することができました。このモジュール、価格もそこまで張らないので諸般の事情で
RN-4x系のBluetoothモジュールが使えない時の強力な選択肢となると思います。

今現在冒頭の理由で時間がぜんぜん取れなくて買ってもずっと評価してない無線モジ
ュールはまだまだたくさん控えていますのでこんな感じでやっけつの紹介となって
いくでしょうけどもご期待ください!

ESP-WROOM-02を使ってみる3 -そんな電源で大丈夫か-

20161231追:
ESP-WROOM-32ではさらにとんでもない自体に!!1!!!
20161231追:



2か月くらい前にESP-WROOM-02の紹介記事を2点書きました。それを多くの方が
紹介してくださったおかげで閑古鳥が鳴いていたこのぶろぐのアクセスも東海自然
歩道攻略時のころ
の全盛期まで盛り返し私もモチベもムクムク盛り返しております♥

多くの人の目に触れるとなると当然質問も多く頂くのですが「電源投入しても
文字列がずっと垂れ流されるだけでコマンドが全く反応しない
or最初は上手く
動いてたのに急にずっと文字列(orゴミデータ)が垂れ流しになった!ESP8266が
壊れたぞ!
」という不具合についての相談を多く受けるようになりました。

●文字列がダーッっと…
共通項は「文字列(orゴミデータ)が連続して垂れ流されて制御不能になる」です。
結論から言うとESP-WROOM-02に供給する+3.3Vの電流容量不足で起こる現象
なのですが、そのプロセスは以下のようになります。

1.電源投入or外部リセット

2.ESP8266のPOR/外部リセットのイニシャライズ
 (このあたりで文字列(デバッグメッセージ)が吐かれる模様)

3.電気喰いのRF部起動

4.電力消費過多で3.3Vがすぐドロップ

5.3.3Vラインがドロップして2.0V付近になるとESP8266リセット状態になる

6.少したってからLDOの保護機能等が解除で3.3V回復

7."2."に戻る

デバッグメッセージがダーと吐かれた直後にリセット掛かってまたデバッグメッセージが…
を繰り返すので"文字列が吐かれ続けて壊れた"ように見えるわけです。



ねむいさん愛用の秋月さんのXbee用のゲタ基板は150mAのLDOが乗っかっています
がESP8266の電源としてこれを使っていると上記のように2.0V近くまでおもいくそ
ドロップしてリセット->その後負荷が軽くなるので回復->また落ちるを繰り返して
しまいます。
根性があるLDOだと最初は最大定格越えても耐えられるのですが使ってるうちに
段々へばってきて上のサイクルを繰り返し、仕舞にEOSで完全に死んでしまいます。



そんなわけでねむいさんは電流容量1AのぱわふりゃーなLDO換装して多少の
電流の過渡応答にびくともしない最強に強まった電源に満足(LT1963A持ってくるまでも
ありません)でした。

したはずでした・・・!






勿論今回はこれだけで終わるわけではなく、皆さんの設計の参考として実際どれ
くらいの電流を消費しているのかを調べてみました。


ねむいさんのXbeeゲタ基板に+3.3Vの電圧と電流を測定できるように加工をして
電源投入直後や投入後の挙動別に各波形を見ていきます。
各種パラメータはもちろんすべてデフォルトの購入時のままです。
ESP-EROOM-02においては購入時のデフォルトはフルパワーです。


電源投入直後


↑の+3.3Vの立ち上がり時の拡大


リセット直後


RF出力時

ぱわふりゃーなLDO使ってるくせになんで3.3Vが思いきりドロップしてんだYO!
答えろYO!という突込みは後で解説することにしてRF出力時は平均280mA(ピーク値
は350mA以上)バリバリに使いまくっているのが分かると思います。
またリセット直後も40mSecもの間200mA以上(ピーク350mA強)ゴリゴリ消費しています。

ご覧の通り+3.3Vラインに供給する電流容量の事を忘れてESP-WROOM-02を使って
いると大きな電圧ドロップによる不安定な動作に悩まされ続けることになります。
しっかりオシロスコープ使って波形測定して確認する癖付けましょうね…。

ハードウエアの設計に慣れた人ならこんなの事前にオシロで電源ラインの波形を
観測して足回りをしっかり固めておいて当然の基本の"き"なのですが…
ねむいさんの懸念はライトユーザーの方たちがこの問題に引っかかり先に進めなく
なってしまうことです。

プロトタイピング用ボードはハードウエアの差異を隠ぺいしてソフトウエア作りに
集中できるようにするために元となるハードウエアはかなりタフに作りこまれています。
ていうかそうなるべきです。全ては信頼の元に成り立っているのです。

でも残念ながらそうなってないのばっかりですのでこれを機にしっかりオシロ
スコープ使って電圧波形くらいは確認する癖をつけましょうね…。


大事な事なので2度言いました。


macsbug氏の記事では各種Arduinoと組み合わせて使用した際の考察がまとめられて
いますのでプロトタイパーな皆様は一読されることをお勧めします。
氏のブログでは+3.3Vを作るLDOにフォーカスして言及されていますが私が以下で
述べるLDOの入力系統(主に+5V)についての考慮も極めて重要です。必ず読んでください!!!


●USBの+5Vは大丈夫か
上で行った+3.3Vの波形がドロップしちゃいけないのにドロップしてる件も調べて
みました。私の使用環境ではUSBの+5VからLDOで落として+3.3Vを作っています。
そんなわけで今度は5Vと3.3Vの波形を比較してみました。


オイー!!!!!!!!!
安物USB2.0ハブ(しかもセルフパワーなのに)元の5Vがおもいくそへばっていたorz

ねむいさんが使ってるLDOはDIODES-ZetexのZLDO1117ですが最大ドロップアウトが
1.2V(1A時)ありますので元が3.8V近くまで落ち込むくらい電流ひいてる状態だと
そりゃ駄目ですわ…。


↑DIODES-Zetex ZLDO1117データシートより引用
さっきの波形はRF送信時の約300mA近く引いてる時の電圧ドロップの波形ですが
グラフのまんまきっかり1V以上のドロップアウトですねorz
いくらぱわふりゃーなLDO積んでいても元のVinが貧弱だとこうなってしまいます。
あとコンデンサの容量を必要以上にむやみやたらに増やして茶を濁すのはねむいさんは
全くお勧めしません。今度は突入電流で素子が破損する危険性が出ますので。


てわけで大電流を引き出せられるセルフパワーなUSB3.0ハブの方に差し直して
測り直してみました。大分マシにまりましたね。
上半身に比べて下半身が貧弱だとやっぱりダメなわけですね〜足回りをしっかり
固めるのはプロトタイピングにこそ重要だと思います。


プロトタイピング用ボードだとUSBの+5Vを電源供給源としてそのまま利用する
場面が極めて多く出てくると思います。
何も考えないで使っているとこういった罠に陥って無駄な時間を費やしてしまい
ます。これを機にオシロスコープを使って電圧波形くらいはいちいち確認して
行く癖をつけておきましょう。


大事なことなので3回言いました。

20151203追:
ねむいさん的にはバッテリ駆動を見据えるならMAXで1A~800mA位の小型高効率
降昇圧DCDCを組みESP-WROOM-02専用の+3.3V電源とすることを提案します。

逆にUSBの+5V電源からだけしか使用するつもりがないならば超低ドロップアウトな
LDOであるADP3338、値が張りますが攻守共に最強のLT1963Aを提案します。
20151203追:





●おまけ
それじゃ他のWifiモジュールってESP-EROOM-02に比べてどんだけ電気喰ってるの?
というわけで手持ちのモジュールも測定してみました。
もちろん技適はばっちり取れてるのをチョイスしてます♥

その1:Xbee WiFi S6B

電源投入直後


↑の+3.3Vの立ち上がり時の拡大
IDDの測定レンジが違うので注意。


リセット直後


RF出力時
IDDの測定レンジが違うので注意。

XbeeWifi S6Bはリセット直後にガッツリ電流もってくようですね・・・負荷の過渡応答性
にすぐれたDCDC持ってこないと製品レベルに落とし込むのは無理だと思います。
ちなみにBが付かないほうのXbeeWifiはなひたふさんですらどうにもできなかった
のでねむいさんが手なずけることは不可能です・・・・そもそもB無し持ってませんし。


その2:GS1011MIC

電源投入直後


↑の+3.3Vの立ち上がり時の拡大
IDDの測定レンジがこれだけ違うので注意。


リセット直後


RF出力時



GS1011MICは今となっては古き世代のモジュールですが瞬間最大電流は低めに
抑えられています。Adhoc等の限定した用途ならば今でも十分に活躍できるモ
ジュールといえるでしょう。

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ページ目の4096kByte
Flashを参考に各バイナリを書き込むアドレスを指定していきます。

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さんを
信用して(←このアピール重要)
バンバン書き換えまくって使い倒しましょう!!!

Espressif提供のスタティックライブラリを含むSDK使ってコンパイルしたファームでも同じ
理屈でなんだか反論出来そうなので技適を名目に難癖付けるのだけが趣味の人たちには
「私に聞くのはお門違い。Espressifに直接言え!」のお題目で突っぱねちゃいましょう。

繰り返しますが現時点で確実に工事設計認証が無効になり電波法違反になる行為は、
技適マークが刻印されているESP-WROOM-02の金属ケースを外したりもしくは
基板上のパタンアンテナを傷つけたり削ったりアンテナにリード線を半田付けしたり
新たに外付けアンテナを取り付けたモジュールをシールドルームの外で動作させる
ことです。

20160129さらに追:ついに白黒が付いた!!
スイッチサイエンスさんから公式に問い合わせた結果が公表されております。
以下引用
ユーザーによるファームウェアの書き換えが、ESP-WROOM-02の工事設計認証を無効にする可能性について、メーカーのEspressif Systemsに確認をしました。同社は登録証明機関に確認した上で、Arduino core for ESP8266 WiFi chipとSDKを使っている限りにおいては、認証には影響を与えないという回答を下さいました。他の開発環境など、ファームを書き換える部分によっては、認証に影響を及ぼし得るとのことですので、ご注意ください。

引用終わり
SDKを使用してビルドしたファームウェアなら書き換えても最早なんの問題も心配もありません!!
みんな遠慮せずどんどんやりまくれ!!!!!!!!!!!!!!!!!!!

技適マーク付きESP8266モジュール ESP-WROOM-02 を使ってみる






ド ン !



ついにっ・・・!ついにきたっ・・・!

今年の2月に"ESP8266モジュール"が技適取れたとの報(ともの技術メモさん情報より)を
受けて以来、ねむいさんはず〜〜〜〜〜〜〜〜〜っと待っていました!!!

ESP8266モジュール自体は去年から活気付いてきていますがそれまではもちろん技適
なぞ取れていない真っ黒な代物で日本国内ではいつものお仕置き部屋でしか扱えなかっ
たブツでしたが・・・!ESP8266チップ製造元のEspressifさん自らがワイヤレスモジュー
ルを製造に乗り出した折に日本の技適を含む各国の認証を取得して日本でも堂々と
使うことができるようにしてくれました!しかも従来のモジュールたちより遥かに安い単価で!!!


現在技適マークつきの"ESP-WROOM-02"モジュールを確実に購入できるのはタオバオの
本家店舗かもしくは検索で出てくるamazonの国内店舗からのようです。ねむいさんは
タオバオの本家から代行業者さん経由で購入しましたが10個で国際/国内送料コミコミ
で7000円以下でしたから単純計算で一つ当たり700円以下になり時間はかかりましたが
満足しています♥(代行業者さん使ったの数年ぶりです)

注意すべきはAliexpressやebayで"ESP-WROOM-02"として販売されているモジュール
です。こいつらは各国の認証が取れる前の開発者向けのモデルを取り扱っていて技適
マークどころかFCCマークすら存在しない超はずれのモジュールばっかりです!!!
先走って買うとまずハズレが送りつけられるので急がば回れの精神で落ち着いて確実に技適
マーク付きのやつを買える購入先をしっかり選びましょう。

ねむいさんのような哀れな子羊を増やさないように・・・掴まされたorz

腹いせに技適じゃない版のケース引っぺがしてやりました!!
SPI-ROMは貴重なので回収しましょう・・・



さて、それでは早速使っていきましょう!ESP-WROOM-02は電源立ち上がり後の
動作を決めるための外部プルアップやプルダウンすべき端子がいくつか存在しています。
配線を適当にしてると動作不良の元になるのでしっかりと!


前回と同じくピン配置を考案してみました。秋月さんのXBee変換モジュール上に乗っ
けることを想定した配置です。今回も合言葉はb・・・うぐぐ・・・頭が・・・
緑の網掛けの部分は外部接続必須の端子です。ブートセレクトを制御するIO15,IO2,
そしてIO0の端子の処理についてはほとんどの局面でSPI-ROMブートしか使うことは
ないと思いますがUARTブートローダモードなどに手軽に切り替えられるように10kohm
程度の抵抗でプルアップ/プルダウンすべきです。


こんなかんじで秋月さんちのRN-42用Xbee変換基板に搭載してみました。ひとまず
最低限必要なピンを配線しておきました。


ちなみにESP-WROOM-02もwi-fiモジュールなのでリセット直後はどうしても電流を消費して
しまいがちです。XBee用2.54mmピッチ変換基板に元から乗っている電流容量150mA
のLDOだと到底まかなえないので私はDIODES-Zetex社のセラミックコンデンサ使用可能な
ぱわふりゃーなLDOで3.3Vを供給しています。
さらに今は1608サイズで温度特性の良い大容量MLCCが秋月さんで購入できるので少ない
スペースの実装にフル活用しています★




まずはUARTからターミナルを用いてESP-WROOM-02と会話してみましょう。
デフォルトのUARTの設定は115200bps,N,8,1でフロー制御無しです。また、ATコマンド
の終端はCR+LFが必須
となりますのでご注意ください。


まずは基本の「AT」


お次はバージョンチェックコマンド「AT+GMR」です。技適版ESP-WROOM-02は5月上旬に量産
開始でしたからほんとに初期のものですね〜。今はATバージョンも0.25まで進んでます。


UARTで通信できていることが確認できたらお次はwi-fiの通信を使ってみます。
通常のUARTのように使用できる透過モードでwifi2serial化してみましょう。

まずは事前にホストPCとwifi接続し、さらにNetCatを立ち上げて接続待ち状態にして
おきます。今回は1000番ポートと使用しますのでコマンドは下記のようにします
「nc.exe -L -p 1000」

ESP-WROOM-02は購入直後はSoftAPモードになっているはずなのでたとえばホストPCと
wifi接続した時のホストのIPアドレスが192.168.4.2ならば・・・
「AT+CIPSTART="TCP","192.168.4.2",1000」とします。


コマンドが成功したら上記のようにCONNECT OKが帰ってきます。


接続に成功したら「AT+CIPMODE=1」でコマンド透過モードに切り替えます。
このコマンドを打っただけではまだ切り替わりません。


さらに「AT+CIPSEND」を打つことで「>」がUART側ターミナルに現れてようやく相互通信が
可能になります。


Nemuisan!を送信してみました。NetCatの端末のほうに送信できています。


逆にInaisan!をNetCat側から送信してみました。UARTのターミナルにしっかりInaisan!
が現れましたね♥


透過モードではATコマンドが使用不可能になるのですが「+++」を打ち込むと解除できます。
その代わり「+++」をすばやく打ち込まないと駄目です。


一旦ATコマンドモードに戻っても「AT+CIPSEND」ですぐに透過モードに復帰可能です。




という感じに取り急ぎですが購入直後から簡単にできるごく基本的な操作を紹介
しました。こんな凄まじいモジュールが技適マークつきで1000円以下で購入できて
手軽に利用できるようになるなんて(なんか前回もいったような気がしますが)
ほんとに良い時代になりましたね♥

新しい時代の幕開けです!

技適マーク付き★RN-42とRN-41を使ってみる


これがっ!

技適(このモジュールでは工事設計認証)

マークだっッ!!!!




はぁはぁ…ようやく電磁波と騒音と振動が遮断されたお仕置き部屋から出ることが
できた…♥なんだかねむいさんもきれいな体に成れたって感じです…

かつては電波法の絡みで脱着可能なコネクタを必ず持つモジュール以外では認可が
降りなかったせいで微妙に使いづらく一つ1万円以上もしやがっていたBluetoothSPP
モジュールですが…、

少し前に電波法に規制緩和があり半田付けタイプのモジュールにも技適マークを
貼ることが許されるようになり
、2015年現在では秋月さんよりMicroChip社製の(元
RovingNetworks製)のRN-42
を購入することで"確実に"技適マークがモジュールに
付されているBluetoothSPPモジュールを安価に入手し堂々と使用する事ができます♥

ちなみに"確実に"と強調した理由は技適(TELEC)の認証が降りていてもモジュール
本体に技適マークが貼られたり刻印されていない物が流通しているからで、特に
中華系海外通販などでは技適マークが無い品種が圧倒的に多く購入して実物を確か
めるまで分からず結局お金と時間を無駄にしてしまうことが多いです。

秋月さんちで購入できるRN-42の素の(半田付けタイプ)モジュールは1700円とかつて
のボッタ価格の連中と比べると破格です。しかもHC-05とかと違って電波法違反に
ならずいろんな場所で思う存分使いまくりできます。さらに市場に捨て値で出回って
いるHC-05とその眷属ほとんどが性能足らずのぱちもんなのを鑑みるとRN-42がいかに
非常に安価でなおかつ安心して使用できるモジュールであるかが分かります。
因みにHC-05の正規品は国際送料合わせると秋月さんとこでRN-42買う方が安くなり
なおかつ到達距離もHC-05より性能が高いので、2015年の今ではわざわざHC-05他
技適マークなしの怪しい中華モジュールをコソコソ使う理由が何一つ無いです。

ぇ?私?私はちゃんとキワモノなのを理解して電波法違反にならない様に電磁波と
振動と騒音が遮断されたお仕置き部屋で紹介してきましたのでいいんです。
私はいいんです!


ゲフンゲフフン・・・・せっかくきれいな体になったのにまたダーティになりかけたのでRN-42
を真面目に使っていくことにしましょう…



私が秋月さんとこで購入したのはモジュール単品に加えてXBee風に変換基板をあつらえた
もの
です。XBee感覚で使用できるのでお手軽です★現在はさらに安価な秋月オリジナル
のモジュールもありお求め易くなっています♥

いつもの汎用無線モジュールドックでXbeeと同じように接続!
しかし・・・

最初にホストPCで認識させたときはなんでかBuetoothHIDデバイスになってしまい
ました。どうやらデフォルトの設定では電源投入時にIO11をHiにすると強制的に
HIDキーボードになってしまうようです。もともと本家Xbee用の下駄を転用していて
XBeeのファーム更新で使うDTRが丁度RN-42モジュールのIO11につながることになる
ので私の環境では頻繁にこうなっちゃいます。

HIDキーボードモードをキャンセルしたい場合は後でも紹介しますがコマンドモード
で"SH,0000"を送信してやると常にSPPモードで使用可能になります。HIDモード不要
なら真っ先に設定しちゃったほうがいいでしょう、このほか、RN-42ではHC-05たち
とは比べ物にならないくらい幅広い柔軟な設定ができます。
(どっちも同じCSRのBC417なのに)

SPPモードで認識するとこんな感じになります。


XBee風のRN-42のピン配置をまとめてみました。電源投入時不用意にHiレベルにして
しまわないように使わないピンはNCに、その一方でハンドシェイク不要の場合はCTS
とRTSは直結にしておいた方が無難です。
オリジナルのXBeeと比べるとフロー制御用のCTSとRTSが逆のあべこべになっているので
XBeeアダプタを流用されるときは特に注意してください!!ファック1!!!!!

また、公式のデータシートでは一部に誤植があってGPIO6と8の説明があべこべに
なってたり何故かGPIO7が二つ存在していやがるのでご注意ください。


ひとまずXBee風のRN-42の購入直後から簡単な設定までもう一度やってみましょうか。
ホストPCとUARTで繋がる状態にしてUARTのターミナルを下記の設定にします。
・115200bps,N,8,1
・フローコントロールあり(RTS/CTS)
このフローコントロールありが曲者です。前途のようにちゃんとした手順でホストと
RTS/CTSを繋いでおくか、もしくはXBee風のRN-42側でRTSとCTSを直結にしておきま
しょう。解放は厳禁です!

こんな感じに直結用の切り替えスイッチつけておくと楽です★


電源投入後は接続待ち状態になります。この間にターミナルから"$$$"を打ち込む
ことによりコマンドモードに入ることができます。各コマンドは改行をもって受け
付けられます。改行コードはCRもしくはCRLFとしてください。

・コマンドモードに入る
$$$
・ファームウエアバージョン確認
V
・設定を工場出荷時に全て戻す
SF,1
・ボーレートを230400bps,N,8,1に変更
(リセット後に反映されます。コマンドモードも設定されたボーレートとなります。)
SU,230400
・HIDモード切り替え用キーを無効にする
SH,0000
・PINコード2613に変更する
SP,2613
・コマンドモードを抜ける
---



設定がちゃんと反映されていればモジュールをリセット後ターミナルを230400bpsで
開きなおしてコマンドモードに入り"D"コマンドで上記のように表示されます。

ちなみに"R,1"でソフトウエアリセットも可能です。


Bluetooth側の仮想COMポートとホストとの通信はもちろんバッチリです♥


ちなみにUARTからだけでなくBluetooth側の仮想COMからも同じく設定が可能です★





ところでRN-42よりさらにハイパワーなRN-41というClass1な最強に強まったモジュール
も存在しています。以前は技適を取得できていなかったのですが近年は取得され、技適
マークの入ったモジュールが出回っています。


もちろんねむいさんも入手済みです♥Mouserはこの技適マーク入りのモジュールが"確実に"
購入できます。使い方はRN-42と同じですがRN-41はClass1のハイパワーな送信(デフォル
トが最強出力設定になってる)が可能なので当然消費電流も多く、最大100mA,RN-42の2倍
以上電力を消費しますので電源周りも強化必須です!

しつこいくらいにアピール!!!!

秋月さんちで販売されているXBee風変換基板でRN-41もBee化してみました。
合言葉はbe・・・うっ・・・あ、頭がッ・・・!
















さて、せっかく日本国内で堂々とお外で使いたおせるモジュールを手に入れたので屋外で
実践してみたいところですね・・・自宅からそれほど遠くなく、100m以上障害物がない広い
敷地がある場所といえば・・・


京都御苑(GYOEN)!  Kyoto Imperial palace park!

ここなら思い存分実験が可能です!
そうだねお散歩ついでだね。


RN-41/42側は携帯用USB電源を使って電源供給し離れた場所に置きます。
ホストPC側はずーっと昔に買って今も使っているPLANEXのClass1のBluetoothUSBドングル
をつけて何mくらいまでデバイスが見えるか確かめてみました。


RN-42はClass2で額面はオープンサイトで飛距離10m程度のはずなのですが、なんか10m
どころか20mくらいまでデバイス安定してつかめました・・・!?
頑張ったら不安定でしたが30mまでいけたです・・・RN-41いらんやん!


お次は本チャンのRN-41です!


・・・
これ余裕で100m以上あるんじゃないかな・・・

力こそパワー!



そんなわけでよほど力を欲しない限りは無理してRN-41使わなくてもRN-42で事足りる
と思います。無線モジュールはここ数年で規制の面でも値段の面でもハードルが低くな
ってほんとに良い環境になってきましたね♥

中華Wirelessなアレを試す6号機 -アレをMasterで使う-

私が中華wirelessモジュールの評価を行いはじめて1か月くらいした頃、いつの間にか
お仕置き部屋の端っこにサンドバッグが吊り下げられていて私てっきり社員向けの
ストレス発散用かと思い込み専務も粋なことするもんだと思いながら私もそれをぺちぺち
殴って遊んでいました。

その数日後くらいに全社員向けに「稼働試験室にサンドバッグ取り付けた人、すぐに
撤去してください
」と専務から怒りの連絡が降りてしまいさらにお仕置き部屋の入口に
この中でトレーニング運動等激しく体を動かす行為はしないでください!!
などという変な意味に曲解されかねない文章をしたためた変な張り紙が貼られてしまった
次第でございます。めでたしめでたし。















ぇ?続けなきゃダメ?…わかりました…。
ハードウエアは同一ながらアレの機能縮小版ともいえるアレですが、使用されている
日本国内の…ゲフンゲフフン海外のホビイストの間ではMaster/Slaveは出荷時にしか決める
ことが出来ず、もっぱら手に入るのはSlave専用であると言われております。

しかしながら実はこれらは古い情報で実は条件がそろえはアレをちゃんとMasterで動作
せしめられます!

前々回のぱちもん大戦の際に購入した正規版HC-06をのせかえています。


ファームウエアのバージョンストリングが"linvor 1.8"の場合


AT+ROLEコマンドでMasterに変更できます!コマンド入力して電源を再投入
した後はMasterになっています。ペアリングしたいモジュールとPINコードを
合わせておけば電源投入後は自動的にペアリングしてくれます♥


…がなぜかHC-05がスレーブの場合は上手くいきませんでしたorz
HC-05がマスターでHC-06がスレーブならちゃんとペアリングしてくれるんですけども…
そこで今手持ちのHC-06がMasterで繋がるかどうか手持ちのBluetoothモジュールを
片っ端から動かしてみました。

繋がる★
HC-06
HM-06
RN-42(技適マークあり♥)
RN-41(技適マークあり♥)
HM-13(DSR側のみ。BLE側はもちろん繋がりません。)
AT-05
SPP-CA

繋がらん##
HC-05
 ->同じメーカなのになんでだYO!
BL3211Mv5
 -> まぁこれはしょうがない

ぇっと技適マークがついてるRN-42,RN-41以外のやつは何かの呪文です。
どうしても使いたい場合はちゃんとねむいさんみたく電磁波と振動と騒音が遮断
されたお仕置き部屋の中でだけで実験してくださいね★






話は変わりますが時代は変わって技適マークの入ったWirelessモジュールも格段に
入手が容易になってきています。ねむいさんもそろそろお仕置き部屋から脱出を
図る時がやってきました!!


っていうわけで次回はこれですよぅ!

中華Wirelessなアレを試す5号機 -かなりアレなアレをアレ-

今巷で噂のwifiなアレ、telec認証を通過したとの話がありますがその後全く音沙汰が
なくちょっと心配です。ねむいさんはいつになったら電磁波と振動と騒音が遮断された
連続稼働試験室(通称お仕置き部屋)から出られるのでしょうか?

シールドルームと言う名のラヴィリンスに閉じ込められた囚われの姫騎士は今日も
中華のぱちもん市場からアレなアレをつまみ上げ紹介してくのでした。くっ殺せ…!





あんたオゥク側だろっていう突っ込みは無しで!
真空にしてもねむいさんは寝ませんよぅ!











さて、戯言はこの辺にして今回は表題のとおりかなりアレなアレをご紹介します。
モジュール化されたBlueTooth SPPデバイスなアレです。

Aliexpressの幾つかの店舗でもこのモジュールは取り扱われていますが、メインチップに
何故か黒塗りが掛かっていたりモザイクが掛かっていたりしてます。大陸の方の中国人に
とってこのモジュールは猥褻物として扱われているようです(棒


正体はおなじみBEKENのBK3231です。以前紹介したアレでも使用されている中華Bluetooth
向けチップですね。フラッシュロムはチップに内蔵されています。


・・・
金端子の作りこみの雑なところにチャイナクオリティを感じますね・・・



てわけでモジュールのモジュール化です。ピン配置は何とかわかりましたがこっからの
道のりが遠かった…。



とりあえずBlueToothとしては見えました。こんな感じになってます。
このモジュールはSlave専用となっています。


で、肝心のコマンドなのですがこれも要領がつかめず苦戦しました。
こちらの方のサイトでも実際に苦戦して使い方を見出されてようでねむいさんこの
先達の貴重な資料をありがたく使わせてもらいました…。

このモジュールにATコマンドを打つ時はちょっと注意が必要です。一般的なHC-06とかの
モジュールだとUARTからATコマンドをやり取りして各種設定を行います。しかしこの
AT-05は逆です!!BlueTooth接続で作った仮想COMポートからしかATコマンドが
通りません!
UART側からはエコーどころか何も帰ってきませんのでご注意下さい。
でもこれはこれでリモートで設定を変えられるので使いようによっては便利かもしれ
ませんね。

そしてATコマンドを通すためにはまず"開けゴマ"を打たなければなりません。

#AT#SET=9#

上記コマンドは数字で設定した数x5Secの間ATコマンドモードになります。ここでは
"9"を設定しているので45Secの間ATコマンドモードとなるわけです。
これが"開けゴマ"です。


成功するとこんな風にOKが返ってきます。ちなみにUART側にも無駄にOKが吐かれます。
#AT#SET=0#

ATコマンドモードから抜けるには上記の数値をゼロにします。

ここで注意すべき点ですがこれらのコマンドを送る際は人間の指でゆっくり一文字
ずつ入力してもATコマンドとして受け付けてくれないことです。予め送るコマンドを
メモ帳なりに書き溜めて置いて一行分一気に送信しなければなりません。
TeraTermだとターミナルにこぴぺすればババッと一気に送ってくれます。その他の
ターミナルソフトでもマクロ機能があれば同等の事が可能です。


設定した情報はGETコマンドで参照ができます。
設定値は次回の電源投入後より反映されます。


またボーレートは一般的なUARTとして実際に使い物になる値は115200bpsまでで、それ
以上はマイコンにあまりなじみがない変則固定値となっています。同じBK3231のSPP-CA
は230400Bpsも余裕なのですが…やっぱファームが命ですね〜。





そんなわけでかなりキワモノな部類のモジュールでしたがHC-06とかよりもさらに安い
4$以下で購入できるので値段重視で割り切って使用される場合にどうぞ。
もちろん電波法違反にならないようにねむいさんのように電磁波と騒音と振動が遮断
されたいつもの建前で今回も歯切れ悪く〆させていただきます・・・!

中華Wirelessなアレを試す4号機 -ぱちもんのぱちもんの-

新年度に入りましたので今年で6年目を迎えてしまった当ぶろぐでもフレッシュメンの
見本になるようにエンジン掛けていきますよぅ!
記事のタイトルも近いうちに紹介するブツを見越して"Bluetooth"を外してWireless全般に
してみました。




前回の記事ではBluetooth-SPPデバイスとしては皆さんもよくご存知のアレアレ
ぱちもんの事を書かせていただきました。はっきり言って世に広まってるのはパチもん
の方が世に広く行き渡っているのではないかと思うほどですがそこのところをもう少
し突っ込んでこのモジュールを見ていきましょう。


HC-05,HC-06はCSRの"BlueCore4-External(BC417143B)"というチップが搭載されて
いておしりに付いている"External"がミソで外付けのNORフラッシュメモリにBluetoothの
基本となるスタックやアプリケーションのバイナリが仕込まれています。
その外付けNORフラッシュにはBC417のSPIインターフェース経由で書き換えが可能です。


主要な情報はRobin Gross氏のHC-05ハックに関するブログ記事です。
内容は至って単純かつ容易でAVRのISP書き込みのようにCSRチップをISPモードにして、
CSR提供のツールで書き換えを行うだけです。

ですがここで思わぬ壁が立ちはだかります。書き換えに必要なハードウエアの回路図
も提供されていますがLPT接続を前提としており、残念ながら今日日のレガシーフリーな
PCにはそんな旧世代のものなぞ有りません!
そんなわけでUSB接続のフラッシュ書き換えツールを探す事になりました…。まぁAliexpress
にはCSR純正ライタのぱちもんがゴロゴロしてるのですがそれを購入すれば終わる話
ですがそれを買わないでもArduinoを使用したりFT232RのBitbangモードを利用してCSR
のツールから直接書き込み可能なLPTアクセス乗っ取りDLLが公開されてたりします。
さらにCSRの純正ライタの自作を試みる人もいました。

ねむいさんが注目したのはだいぶ前にエラッタ持ちチップ処分セールで500円で叩き売り
されていたStellaris-Launchpadを使用したUSBプログラマのエミュレーションです!

以前はStellaris-LM4Fなんて名前でしたがTIがLuminary要素が残っていたCortex-M3を
情け容赦なくすべて捨て去ってTIVA-Cに変わったというニュースを聞いたのを最後に
ずーっと積み基板でしたがここでようやく日の目を見た感じがします。

GitHubにあるプロジェクトはGCCではありませんでしたが移植は極めて容易であっさり
ねむいさんのビルド環境にも対応(コレがベースです)できました。欲しい人はメールくだち


もちろんCSR USB<>SPI converterとして認識できます♥


相変わらずのやっけつ配線ですが…


ねむいさんが生贄として使用したのは前回紹介したCSRチップがリマーク品の怪しい
HC-05です。実はこれは中のファームウェアのバージョンも2015年現在広く流通している
V2.0ではなくV1.0のものでした。動作がいろんな面で怪しいブツです。


無事認識されました♥

ここから外付けNORフラッシュの中身を吸い出したり書き換えたりが可能です!
V2.0のファームを書き込んでみました。


無事V2.0にアップデート完了!
でもリマーク品なので動作が怪しいのは変わりません・・・。



ちなみにHC-06のぱちもんも持っていますがこちらは2014年に騙されて購入したもので
Linvor1.8と呼ばれるHC-06向けの最新のバージョンのファームが書き込まれていました。
HC-06もHC-05もハードウエア的違いは全くなく、ファームの違いだけなので若干安い
HC-06を買ってHC-05化することも可能です。

こんなわけでHC-05のガワだけ真似たらあとはファームウエア書き込こんでぱちもんを
作り放題なわけで、そういういきさつがあって世にはHC-05やHC-06のぱちもんが乱舞
しているわけです。

ぱちもんはぱちもん故にいろんなところが適当でたとえばモジュールごとにチューニング
されて同じにならないはずのRF周りのパラメータとかもでたらめでオリジナルは飛距離
10m保証のはずなのに障害物なくても2m位しか電波届かないとかなんかLEDの動きが
おかしいとかそもそも全く動作しないとか当たり前のようにあります。
安物買の銭失いというよくあるチャイナ・リスクに陥りやすい代物です。

結局一番安全なのはメーカから直接正規品を購入する以外にないのですが、日本国内
の技適を取得出来ていないので外部に電磁波が出て行かない環境でしか使用でき
ませんしねむいさんも外部への電磁波と騒音が遮断されたお仕置き部屋(通称:連続稼働
試験室)内でしか実験してませんので最後の最後でいつもの建前で本日の記事を
〆させていただきます!


しまった…エンジン掛けたとたんにエンストだ!

中華Bluetoothなアレを試す3号機 -ぱちもん大戦-

え?STM32のFatFsの続きはどうしたって?
ちょっとかなりヤバい不具合が発覚したので予定の動作検証は私以外の環境でも動作確認
できて問題ないことが確認できるまで様子見です・・・

その代わりルール違反ですが騒音と振動と電磁波が遮断されたお仕置き部屋で実験したら
ルール違反とならない例のアレをご紹介しますのでご期待ください!(※建前)
それでは張り切ってイってみましょーか★




ついに来ました!中華bluetoothモジュールで超有名なアレです!!
文字通りアレで通じるくらい有名なアレです!もちろん役に立つ使い方なぞ紹介しませんが
ねむいさんは斜め45度の角度でこのモジュールに切り込んでいきます!

それはさておきHC-05は広く知れ渡っているのと複製が容易だったのが災いしてぱちもんも
たくさん存在しているそうです(次回以降にファームの吸出しについて解説します)。
公式のHP公式のtaobao店舗では稲妻エフェクトまで出してぱちもん撲滅に力をいれていて
ぱちもんの見分け方とかも公開しています。

どうやら表にシルクが全くなく、裏のシルクが真っ白で変なデジタル数字が降られているのが
ぱちもんのようですね〜・・・


・・・
オイーーーーーーーーーー!!!!!!
ねむいさんAliexpressでHC-05の"正規品"を確認して購入したのですがおもいくそぱちもん
掴まされてました・・・orz

どうすんのよ5つも買っちゃったじゃないのさ!


なお、冒頭の奴は表にシルクがあるタイプで正規品・・・と見せかけて写真ではわかり
づらいですがCSRのチップ見たいな奴が別の製品を削ってCSRのレーザ刻印しなおしてる
リマーク品という超ぱちもんですorz動作が正規品と比べてハードウエア的におかしいorzorz
20150430追:
リマーク品ってどういう感じなのかよく見たいというリクエストいただきましたので、
どアップ画像貼らせていただきます

お 分 か り い た だ け た だ ろ う か ・・・
改竄の形跡がわかりやすいエッジの部分を接写してみました。
思いっきり鑢かなんかでゴリゴリ削ってレーザーマーキングした痕跡がわかりますね。


ねむいさんが思うにぱちもんメーカーは少しでもコスト下げるためにシルクとかを極力単純に
するか省いてるものが多いと感じました。しかもAliexpressやebayでは公式の画像を無断転載
して平気で商売してるとか余裕なのでやっぱしそういう場所で買い物する限りまずぱちもんを
掴まされると思ってよいでしょう。

ちなみに別の店舗でHC-06のXBee風モジュールも購入したのですが見事にぱちもんでしたorz


・・・
というわけで気を取り直して改めてwavsen(广州汇承信息科技有限公司)から直接正規品を
購入
してみました。値段はちょっと高いですが保障を購入しているのですから安いものです。
なんとHC-05とHC-06はSIGにちゃんと登録があります
でも日本国内で使うのは御法度なのは変わらないわけで聖闘士星矢ハーデス編に例えたら
正規の冥闘士(スペクター)だろうが寝返ってハーデスに従った奴らだろうが処女座のシャカから
見たら等しくただの敵なので天魔降伏なのですがねむいさんもルール違反にならないようにちゃんとお仕置き部屋で実験してるわけで(※建前)

大陸のほうの中国の人とのやり取りでしたが英語が通じて会計もスムーズに済んでしかも
お礼のメールまで返信してくれたのですが大陸のほうの中国人が金をちょろまかさずたいした
数も購入してないのに敵対してるはずの日本人の私にこんなに親身に接してくれてちょっと
この人たち優し過ぎるんじゃないかぱちもん作ってる奴らにいいように利用されてるんじゃ
ないかと余計なこと考えてしまいましたがほんっとに余計ですね。



というわけでやってきましたよう!(右端のチェックマークないのはHC-06)



これが!

本物の!

証DAAAAAAAAAAAAAAAAA!

なんと正規品には"HC"のロゴが振ってある特注品の水晶を使っています。そこいらのぱちもん
とはやはり格が違いますね!



ちなみにファームウェアバージョンは"+VERSION:2.0-20100601"でした。これが決定版
ファームのようですね。HC-06のほうはV1.8でした。ちなみに世に流通しているぱちもんも
"+VERSION:2.0-20100601"です。それは冒頭で述べたとおりぱちもんがこれら正規品から
ファームを吸いだし精巧なぱちもんを作っていたからです!
そんなわけでどうやってファームを吸い出していたかの詳細は次回に続きます!

中華Bluetoothなアレを試す2号機


ルールに縛られて使いづらいくせに高価なものを使うよりかはこっそりと安価で有用な
ご禁制を使った方がいい時もあります。よくありません!
現在ではスマホ連動のBlueTooth地鶏棒が販売されていますが技適が取れたもの
よりもとれてない中華製のはかなり安くて海外のネット通販で日本国内で使用すれば
電波法に違反することに気付かず買ってしまう人もいるようです。
2020年の東京オリンピックに向けて海外の旅行客が日本国内では法律違反となる
機器の持ち込みをするケースが増加するため、現在法律面でそれを緩和する調整が
行われています。なおあくまでも外国人向けで日本人には関係なさそうですorz

日本国内ではこういった違法になる機器の販売はほぼ完全に野放し状態ですが使用に
関してはきっちり罰則規定がありますので今回も副業先にある電磁波と音波と振動が
完全遮断された連続稼働試験室(別名お仕置き部屋)で実験という形で行っていますので
間違っても野外や電波の漏れる窓辺では行っていませんのであしからず!
↑建前


前置きが長くなりましたが今回もそんな関係でアレ呼ばわりです。aitendoさんでも
堂々と販売
しておりますがきゅうる村氏のブログ記事の紹介にもある通り正式名称は
まったく別
で代わりにSPP3231とかいう超適当な名前が付けられておりブツどころか
販売側の姿勢にもチャイナクオリティが感じられる一品です。

さて、こちらのモジュールはBolutekというメーカが製造販売していてAliexpressでも
店舗を出して中国直販
しています。メーカー直販なので正規品とも言えますね。
しかしながら、日本で使用不可能なのは変わらないので聖闘士星矢ハーデス編に
例えると正規の冥闘士(スペクター)だろうが寝返ったやつだろうが聖闘士から見たら
同じなわけです。そいえばこのメーカー、ほかのページ見るとアレのそっくりそのまま
のぱちもんも作って名前も同じで堂々と売っていますよ…。



まぁそれは置いといて実験してみましょう。あくまで動作実験です実験!!!

表裏はこんな感じです

前回と同じくBEKENですが型番は違ってBK3231Qなるものが使用されています。

いつものモジュールのモジュール化。
これはデータシートもATコマンド表もメーカーから配布されているので助かります♥
ATコマンドモードに入るKEYは存在せず、ペアリング前にATコマンドを発行して各種
設定を行います。購入直後のUARTは9600N81に設定されていました。HC-06やRN4xXV
では電源投入時に特定のポートのレベルを固定するとボーレートが固定値になります。
このアレでもできるかどうか試してみると固定化出来ませんでした・・・orz
HC-06と一部だけポート互換のようです。変換基板は流用できますのでこちらでも問題ない
と思います。しかしながらコマンド体系はHC-06と違ってATコマンドの末尾にCRLFを必要とし、
HC-05に近いものになっています。データシートやコマンド表見るとHC-05からのこぴぺも
あってまさにぱちm…互換品にしておいてあげましょう(上から目線で
ちなみにSlave固定だそうなのですがROLEコマンドも効くっぽくみえてMasterにできる
のかなと思ったら電源再投入でSlaveに強制的に戻されます。結局Slave専用です。


バージョンストリングはこんなのです。同じ会社のHC-05の丸パクリ品と同じバージョン
ストリングですがホントにこれが正しいのかよくわかりません。チャイナクオリティですね…。


電源投入時やペアリング時・解除時は補助メッセージが出ます。


Bluetooth SPPデバイスとしてはレスポンスもサクサク軽快で230400bpsでもばっちり使用可能
です。安さを求めるならばHC-05やHC-06よりもこちらをお勧めsh

ゲフンゲフフン・・・日本国内では電波が外部に絶対に漏れないような環境で実験目的のみで
使用しないと駄目ですよ!!!!!!!
↑しつこいようですが建前




20151125追:
poke様よりコメントを頂いたのでQが付かない方のモジュールも紹介します。
こいつの正式名称は"SPP-C"です


BK3231Qから小さくなって機能もシュリンクされた感じでしょうか。
尤も私たちが触ることができる周辺機器はUARTだけですけど。


ちなみに中身(ファームウェア)はSPP-CAと全く同一でした。

中華Bluetoothなアレを試す

みなさまあけましておめでとうございます。
今年も当ぶろぐと私たち虹裏メイドをよろしくお願いいたします。

ぶろぐのメインコンテンツが自然歩道/低山ハイクにシフトして電子工作関連で訪れる
人もほとんどいなくなって久しくなりましたが、過去に提供した情報につきましては
後から見に来てくれた方を困らせたりすることがない様に正確性を保ちつつ整備を
続けていく所存ですのでご安心ください。

さらに、これから発信していく情報に関しても去年末の地図の件のようにルール違反
ならないようにしっかり精査をしたうえで提供していくよう心がけたいと思います。
ルールは守ってクリーン行きますよぅ!

●中華Bluetoothなアレ一号機

そうだね
いきなりルール無視のダーティファイトだね。
勿論日本国内の技術基準適合証明なぞ取れてないので型名すら言うことができずアレ
呼ばわりです。使用に関しては副業先にある電磁波と音波と振動が完全遮断された
連続稼働試験室(別名お仕置き部屋)で実験の形で行っていますので間違っても野外や
窓際とかで使うようなルール違反なんかしてませんよぅオホホホ♥
↑建前

このアレはBluetoothのSPPが使える、つまりUARTを手軽に無線化できる便利な代物です。
しかも値段もいずれ紹介するアレよりも安いです。

しかしピン配置くらいしか情報がわからず最初は四苦八苦しました…が何とか使い方を
見出しました。



Bluetoothで有名なのはCSRのチップですがこれはBEKENなる大陸の中華製無線チップ
のようです。さらにそのチップから私のぶろぐでおなじみの台湾製cortex-M0,NuvotonM051
シリーズが繋がっています。UARTの信号はこちらからやり取りを行っています。


裏返すとご丁寧に信号名を振ってくれています。
実際に操作できると思われる信号はKEY/LEDとTxD/RxDくらいでした。しかも他のSPP
モジュールと違いI/O電圧が厳格でRxDにVCC(MAX3.3V)を超える電圧をかけると動作が
即座に停止しやがります###
M051自身はは5V駆動可能ですが5VトレラントI/Oではないのでこうなるようです。


モジュールから脚を引き出して汎用コネクタで差し替え可能にしておきます。



ねむいさん以前から少しずつ自作のワイヤレスモジュール接続用ハブを作ってきました。
中心部にはFTDIのFT232R基板がありこれはVCCIOとして5Vを突っ込んでいます。


てわけでTxDからは抵抗を介していますが5VCMOSレベルの信号が出ているので上記モジュ
ールを使うことが出来ず泣く泣く5VCMOS->3.3VLVCMOSへの電圧変換を挟みました。
(って抵抗でお茶濁してた今までがルール違反ですが)。


また、KEYをHIにして電源を投入するとATコマンドモードになるそうですがデータシート
がどこにも見当たらなかったのでコマンド探しの旅から始めました…。
ひとまず9600N81,CRLFありで基本の"AT"に反応しました。


"AT+VER"
"AT+BAUD"
も見つけました。ボーレートさえ変えられれば何とか使い物になります。ボーレートの
設定に関してはHC-06と似たような感じですね。しかしデバイス名やペアリングキーの
設定は一切できない男らしい仕様のようです。


PCからはこんな感じに認識されました。同じ奴何個も使う時名前変えられないので
混乱必須ですね。


ペアリングキーがないものの追加されたSPP-COMポートを開こうとするとこんなダイアログが
出てきます。もしかして隠しで設定コマンドあるのかしら・・・。


それはさておき230400bpsでも余裕で使用できます。スレーブ専用・フロー制御無しUART
として使うと割り切れば十分に実用可能でしょう。マイコンの工作ではTxD,RxDさえあれば
問題ないですし。

そうやって格闘していたらひょんなことから同じモジュールを使用していると思われる
ピン間隔変換基板に半田付けされたモジュールのモジュールを販売してるところを
見つけました。そこのデータシートを見る限りではやはりATコマンドはボーレートくらい
しかいじる項目がないと言う極めて男らしいブツでしたこれ。


・・・というわけで去年夏前くらいからBluetoothのSPPデバイスをはじめBLEにも手を出して
いろいろためしてきてますのでこのような形で順次紹介していきたいと思います。
中華Bluetoothモジュールは中華TFT-LCD並みに魅力的なのですが何度も言いますが
日本の技術適合証明なんてあるわけないのでクリーンなコンテンツを目指すねむいさんの
ぶろぐとしましては…おや?なんだこんな時間に…



年 始 早 々 こ ん な 内 容 で す み ま せ ん ! !

Go to top of page