Меню

Arduino ide ошибка открытия последовательного порта

grey-vsm аватар

Offline

Зарегистрирован: 01.12.2016

Приветствую всех.

У меня возникла возможно аппаратная неисправность платы Arduino UNO. Я написал программу и собрал на монтажной плате схему управления двигателем постоянного тока, по схеме представленой на рис.

Сначала все нормально работало, но потом возможно случайно каратнул кратковременно один из выводов двигателя на вывод базы транзистора (до или после резистора) потому что я замечал кратковременное срабатывание двигателя в тот момент когда он должен быть выключен. И после этого при попытке открыть «монитор порта» выходит сообщение «Ошибка открытия последовательного порта «COM3″ (Port busy)», и при попытке загрузить другую программу тоже ни чего не работает, выходит сообщение об ошибке. Подскажите что-то произошло с USB портом на плате arduino, хотя в диспечере устройств видно «Arduino Uno (COM3)». Неужели моя плата сломалась окончательно или чтото еще можно сделать и как мне провести проверку и поиск неисправности?

//——Полное сообщение об ошибке———

Arduino: 1.6.9 (Windows 7), Плата:»Arduino/Genuino Uno»

Скетч использует 2 298 байт (7%) памяти устройства. Всего доступно 32 256 байт.

Глобальные переменные используют 232 байт (11%) динамической памяти, оставляя 1 816 байт для локальных переменных. Максимум: 2 048 байт.

Ошибка открытия последовательного порта «COM3» (Port busy)

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x7b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x7b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x7b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x7b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x7b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x7b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x7b

avrdude: ser_send(): write error: sorry no info avail

processing.app.SerialException: Ошибка открытия последовательного порта «COM3»

at processing.app.Serial.<init>(Serial.java:125)

at processing.app.Serial.<init>(Serial.java:66)

at processing.app.SerialMonitor$3.<init>(SerialMonitor.java:93)

at processing.app.SerialMonitor.open(SerialMonitor.java:93)

at processing.app.AbstractMonitor.resume(AbstractMonitor.java:110)

at processing.app.Editor.resumeOrCloseSerialMonitor(Editor.java:2459)

at processing.app.Editor.access$2900(Editor.java:90)

at processing.app.Editor$DefaultExportHandler.run(Editor.java:2437)

at java.lang.Thread.run(Thread.java:745)

Caused by: jssc.SerialPortException: Port name — COM3; Method name — openPort(); Exception type — Port not found.

at jssc.SerialPort.openPort(SerialPort.java:167)

at processing.app.Serial.<init>(Serial.java:114)

… 8 more

Ошибка открытия последовательного порта «COM3»

//————————————————————————————————-

Ошибка открытия последовательного порта com4 port busy ардуино

Сначала проверьте последовательные порты. Загрузите Windows, но не подключайте плату Arduino или ESP8266. На рабочем столе щелкните правой кнопкой мыши (ПКМ) по ярлыку Этот компьютер (Компьютер). В меню выберите Свойства. В окне Система щелкните по ссылке Диспетчер устройств. В окне Диспетчер устройств откройте Порты (COM и LPT). Должен присутствовать последовательный порт COM1.

Теперь воткните в USB порт кабель от Arduino или ESP8266. В диспетчере устройств должен появиться дополнительный COM порт. Я подключил NodeMCU v3 и появился дополнительный порт COM3.

Если порт определился, но никаких сообщений в монитор порта не выводится, то проверьте скорость порта. В настройках Arduino IDE выставьте скорость порта ту, которая прописана в скетче. В окне монитора порта нажмите кнопку Очистить вывод. После этого монитор порта должен заработать.

Если ничего не изменилось и присутствует только порт COM1, то значит у вас проблемы с последовательным портом.
В этом случае при запуске скетча в окне выдается сообщение «Порт недоступен», «Ошибка подключения последовательного порта», «Порт не найден» и т.п. После этого начинаются пляски с бубном — отключаются и снова подключаются кабели, перезагружается компьютер. Иногда это помогает, иногда — нет.
Вероятная причина ошибки порта — помехи при передаче данных по USB кабелю. Как это не банально, но чаще всего причина в некачественном кабеле. Не экономьте, купите качественный кабель. Вторая вероятная причина — слаботочный USB порт. Замените ненадёжный кабель и не используйте разбитые USB разъёмы.

По второй причине — недостаточно тока для питания Arduino или ESP8266. USB порт в материнской плате компьютера может быть запитан от источника с малым выходным током. Попробуйте самое простое — подключить Arduino к другому порту в надежде на то, он запитан от более мощного источника. Такое возможно, если USB портов несколько. Кардинальное решение — подключить Arduino или ESP8266 через USB хаб (USB — разветвитель) с внешним блоком питания с выходным током не менее 2 — 3 А.

Радиолюбители, умеющие паять, могут поступить проще — подпаять короткими проводами к разъему USB в параллель еще один разъем USB, в который завести от основного разъема два провода питания GND и +5В. Или купите такой кабель, если есть такая возможность. Такой прием используют фирмы, когда питания от одного разъема USB не хватает, например для питания жесткого диска, подключенного к порту USB (USB HDD). Таким образом устройство получит дополнительное питание от другого порта USB.

Ещё одно причина нехватки питания для портов USB — подключение к роутеру по Wi-Fi. Wi-Fi адаптер потребляет значительный ток и нагружает шину питания портов USB. В связи с этим отключите Wi-Fi адаптер и подключите компьютер к роутеру кабелем. Иногда это сразу может решить проблему.
Предпочтительно использовать компьютер с подключением клавиатуры и мыши к портам PS/2. Клавиатура и мышь с подключением по USB будут дополнительно нагружать шину +5В USB и питания для Arduino или Node MCU может не хватить. Отключите на время принтер, подключенный по USB, смартфон, подключенный по USB и другие устройства, подключенные к портам USB, без которых можно обойтись, так как они потребляют ток по шинам USB. Кроме того, они могут просто влиять на порты USB и вызывать сбои системы.
По возможности используйте десктоп с достаточно мощным блоком питания, который обеспечивает с запасом ток по шине +5В. Некоторые дешёвые материнские платы при подключении двух-трёх USB устройств уже начинают давать сбои.

Используйте короткий USB кабель, насколько это возможно. Это уменьшит помехи при передаче данных.
Не используйте USB удлинители, подключайте Arduino или ESP8266 непосредственно к USB портам компьютера на задней стенке системного блока. Не используйте USB разъёмы на передней панели системного блока или USB порты картридера. Они подключаются к материнской плате кабелями. Это увеличивает помехи при передаче данных.

Самый действенный способ снизить помехи это использовать USB кабель с ферритовыми фильтрами — цилиндрическими утолщениями из ферритовых колец на концах кабелей.

Фильтры бывают съемными, они надеваются на кабель и защелкиваются.

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

Если использовать кольца небольшого диаметра, то никакой фиксации не понадобится. Например, я использовал два кольца, снятые с неисправной материнской платы. Только придется разрезать кабель и затем спаять его снова или припаять новый USB разъем.

Бывают ситуации, когда Arduino работает нормально, а при подключении ESP8266 появляются ошибки и скетч не работает. Такое может быть из-за того, что Wi-Fi передатчик модуля потребляет довольно значительный ток и для нормальной работы просто не хватает тока. Подключите ESP8266 через USB хаб с внешним блоком питания с выходным током 2-2.5-3 А. Также используйте для подключения короткие кабели с ферритовыми фильтрами на концах.
Желательно использовать Micro-USB или Mini-USB кабель с двумя USB разъемами на конце. Отвод с USB разъемом служит для подачи дополнительного питания. Радиолюбители могут без труда подпаять дополнительный USB разъем сами.

Если USB порты на материнской плате слабы по токам питания, то можно попробовать дополнительно подключить в PCI разъем контроллер USB. Подключите к этому контроллеру USB-мышь и USB-клавиатуру. К USB портам на материнской плате подключайте только Arduino или NodeMCU v3. К PCI разъему подводится более мощное питание. Один из таких контроллеров показан на фото:

Пробуйте подключаться к разным USB разъёмам компьютера, если их несколько, или разным разъёмам USB хаба.
Если ваш компьютер имеет порты USB2.0 и USB3.0, то пробуйте подключаться к тем и другим. Скорее всего лучшие результаты получите при подключении к USB2.0. Драйвер USB3.0 может работать некорректно.
Windows иногда просто не может определить порт. Проверьте контакты блока питания USB хаба в розетке сети. Если блок питания болтается, то о надёжной работе USB портов не может быть и речи.

Подключайте плату Arduino или ESP8266 в USB разъём после полной загрузки Windows.
При переключениях в другие порты номер порта может измениться. Проверяйте номер порта. В верхнем меню Arduino IDE выберите Сервис (Tools) -> Последовательный порт (Serial Port). Рядом с портом COM1 должен быть дополнительный порт. Поставьте галку, чтобы активировать его.

Работу COM порта и загрузку скетча визуально можно проверить по миганию светодиодов RX и TX на плате Arduino или по частому миганию светодиода рядом с Wi-Fi антенной на плате ESP8266 (NodeMCU v3).

Несмотря на все ухищрения, Windows 10 не открывает COM порт для Node MCU v3 (ESP-12E). Иногда подключает порт и тут же сбрасывает его и так без конца.
Подключил Node MCU v3 (ESP8266) через USB хаб с внешним блоком питания к компьютеру с Windows XP SP3. Установил драйвер ch341ser.exe и Arduino IDE 1.6.5. COM порт определяется и работает. В Windows XP COM порты определяются более надёжно. Проверил это на двух компьютерах с Windows XP с Intel и AMD процессорами.
Однако некоторые скетчи уже не используют приложения Win32 и при компиляции выдаётся ошибка. В этом случае потребуется как минимум 64-разрядная Windows 7.
COM порты виртуальные и, как в любой программе, возможен сбой при определении порта.

Семипортовые USB хабы (разветвители), как пишут в интернете, имеют две микросхемы по 4 порта. Последний порт первой микросхемы используется для подключения второй микросхемы. В итоге получается 3+4 порта. Можно попробовать подключать Arduino или Node MCU в разные порты хаба.

В Windows откройте Диспетчер устройств, раскройте Порты (COM и LPT). Не закрывайте это окно. Начинайте пробовать разные кабели, разные порты и разные варианты подключения оборудования и, как только порт надёжно определится в Диспетчере устройств, запомните эту конфигурацию оборудования.

И последнее и, может быть, самое главное. Большинство бестрансформаторных блоков питания (зарядных устройств), выполненных в корпусе-вилке, не обеспечивают заявленных характеристик. Например, у зарядного устройства 5V 2.1А, показанного ниже, при токе 0,9 А напряжение на выходе падает до 3,8 В. Сомневаюсь в том, что такой блок питания вообще может отдать в нагрузку ток 2А.

При подозрениях на проблему с питанием используйте трансформаторный блок питания. По габаритам он будет намного больше, зато надежно обеспечит расчетные ток и напряжение.
Рекомендации по блоку питания (из книги «Неисправности вашего ZX SPECTRUM» С.-Петербург, 1991):
«Советуем Вам выбрать самую простую, но и самую надежную схему: трансформатор — диодный мост — конденсатор фильтра — микросхема КР142ЕН5А в стандартном включении — блокировочный конденсатор.
Не стремитесь к чрезмерной миниатюризации! Трансформатор должен иметь мощность не менее 15 Вт, провод вторичной обмотки диаметр не менее 0,7 мм и напряжение на вторичной обмотке под нагрузкой 7-8 Ом должно быть 9-10 В.
Диодный мост подойдет любой из серий КЦ402, КЦ405. Конденсатор фильтра должен быть не менее 4000 мкФ, а рабочее напряжение — не ниже 16 В. На выходе ЕН5А поставьте блокировочный конденсатор 100-200 мкФ на 10-16 В. После сборки БП проконтролируйте напряжение на входе ЕН5А при подключенной нагрузке 5 Ом — должно быть 10,5-11 В.
Если это не так — отмотайте или домотайте несколько витков вторичной обмотки трансформатора. Затем проконтролируйте под нагрузкой 5 Ом напряжение на выходном разъеме БП — должно быть 4,9 — 5,1 В. При низком напряжении придется взять более толстый провод для подсоединения разъема.
При окончательной проверке БП посмотрите на осциллографе переменную составляющую напряжения на пределе 10 мВ (под нагрузкой 5 Ом) — заметных отклонений от прямой линии не должно быть.
В случае неудачи емкость фильтрующего конденсатора нужно увеличить.
Наконец, позамыкайте выход БП накоротко и убедитесь, что ЕН5А не выходит из строя.»
Вместо диодного моста КЦ можно применть более компактный диодный мост DB157S.

Некоторые экземпляры ЕН5А имеют на выходе напряжение чуть меньше 5 В. Для регулировки выходного напряжения соберите блок питания по схеме:

Номиналы резисторов R1 и R2 вы можете рассчитать сами. Например, после мостика на конденсаторе фильтра под нагрузкой у вас получилось напряжение 15 В. Напряжение на стабилитроне составит 3-3,3 В. Значит на резисторе R1 должно упасть 15 — 3 = 12 В. Ток стабилитрона КС133А 10 мА, т. е. 0,01 А. По закону Ома R = V/I. R = 12/0.01= 1200 Ом = 1,2 кОм. Также можно попробовать стабилитрон КС119А (напряжение стабилизации 1,9 В). Резистор R2 можно взять сопротивлением раза в три больше, чем R1, чтобы не так сильно шунтировал стабилитрон. R2 будет 3 — 3,6 кОм. Мощность рассеивания тоже рассчитывается по закону Ома. Резистор 0,25 Вт будет с большим запасом по мощности рассеивания. Для регулировки напряжения удобно использовать подстроечный многооборотный резистор СП5-3 или аналогичный.
Аккуратнее с регулировкой напряжения, а то выведите из строя само устройство. Вначале для проверки блока питания подключите нагрузку — резистор 5 Ом 5 Вт. Ток нагрузки будет 1 А. Резистором R2 установите напряжение на выходе + 5,0 ÷ 5,25 В.

Для повышения напряжения на выходе есть более простой вариант — включить в разрыв между выводом ЕН5А и общим проводом диод Д9Б. Так сделано в блоке питания для компьютера Специалист — М (ж. «Моделист-конструктор» № 4, 1991 г.)

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

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

Резюме
Чтобы устранить ошибки последовательного порта —
► используйте для питания Arduino или ESP8266 USB порты с достаточным выходным током или USB хаб с внешним блоком питания.
► используйте для подключения короткие USB кабели с ферритовыми фильтрами около разъемов.
► попробуйте разные версии драйвера CH340, если не поможет — тогда другую версию Windows.
► используйте качественный кабель со всеми сигнальными жилами, а не кабель от зарядного устройства.

Последнее редактирование 23 сентября 2022 г.

Источник

Arduino.ru

Ошибка открытия последовательного порта «COM3»

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

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

Во первых извените но на схеме допустил одну ошибку, нарисовал, что резистор подключается к Pin9, а на самом деле использовал Pin8.

Ну а во вторых: После того как моя плата (после неудавшейся заливки скетча) простояла подключенная к УСБ порту длительное время я заметил, что микросхема mege328 начала греться, не придется ли тогда менять этот контроллер и если да то как его перепрошить?

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

Переткни шнур, не поможет — перезагрузись и пропробуй снова

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

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

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

Значить, порт падох. Или СН340

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

Что это CH340 и можно ли его заменить

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

Вообще на своей плате Arduino UNO я не нашол микросхемы CH340, а к светодиодам TX и RX дорожки подводятся от mega16U2

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

Вполне может быть.

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

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

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

Приветствую всех форумчан!

У моей платы Arduino ONU что то случилось с преобразователем интерфейса USB и теперь на плату я не могу загрузить новый скетчь ардуино. Но вот в книге Джереми Блум «Изучаем ARDUINO» в описании устройства плат я прочитал, цитирую: «Если у вас есть программатор, то можно удалить загрузчик из своего контроллера ATmega и программировать его с помощью внешнего программатора.». Это что можно значит достать из платы микроконтроллер ATmega328 и в другой монтажной плате через разъем внутрисхемного программирования ISP прошить его программой созданной в Arduino_IDE, но только как это можно сделать и какую программу использовать для прошивки.

Источник

I’ve got an idea. Your board isn’t being recognized. Try unplugging the arduino and see if Com 1 is still there. Sometimes it can recognize mice and other devices as Com 1 or 2 instead of your arduino.

On some of my development machines after everything settled out my devices will show up on Com 4 and 5 when I am working on two at a time.

If this is not the case go into the device manager and see if you can see the board listed.

I would also wonder if you have your sensor hooked to digital pins 0 and 1. These pins are used for your serial line on usb. So if you have anything such as a sensor hooked to them it may be generating data keeping the line busy instead of it being able to negotiate.

I had this happen when setting up hc-05 for the first time. I realized I had to keep the chip off while flashing or I would end up with errors or Com busy.

Please provide your pinout and basic information about the Com ports available on the ide. Also consider that you will need to specify the correct board as it will default to an uno.

Programmer not in sync issues generally occur because the board is recognized but cannot be written to for one reason or another.

  • the board has something plugged into digital 1 and 0 which are serial i/o pins
  • the board programmer is busy running your last batch of code
  • usb error

So

  • try a different cord
  • try unplugging potential wiring issues and see if it can be written to without anything on it
  • try holding down reset on the board until the board when you try to write to it until just after it finishes compiling to clear any potential programing issues

In my experience mega have a tendency to suffer from the last one.

Первая прошивка


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

1. Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:

  • Неисправен USB кабель.
  • Неисправен USB порт компьютера.
  • Неисправен USB порт Arduino.
  • Попробуйте другой компьютер, чтобы исключить часть проблем из списка.
  • Попробуйте другую плату, чтобы исключить часть проблем из списка.
  • На плате Arduino сгорел диод по питанию USB.
  • Плата Arduino сгорела полностью из-за неправильного подключения питания или короткого замыкания

2. Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Кабель должен быть data-кабелем, а не “зарядным”.
  • Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб.
  • Не установлены драйверы для Arduino.

3. В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, отличный от COM1. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Некорректно установлен драйвер CH341.
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику

4. Выбираем свою плату. Если это Arduino Nano, выбираем в ИнструментыПлатаArduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.

  • [Для Arduino Nano] В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.

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

Ошибки компиляции


Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать.
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием название_файла.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по название файла.
  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча
  • Ошибка недостаточно свободного места возникает по вполне понятным причинам. Возможно поможет урок по оптимизации кода.

Частые ошибки в коде, приводящие к ошибке компиляции


  • expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
  • stray ‘320’ in program – русские символы в коде
  • expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
  • … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
  • redefinition of … – повторное объявление функции или переменной
  • storage size of … isn’t known – массив задан без указания размера

Ошибки загрузки


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

  • USB кабель, которым подключается Arduino, должен быть Data-кабелем, а не кабелем только для зарядки. Нужным нам кабелем подключаются к компьютеру плееры и смартфоны.
  • Причиной ошибки загрузки являются не установленные/криво установленные драйвера CH340, если у вас китайская NANO.
  • Также будет ошибка avrdude: ser_open(): can’t open device, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет – читай два пункта выше, либо попробуй другой USB порт, или вообще другой компьютер.
  • Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляем USB и по новой прошиваем.
  • Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”. Также в свежих версиях IDE нужно выбирать ATmega328P (Old Bootloader) для китайских плат NANO.
  • Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
  • Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
  • Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% сдох загрузчик. Второй неприятный исход – загрузчик “слетел”, и его можно прошить заново.

Предупреждения


Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет критических ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:

  • # Pragma message… – это просто сообщения, оставленные разработчиком проекта или библиотеки. Чаще всего номер версии и прочая информация.
  • Недостаточно памяти, программа может работать нестабильно – Чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.

FAQ


Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:

  • Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс Flash памяти. А он довольно большой.
  • Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
  • Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов. Подробнее в этом уроке.
  • Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию. Подробнее в этом уроке.
    • Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
    • Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу.
    • Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь.
    • Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI

Видео


Полезные страницы


  • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

Abstract: Steps of How to resolve «Serial port ‘COM1’ not found» in fedora 17.

Today install the packages for Arduino in Fedora 17.
(yum install arduino) and I have the same problem: I decided to upload an example to the chip. and got the same error «Serial port ‘COM1’ not found».

In this case when I run Arduino program, some banner appears which warns me that my user is not in ‘dialout’ and ‘lock’ group. Do you want add your user in this groups? I click in add button, but for some reason the program fail and not say nothing.

Step1: recognize the Arduino device
unplug your Arduino and list /dev files:

#ls -l /dev

plug your Arduino and go and list /dev files

#ls -l /dev

Find the new file (device) that was not before plugging, for example:

ttyACM0 or ttyUSB1

Read this properties:

ls -l /dev/ttyACM0

crw-rw---- 1 root dialout 166, 0 Dec 24 19:25 /dev/ttyACM0

the first c mean that Arduino is a character device.

user owner: root

group owner: dialout

mayor number: 166

minor number: 0

Step2: set your user as group owner.

If you do:

groups <yourUser>

And you are not in ‘dialout’ and/or ‘lock’ group. Add yourself in this groups run as root:

usermod -aG lock <yourUser>
usermod -aG dialout <yourUser>

restart the pc, and set /dev/<yourDeviceFile> as your serial port before upload.

Abstract: Steps of How to resolve «Serial port ‘COM1’ not found» in fedora 17.

Today install the packages for Arduino in Fedora 17.
(yum install arduino) and I have the same problem: I decided to upload an example to the chip. and got the same error «Serial port ‘COM1’ not found».

In this case when I run Arduino program, some banner appears which warns me that my user is not in ‘dialout’ and ‘lock’ group. Do you want add your user in this groups? I click in add button, but for some reason the program fail and not say nothing.

Step1: recognize the Arduino device
unplug your Arduino and list /dev files:

#ls -l /dev

plug your Arduino and go and list /dev files

#ls -l /dev

Find the new file (device) that was not before plugging, for example:

ttyACM0 or ttyUSB1

Read this properties:

ls -l /dev/ttyACM0

crw-rw---- 1 root dialout 166, 0 Dec 24 19:25 /dev/ttyACM0

the first c mean that Arduino is a character device.

user owner: root

group owner: dialout

mayor number: 166

minor number: 0

Step2: set your user as group owner.

If you do:

groups <yourUser>

And you are not in ‘dialout’ and/or ‘lock’ group. Add yourself in this groups run as root:

usermod -aG lock <yourUser>
usermod -aG dialout <yourUser>

restart the pc, and set /dev/<yourDeviceFile> as your serial port before upload.

I am running Debian 7 (Linux Crunchbang) and wanted to use The Arduino IDE to program my Arduino UNO. To do that I installed the package arduino. When I started the Arduino I was asked to add my user to the dialout group. So I did with sudo usermod -a -G dialout <my-username>.

However when I start the Arduino IDE using arduino in the commandline the IDE opens but I am not able to load my program to the Arduino. The error message is «Serial port COM1 not found. Did you select the right one from the Tools > Serial Port menu?» And when I went to select the Serial Port, the option «Tools > Serial Port» is greyed out.

I thought it is because I did not grant read and write permissions on my usb port (ttyACM0). So I did sudo chmod a+rw /dev/ttyACM0 but the option is still greyed out.

Braiam's user avatar

asked Oct 11, 2013 at 15:58

Moonlit's user avatar

1

chdmod works for my under debian (proxmox):

# chmod a+rw /dev/ttyACM0

For installing arduino IDE:

# apt-get install arduino arduino-core arduino-mk

Add the user to dialout group:

# gpasswd -a user dialout

Restart Linux.

Try with the File > Examples > 01.Basic > Blink, change the 2 delays to delay(60) and click the upload button for testing on arduino, led must blink faster. 😉

Braiam's user avatar

answered Dec 15, 2013 at 11:26

user3104260's user avatar

user3104260user3104260

4774 silver badges5 bronze badges

6

sudo arduino is the only way I get the Arduino IDE working (serial port and upload) on ubuntu 12.04 (64)
Indeed the serial port to use is /dev/ttyACM0 in my case too.
The other two (ttyS4 and ttyS0) gave an error when trying to upload to Uno.
Have fun

answered Jul 25, 2014 at 20:08

user3878345's user avatar

4

Try Disconnecting the usb and plugging it back in. Its only grayed out because the ide cannot find any com ports that the uno has been plugged into.

another solution is to try all the com ports and see which one works.

finally if all fails try restarting your computer.

answered Oct 12, 2013 at 5:01

user2375589's user avatar

Close all instances of the arduino IDE
open ~/.arduino/preferences.txt and look for the line:

serial.port=<not your port>

and change it to your port:

serial.port=/dev/ttyACM0

you may have to log out for it to take effect

answered Feb 21, 2016 at 17:20

chaggy's user avatar

chaggychaggy

1,0811 gold badge10 silver badges18 bronze badges

0

open $arduinoHome/arduino in text editor and modify last string:

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$@"

to

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dgnu.io.rxtx.SerialPorts="/dev/ttyACMN" processing.app.Base "$@"

(set property gnu.io.rxtx.SerialPorts to /dev/ttyACMN,where ttyACMN is name of serial port which you use)

it may temporary fix bug in rxtx library. helped me to upload sketch with arduino1.0.5 IDE.

Maybe would helpful for someone.

answered Jul 17, 2014 at 9:06

Sild's user avatar

SildSild

2,7993 gold badges15 silver badges21 bronze badges

2

In my case this turned out to be a bad USB hub.

The ‘lsusb’ command can be used to display all recognized devices. If the unit is not plugged in the option to set the speed will be disabled.

The lsusb command should output something like the string ‘Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)’ if your device is recognized. Mine was an RFDuino

answered Feb 16, 2016 at 23:41

Jay's user avatar

JayJay

13.4k3 gold badges40 silver badges69 bronze badges

In my case I solved this issue by uninstalling the version of Arduino that I installed via apt-get and instead installed via the official website.

With the latest version of Arduino I didn’t have the problem described on Ubuntu 18.04.

answered Mar 2, 2019 at 18:19

Philip Kirkbride's user avatar

Philip KirkbridePhilip Kirkbride

20.8k34 gold badges117 silver badges218 bronze badges

So I did with sudo usermod -a -G dialout <my-username>.

You need to log out after you add yourself to a group so those changes are applied. Just log out and log in again and the menu should be available.

answered Mar 16, 2015 at 0:50

Braiam's user avatar

install rx-tx lib for java run this command in terminal

sudo apt-get install librxtx-java -y

output port

sudo usermod -aG dialout $USER 
sudo apt-get install gnome-system-tools 

help regconize usb device

answered Feb 22, 2019 at 18:42

Rakibul Hasan's user avatar

I solved following serial port related problems in ubuntu 18.04 as follows:

Problem 1 : Cannot open /dev/ttyACM0: Permission denied
Solution : Grant permissions to read/write to the serial port with this terminal command —> sudo chmod a+rw /dev/ttyACM0
Here replace tty port with your respective ubuntu port.

Problem 2 : Failed to open /dev/ttyACM0 (port busy)
Solution : This problem appears when serial port is busy or already occupied. So kill the busy serial port with command —> fuser -k /dev/ttyACM0. Here replace tty port with your respective ubuntu port.

Problem 3 : Board at /dev/ttyACM0 is not available
Solution : In this case your serial port in tools menu will be greyed out. I googled a lot for this, but I none of solution worked for me. Atlast I tried different arduino board and usb connector and it was working for me. So, if you are having old arduino board (can be solved using required drivers) or defected arduino board then only this problem arises.

answered Feb 27, 2021 at 17:01

Rahul's user avatar

RahulRahul

6977 silver badges9 bronze badges

If it is helpful to anyone, I had this problem using Ubuntu 22.04. The issue stemmed from:

  • apparmor (apparmor denied error, logging with dmesg)
  • brltty (ch34x converter now disconnected from ttyUSB0)

Solved it by removing both:

  • https://www.simplified.guide/ubuntu/remove-apparmor
  • sudo apt remove brltty

You can disable apparmor and it should work, however this made applications like firefox useless. My recomendation would be to totally remove it

answered Apr 27, 2022 at 18:34

deguez07's user avatar

Same comment as Philip Kirkbride.
It wasn’t a permission issue, but using the Arduino IDE downloaded from their website solved my problem.
Thanks!
Michael

answered May 3, 2019 at 17:29

Michael Opdenacker's user avatar

0

The following steps install the IDE and remove the error java.lang.NullPointerException thrown while loading gnu.io.RXTXCommDriver which usually comes with arduino installed with apt-get command in Ubuntu.

Install the IDE

sudo apt-get install arduino

for removing java error in IDE

sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-set-default

This also shows the Serial Port which was grayed out due to the error.

Zoe stands with Ukraine's user avatar

answered Apr 2, 2019 at 19:28

Sheetal gupta's user avatar

I had the same problem, with which I struggled for few days, reading all the blog posts, watching videos and finally after i changed my uno board, it worked perfectly well. But before I did that, there were a few things I tried, which I think also had an effect.

  • Extracted the files to opt folder, change the preference —> behavior —> executable text files —> ask what to do. After that, double clicked arduino on the folder, selected run by terminal
  • added user dialout like described in other answers.

Hope this answer helps you.

clayRay's user avatar

clayRay

64313 silver badges32 bronze badges

answered Oct 16, 2020 at 5:36

Manodhya Opallage's user avatar

For a Windows solution I’ve found that disabling and re-enabling the Arduino in Device Manager, then restarting the Arduino IDE does the trick without fail (no unplugging necessary). Why this error occurs in the first place is beyond me. Perhaps the corresponding method for Linux will fix your problem.

Slightly related (not really), I had an issue with an AVR board a while back which was fixed by setting the device to a new COM port in the driver settings. Again, however you linux bunnies do it, I’m sure it’ll be cookies and cream.

Cheers brother,

answered Feb 20, 2014 at 18:26

Eddie Spaghetti's user avatar

I encountered the same issue. My solution was to install and use java7:

sudo apt-get install openjdk-7-jre
sudo update-alternatives --config java

Select the number referring to the java-7 path.

answered Apr 15, 2014 at 15:44

Tones29's user avatar

You probably don’t have the correct permissions. Try adding yourself to these groups.

sudo adduser username ttyl
sudo adduser username serial
sudo adduser username uucp

Then restart your system and check if you got added to the groups.

groups username

Good Luck!

answered Apr 17, 2014 at 1:04

Numbers San's user avatar

Try to run as an administrator…
Run terminal, type sudo arduino, type your root password, and… 🙂

answered Jul 17, 2014 at 16:34

Junsa's user avatar

JunsaJunsa

71 bronze badge

0

  1. При попытке загрузки пустого скетча на Arduino Leonardo Eth возникает ошибка:

    processing.app.debug.RunnerException
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:132)
    at processing.app.debug.Compiler.upload(Compiler.java:166)
    at processing.app.Sketch.upload(Sketch.java:1167)
    at processing.app.Sketch.exportApplet(Sketch.java:1141)
    at processing.app.Sketch.exportApplet(Sketch.java:1113)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: processing.app.SerialException: Ошибка создания последовательного порта «COM4»
    at processing.app.Serial.touchForCDCReset(Serial.java:92)
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:121)
    … 6 more
    Caused by: jssc.SerialPortException: Port name — COM4; Method name — openPort(); Exception type — Port busy.
    at jssc.SerialPort.openPort(SerialPort.java:164)
    at processing.app.Serial.touchForCDCReset(Serial.java:86)
    … 7 more

    Так же, при подключенной ардуинке, при попытки открыть Монитор последовательного порта возникает ошибка — Ошибка открытия последовательного порта «COM4» (Port busy)

    Драйвера все переустанавливал. Номер порта менял. Ничего не помогает, идей как почить нету.

  2. «COM4» (Port busy) — порт занят. До этого работало или всегда такую ошибку дает?. Компьютер перезагружать пробовали?

  3. Иногда достаточно просто вытащить шнур с ардуино и опять вставить…

  4. Перезагружать, выключать всё и включать пробовал :( Порт выбран правильно, в диспетчере задач проверял. Порт 100% ничем не занят. И если порт не тот стоит, то ошибка другая совсем. Дома все работает отлично, но на работе заставить работать не получается.

  5. А что за ось стоит? x64 или x32?

  6. И на этот вопрос ответте пожалуйста.

  7. Что значит «пустой скетч»?И зачем его загружать?А Blink загружается?

  8. Про пустой скетч я не заметил(НУБ — НУБОМ:confused:). Метко!

  9. Пустой скетч при загрузке всегда ошибку выдаст

  10. А может он имел ввиду:

    void setup()
    {}
    void loop()
    {}
     
  11. На работе ничего не работало и не работает. Дома все работало и работает :) Пустой скетч это я про:

    void setup() {
    // put your setup code here, to run once:
    }

    void loop() {
    // put your main code here, to run repeatedly:
    }

    Операционка Windows 8.1 x64 Corp в рабочем домене.

  12. Ооо. Привычные лаги 64-х битной 8.1. Подозреваю что дома стоит 32?

  13. А у вас какая версия компилятора?

  14. Нифигасебе:p, вы решили проблему?

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

  16. А в порты во все пробовали пихать?

  17. Не всегда.У меня загрузился.XP Home & Arduino UNO (original)

    Эксперименты с пустым скетчем?А другие то загружаются?

  18. Случайно на работе не стоит ограничений на использование стороннего софта, типа нельзя флешки использовать???

  19. processing.app.debug.RunnerException
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
    at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
    at processing.app.SketchController.upload(SketchController.java:709)
    at processing.app.SketchController.exportApplet(SketchController.java:682)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2190)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: processing.app.SerialException: Error touching serial port ‘COM7’.
    at processing.app.Serial.touchForCDCReset(Serial.java:87)
    at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:144)
    … 5 more
    Caused by: jssc.SerialPortException: Port name — COM7; Method name — openPort(); Exception type — Port not found.
    at jssc.SerialPort.openPort(SerialPort.java:167)
    at processing.app.Serial.touchForCDCReset(Serial.java:81)
    … 6 more
    Та же проблема, что делать?
    На мой взгляд не проходит обмена команды на вход в состояние прошивки.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Arduino esp8266 ошибка загрузки
  • Ardo fls105s коды ошибок