всем привет, сразу скажу метод прошивки и очистки памяти не сам придумал подсмотрел на сайте https://wreckage.ru/ (ссылка кстати на статью), метод сам проверил на esp 8266 d1 pro 16мб. все работает, с другими утилитами были проблемы хотя делал все по инструкции почему то оставались куски старой прошивки.
Установим esptool в Windows 10

Так как esptool написана на языке программирования Python, то нам нужно установить одноименную версию софта для работы в Windows. Скачиваем по ссылке.

На момент написания это версия 3.8.2 (последняя версия phyton 3.9.6 пользовался этой отличий нет)
Теперь устанавливаем, отметив галочкой Add Python 3.8 to PATH
Пол дела сделано. Проверить корректность установки можно введя в командой строке команду:
python --version
В ответ получим:
Теперь о самой esptool. Ставим ее командой:
pip install esptool
Теперь можно пользоваться утилитой. Подключаем esp8266 к компьютеру и смотрим COM порт в Диспетчере устройств:
В данном случае это COM3. И можно пользоваться. Узнать все доступные команды можно набрав:
esptool.py -h
Например, чтобы узнать версию подключенной esp, вводим команду:
esptool.py -p COM3 -b 115200 flash_id
В ответ получим всю информацию:
Чтобы сделать бэкап прошивки с 4мб памяти:
esptool.py -p COM3 -b 115200 read_flash 0x00000 0x400000 backup.bin
Полностью стереть прошивку:
esptool.py -p COM3 -b 115200 erase_flash
Или, например, чтобы залить прошивку:
esptool.py -p COM3 -b 115200 --after no_reset write_flash --flash_size 4MB --flash_mode dio 0x00000 firmware.bin --erase-all
Привет всем )
Привет EroshKA, хочу, в первую очередь, сказать спасибо тебе!?
Я заказал твою плату ( по ссылкам с др форума, опустим истории, все честно) и собрал (опыт есть в этом деле и знания соответствующие).
В общем, еще раз спасибо. Прочитал все, что ты писал ранее о "софтовой стороне" вопроса.
Привет и MrDAnger, рад видеть и тебя тут. (Тебе спасибо за то, что я уже пиво пью , сваренное на собственноручно сделанном "Железе", в том числе по твоим советам )
Что привело сюда, так это поиск EroshKA и следующий вопрос. В общем, собрал, запустил BMex. Все получилось (ну, дошел до момента настроек, дальше пока смысла не вижу в связи с вопросом который и пишу). Аппаратная часть собрана на wemos D1 mini pro.

За корпус не ругайте - выкопал в гараже из старых запасов корпус от ... хаба Arcnet еще (хе-хе - кто-нибудь знает ? ? )
В новый смонтирую когда от братьев китайцев придет.
Пока возился (начал в июне, потом отпуск 3 недели) на гитхабе обновилась версия до 0.5.
Я (может зря?) решил собрать исходники сам (ну собственно, я как и EroshKA, предпочитаю контролировать процесс и знать Что именно скомпилировано).
И потом, я не уверен, что таргеты, собранные под nodemcuv2 подходят для Wemos D1 Mini pro. Точнее - я НЕ знаю.
Но вот беда - с VSCode я дело имел, а я с platformIO - вообще никак, от слова "совсем" :)?
Ну, короче, поставил, разобрался. Начал собирать. Скачал в исходниках 0.5-master версию. Поправил env на :
env:wemosd1mpro]
platform = ${common_env_data.esp8266_framework}
board = d1_mini_pro
framework = arduino
build_flags = -Wl,-Tesp8266.flash.16m14m.ld
;-DMultipleSensorEnabled=true
;-DSpargeHeaterSupportEnabled=true
monitor_speed = 115200
lib_deps = ${common_env_data.lib_deps_external}
lib_extra_dirs = ./lib-esp8266
И ........
УБИЛ 1/2 дня, получив >500 ошибок.
> Executing task: C:UsersUser.platformiopenvScriptsplatformio.exe run --environment wemosd1mpro <
Warning! `env_default` configuration option in section [platformio] is deprecated and will be removed in the next release! Please use `default_envs` instead
Processing wemosd1mpro (platform: espressif8266@~2.6.2; board: d1_mini_pro; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini_pro.html
PLATFORM: Espressif 8266 (2.6.3) > WeMos D1 mini Pro
HARDWARE: ESP8266 80MHz, 80KB RAM, 16MB Flash
PACKAGES:
- framework-arduinoespressif8266 3.20704.0 (2.7.4)
- tool-esptool 1.413.0 (4.13)
- tool-esptoolpy 1.30000.201119 (3.0.0)
- toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 38 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoJson> 6.10.0
|-- <EEPROM> 1.0
|-- <OneWire> 2.3.5
|-- <PID_AutoTune_v0>
|-- <PID_v1>
|-- <ArduinoOTA> 1.0
| |-- <ESP8266WiFi> 1.0
| |-- <ESP8266mDNS> 1.2
| | |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESPAsyncTCP> 1.1.3
| |-- <ESP8266WiFi> 1.0
|-- <ESP Async WebServer> 1.2.2
| |-- <ESPAsyncTCP> 1.1.3
| | |-- <ESP8266WiFi> 1.0
| |-- <Hash> 1.0
| |-- <ESP8266WiFi> 1.0
| |-- <ArduinoJson> 6.10.0
|-- <Hash> 1.0
|-- <LittleFS(esp8266)> 0.1.0
|-- <EspSoftwareSerial> 6.8.5
|-- <Wire> 1.0
|-- <ESP8266HTTPUpdateServer> 1.0
| |-- <ESP8266WebServer> 1.0
| | |-- <ESP8266WiFi> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266HTTPClient> 1.2
| |-- <ESP8266WiFi> 1.0
|-- <ESP8266httpUpdate> 1.3
| |-- <ESP8266HTTPClient> 1.2
| | |-- <ESP8266WiFi> 1.0
| |-- <ESP8266WiFi> 1.0
|-- <DNSServer> 1.1.1
| |-- <ESP8266WiFi> 1.0
|-- <PCF8574 - library for ESP8266> 1.0.0
| |-- <Wire> 1.0
|-- <ESP8266_SSD1306> 4.0.0
| |-- <Wire> 1.0
|-- <LiquidCrystal_I2C_V3-master>
| |-- <Wire> 1.0
Building in release mode
Warning! '-Wl,-T' option for specifying linker scripts is deprecated. Please use 'board_build.ldscript' option in your 'platformio.ini' file.
Compiling .piobuildwemosd1mprosrcBackupService.cpp.o
Compiling .piobuildwemosd1mprosrcBrewManiac.cpp.o
Compiling .piobuildwemosd1mprosrcBrewManiacEx.cpp.o
Compiling .piobuildwemosd1mprosrcBrewManiacWeb.cpp.o
Compiling .piobuildwemosd1mprosrcESP32HTTPUpdateServer.cpp.o
Compiling .piobuildwemosd1mprosrcESPUpdateServer.cpp.o
Compiling .piobuildwemosd1mprosrcEmbeddedFiles.cpp.o
Compiling .piobuildwemosd1mprosrcFsEeprom.cpp.o
Compiling .piobuildwemosd1mprosrcHttpUpdateHandler.cpp.o
Compiling .piobuildwemosd1mprosrcTimeKeeper.cpp.o
In file included from srcBrewManiac.cpp:34:0:
srcBrewLogger.h:556:19: error: storage class specified for 'brewLogger'
extern BrewLogger brewLogger;
^
srcBrewLogger.h:556:19: error: field 'brewLogger' has incomplete type
srcBrewManiac.cpp:337:6: error: 'void BrewLogger::setEventMask(byte)' cannot be overloaded
void setEventMask(byte mask)
^
srcBrewManiac.cpp:137:6: error: with 'void BrewLogger::setEventMask(byte)'
void setEventMask(byte);
^
In file included from srcBrewManiac.cpp:346:0:
srcbuzz.h:41:65: error: section attribute not allowed for '_soundIdTemperatureReached'
const byte _soundIdTemperatureReached[] PROGMEM ={5,10,3,10,3,10};
^
srcbuzz.h:42:70: error: section attribute not allowed for '_soundIdCountDown'
const byte _soundIdCountDown[] PROGMEM ={9,20,20,20,20,20,20,20,20,40}; // 5 seconds
^
srcbuzz.h:44:98: error: section attribute not allowed for '_soundIdAddHop'
const byte _soundIdAddHop[] PROGMEM ={19,30,10,30,10,30,10,30,10,30,10,30,10,30,10,30,10,30,10,40}; // 10 seconds
^
srcbuzz.h:45:59: error: section attribute not allowed for '_soundIdWaitUserInteraction'
const byte _soundIdWaitUserInteraction[] PROGMEM ={2,10,30};
^
srcbuzz.h:46:46: error: section attribute not allowed for '_soundIdBrewEnd'
const byte _soundIdBrewEnd[] PROGMEM ={2,37,7};
^
srcbuzz.h:52:16: error: section attribute not allowed for '_sounds'
_soundIdBrewEnd};
^
In file included from srcBrewManiac.cpp:351:0:
srcresources.h:28:23: error: section attribute not allowed for 'C_IpAddress'
StringConst(IpAddress,"IP:");
^
............. и тд
^
srcresources.h:15:57: note: in definition of macro 'StringConst'
#define StringConst(v,c) const char C_##v [] PROGMEM = c
............
В общем побившись головой об стену, считая себя никчемным неудачником ?, я подумал, а может ... и вправду что-то накосоверчено в коде, либо флагах компиляции ? И решил собрать 0.4.7! По крайней мере, подумал, проверю, нормально ли среда настроена.
И, о чудо, она собралась!

Залил. Пока не стал далее обновляться, ибо почитал, что в 0.50 есть полезные "плюшки" (синх времени поправили и тд, в общем есть смысл что-то более современное, нежели 0.4.7 поставить).
Ну так вот, эксперименты и попытки привели к удивительному результату:
вот так - build_flags = -Wl,-Tesp8266.flash.16m14m.ld -DSpargeHeaterSupportEnabled=true
СОБИРАЕТСЯ!
Processing wemosd1mpro (platform: espressif8266@~2.6.2; board: d1_mini_pro; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini_pro.html
PLATFORM: Espressif 8266 (2.6.3) > WeMos D1 mini Pro
HARDWARE: ESP8266 80MHz, 80KB RAM, 16MB Flash
PACKAGES:
- framework-arduinoespressif8266 3.20704.0 (2.7.4)
- tool-esptool 1.413.0 (4.13)
- tool-esptoolpy 1.30000.201119 (3.0.0)
- toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 38 compatible libraries
Scanning dependencies...
Dependency Graph
......
Archiving .piobuildwemosd1mprolibFrameworkArduino.a
Linking .piobuildwemosd1mprofirmware.elf
Building .piobuildwemosd1mprofirmware.bin
Retrieving maximum program size .piobuildwemosd1mprofirmware.elf
Checking size .piobuildwemosd1mprofirmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [===== ] 46.1% (used 37772 bytes from 81920 bytes)
Flash: [====== ] 60.0% (used 626480 bytes from 1044464 bytes)
Creating BIN file ".piobuildwemosd1mprofirmware.bin" using "C:UsersUser.platformiopackagesframework-arduinoespressif8266bootloadersebooteboot.elf" and ".piobuildwemosd1mprofirmware.elf"
========================================================= [SUCCESS] Took 43.46 seconds =========================================================
Environment Status Duration
------------- -------- ------------
wemosd1mpro SUCCESS 00:00:43.459
========================================================== 1 succeeded in 00:00:43.459 ==========================================================
Этот и ТОЛЬКО этот таргет, с этим флагом, компилируется!
Внимание, вопросы 🙂
1. Сборка из готовых, напр., BrewManiacEx.050.d1pro.bin, подходит для Wemos D1 mini Pro ? (хотя при использовании пропадет уверенность, что там именно то , что надо мне, собрано...)
2. Почему не собирается ? Есть идеи ? Кто-то собирал сам 0.5 ?
3. Может ли кто-то (наверное, EroshKA), собрать и поделиться (ну под wemos d1 mini pro, как выше написал) ? С меня ? ?
конфигурация простая - 1 насос, 1 нагреватель, 1 датчик.
Ох. Много написал. Зато, подробно.
Привет!
Спасибо, что откликнулся.
По сути:
Имя не нужно. BrewManiacEx - красиво придумано ) Пусть BMex с версией и остается.
1 датчик температуры.
Дистилляция не нужна.
Спасибо заранее!
А вот про поддержку русского - очень вряд ли. Куплен на Али. Если не очень сложно - собери версию Engl , а если будет время позже - с русским. (Я буду для других поделок заказ делать, вставлю туда в заказик экран русифицированный.) Кстати, читал где-то вроде, что комплектующими ты также снабжаешь жаждущих ? 🙂 Я бы приобрел экран, не раз "попадал" на псевдо-русские экраны. Если есть у тебя проверенный поставщик и/или экран - ткни пальцем, буду благодарен (жена хоть и знает английский, но до сих пор, когда заходит в теплицу меня троллит , когда на главном экране контроллера DEBUG видит - "я тебе - что, говорит, дебаггер ?!"). Мэлт делает ЖКЭ изначально русифицированные, но мне не приходилось их в проекты вставлять. Я на lcd начал переводить поделки.
А вот факт, что у меня не компилится - удручает. Скорее всего дело в депенденсах каких-то и либах. Я на рабоче-походном ноуте собираю, там и кодевижн и arduino ide, пр и пр наставлено, может в путях много лишнего. И с этим, как показывает жизнь, долго и болезненно разбираться. Попробую среду настроить на другом компе , но на это время потребуется.
Сорри, про именные пропустил, хотя, да - видел, не понял, что "только такие",
пусть будет именная BrewManiac-Michael, входит ) И на вебморду и на ЖКЭ.
Экран нашел, сорян, ссылку проглядел. Увидел русский текст, а ссылку не увидел
Собирай англ, пока придет Russified , может налажу свою среду разработки. Ну или снова обращусь , благодарствую!
За выходные настрою, ПИД налажу и, наконец-то, в своем танкере заварю стаут... Надеюсь )
Привет и MrDAnger, рад видеть и тебя тут. (Тебе спасибо за то, что я уже пиво пью , сваренное на собственноручно сделанном "Железе", в том числе по твоим советам )
И тебе здравия!
Не за что.
Мы здесь все ради вкусного домашнего пива! ? ?
Про wifi забыл, точно.
Да и .. леший с ним ) С первого начать, в один символ пробел будет.
Я к этому сильно придирчиво не отношусь, главное, чтобы было надежно, безопасно.
Кстати, корпус на Али заказал, вот такой - https://aliexpress.ru/item/4000797960767.html?spm=a2g0s.8937460.0.0.27d72e0eW8I3mN.
Хотел под БП, но, видимо, под BManiac пойдет ))))
А есть еще такой красавец, только вот дисплей , видимо, на морду монтировать. Что может оказаться неудобно.
https://aliexpress.ru/item/32908421974.html?item_id=32908421974&sku_id=66732478193&spm=a2g0o.store_pc_home.productList_640918470.pic_1
Привет!
Спасибо, получил и в почте ответил. Но что-то пошло не так (
Прошил (предварительно стерев, разумеется) 050 из присланного тобой english_lcd
Вставил в плату - получил квадратики и "пики" зуммера.

Ну, думаю, может криво стерлось. Весьма странно себя утилиты ведут , порой, типа nodemcu и flash_download_tools.
Перешил снова 047 для проверки, вставил - работает...

Попробовал точно также второй раз с 050. Эффект одинаков. Квадратики и пики. Может мало ждал пока "стартанет" ? Но prebiult завелась, см далее
И снова на 047 перешил. (контроллер явно устал от меня 🙂 )
А дальше еще интереснее: дай, думаю, pre-built залью, из архива Vito. Описания под что собраны прошивки я так и не увидел (плохо искал может
?), поэтому залил BrewManiacEx.050.d1pro

И она залилась так и даже запустилась. Но вот что : главный экран без
температуры, контроллер постоянно пишет "connecting...", и самое
главное - точку BM не создает.
Сделал фото платы.

Ты точно под wemos d1 mini pro собрал ?
Я что-то вообще "в осадке" - что за квест напополам с трешем...
Все процедуры , кстати, делаю как ты прописал. Иногда Nodemcu не
коннектится к плате, но передергиваю плату, стираю, и заново шью. 1раз
на 5 случаев примерно косячит.
Flash download tool 3.8.8 вообще отказывается шить и стирать,
заработал только 3.6.4.
Есть еще мысль, что мои ошибки по сборке из-за windows 10 64bit. Ну чтобы мне среду развернуть на 32х разрядной надо вспотеть...
EroshKA сказал(а)
Без установки в плату стартует?
Ты имеешь ввиду - создает ли точку будучи подключена шнурком к компу ? Гм.. не посмотрел. Сейчас. Минуту. Полигон не разобрал )
(попробовал еще прошу из bin/BrewManiacEx.050.bin - прекомпилированную, поведение в точности как с BrewManiacEx.050.d1pro : Connecting.... и точка "ВМ" отсутствует.)
Прошиваю твоей. минуту..
Попробуй так. Обратил внимание что из VSC и методу описанному neo48 шьется все проще, на автомате. Система сама определяет параметры. В ESP8266Flasher и flash_download_tool_Х.Х.Х все же надо уметь правильно выставить их. А вы (все) все чаще решаете, что "железо" можно поменять, а инструкция останется прежней.
Не хочу выглядеть, будто оправдываюсь, но я все-таки осознанно большинство вещей делаю ) Не первый год в обнимку с мк. Правда, с esp мало дружил.
Что хочу сказать-то - ПОЛНЫЙ факап.
Хэппи энда не будет в конце, кстати. Но если кто осилит буквы и посоветует что-то - буду рад .
Вчера поставил esptool. Попробовал все, что только можно из командной строки.
НЕ видит esptool.py чип и все тут.... Посмотрел я под другим углом на платку и что-то меня смутило.
Взял я ЛУПУ (да, огромную), глядь, а uart микруха - то НИ РАЗУ НЕ ch340!!! А как красиво у китаез было написано, а ?! И ведь поверил им!
(ESP8266 ESP-12 ESP-12F CH340G CH340 V2 USB WeMos D1 Mini PRO V3.0.0 WI-FI макетная плата NodeMCU Lua IOT доска 3,3 V с булавками)
Нашел драйвер под ch9120 (F буковка). Поставил. Тут-же сменился com-порт. О, думаю, ща взлетит!
А не тут-то было... ВСЕ как прежде. id чипа не определяется, flash не стирается.
Причем, что интересно вдвойне: раньше во flash download tool хоть периодически "ID информация" проскакивала, а после обновления дров - вообще перестал определяться тут.... Пробовал и "не те" дрова поставить - снова вернуть от ch340, как ни странно, дрова встают, но порт уже обратно не меняется.
Но самое удивительное не это - в NodeMCU 1.0.0.5 продолжает шиться! Нет, не без проблем - то отвалится, то даст себя прошить.
Но, черт побери, что там внутри происходит для меня полная загадка. Я попробовал снова прошить 0.5 , не взлетело и я снова прошил 0.4.7 , работает.. и даже точка ВМ поднимается. Фото уже не прикладываю, обманывать мне смысла нет, а картинка с BrewManiac 0.4.7 та же.
Ну это просто какое - то недоразумение... И вообще непонятно куда рыть - раз хоть как-то nodemcu шьет, значит - uart работает.
Но как достучаться через com до чипа - я не разумею.
Насколько опыт подсказывает, программно спалить МК нереально. Залочить, да, можно (atmega)... Но шьем то мы flash! SoC ROM не трогаем.
Я не знаю что и думать... Может "битая" плата ? Мне ни разу не попадались, если честно. Энкодер с непропаем был, но не МК, ни одной ардуины с Ali не было бракованой.
Обидно, что столько энергии уходит на борьбу с каким-то глупым косяком, возможно - моим. Ежели Константин имеет больше опыта с данными МК - буду рад совету.
Я пока "пас". Надо переварить. Попробую на старом ноуте под 32х разрядной виндой драйвера поставить.









