Wifi модуль, который последнее время будоражит массы отличается возможностью создания собственной прошивки.
Для этого вам нужно скачать, собрать и установить компилятор, утилиту esptool и esptool.py. Не пугайтесь просто их очень не удачно обозвали. Первая служит для создания прошивки, вторая же — для загрузки прошивки в устройство.
Установите зависимости необходимые для сборки. В Ubuntu так:
sudo apt-get install git autoconf build-essential gperf bison flex texinfo libtool libncurses5-dev wget gawk libc6-dev python-serial libexpat-dev
Теперь пойдем по пути предложенном разработчиками. Создадим каталог в /opt.
mkdir /opt/Espressif chown username /opt/Espressif/
Замените username на имя вашего пользователя, для того, чтобы дать права.
Теперь скачаем исходные коды crosstool-NG, соберем и добавим путь в PATH.
cd /opt/Espressif git clone -b lx106 git://github.com/jcmvbkbc/crosstool-NG.git cd crosstool-NG ./bootstrap && ./configure --prefix=`pwd` && make && make install ./ct-ng xtensa-lx106-elf ./ct-ng build PATH=$PWD/builds/xtensa-lx106-elf/bin:$PATH
Теперь скачаем SDK
cd /opt/Espressif mkdir ESP8266_SDK wget -O esp_iot_sdk_v0.9.3_14_11_21.zip https://github.com/esp8266/esp8266-wiki/raw/master/sdk/esp_iot_sdk_v0.9.3_14_11_21.zip wget -O esp_iot_sdk_v0.9.3_14_11_21_patch1.zip https://github.com/esp8266/esp8266-wiki/raw/master/sdk/esp_iot_sdk_v0.9.3_14_11_21_patch1.zip unzip esp_iot_sdk_v0.9.3_14_11_21.zip unzip esp_iot_sdk_v0.9.3_14_11_21_patch1.zip mv esp_iot_sdk_v0.9.3/ ESP8266_SDK mv License ESP8266_SDK/
Поменяем в Makefile путь к компилятору.
cd /opt/Espressif/ESP8266_SDK sed -i -e 's/xt-ar/xtensa-lx106-elf-ar/' -e 's/xt-xcc/xtensa-lx106-elf-gcc/' -e 's/xt-objcopy/xtensa-lx106-elf-objcopy/' Makefile
Теперь установим библиотеки и заголовки.
cd /opt/Espressif/ESP8266_SDK wget -O lib/libc.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libc.a wget -O lib/libhal.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libhal.a wget -O include.tgz https://github.com/esp8266/esp8266-wiki/raw/master/include.tgz tar -xvzf include.tgz
Пришло время установить ESP image tool. Это которая esptool.
cd /opt/Espressif wget -O esptool_0.0.2-1_i386.deb https://github.com/esp8266/esp8266-wiki/raw/master/deb/esptool_0.0.2-1_i386.deb dpkg -i esptool_0.0.2-1_i386.deb
Для не убунты нужно скачать исходники, собрать и сделать ссылку в /usr/bin
cd /opt/Espressif git clone https://github.com/tommie/esptool-ck mv esptool-ck/ esptool cd esptool make sudo ln -s $PWD/esptool /usr/bin/
Осталось установить утилиту для прошивки ESP upload tool — esptool.py.
cd /opt/Espressif git clone https://github.com/themadinventor/esptool esptool-py ln -s $PWD/esptool-py/esptool.py crosstool-NG/builds/xtensa-lx106-elf/bin/
Скачиваем и собираем базовую прошивку.
cd /opt/Espressif/ESP8266_SDK/examples/ wget -O at_v0.19_14_10_30.zip https://bbs.espressif.com/download/file.php?id=13 unzip at_v0.19_14_10_30.zip && rm at_v0.19_14_10_30.zip cd at_v0.19_on_SDKv0.9.2/ rm Makefile && cp ../example.Makefile . && mv example.Makefile Makefile
В Makefile корректируем строку LIBS.
LIBS = c gcc hal pp phy net80211 lwip wpa upgrade main
Можно компилировать командой make
$ make CC driver/uart.c CC user/user_main.c CC user/at_wifiCmd.c CC user/at_cmd.c CC user/at_port.c CC user/at_ipCmd.c CC user/at_baseCmd.c AR build/app_app.a LD build/app.out FW firmware/0x00000.bin FW firmware/0x40000.bin
Прошивать так:
esptool.py --port /dev/ttyUSB0 write_flash 0x00000 firmware/0x00000.bin 0x40000 firmware/0x40000.bin
Вот так вот получается.
При перепрошивке не забываем ножку GPIO0 соединять с GND.