Архив рубрики: Заметки

A fatal esptool.py error occurred: Cannot configure port, something went wrong.

Однажды, рабочая плата NodeMCU esp8266 перестала прошиваться и появилось сообщение:

A fatal esptool.py error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, ‘A device attached to the system is not functioning.’, None, 31)esptool.py v3.0 Serial port COM5

Arduino IDE обновлен до последней версии, но некоторые платы прошивались, а некоторые отказывались прошиваться и появлялось сообщение примерно следующего содержания:

. Variables and constants in RAM (global, static), used 41368 / 80192 bytes (50%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1184     initialized variables
╠══ RODATA   8324     constants       
╚══ BSS      30240    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 62611 / 65526 bytes (95%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32738    reserved space for flash instruction cache
╚══ IRAM     30443    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 450128 / 1043576 bytes (43%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     452428   code in flash   
esptool.py v3.0

Serial port COM5
A fatal esptool.py error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, 'A device attached to the system is not functioning.', None, 31)

На плате китайского происхождения была затерта маркировка микросхемы USB-serial преобразователя, но на обратной стороне было указано, что это CH340G

Эта ошибка может возникнуть при загрузке на платы, использующие определенные партии USB-чипа WCH CH340. Подделка это или нет доподлинно неизвестно. Но, было замечено, что особенностью этих микросхем CH340 является отсутствие маркировки (обычно на них написано «WCH CH340G») и проблема возникает только при использовании последней версии драйвера CH340.

Таким образом, «откат» к более старой версии драйвера является эффективным обходным путем. Вы можете попробовать.

  1. Перейдите по следующей ссылке на официальный сайт производителя микросхемы, чтобы загрузить предыдущую версию драйвера с его веб-сайта:
    https://www.wch-ic.com/downloads/file/65.html?time=2023-03-16%2022:57:59
  2. Дождитесь завершения загрузки.
  3. Запустите загруженный файл CH341SER.EXE.
  4. В открывшемся диалоговом окне нажмите кнопку “INSTALL”.
WCH.CN USB-SERIAL CH340 01/18/2022, 3.7.2022.01
  1. Дождитесь завершения установки драйвера.
  2. Перезапустите Arduino IDE, если она была запущена.

Готово, на этом этапе у многих уже может все заработать, но иногда требуется “откатить” драйвер вручную, для этого:

  1. Откройте диспетчер устройств Windows.
  2. В разделе “Порты (COM и LPT)” вы должны увидеть порт, обозначенный как “USB-SERIAL CH340 (COMn)” (где “COMn” – это какой-либо последовательный порт, например, COM5). Дважды щелкните по этому пункту. Откроется диалоговое окно “Свойства USB-SERIAL CH340 (COMn)”. Выберите вкладку “Драйвер” в диалоговом окне “Свойства USB-SERIAL CH340 (COMn)”. и нажмите кнопку “Удалить устройство”. В окне “Удаление устройства выберите “Удалить программы драйверов для этого устройства” и нажмите “Удалить”

После этого повторите пункты 1-6, показанные выше. После переустановки драйвера ошибка уходит.

Как сделать резервную копию прошивки контроллера ESP32

Может показаться, что задача стянуть прошивку с микроконтроллера мало кому интересна, да и к тому же существует множество способов защиты и шифрования, которые блокируют этот процесс еще на этапе программирования. Но, почему бы не попробовать, решил я, когда столкнулся с простой задачей – скачать исходную прошивку с китайской платы, так сказать, на всякий случай. Встал вопрос как сделать “резервную” копию заводской прошивки отладочной платы на микроконтроллере ESP32 от Espressif Systems.

В сети нашлось несколько способов сделать это. Здесь описан один из них, он проверен, работоспособный и понятный.

Сразу скажу, что все это сработало на плате, которую в сети называют Cheap Yellow Board, а ее официальное название ESP32-2432S028. Позже, этот способ был проверен и на аналогичных платах китайского производителя, таких как ESP32-2432S024 и ESP32-2432S035.

Перед началом работы необходимо:

1. Скачать архив либо по ссылке, либо взять из проекта с github автора (@SmittyHalibut).

2. Распаковать архив, найти файл _ESP32 save flash 4MB.cmd, открыть его в блокноте и изменить COM-порт на тот, к которому подключена ESP32

После этого запустить этот файл и прошивка сохранится в формате *.bin с именем backup1.

В результате это и будет Ваша прошивка, которую потом можно загрузить в микроконтроллер.

Для того, чтобы загрузить прошивку в ESP32 необходимо открыть в блокноте файл _ESP32 write flash.cmd и изменить COM-порт на тот, к которому подключена ESP32

После этого запустить этот файл _ESP32 write flash.cmd и Ваш микроконтроллер будет прошит.

Замечания. Некоторые пользователи замечают, что файлы необходимо запускать от имени администратора.

Автор данного решения Марк Смит – энтузиаст из Калифорнии. Его проекты есть на GitHub (@SmittyHalibut).

Пользовательские расширения для EasyEDA

Пользователи-энтузиасты создают дополнительные расширения для EasyEDA, В сети существует огромное количество полезных и не очень дополнений для удобной работы в приложении. Ниже, представлены самые востребованные и проверенные расширения и краткое описание каждого из них:

1. EasyEDA iBOM

iBom – это расширение для EasyEDA и LCEDA: Standard Edition. Расширение основано на проекте InteractiveHtmlBom, разработанном и созданном компанией qu1ck. С помощью расширения iBOM возможно создание автономного HTML-представления проекта платы, которое может стать хорошим помощником при сборке печатной платы.

https://github.com/turbobabr/easyeda-ibom-extension

2. EasyEDA ToggleView

Расширение ToggleView поможет переключить текущий вид редактора плат между обычным и перевернутым видом. Как сообщает автор этого расширения это всего лишь хакерский обходной путь, пока EasyEDA не реализует его в своем приложении. По сути, он применяет преобразование стиля: ScaleX(-1) к редактору, чтобы перевернуть его в направлении X. Чтобы по-прежнему иметь возможность правильно взаимодействовать с перевернутым представлением с помощью мыши, все события мыши также необходимо перехватывать и переворачивать в направлении X, что и реализовано в расширении.

https://github.com/xsrf/easyeda-toggleview

3. EasyEDA SVG Import

Это расширение для EasyEDA, которое может импортировать файлы SVG в слои EasyEDA без каких-либо искажений, которые создает внутренний импорт изображений. Он также позволяет импортировать SVG в виде сплошных областей или дорожек/контуров.

https://github.com/xsrf/easyeda-svg-import

4. EasyEDA Label Maker

Простое расширение для создания названий меток на печатной плате. Поддерживает настройки шрифтов, изменений размера метки и ее формы.

https://github.com/xsrf/easyeda-labelmaker

5. EasyEDA Tools

Данное расширение представляет из себя набор инструментов для работы с модулями схем. Помогает в создании модуля схемы для многократного использования, переименование модуля и замены имен цепей). В настоящее время EasyEDA поддерживает модули схем и печатных плат, но не иерархические модули.

https://github.com/ppeetteerrs/EasyEDA-Tools

6. EasyEDA Themes

Это расширение обновляет весь пользовательский интерфейс EasyEDA, добавляя несколько уникальных темных и светлых тем.

https://github.com/FiercestT/EasyEdaThemes

7. EasyEDA Quick Align

Расширение представляет оптимизированный рабочий процесс для выравнивания контуров, символов, фигур и префиксов с помощью специально созданной контекстной панели, которая обеспечивает лучшее удобство пользования по сравнению со стандартными действиями на панели инструментов и сочетаниями клавиш.

https://github.com/turbobabr/easyeda-quick-align-extension

8. EasyEDA Extension Menu

Данное расширение создано для решения проблемы всплывающего меню при наведении на него курсора мыши. После установки не требуется отдельный запуск расширения, оно будет запускаться автоматически и блокировать всплывающее меню по наведению ожидая нажатия на выбранный пункт меню.

https://github.com/turbobabr/easyeda-extension-menu-ux-normalizer

9. EasyEDA QR-code Generator

Расширение представляет из себя генератор QR-кода для дальнейшего размещения на печатной плате в любом выбранном слое.

https://github.com/turbobabr/easyeda-qrcode-generator-extension

10. EasyEDA Round Tracks

Данное расширение применяет округление к дорожкам печатной платы. Оно применит сглаживание ко всем дорожкам на верхнем и нижнем печатных слоях. Далее, создаст дуги на всех Т-образных пересечениях или в областях, где невозможно применить сглаживание путей (например, там, где пересекаются дорожки разной ширины). После чего, оно добавит каплевидные переходы к отверстиям и площадкам со сквозными отверстиями. Полученная печатная плата будет открыта как новый документ, в связи с тем, что процесс сглаживания необратим.

https://github.com/mattshepcar/easyeda-round-tracks

Панель печатных плат для выпрямительного блока электромагнитного тормоза

Назначение, область применения и принцип работы можно посмотреть в проекте Выпрямительный блок электромагнитного тормоза.

Панель из печатных плат маленького размера удобно использовать при автоматическом монтаже компонентов. В данном случае панель 2х4 печатных платы будущих изделий выполнена в размер не превышающем 100х100мм. Такой формат прототипирования предпочтительный для большинства китайских производителей печатных плат и потому самый удачный для небольших заказов. С некоторыми оговорками такую панель можно будет использовать в оборудовании автоматического монтажа. Из экономических соображений технологические поля выполнены очень небольшими, но в то же время на них предусмотрены реперные метки и отверстия для позиционирования. Для небольших партий это излишне, потому на этом было принято решение не заострять внимание.

Из интересного, что есть в такой панели – это комбинация типа создания края печатной платы. На данной панели край печатных плат формируется как скрайбированием, так и фрезеровкой на двух механических слоях. Таким образом удалось получить сложный контур с сохранением красивого края после разделения печатных плат. Китайский производитель был не против такого подхода. В результате получилась панель, которую можно было разобрать и исключить обработку края печатной платы, что потребовалось бы при формировании контура фрезеровкой с перемычками для удержания плат в панели.

Каждая печатная плата устанавливается в корпус из черного ABS-пластика. На верхней крышке корпуса размещается этикетка. Печать выполнена на самоклеющейся непрозрачной белой пленке на цветном лазерном принтере. По контуру выполнен рез на плоттере.

Для надписей использовался opensource шрифт семейства Manrope. Это минималистичный, графически простой шрифт без засечек от Михаила Шаранда.

Карта выводов. Создание схемы распиновки

По сети гуляет огромное количество схем распиновки (pinmap / pinout map) различных модулей и микросхем выполненных в вольном, можно даже сказать дизайнерском стиле, но достаточно качественно и профессионально.

Хороший учебник по этой теме есть у Adafruit, показывающий, как создавать профессиональные схемы распиновки и подключения с помощью бесплатного векторного программного обеспечения Inkscape. Как становится понятно из описания, весь процесс предлагаемый Adafruit можно адаптировать под работу в Illustrator, хоть и с некоторыми ограничениями.

Здесь ссылка на сообщение в блоге Adafruit с видео и ссылкой на файл шаблона.

Зачем создавать что-то другое, когда есть готовое решение

Создавая схемы по технике предложенной Adafruit приложение Inkscape не даст разработчику забыть о том, что оно все таки в первую очередь является графическим приложением, нежели техническим, конструкторским. Привязки, перемещения блоков и цепей здесь реализованы как в типичном графическом редакторе. Что касается небольших карт распиновки, то это не всегда проблема, но если появляется задача создания карты с вложенными блоками, то появляется желание упростить процесс создания таких схем.

Основным и важным критерием в выборе метода была возможность использования именно бесплатного приложения. Среди разработчиков-любителей популярна среда EasyEDA китайского производителя печатных плат. Основное ее назначение – это создание принципиальных схем с последующим формированием топологии печатной платы. Однако, схемный редактор не ограничен применением собственных библиотек и позволяет создавать графические элементы для общего пользования. На этом редакторе и решено было реализовать карты распиновки.

Если обобщить все схемы, то можно выделить некоторые основные элементы – это непосредственно сам модуль или компонент, для которого требуется создать карту и ярлыки-метки с надписями функции.

Подобные ярлыки и должны быть разного размера и цвета. Каждый такой ярлык – отдельный элемент.

Продолжение следует…

Способы удаления меди

Сталкиваясь с разработкой печатной платы впервые или стараясь минимизировать затраты при ежедневной работе с электроникой, разработчики стараются найти более доступные альтернативы в каждом этапе изготовления. Ниже собрана информация про самые популярные методы удаления меди (травления) с незащищенных маской участков печатных плат, их преимущества и недостатки.

Ряд некоторых способов удаления меди:

Водный раствор хлорного железа FeCl3∙6H2O

Считается одним из самых популярных растворов для травления.

Способ приготовления. В теплой воде H2O (300 мл) разводится 100гр хлорного железа FeCl3∙6H2O. Должна получиться насыщенная золотисто-желтая жидкость. Чем насыщенней эмульсия, тем быстрее будет проходить процесс, но обычно занимает от 15 до 60 минут. Также на скорость влияет перемешивание (можно использовать компрессор, который постоянно перемешивает жидкость) и температура (можно периодически подогревать, но не выше 40 градусов). После окончания процедуры, необходимо тщательно промыть плату под водой. Остаток рабочего раствора можно сохранить в герметичной таре и применить повторно. С каждым последующим применением раствор будет менее активным и скорость реакции будет уменьшаться.

Из недостатков способа можно отметить лишь некоторую опасность для окружающих предметов при неаккуратном использовании. Следует быть внимательным при работе с данным методом, так как при попадании на любые предметы появляются трудновыводимые пятна.

Отличия представленных на рынке форм хлорного железа.

В настоящее время доступны безводное хлорное железо (FeCl3) и, так называемое, шестиводное хлорное железо (FeCl3∙6H2O), оно же Железо (III) хлорид 6-водный (гексагидрат). Визуально оно отличается цветом:

Шестиводное хлорное железо напоминает мокрый песок желто-оранжевого цвета.
Безводное хлорное железо – порошок чёрного цвета.

Растворять 6-водное хлорное железо (FeCl3∙6H2O) не сложно, травит оно предсказуемо и равномерно. Безводное хлорное железо (FeCl3) при растворении незначительно нагревается.

За счет повышения температуры скорость травления свежеприготовленным раствором возрастает. Однако, неконтролируемый нагрев осложняет тех.процесс тем, что точно установить момент окончания травления может быть затруднительно. Несмотря на то, что часто встречается рекомендация как раз увеличить температуру раствора не стоит забывать и о том, что для более качественного и контролируемого травления повышать температуру раствора значительно выше комнатной температуры не всегда правильно.

Использованный (насыщенный медью) раствор может быть использован для омеднения поверхностей без электролиза.

Азотная кислота HNO3

Редко применяется из-за высокой испаряемости, резкого запаха, сильной гигроскопичности. Для использования потребуется развести кислоту с водой в соотношении 1/3.

Главное не забывать о последовательности смешивания. Кислота наливается в воду, а не наоборот. Прежде чем опускать заготовку в раствор, проверьте на момент полного высыхания защитного слоя. В противном случае раствор разъест и его. Весь процесс занимает не более 5 минут, однако ввиду указанных неудобств в использовании применяется крайне редко. Очень важно соблюдать меры предосторожности при работе с азотной кислотой.

Медный купорос (CuSO4) и поваренная соль (NaCl)

Применяют достаточно редко, из-за выделения ядовитого газа и медленного протекания процесса (до 8 часов).

В 500мл воды, нагретой до 50 градусов, растворяют 100гр соли, затем добавляют 50гр медного купороса. Чтобы реакция травления протекала быстрее, необходимо поддерживать температуру до 80 градусов.

Серная кислота (H2SO4) и перекись водорода (H2O2)

Травление происходит в течение часа. Возможно повторное использование раствора, если хранить его в темном месте и в не герметичной таре. Обладает возможностью к регенерации, путем добавления перекиси.

В 300мл серной кислоты в воде добавляют 4 таблетки гидроперита. Температура должна сохраняться комнатная, а раствор необходимо периодически перемешивать. При подготовке раствора важно тщательно следите за соотношением составляющих. Для того, чтобы не получить замедленную реакцию, важно следить, чтобы не появлялись пузырьки, означающие переизбыток перекиси водорода.

Персульфат аммония ((NH4)2S2O8)

Для приготовления потребуется растворить 35гр кристаллического вещества в 65гр воды. На весь процесс уходит порядка 10 минут. Для оптимального действия требуется поддерживать температуру около 40 градусов, периодически помешивать.

Лимонная кислота в перекиси водорода (C6H8O7+H2O2)

Еще один из популярных методов благодаря своей невысокой стоимости, быстрой работе и бережному отношению к фоторезисту.

Способ приготовления. Для качественного протекания процесса, нужно налить в небольшую ванночку 100мл перекиси водорода 3%, засыпать 30гр лимонной кислоты и опустить в нее плату. Травление происходит равномерно, при нагреве до +40 градусов процесс несколько ускоряется. Также для ускорения добавляют 3гр соли, которая усиливает реакцию. Реакция происходит равномерно. Жидкость быстро меняет свой цвет из прозрачного в синий. Чтобы понять время окончания, надо периодически споласкивать плату или слегка шевелить емкость.

Из недостатков можно отметить постоянное выделение газов, которое может раздражать дыхательные пути и глаза. Чрезмерный нагрев раствора негативно сказывается на качестве травления, ввиду сложности контроля за окончанием процесса.

Эмульсия не хранится. Регенерация возможна, но чаще всего в ней нет необходимости, так как гораздо проще рассчитать приготовить новую порцию, учитывая ее невысокую стоимость. Не оставляет несмываемых следов. Использованный раствор не может быть использован для омеднения поверхностей (в отличии от хлорного железа насыщенного медью).

Объем травления раствором C6H8O7+H2O2 составляет около 0.35см3 меди на 100мл раствора. Для сравнения, 40% и 20% хлорное железо способно растворить 1.15см3 и 0.55см3 меди, соответственно. По объему растворения эффективность раствора C6H8O7+H2O2 в 1.6 раза меньше.


Независимо от выбранного метода, важно придерживаться правил безопасности, особенно работая с активными кислотами. Лучший вариант работать на открытом воздухе.

Травить печатные платы в металлической посуде не допускается. Для этого подойдут емкости из стекла или пластика.