Нет программаторов в arduino ide

Обновлено: 04.07.2024

Недавно возникла у меня такая ситуация: купил я Arduino Leonardo, пользовался ей в течение года. И вдруг она перестала работать. Стал усиленно гуглить, пытаясь понять, как же спасти плату. И понял, что гайдов, описывающих способы спасения, не так уж много, вот я и решил написать свой.

Итак, нам дана плата Arduino (неважно, какая), в которую не вгружается скетч. Что же с ней делать?

Проверить настройки IDE.

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

Иногда проблема кроется в отсутствии драйверов для работы с платой. Если на плате есть микросхема CH340, то для неё нужно установить драйвер, и тогда всё скорее всего заработает. Найти его можно, например, здесь

Если Ваша плата общается с другими программами на компьютере (Putty, монитор порта и др.), то отключите от неё все программы, с вероятностью 90% все заработает.

Если в Вашем проекте к пинам RX и TX (имеются в виду 0-ой и 1-ый пины), то отключите от них всё, иначе прошивка не будет загружаться

Если всё вышеперечисленное не помогло, то проблема кроется в микроконтроллере. Для решения этой проблемы есть несколько способов:

Прошивка через программатор

Если у Вас есть программатор, поддерживаемый Arduino IDE, то подключите к нему свою плату и попробуйте записать загрузчик. Если не помогает, то переходите к пункту 2. Если же у Вас нет программатора, то можно сделать его из другой платы Arduino, загрузив в неё стандартный пример ArduinoISP, и собрав всё по схеме. Конденсатор ставим обязательно, без него может не работать. Потом выбираем тип платы, которую будем прошивать, и выбираем программатор "Arduino as ISP". Потом заливаем прошивку.

Если же Вам не помогла и прошивка через программатор, то с вероятностью 99,9% ваша плата умерла.

Однако, у меня был похожий случай с платой Arduino Leonardo, и мне чудом удалось её спасти. Проблема была такова: При подключении платы к компьютеру он замечал её только минуты через 2. При загрузке прошивки компиляция проводилась успешно, но перед началом загрузки прошивки плата, как обычно сбрасывалась (это происходит всегда и для всех плат), и компьютер переставал её видеть вообще, даже после 10 минут ожидания. Решением стала установка такого же конденсатора между пином RESET и GND. Он предотвращает сброс платы.

Установил последнюю версию Arduino IDE 1.8.13. В ней вбил в настройках " http://arduino.esp8266.com/stable/package_esp8266com_index.json ", скачал в менеджере плат библиотэку ESP8266. Всё скачалось-установилось.

Выбираю в платах любую плату ESP8266 от обычной Generic ESP8266 до ModeMCU ESP-12E, нет для них программатора! В строке "Программатор" пишет: "No programmers available for this board".

Раньше шил нормально, программатор стандартный USBasp, всё ок. Но после обновления Arduino IDE До 1.8.13 пропали программаторы из ESP плат. Куда копнуть?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

А с чего ты взял, что esp8266 программируется усбаспом?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

А с того, что уже программировал их усбаспом.

Сам спросил, сам отвечу) Скачал версию 1.8.3. Появились программаторы, всё норм. Программирую ESP-01, ESP-12. А вот к новым ESP-12E почему-то не подключается. Чем они отличаются от более мелких ESP-12?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Jeka_M аватар

А с того, что уже программировал их усбаспом.

Не верю. Вот прям таким программировал?


Или просто выбирал пункт в меню?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

А с того, что уже программировал их усбаспом.

опубликуй сюда схему подключения программатора usbasp к ESP-01. о_О

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Или просто выбирал пункт в меню?

возможно разное, но не суть.

отсутствие программаторов в меню может свидетельствовать об утере неопытным ползателем компьютера файла programmers.txt

куда он(ползатель) его(programmers.txt) пролюбил - вопрос опытным детективам или инквизиторам.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да, просто выбрал пункт в меню) USBasp.

Вот) Слева направо: Новые ЕСП-12Е, с которыми связь не устанавливается. USBasp, которой шьются остальные мои ЕСП. И мелкая ЕСП-12, которая шьётся этим USBasp. Прикладывать ESP-01 не стал, её-то все знают, она тоже шьется.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да, просто выбрал пункт в меню) USBasp.

Вот) Слева направо: Новые ЕСП-12Е, с которыми связь не устанавливается. USBasp, которой шьются остальные мои ЕСП. И мелкая ЕСП-12, которая шьётся этим USBasp. Прикладывать ESP-01 не стал, её-то все знают, она тоже шьется.

это не usbasp


  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

как уже сказали, это никакой не USBasp.. Это вообще не программатор, а самый обыкновенный USB-UART-переходник с разъемом для ESP . Вместо него можно взять любой другой USB-UART или вообще воспользоваться ардуиной

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Тем не менее, подключаю к ней. Выбираю программатор USBasp и оно шьётся! )))

А вот ESP-12E не шьётся. По тем же канонам подключаю, но связь не устанавливается.

Может, её как-то надо иначе выбирать в программаторах?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

смотри, у тебя есть два сценария поведения:

1. выяснять, куда делся пункт меню с программатором.

2. ничего не делать, если у тебя никогда не было и не будет аппаратного usbasp.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Тем не менее, подключаю к ней. Выбираю программатор USBasp и оно шьётся! )))

А вот ESP-12E не шьётся. По тем же канонам подключаю, но связь не устанавливается.

Может, её как-то надо иначе выбирать в программаторах?

было у меня такое, надо в ИДЕ правильно частоту выставить. Их там аж три разных - см картинку


  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Jeka_M аватар

Тем не менее, подключаю к ней. Выбираю программатор USBasp и оно шьётся! )))

Что ты в этом списке выбираешь не имеет абсолютно никакого значения. Т.к. прошивка идёт через USB-UART, а не программатор. Можешь сам в этом убедиться - выбери любой другой программатор и твой ESP-01 спокойно прошьётся. Это меню нужно только если прошивать через физическое устройство-программатор. И не кнопкой "Загрузить" как обычно, а через пункт "Скетч" - "Загрузить через программатор". В остальных случаях меню "Программатор" не задействуется и там может быть выбрано что угодно.

Может, её как-то надо иначе выбирать в программаторах?

Ещё раз - проблема вообще не в меню "Программатор", забудь про него. Проблема в чём-то другом, например в бракованной плате NodeMCU ESP-12E (например где-то непропай) или плохих контактах.

Превращать Ардуину в программатор будем с помощью специально написанного скетча для плат LGT LarduinoISP.

Видео по теме:

Версия Arduino IDE: 1.8.13

Подготовка Arduino

Открываем "Файл > Примеры > LarduinoISP > LarduinoISP" .

Если в Примерах нет пункта LarduinoISP, то указываем в Инструментах > Плата: LGT8F328P





Настраиваем "Инструменты" как обычно для вашей Ардуины.


Далее необходимо внести небольшие изменения в один заголовочный файл ядра Ардуино. Придется изменить размер буфера SERIAL RX, это делается временно - только для прошивки скетча программатора в Ардуино, потом нужно будет вернуть как было. Данный параметр играет ключевую роль в процессе прошивки зеленки ардуиной, если его не выставить в 250, то зеленка просто не прошьется, а процесс прервется с ошибкой.

Файл, который нам нужен находится в папке с ядром Ардуино , например:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\


Открываем в любом текстовом редакторе файл HardwareSerial.h

И меняем значение на 250:

Возвращаемся к Arduino IDE

Прошиваем LarduinoISP в Ардуину

Если в процессе компиляции возникла ошибка:

"Please change the macro SERIAL_RX_BUFFER_SIZE to 250"

Значит вы что-то сделали не так на предыдущем шаге.


Размер буфера serial RX устанавливается гораздо проще при использовании другой LGT8F в качестве программатора - прямо через меню. Но чтобы добавить такую опцию для Ардуины - нужно вносить гораздо больше изменений в файлы ядра, да и при любом обновлении они могут затереться, так что проще это сделать через HardwareSerial.h.


После успешной прошивки скетча LarduinoISP в Ардуино, возвращаем значение размера буффера serial RX как было.

Отключаем Ардуину от компьютера

Соединение Arduino и LGT8F328P

Небольшое отступление.
Когда на Ардуину подается питание, сначала запускается загрузчик (буттоадер/bootloader), который некоторое время ждет поступления внешних команд (на прошивку и пр.). Если команды не поступают, то запускается основная прошитая ранее программа. Когда Ардуина работает в режиме программатора, ей некогда "отвлекаться" на запуск загрузчика, ее цель - постоянное выполнение своей программы, т.е. все время оставаться программатором и ждать прошивку для пациента. В процессе прошивки в начале отправляется сигнал сброса на Ардуину (низкий уровень сигнала на RST), который игнорируется за счет конденсатора, удерживающего на RST высокий уровень. Именно поэтому иногда встречается рекомендация подключить RST к VCC через подтягивающий резистор, что в данном случае выполняет ту же функцию.

Подключаем конденсатор на 10 мкФ к плате Ардуино между RST и GND , чтобы плата-программатор не перезагружалась в процессе прошивки пациента и не возникало ошибок "not in sync".

Подключаем пациента к ардуине по следующей схеме:


LGT8F -> Ардуино
GND -> GND
VCC -> +5V
SWD -> 12
RST -> 10
SWC -> 13

Прошивка LGT8F328P

Подключаем Ардуину к компьютеру.

Отрываем в Arduino IDE скетч, который необходимо прошить в зеленку.

  • Плата: "LGT8F328"
  • Variant: "328P-SSOP20 (e.g. green pseudo pro mini)"
  • Arduino as ISP: любое (этот параметр используется только при прошивке другой зеленкой в качестве программатора или USB-UART)
  • Программатор: "AVR ISP"



Прошиваем: "Скетч > Загрузить через программатор"

Готово! Вы восхитительны!

Если необходимо зашить загрузчик, то при тех же настройках просто нажимаем "Записать загрузчик" .


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

Скачивание (загрузка) Arduino IDE с официального сайта:

Зайдите на официальный сайт Arduino и выберите, из предложенного списка, операционную систему на которой работает Ваш компьютер. В данной статье мы рассмотрим установку Arduino IDE на операционную систему Windows. Выбрав первую строку «Windows Installer» Вы установите Arduino IDE (как устанавливаете любые другие программы), а выбрав вторую строку «Windows ZIP file for non admin install» Вы скачаете ZIP-архив с папкой программы, которую сможете запускать без установки (даже если у Вас нет прав администратора Вашего компьютера).


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


Если Вы просто хотите скачать программу, то нажмите на кнопку «JUST DOWNLOAD», если хотите скачать программу и поблагодарить разработчиков, способствуя дальнейшему развитию ПО, то нажмите на кнопку «CONTRIBUTE & DOWNLOAD».

Дождитесь завершения загрузки файла


После завершения загрузки, файл должен находиться в папке: « Этот компьютер > Загрузки » (если Вы не указали иное место для сохранения файла).


  • Если Вы скачивали (загружали) ZIP-архив (выбрав на первом этапе пункт «Windows ZIP file for non admin install»), то распакуйте папку из архива в любое место на Вашем компьютере.
    Следующий раздел «Установка Arduino IDE» не для Вас, так как устанавливать программу Вам не нужно, перейдите к разделу «Запуск Arduino IDE». Для начала работы в Arduino IDE нужно запустить файл «arduino.exe» , из того места, куда Вы распаковали архив.
  • Если Вы скачивали (загружали) установочный файл (выбрав на первом этапе пункт «Windows Installer»), то следуйте инструкциям в следующем разделе «Установка Arduino IDE».

Установка Arduino IDE:

Запустите установочный файл


из папки: « Этот компьютер > Загрузки » (у Вас вместо символов X.X.X в названии файла будут цифры версии Arduino IDE).






Разрешайте установку драйверов нажимая на кнопку «Установить», эти драйверы позволят определять и работать с платами Arduino подключёнными по шине USB.

На этом установка Arduino IDE завершена.

На Вашем рабочем столе должна появиться иконка программы:


Запуск Arduino IDE:


Разрешите доступ нажав на кнопку «Разрешить доступ». После чего, данное окно появляться не будет.

Откроется окно программы Arduino IDE:


На следующем рисунке указано назначение областей и функциональных кнопок программы:


Теперь можно написать скетч (код) и загрузить (залить/прошить) его в Arduino. Но перед этим, надо подключить плату Arduino к компьютеру и указать программе Arduino IDE, какую именно плату Arduino Вы подключили, и к какому порту.

Подключение платы Arduino:

После того как Вы подключите плату Arduino через USB порт к компьютеру, программе Arduino IDE нужно указать, какую именно плату Arduino Вы подключили. Для этого выберите нужную плату из списка в разделе меню « Инструменты > Плата > Название Вашей платы », как это показано на следующем рисунке:


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


Если USB контроллер Вашей платы Arduino реализован на чипе FTDI или ему аналогичных, то в списке доступных Com-портов Вы не увидите название платы Arduino в скобках напротив Com-порта. В нашем случае Вы бы увидели просто «COM1» и «COM7», тогда возникает вопрос, а к какому из этих портов подключена плата Arduino?

Решается данный вопрос очень просто. Отключите плату Arduino от компьютера и откройте меню « Инструменты > Порт » . В списке Com-портов Вы увидите только доступные Com-порты, то есть в нашем случае только «COM1». Теперь подключите плату Arduino к компьютеру и опять откройте меню « Инструменты > Порт » . Теперь Вы увидите что список Com-портов увеличился на один (в нашем случае к «COM1» добавился «COM7»), именно к появившемуся Com-порту и подключена Ваша плата Arduino.

Если при подключении платы Arduino Вы не увидели появление нового Com-порта, значит USB контроллер Вашей платы Arduino реализован на чипах сторонних производителей и для него требуется установить дополнительный драйвер. Как, например, драйвер для чипа CH340G.

Загрузка скетча из программы Arduino IDE в плату Arduino:

После того, как Вы указали тип платы Arduino, выбрали Com-порт и написали свой скетч (код программы), скетч можно загрузить (залить/прошить) в контроллер платы Arduino . Для этого выберите пункт меню « Скетч > Загрузка » или нажмите на кнопку в виде круга со стрелкой:


Если Вы написали скетч в новом окне и не сохраняли его в файл, то перед его загрузкой в плату Arduino, программ Arduino IDE предложит Вам его сохранить. Введите название, под которым Вы желаете сохранить скетч в файл и нажмите на кнопку «Сохранить».


Во время загрузки Вы увидите строку состояния которая будет отображать ход выполнения компиляции и загрузки скетча. Если в скетче нет ошибок и он успешно загружен, то в области уведомлений появится информация о количестве использованной и доступной памяти Arduino, а над областью уведомлений появится надпись «Загрузка завершена.».


Небольшой скетч приведённый выше (на картинке) заставит мигать светодиод на плате Arduino. Многие скетчи упрощаются и сокращаются при использовании библиотек. О том что такое библиотеки и как их устанавливать, Вы можете узнать в разделе Wiki - Установка библиотек в Arduino IDE .

Для урока Вам понадобится компьютер с доступом в Интернет и любой модуль Arduino.

Многие слышали о таких модулях как Arduino. Появляется вопрос: с чего же начать его изучение? Театр начинается с вешалки, а знакомство с Arduino начинается со среды разработки Arduino IDE.

Давайте найдём ответ на вопрос: зачем нам всё таки нужна эта IDE? Ответ достаточно прост. Среда Arduino IDE необходима для разработки программ и их записи в модули Arduino (и не только).

С предназначением IDE разобрались, теперь давайте изучим, что же она из себя представляет.

Чтобы подробнее разобраться со средой Arduino IDE, дорогой читатель, её нужно скачать и установить (если её нет на компьютере).

Среда разработки Arduino IDE состоит из следующих компонентов:


Подробно останавливаться на предназначении каждого пункта меню мы не будем, а рассмотрим только самые необходимые функции. Более подробно о каждом пункте меню можно прочитать здесь.

Язык программирования Arduino:

Фактически нет особого языка программирования Arduino. Модули Arduino программируются на C/C++. Особенности программирования сводятся к тому, что существует набор библиотек, включающий некоторые функции (pinMode, digitalWrite и т.д.) и объекты (Serial), которые значительно облегчают процесс написания программы.

Настройка среды Arduino IDE:

Открыть настройки среды можно из пункта меню Файл -> Настройки или с помощью комбинации клавиш Ctrl + ,


В меню настроек можно изменить путь сохранения программ по умолчанию, изменить размер шрифтов и т.д.

Различные примеры:

Одной из особенностей Arduino IDE является довольно обширная база различных примеров, что очень удобно для начинающих. Открыть пример можно из пункта меню Файл -> Примеры.


Создание новой программы:

Итак, с настройками среды мы разобрались. Что теперь? А сейчас нужно создать новую программу. Это можно сделать несколькими способами:


Сохранение программы:

Допустим мы написали программу. Далее нужно сохранить. Сделать это можно несколькими способами:


Теперь нужно только ввести имя вашей программы (оно не должно содержать русских символов!) и выбрать место, куда её сохранить. Сохранённая программа автоматически помещается в одноимённую папку, которая создаёт сама Arduino IDE.

Открытие программы:

Теперь мы научились создавать и сохранять программу. Но как теперь открыть сохранённую программу? Для этого в Arduino IDE предусмотрено несколько способов:


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

Редактирование текста программы:

Удобный редактор текста программы очень важен при разработке какой-либо программы. В Arduino IDE он довольно неплох, однако уступает конкурентам, таким как Eclipse, Visual Studio и т.д. Однако, его вполне достаточно. В редакторе присутствуют все основные команды, необходимые при редактировании кода. Они находятся в меню Правка. Для самых часто используемых команд (копировать, ставить и т.д.) существуют комбинации, способствующие быстрому доступу к нужной команде правки, что очень удобно. Другими отличительными особенностями встроенного редактора кода являются возможность копирования кода для форумов и в html формате, что позволяет делится Вашими программами, сохраняя наглядность разметки в виде BB кодов или html разметки соответственно.

Давайте остановимся на основных командах, необходимых для редактирования программы:



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

Подключение библиотеки:

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

Выбор платы:

Существует довольно большое количество модулей Arduino. Загружать написанную программу нужно именно в тот тип модуля, который подключён к компьютеру. Выбрать модуль можно в меню Инструменты -> Плата.


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

Далее необходимо выбрать тип контроллера, который установлен на модуле Arduino (на каждом контроллере есть маркировка). Это можно сделать в меню Инструменты -> Процессор.


Компиляция программы:

С понятием компиляции мы разобрались. А как теперь открыть скомпилировать написанную программу? Для этого в Arduino IDE предусмотрено несколько способов:

  • из пункта меню Скетч -> Проверить/Компилировать;


Выбор программатора:

Пункт меню Инструменты -> Программатор используется для выбора аппаратного программатора, если программирование модуля или микроконтроллера осуществляется не при помощи встроенного USB-последовательного соединения. Как правило, эта команда используется довольно редко, однако может пригодиться, например, при записи загрузчика в новый микроконтроллер.

Т.к. в модулях Arduino уже есть свой встроенный программатор, то в качестве программатора в меню Инструменты -> Программатор нужно оставить стандартный AVRISP mkII.


Запись загрузчика:

При помощи команды Инструменты -> Записать загрузчик в микроконтроллер можно записать загрузчик. При использовании Arduino этого не требуется, однако эта команда может пригодиться если Вы хотите прошивать обычный микроконтроллер фирмы Atmel (именно микроконтроллеры фирмы Atmel стоят в модулях Arduino и как правило, они продаются без встроенного загрузчика) аналогично Arduino. Если Вы хотите разобраться с этим, рекомендуем прочесть этот урок .


Загрузка программы:

Прежде чем загружать программу, нужно выбрать порт, к которому подключён Ваш модуль Arduino. Выбрать его можно в меню Инструменты -> Порт.


Это не обязательно должен быть COM5, как на рисунке. Имя порта у Вас, скорее всего, будет другим (COM3, COM 10 и т.д.).

Когда выбран соответствующий модуль Arduino, нужный порт, процессор и программатор, можно приступать к загрузке программы.

Для этого в Arduino IDE предусмотрено несколько способов:



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


Монитор последовательного порта:

Между Arduino и компьютером можно обмениваться данными через последовательный порт (он же интерфейс UART). Монитор последовательного порта может использоваться как для вывода отладочной информации от модуля Arduino, так и для других целей. Через него можно как отправлять данные в модуль Arduino, так и получать данные от него. Не забудьте выбрать порт, к которому подключён модуль Arduino, иначе монитор последовательного порта не откроется! При его открытии модуль Arduino перезагрузится!

Открыть окно монитора последовательного порта можно несколькими способами:

  • из пункта меню Инструменты -> Монитор порта;


После открытия монитора последовательного порта появится следующее окошко:


В самом низу этого окошка можно изменить скорость работы порта ( она должна совпадать с той, которая указана в программе! ) очистить окно и т.д.

Пример полного цикла разработки программы в Arduino IDE:

А теперь, дорогой читатель, давайте полностью пройдём все этапы разработки программы в Arduino IDE.


Запускаем Arduino IDE

Откроется следующее окошко:


Ждём открытия среды. Когда она открылась, создаём новую программу путём нажатия на комбинацию клавиш Ctrl + N.


Теперь давайте сохраним эту программу под именем Hello_World, для этого нажимаем на комбинацию клавиш Ctrl + S, вводим путь, куда сохраним программу и её имя.


В указанной директории появится папка с программой Hello_World.

Читайте также: