ESP8266にEdison(ubilinux)からNodeMcuを書き込む

◯使ったもの
  <a href=http://cerevo.shop-pro.jp/?pid=91592223>ESP8266</a>
  Intel Edison(Ubilinux)
  <a href=https://strawberry-linux.com/catalog/items?code=12107>XBee エクスプローラー</a>

◯準備
 Edisonにsetuptoolsをいれて、esptool.pyをインストールする

◯動作確認
  Edison--XBee explorer--ESP8266と接続して、ATコマンドを送ってみる
 ※最初はWindowsのTeraTermを使ったが送信する改行コードがCRのみで動かなかった。正解は「CR+LF」です。
  miniterm.py /dev/ttyUSB0 115200
  でアッサリとつながります。

起動時のメッセージ(76.8kbps)
<pre>
edison@ubilinux:~/ESP8266$ miniterm.py /dev/ttyUSB0 76800
--- Miniterm on /dev/ttyUSB0: 76800,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

 ets Jan  8 2013,rst cause:1, boot mode:(3,2)

load 0x40100000, len 1320, room 16
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0
tail 12
chksum 0xb9
csum 0xb9

2nd boot version : 1.3(b3)
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size : 8Mbit
jump to run user1


SD▒▒j▒z ▒-▒▒-▒
</pre>

ATコマンドのテスト
<pre>
AT+GMR
AT version:0.23.0.0(Apr 24 2015 21:11:01)
SDK version:1.0.1
compile time:May  5 2015 14:03:58

OK
</pre>

おまけ:シリアルダウンロードモードでの起動時のメッセージ(76.8kbps)
<pre>
edison@ubilinux:~/ESP8266$ miniterm.py /dev/ttyUSB0 76800
--- Miniterm on /dev/ttyUSB0: 76800,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

 ets Jan  8 2013,rst cause:1, boot mode:(1,0)

</pre>

◯NodeMcuを書き込む
  <a href=https://github.com/nodemcu/nodemcu-firmware>NodeMCU</a>の<a href=https://github.com/nodemcu/nodemcu-firmware/releases>バイナリー</a>をダウンロードしてきて<a href=http://qiita.com/masato/items/3f386dbc600c1cd840f4>ファーム書き込み</a>

<pre>
wget https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_float_0.9.6-dev_20150704.bin
</pre>

ここまではうまく行く
<pre>
edison@ubilinux:~/ESP8266$ esptool.py -p /dev/ttyUSB0 read_mac
Connecting...
MAC: 18:fe:34:9c:e8:bb
edison@ubilinux:~/ESP8266$ esptool.py -p /dev/ttyUSB0 flash_id
Connecting...
Manufacturer: a1
Device: 4016
</pre>

読み出しはうまく行かない
<pre>edison@ubilinux:~/ESP8266$ esptool.py -p /dev/ttyUSB0 read_flash 0x000000 0x1000000 original.bin
Connecting...
Traceback (most recent call last):
  File "/usr/local/bin/esptool.py", line 4, in <module>
    __import__('pkg_resources').run_script('esptool==0.1.0', 'esptool.py')
  File "build/bdist.linux-i686/egg/pkg_resources/__init__.py", line 735, in run_script
  File "build/bdist.linux-i686/egg/pkg_resources/__init__.py", line 1659, in run_script
  File "/usr/local/lib/python2.7/dist-packages/esptool-0.1.0-py2.7.egg/EGG-INFO/scripts/esptool.py", line 532, in <module>

  File "/usr/local/lib/python2.7/dist-packages/esptool-0.1.0-py2.7.egg/EGG-INFO/scripts/esptool.py", line 159, in connect

Exception: Failed to connect
</pre>

だめもとで、再起動して書き込んでみる
<pre>
edison@ubilinux:~/ESP8266$ esptool.py -p /dev/ttyUSB0 write_flash 0x0000 nodemcu_float_0.9.6-dev_20150704.bin
Connecting...
Erasing flash...
Wrote 462848 bytes at 0x00000000 in 46.5 seconds (79.7 kbit/s)...

Leaving...
</pre>

うまくいったので、まずはお約束
<pre>
edison@ubilinux:~$ miniterm.py /dev/ttyUSB0 9600
--- Miniterm on /dev/ttyUSB0: 9600,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
> print("hello world")
hello world
</pre>

9600bpsなので注意

おまけ
起動時のメッセージ

<pre>
edison@ubilinux:~$ miniterm.py /dev/ttyUSB0 76800
--- Miniterm on /dev/ttyUSB0: 76800,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

 ets Jan  8 2013,rst cause:1, boot mode:(3,0)

load 0x40100000, len 31900, room 16
tail 12
chksum 0x49
ho 0 tail 12 room 4
load 0x3ffe8000, len 3064, room 12
tail 12
chksum 0x74
ho 0 tail 12 room 4
load 0x3ffe8bf8, len 8, room 12
tail 8
chksum 0x12
csum 0x12
</pre>