Я использую http://ed.am/dev/make/arduino-mk для загружать код в мои продукты Arduino в Ubuntu без использования IDE.
При этом я подтвердил, что makefile и avrdude хорошо работают с моим Arduino Uno, так что все в порядке.
Однако мне нужно было, чтобы он работал с Arduino Micro. Поэтому перед настройкой файлов .hex и т. д. я ввел:
export BOARD = micro
Что позволило бы мне получить форматирование для микро, как описано в make-файле. Когда я попытался загрузить его, я получаю интересную ситуацию:
nancy@nancy-VirtualBox:~/Desktop/Arduino/sketchbook$ make upload
stty -F /dev/ttyACM0 speed 1200
57600
sleep 1
/usr/bin/avrdude -DV -p atmega32u4 -P /dev/ttyACM0 -c avr109 -b 57600 -U flash:w:blink.hex:i
В этот момент он остается на этой линии сколь угодно долго и ничего не делает. На самом Arduino светодиод 13 постоянно мигает, но Rx вообще не горит. Чтобы перепроверить, я проверил dmesg:
usb 1-2: new full-speed USB device number 32 using ohci-pci
usb 1-2: New USB device found, idVendor=2341, idProduct=8037
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-2: Product: Arduino Micro
usb 1-2: Manufacturer: Arduino LLC
cdc_acm 1-2:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 1-2:1.0: ttyACM0: USB ACM device
input: Arduino LLC Arduino Micro as /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.2/input/input36
hid-generic 0003:2341:8037.001F: input,hidraw1: USB HID v1.01 Mouse [Arduino LLC Arduino Micro ] on usb-0000:00:06.0-2/input2
Так что я, по крайней мере, знаю, что это правильный порт (также дважды проверен с помощью ls -l /dev/serial/by-id ). На всякий случай я дважды проверил с обычными окнами, и Windows уведомляет меня о том, что драйвер не установлен должным образом. В программном обеспечении Arduino, когда я пытаюсь загрузить общий мигающий код в микроконтроллер, он делает то же самое, когда он тоже зависает в окне «Загрузить...».
Я обновил драйвер для микро, и программное обеспечение Arduino загружается в Arduino Micro без проблем. На всякий случай я подумал, что это реальное оборудование, так как я позаимствовал его у друга, я протестировал проблему на новом Arduino Micro, и проблема воспроизведена только в интерфейсе Linux. Я почти уверен, что это не Linux VirtualBox, потому что Arduino Uno отлично работала при загрузке.
Кто-нибудь знает, как я могу решить проблему с загрузкой? Я думаю, что это какая-то проблема с драйвером.
Спасибо.
изменить: попробовал arduino Mega (экспорт BOARD = mega2560)
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
Так что я думаю, что это проблема с драйвером и файлом makefile...