Оригинальная Arduino UNO не прошивается по USB, ошибка stk500_recv(). Загружаю самый стандартный blink
``` Скетч использует 922 байт (2%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe3
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe3
Не удалась загрузка: ошибка при загрузке: exit status 1```
Bootloader жив, так как при нажатии кнопки reset 3 раза мигает индикатор L. Есть аналогичная китайская плата, с ней проблем не возникает. Какими-то костылями смог закинуть код через китайца в оригинал, но это не самый удобный метод и хотелось бы это делать напрямую. Что уже пробовал:
Сразу после компиляции до начала загрузки нажимал reset, ничего не даёт, хотя попыток было сделано очень много.
Пытался через монитор порта обойти автоматическую загрузку bootloader, но это тоже не принесло никаких плодов (открывал порт, выбирал 115200 бод, зажимал кнопку reset, отправлял сообщение “1”, отпускал reset и в конце пытался загрузить скетч).
Что смог выявить по принципиальной схеме: Есть на плате резисторная сборка с маркировкой 102, при измерении сопротивления выявил, что в одной половине сборки (которая идёт к светодиоду ON) есть просадка, при требуемом сопротивлении 1 кОм фактическое составляет 500 Ом, что довольно странно и я не совсем понимаю как это может быть связано с моей ошибкой. Если нужно что-то уточнить, то спрашивайте, распишу.
Тут как раз виден резистор с маркировкой 102, около светодиода с индикатором питания видны следи моей же плохой пайки, так как надеялся, что от этого частично работающий резистор перестанет мешать. После снятия светодиода ничего не изменилось, поэтому вернул обратно.
Вообще самой плате уже около 7-8 лет, так как именно тогда мне дарили набор от Amperka, куда она и входила. В то время мне было 12 лет и не было никаких нейросетей, а сам разбираться в электронике не умел, почему не обменял на работающую не знаю, наверное считал, что проблема в коде, в разъёме или в неправильно собранной схеме. Теперь же из принципа решил разобраться что с платой не так.
Мне нужно, чтобы плата спокойно прошивалась через USB порт.
Да, пробовал поставить другой боотлоадер. Я использовал китайскую Arduino UNO как программатор (скетч ArduinoISP с раскомментированной #define USE_OLD_STYLE_WIRING. Подключил её к оригинальной плате по схеме (пины 10-13, 5V, GND).
В Arduino IDE выбрал:
Плата: Arduino Uno
Порт: COM3 (порт китайской платы)
Программатор: Arduino as ISP
Выполнил Инструменты → Записать загрузчик. Всё прошло без ошибок (в логе было “Done burning bootloader”). Но проблема загрузки по USB не решилась. Ошибка осталась.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
Не удалась загрузка: ошибка при загрузке: exit status 1