programmer is not responding (nyan, leonardo, iskra neo)

Тема в разделе "Arduino & Shields", создана пользователем ricko, 5 июл 2017.

  1. ricko

    ricko Нерд

    Являюсь счастливым владельцем Nyan cat.
    Установил на Ubuntu Arduino IDE, загрузил pomodoro. При попытке загрузить обновленную прошивку начал получать ошибку.
    Код (C++):
    Connecting to programmer: .avrdude: Send: . [1b]
    avrdude: Send: S [53]
    avrdude: ser_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    Повторил еще раз медленно с помощью примера Basic->Blink. Удостоверился, что /dev/tty/ACM0 виден. Нажал на плате на reset, посмотрел на плате горит ON, потом секунд 7 поморгала L, потом немного RX. Дальше я посчитал, что плата готова и нажал Upload. Немного помаргала RX и дальше горели ON и L. Ошибка в логах та же. Попытка поменять Baud Rate с 57600 на 1200 не помогла.

    Опечалился, поставил IDE под Windows. В диспетчере устройств COM4 Leonardo определяется.
    При попытке загрузить blink получаю ошибку:

    Q: Можно ли восстановить загружаемость прошивок? Нужно ли искать кого-то с программатором?
    NOTE: на коте по прежнему осталась первоначальная прошивка с NYAN cat soundtrack-ом.
     
  2. rkit

    rkit Гуру

    Шнур поменяйте
     
  3. ricko

    ricko Нерд

    Поменял штатный USB кабель на другой обычный, не помогло.

    замена опции -cavr910 не помогла
     
  4. ricko

    ricko Нерд

    Возможны ли какие-то другие причины такой ошибки?

    Update: Хозяйке на заметку https://www.arduino.cc/en/Guide/Troubleshooting#toc1
     
    Последнее редактирование: 8 июл 2017
  5. ricko

    ricko Нерд

    Удалось починить.

    Вкратце: а) запустить загрузку -> б) нажать reset на плате -> в) пока плата не загрузилась еще раз запустить загрузку по новому порту

    В деталях:
    • В настройках Arduino IDE выставить дополнительное логгирование для build и для upload (у меня ангилйская версия)
    • Скомпилировать пример Blink в Arduino IDE (кнопка Verify). В логах посмотреть полный путь до Blink.ino.hex
    • Скопировать Blink.ino.hex (из /tmp/arduino_<набор букв-цифр>/Blink.ino.hex) в другую директорию (например, домашнюю). Нужно так как после закрытия arduino IDE этот файл будет удалён
    • Посмотреть на каком COM порту находится Arduino Leonardo. ls /dev/ttyACM*.
      Эта команда позволит мониторить какие используются порты, и обновлять вывод каждую секунду.
      Код (C++):
      watch -n1 "ls /dev/ttyACM*"
      у меня
      В Windows просто в диспетчере устройств. COM4 (Leonardo)
    • Запустить загрузку. Пути нужно указать свои. У меня команда выглядит так.
      Код (Text):
      sudo /home/ricko/arduino-1.8.3/hardware/tools/avr/bin/avrdude -C/home/ricko/arduino-1.8.3/hardware/tools/avr/etc/avrdude.conf -v -v -v  -v -patmega32u4 -cavr109 -P/dev/ttyACM1 -b57600 -D -V -Uflash:w:/home/ricko/arduino-1.8.3/Blink.ino.hex:i
    • В этот момент мы видим
      Код (Text):
      Connecting to programmer: .avrdude: Send: . [1b]
      avrdude: Send: S [53]
      avrdude: ser_recv(): programmer is not responding
      avrdude: butterfly_recv(): programmer is not responding
       
    • Нажимаем кнопку reset на плате Leonardo(Iskra Neo) (находится на нижней плате под подбородком у Nyan)
    • В это время на плате начинает моргать первый светодиод "L" около 7 секунд. В списке устройств (ls /dev/ttyACM*) у устройства назначается новый COM порт (/dev/ttyACM2).
    • Пока моргает запускаем прошивку повторно, которая вылечит плату. Не забыв поменять ttyACM1 на ttyACM2. У меня команда выглядит так
      Код (Text):
      sudo /home/ricko/arduino-1.8.3/hardware/tools/avr/bin/avrdude -C/home/ricko/arduino-1.8.3/hardware/tools/avr/etc/avrdude.conf -v -v -v  -v -patmega32u4 -cavr109 -P/dev/ttyACM2 -b57600 -D -V -Uflash:w:/home/ricko/arduino-1.8.3/Blink.ino.hex:i
    • Прошивка завершается успешно.
    • PROFIT 1!!
    полный лог в log.txt
     

    Вложения:

    • log.txt
      Размер файла:
      47,6 КБ
      Просмотров:
      734
    arkadyf нравится это.