Проблема с Leonardo после обновления ПО

Тема в разделе "Arduino & Shields", создана пользователем Ektanoor, 8 дек 2012.

  1. Ektanoor

    Ektanoor Нерд

    Вчера я обновил ПО для Ардуино до версии 1.0.2 (было 1.0.1). Но после первой загрузки, на Леонардо, он вообще перестал выходить на связь. На первые этапы, подключение идет успешно:


    kernel: usb 2-5: new full-speed USB device number 4 using ohci_hcd
    kernel: usb 2-5: New USB device found, idVendor=2341, idProduct=0036
    kernel: usb 2-5: New USB device strings: Mfr=2, Product=1, SerialNumber=0
    kernel: usb 2-5: Product: Arduino Leonardo
    kernel: usb 2-5: Manufacturer: Arduino LLC
    kernel: cdc_acm 2-5:1.0: ttyACM0: USB ACM device
    kernel: usbcore: registered new interface driver cdc_acm
    kernel: cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

    Но далее, буквально за 5-7 секунд:
    kernel: usb 2-5: USB disconnect, device number 4

    И все, даже из таблицы USB девайсов он пропадает (у меня Linux). При этом аппарат показывает LED ON постоянно включен и мигающий LED L. ТХ и RX никакие признаки жизни не выдают.

    Было так:



    kernel: usb 2-5: new full-speed USB device number 4 using ohci_hcd
    kernel: usb 2-5: New USB device found, idVendor=2341, idProduct=8036
    kernel: usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    kernel: usb 2-5: Product: Arduino Leonardo
    kernel: usb 2-5: Manufacturer: Arduino LLC
    kernel: input: Arduino LLC Arduino Leonardo as /devices/pci0000:00/0000:00:02.0/usb2/2-5/2-5:1.2/input/input6
    kernel: hid-generic 0003:2341:8036.0002: input,hidraw1: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-0000:00:02.0-5/input2
    kernel: cdc_acm 2-5:1.0: This device cannot do calls on its own. It is not a modem.
    kernel: cdc_acm 2-5:1.0: ttyACM0: USB ACM device
    kernel: usbcore: registered new interface driver cdc_acm
    kernel: cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

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

    Если вариант перезаписать bootloader то хотелось знать где лучше читать об этом, ведь то что достал обобщено говорить о процедуре и нигде не говорит о Леонардо. Надо также отметить что скоро у меня будет еще один Леонардо, вообще то в понедельнике или во вторнике. Есть один UNO но боюсь что он не подходит для такой задачи, не так ли?
     
  2. Ektanoor

    Ektanoor Нерд

    Продолжение 1, все таки не сидел сложа руки...

    Все таки, если загрузить тупой файл (пустые функции setup+loop), карта оживляется. При этом нужно провести компиляция так как указан на сайте arduino.cc: держим reset нажать, компилуем код, как только появляется "Upload" освобождаем кнопку. Программа грузится и потом появляются все строки в загрузке, как и было раньше.

    Такой же финт работает когда проводишь небольшие программы с Serial.println. А вот попытка использовать другие комманды приводит к печальному исходу. При этом Leonardo ведет себе совершенно дико. То вообще никакой связи, то повторяет предыдущий глюк, то держится подольше на связь но никакой информации не передает. А еще были моменты когда он лихорадочно перестартовал канал - /dev/ttyACM0 то появлялся то исчезал.

    Продолжение 2!

    Только что получил второй Леонардо. Абсолютно та же самая проблема (да да, рискнул, но бесплатное шампанское не бывает). Так что могу предположить что при переходе с 1.0.1 на 1.0.2 что то в хлам ушел и остается даже после того как вернул старую версию... Вообще весело!
     
    Акронис нравится это.
  3. nailxx

    nailxx Официальный Нерд Администратор

    Linux, отлично! Запробуйте прошить через ino (http://inotool.org/)
     
  4. Ektanoor

    Ektanoor Нерд

    Ок. Попробую обязательно. Потом что ни-будь расскажу.
     
  5. Ektanoor

    Ektanoor Нерд

    Пробовал ino, то же самое эффект, те же самые проблемы.

    Народ из самой Arduino ответили. Говорят что проблема в загрузке скетча. Советуют перейти на 1.0.3 и загрузить новую прошивку в нем (через ArduinoISP).
     
  6. nailxx

    nailxx Официальный Нерд Администратор

    А есть ссылка на англоязычный тред?
     
  7. Ektanoor

    Ektanoor Нерд

    Это был ответ на письмо в саппорт.
     
  8. nailxx

    nailxx Официальный Нерд Администратор

    Спасибо, что поделились опытом. До этого мне казалось нереальным испахабить плату прямо из-под Arduino IDE.
     
  9. Ektanoor

    Ektanoor Нерд

    Все можно испахабить :) На самом деле, прочитав описание Леонардо, я понял что покупаю платы с некой долей риска. Я подозревал что идея Леонардо хорошая, но если что то не так то плата улетит в некуда. Так и получилось.

    Этот почти самостоятельный USB кажется слишком самостоятельным. Он запускается независимо от состояния всего остального. Однако, может быть и это спасение. Все таки, при жесткой перегрузке, связь восстанавливается и есть шанс форсировать новый скетч стандартными способами. Но глобально, мне кажется что у Леонардо просто отсутствует некая мерка "самочувствия" в момент "передачи дел" от USB в саму систему. Конечно в такие масштабы трудно реализовать такое, однако, когда выводишь компоненты из общей кучи в менее централизованные архитектуры, нужно всегда об этом подумать.
     
  10. Парализовал Leonardo некорректным программированием таймеров. Думал уже панихиду заказывать.
    Реанимация прошла успешно. Спасибо!