FTDIのVCPドライバ(2年ぶり4度目)

EPS8266のボードを接続して、書き込みしようとしていた時に気付いたこと。

やってたことをメモしておく。

 

ファームウェア書き込み前、最初にEPS8266ボードのチップIDをチェック。

 $ esptool.py -p /dev/cu.usbserial-A50285BI chip_id 

 esptool.py v2.0-beta3

 Connecting....

 Detecting chip type... ESP8266

 Uploading stub...

 Running stub...

 Stub running...

 Chip ID: 0x00fac02c

 Hard resetting...

 

では続けてフラッシュID。

 $ esptool.py -p /dev/cu.usbserial-A50285BI flash_id

 esptool.py v2.0-beta3

 Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____

 A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header

というわけで、デバイスが認識されなくなってしまった。

 

なんかUSBが認識してないというか、怪しいんじゃないかと思ってEPS8266を接続しているFTDIのドライバを確認。

 $ kextstat | grep FTDI

  179    0 0xffffff7f8390b000 0x7000     0x7000     com.FTDI.driver.FTDIUSBSerialDriver (2.3) ECC3AF36-431D-370D-86F2-5237785E9CF8 <145 16 5 4 3 1>

認識してるけどなあ。

 

念のため、久々にFDTIのホームページに行って、ドライバが更新されてないか確認。

 http://www.ftdichip.com/Drivers/VCP.htm

すると2017-05-12に2.4.2というのがある。

Mac用のドライバは見捨てられてるとばかり思ってたけど、ちゃんと更新してる。ありがたい。

Arduinoの時に散々苦しめられたけど、今回は感謝。

さっそくダウンロードしてドライバを更新、Macを再起動。

 

もう一度確認してみると、

 165    0 0xffffff7f83957000 0x7000     0x7000     com.FTDI.driver.FTDIUSBSerialDriver (2.4.2) E16D9540-AF63-36AD-94C4-B1164FBD6078 <146 16 5 4 3 1>

2.4.2になってる。

 

再度フラッシュIDを確認、

 $ esptool.py -p /dev/cu.usbserial-A50285BI flash_id

 esptool.py v2.0-beta3

 Connecting....

 Detecting chip type... ESP8266

 Uploading stub...

 Running stub...

 Stub running...

 Manufacturer: e0

 Device: 4014

 Hard resetting...

今度はOK。

 

ただ、この後もたまに認識しない時がある。

なんとなく、再起動したおかげでいったんリセットされて、比較的安定しただけなんじゃないかと思えてきた。

でも新しいドライバを入れた方が安定してる感じもするんで、オススメです。(Macユーザーに限るかも)

Sponsered Link

ESP8266あれこれ(NodeMCUでMicroPython)

さっきまでWifiドングルいじってたんだけど、気になってたESP8266の件に戻る。

どーしてもMicroPythonを動かしたくて、今度はNodeMCU(の、V0.9)を使う。

ケースは3Dプリンタで出力した。

これならUSBコネクタ繋ぐだけなので、確認するだけなら楽。

 

ターミナルから

 $ cd esptool

事前に確認しておいたUSBシリアルポート名を使って、試しにMacアドレスを見る。

 $ esptool.py --port=/dev/cu.wchusbserial1440 --baud 115200 read_mac

 esptool.py v2.0-beta3

 Connecting....

 Detecting chip type... ESP8266

 Uploading stub...

 Running stub...

 Stub running...

 MAC: a0:20:a6:0d:d5:ed

 Hard resetting...

ちゃんと確認できた。

 

んじゃESP-01で失敗した、最新のMicropythonのファームウェアを同じ方法で書き込んでみる。

$ esptool.py -p /dev/cu.wchusbserial1440 write_flash 0x000000 esp8266-20170108-v1.8.7.bin

 esptool.py v2.0-beta3

 Connecting....

 Detecting chip type... ESP8266

 Uploading stub...

 Running stub...

 Stub running...

 Configuring flash size...

 Auto-detected Flash size: 4MB

 Flash params set to 0x0040

 Compressed 586700 bytes to 381924...

 Wrote 586700 bytes (381924 compressed) at 0x00000000 in 34.1 seconds (effective 137.7 kbit/s)...

 Hash of data verified.

 

 Leaving...

 Hard resetting...

以前やったのと同じような感じで完了。

でもまだ安心はできない。

 

Micropythonの動作確認には、今回はCoolTremを使うことにした。

先日は通常のターミナルでいじってたら、反応なくなった時に切断できなかったりしてなんかおかしかったんで、一応。

CoolTremの「Options」で、現在接続してるPortを選択。Baudrateには115200を選択。

あとはそのままにしておいたけど、「Connect」をクリックしてリターンを入れたらちゃんと「>>>」が出て、入力待ちの状態になった。

試しにスクリプトを書き込んでみたら動作した。成功らしい。

 

いまさらだけど、公式(?)なホームページにチュートリアルがある。

 http://docs.micropython.org/en/latest/esp8266/esp8266/quickref.html

ファームウェアを書き込む方法もちゃんと書いてあったけど、なんか違う方法でやっちゃった。

それでも動作は確認できたんでいいか。

でも一応目を通しておいて、正しい方法で書き込みしておこうと思う。ESP8266のボードはまだあるし。

あとはESP8266の機能を活かして、Wifiを使ってなんかやってみようと考え中。

Sponsered Link

ESP8266あれこれ(ESP-01続き)

もうちょい続き。

 

どうにもできなくなったので、ESP-01を壊したかと思ったけど、そうでもなさそう。

RST端子を一度GNDに接続して、リセットかけてからesptool使うと反応がある。

試しに接続を確認。

 $ esptool.py --port=/dev/cu.usbserial-A50285BI --baud 115200 flash_id
 esptool.py v2.0-beta3
 Connecting....
 Detecting chip type... ESP8266
 Uploading stub...
 Running stub...
 Stub running...
 Manufacturer: e0
 Device: 4014
 Hard resetting...

ちゃんと動いてるっぽいんだけどな。

 

いったんMicropythonを諦めて、通常のツールを使用してファームウェアを入れ直すことにした。

ツールがWindows用しかないので、そっちで使用。GPS WINが大活躍。

 https://github.com/nodemcu/nodemcu-flasher

ESP8266Flasher.exeというのをダウンロードして持ってくる。

それとファームウェアも新しいのをダウンロード。

 https://github.com/nodemcu/nodemcu-firmware/releases

↓この辺りを参照させてもらって、最新のファームウェアを書き込み。

 https://www.suhendro.com/2015/10/getting-started-with-esp8266/

ここまでは問題ない(と、思う)。

エラーもなく書き込みできたし。

 

でもこの後GPIO0ピンをオンにして、CooltermやLuaLoaderを使ってスクリプトを送信しようとしてもできない。

ポートは認識してるんだけど、反応がない。

結局Micropythonを焼き込んだ時と同じ症状なんで、何かおかしい感じ。

たぶんUSBモジュールからの電源の3.3Vが安定してないんじゃないかと思ってるんだけど、どうだろう。

(探してみると、わざわざ他から電源を取ってる人が多いんで)

まあ具体的な使い道もまだ考えてないことだし、のんびり原因を探っていきます。

Sponsered Link

ESP8266あれこれ(ESP-01でMicropython)

RTL8710について記載しかけたけど、またESP8266に戻る。

今度は少し前に購入しておいた、ESP-01とESP-01Sについて。

どうしてもちっちゃいものばっかり収集してしまう。(安いし、邪魔にならないし)

 

ここんとこESP8266関連のものを購入することは多いけど、以前Arduino IDEから書き込みしただけでそれ以上使ってない。
探すとどうしてもArduinoとの組み合わせが多くて、正直あんまりおもしろくない。

…なので、Micropython用にファームウェアを書き換えてみる。

 https://docs.micropython.org/en/latest/esp8266/index.html


Mac上でファームウェアをいじるなら、ターミナルから動かすesptoolというのがあるらしいので、それでやってみる。

まずはEPS-01を一緒に購入したUSBシリアル変換アダプタ(FTDI FT232RL) で接続。

「eps8266 eps-01 FTDI」で画像検索したら接続方法がわかる。

いまどきUSBminiジャックだったから、ちょっと焦った。

接続は発熱してやばいなと思ったら、 ファームウェア焼き込み用の接続でGPIO0をGNDに接続したら安定した。

フラッシュモード以外で使うときには電圧保護するとかして注意しないとまずいかな。


Mac用の解説。ちょっと前のだけど日本語で丁寧に書いてあるんで助かった。

 https://macsbug.wordpress.com/2015/10/21/esp8266-ファームウェアアップデート/

ファームウェア焼き込みのために、Macでターミナルからesptoolをセッティングしておく。

 $ git clone https://github.com/themadinventor/esptool.git

 $ cd esptool

 $ sudo python setup.py install

ESP-01のUSBデバイス名を確認するために、一度Arduino IDEを起動してチェック。

今回は/dev/cu.usbserial-A50285BIという名称。

ついでにESP-01のmacアドレス確認してみる。

 $ sudo esptool.py --port /dev/cu.usbserial-A50285BI --baud 115200 read_mac

 esptool.py v2.0-beta3

 Connecting....

 Detecting chip type... ESP8266

 Uploading stub...

 Running stub...

 Stub running...

 MAC: 5c:cf:7f:f6:8b:02

 Hard resetting...

認識してるっぽい。

 

今回はMicropython用のファームウェアをダウンロードしてくる。

Firmware for ESP8266 boardsのところから、最新版を選択。

 http://micropython.org/download/

ダウンロードしたバイナリファイルはepstoolのフォルダに入れておく。

ターミナルに戻って、焼き込み。

 $ esptool.py -p /dev/cu.usbserial-A50285BI write_flash 0x000000 esp8266-20170108-v1.8.7.bin

 esptool.py v2.0-beta3

 Connecting....

 Detecting chip type... ESP8266

 Uploading stub...

 Running stub...

 Stub running...

 Configuring flash size...

 Auto-detected Flash size: 1MB

 Flash params set to 0x0020

 Compressed 586700 bytes to 381924...

 Wrote 586700 bytes (381924 compressed) at 0x00000000 in 33.5 seconds (effective 140.0 kbit/s)...

 Hash of data verified.

 

 Leaving...

 Hard resetting...

成功したのかな?

しかしこの後、USBが認識しなくなってしまった。動作確認できず。

また壊したかなという気もなきにしもあらず。モジュール変えて確認してみる予定。

Sponsered Link

ESP8266あれこれ(その2)

ESP8266はほとんど使ってないのに、安くてバリエーションが多くて面白いのでなんとなく買い集めてます。
Arduinoの互換品を集めてたときと同じ。
もうちょっとまとめられたらいいんだけど、よそ事(NanoPiとか)が面白くてあんまり手を出せない。

 

あれから、NodeMCUのロゴが入ったV0.9のボードを新しく購入。

これも本物かどうか、怪しいといえば怪しい。

 

調べて見るといろいろ種類あり過ぎ。
 https://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
簡単に分類すると、

  • NodeMCU v0.9…ESP-12モジュール搭載
  • NodeMCU v1.0…ESP-12Eモジュール搭載
  • NodeMCU v3.0…V1.0のニセモノ、LoLinのみ

ということらしい
ついでにVer0.9のは幅が大きくて、ブレッドボードでピンを刺す余裕が無くなるので嫌われてるらしい。
それと現在D1 miniはV2というのも見かける。

あとはESP8266についてのまとも(?)な情報はWiki参照したほうがいい。
 https://en.wikipedia.org/wiki/ESP8266

 

前に購入したVer3.0のはArduino IDEで使えるようにしたけど、今度は勉強がてらMicroPythonとかLuaで使えるようにしたい。
Arduinoで使えるようにしていても、後でファームウェアを書きかえればいいらしいので。

いつも通り、やったことはメモしておく予定。

Sponsered Link