Не загружается скетч через пункт Sketch -> Upload

Опять 25. Не загружается скетч.

Точнее не грузится через пунк меню Sketch → Upload.
Выдает таукую диагностику.

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00

Но великолепно грузится через пункт Sketch → Upload Using Programmer

Операционная система Linux Mint
Arduino IDE 2.0.4 - AppImage, установлена в

 /opt/arduino-ide_2.0.4_Linux_64bit.AppImage 

В IDE выбрано
Board: Arduino Nano
Port: /dev/ttyACM0
Processor: ATMega 328P
Programmer: USBasp

В /etc/udev/rules.d/99-usbasp.rules

SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE:="0666″, GROUP:="dialout"

Arduino Nano вот такой

Пробовал
загружать через IDE 1.8.
выбирал old bootloader
брал другой экземпляр arduino
Все то же самое

Подскажите, куда копать?

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

3 лайка

Командой Tools->Burn Bootloader записал загрузчик.
Прт нажатии кнопки reset на Arduino nano три раза мигает синий светодиод.
Вроде пишут, что это индикатор, что bootloader загрузился.
При последующей попытке загрузить скетч командой Sketch->Upload та же ошибка

При записи загрузчика в МК заливается бланк, т.е светодиод (какого цвета он на вашей плате я не знаю) должен мигать постоянно.

В смысле blink?
Нет у меня ничего такого нет. После ресета только коротко мигает три раза и все.
Но пишет, что

Done burning bootloader

Мистика, после вашего поста еще раз загрузил bootloader и все как вы писали. Начинает блинкать светодиод.
Но скетч командой sketch->Upload не загружает

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

Странная ошибка. Удалите Ардуино IDE. Удалите папку ~/.arduino15 и установите IDE заново. И попробуйте записать скетч на чистой установке

Дык установка заключается в копировании arduino-ide_2.0.4_Linux_64bit.AppImage в подходящий каталог.
Я копирую его в /opt/arduino/ide-2.0
Сейчас сотру каталоги
~/Arduino
~/.arduino15
~/.arduinoIDE

На линухе с этим могут возникнуть сложности))

Какие? Папка твоя вроде

У вас хотя бы сериал монитор работает?

Удалил указанные папки.
Запустил по новой IDE-2.0.4
При попытке скомпилировать скетч сказала, что нет нужных библиотек. Предложила поставить.
Я нажад кнопку “Автоматом”.
Все то же самое. Через avrdude льётся, через upload - нет.
Хочется ругаться матом.

У вас хотя бы сериал монитор работает?

Что это значит? Как проверить?

Да, затупил сам

Нет. Она в домашнем каталоге

Зашить в ардуинку скетч, который что- нибудь печатает в Сериал.

А avrdude шьет не сериал разве?

Если через программатор, то нет

Тогда мне нужно чуть поподробнее. Я еще не настоящий сварщик.
Сериал это что?
Куда он подключен?
Если я буду что то выводить в сериал, где я увижу результат?

Подскажите, при прошивке Arduino Nano через USB какой нужно выбрать программатор?

любой, эта опция ни на что не влияет
Обычно выбирают AVR ISP или STM500

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

1. В системе установлен пакет brltty, который мешал нормальной работе с tty сh341.
Выяснилось это по логу в dmesg.
$ dmesg | grep ch34
Если последнее сообщение типа
ch341 1-4.1.3:1.0: device disconnected
Значит что то пошло не так.
При более детальном просмотре dmesg обнаружил, что пакет brltty конфликтует с ch341 за /dev/ttyUSB0
Удаляем пакет brltty из системы.
sudo apt remove brltty

2. У меня получалось запрограммировать Arduino Nano через программатор и я наивно полагал, что программирование через usb это то же самое. Ан нет. Это другой интерфейс.
Смотрим как он видится в системе (я убрал строки не относящиеся к нашему устройству):

$ lsusb
...
Bus 001 Device 015: ID 1a86:7523 QinHeng Electronics CH340 serial converter
...

У меня он подключен к Bus 001, как Device 015. Эта завист от того в какой разъем usb воткнута Arduino.
Важным является ID 1a86:7523
Нужно разрешить системе работать с этим устройством.
Для этого создаем файл /etc/udev/rules.d/99-Arduino.rules и прописываем в него такое правило:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666″, GROUP:="dialout"

Чтобы правила заработали нужно дать в терминале команду:

$ sudo udevadm control --reload-rules

3. В предыдущем пункте я указал группу dialout.
Эта группа создана для доступа к последовательным портам. Нужно проверить что вы включены в эту группу. Можно просто дать команду:

$ usermod -aG dialout $USER

Если пользователь уже в группе dialout, тогда ничего делаться не будет

4. Проверяем результат предыдущих выполения предыдущих пунктов. Для этого открываем терминал и вводим команду:

$ tail -f /var/log/syslog | grep ch34

Подключаем нашу Arduino к usb. Должно появиться что то вроде этого:

Apr 11 14:00:19 x-270 kernel: [ 2911.934831] ch341 1-4.1.3:1.0: ch341-uart converter detected
Apr 11 14:00:19 x-270 kernel: [ 2911.936002] usb 1-4.1.3: ch341-uart converter now attached to ttyUSB0

Отключаем от usb:

Apr 11 14:00:17 x-270 kernel: [ 2909.300300] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
Apr 11 14:00:17 x-270 kernel: [ 2909.303921] ch341 1-4.1.3:1.0: device disconnected

Отлично. Наша Arduino подключается к ttyUSB0

5. Все. Система настроена. Теперь выбираем в IDE следующие параметры
Board: Arduino Nano
Port: /dev/ttyISB0
Processor: ATMega328P (Old Bootloader)
Programmer можно выбрать любой. В данном случае от этого ничего не зависит.

После указанных действий Arduino Nano должна шиться через свой USB разъем.

Вроде все. Спасибо всем, кто принял участие в обсуждение и направил меня на решение это задачи.