LINUX.ORG.RU

arduino pro micro, прошивка

 


0

1

Есть Аrduino pro micro. Хочу залить на неё прошивку.

lsusb
Bus 003 Device 025: ID 2341:8037 Arduino SA
Как я понимаю на ней загрузчик DFU, потому что она распознается как usb девайс. Если бы загрузчик был Caterina то девайс распознался udev как /dev/ttyACMxx.
dmesg
[10624.316926] usb 3-1.1.1: USB disconnect, device number 25
[10643.190065] usb 3-1.1.1: new full-speed USB device number 26 using xhci_hcd
[10643.288594] usb 3-1.1.1: New USB device found, idVendor=2341, idProduct=8037
[10643.288598] usb 3-1.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10643.288602] usb 3-1.1.1: Product: Arduino Micro
[10643.288604] usb 3-1.1.1: Manufacturer: Arduino LLC
[10643.295861] input: Arduino LLC Arduino Micro as /devices/pci0000:00/0000:00:1c.1/0000:06:00.0/usb3/3-1/3-1.1/3-1.1.1/3-1.1.1:1.2/0003:2341:8037.0012/input/input28
[10643.347250] hid-generic 0003:2341:8037.0012: input,hidraw3: USB HID v1.01 Mouse [Arduino LLC Arduino Micro] on usb-0000:06:00.0-1.1.1/input2
udevadm monitor. Если использовать qmk гайд выдает такое сообщение.
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
И одна из причин это то что устройство не переведено в режим загрузки прошивки. Что можно сделать зажав кнопку сброса, подключить устройство и отпустить её. Я пытаюсь это сделать, но у меня ничего не происходит. Подскажите, пожалуйста, ЧЯДНТ?

UPD: в ядре нужно было включить опцию CONFIG_USB_ACM=m

Дали им STM32 с нормальным армом и КУЧЕЙ периферии - пользуйся! Дали им копеечные ESP8266 - за 1 доллар вместе с вайфаем! Есть куча убийц ESP за ту же цену с вайфаем, но на арме! - Не хочу, хочу абдурину.

anonymous ()

у меня с али такая-же валяется... так и не мог понять что с ней... более дешевые pro mini хоть работают (там кнопку надо нажать), а эта не хотит...

пробовал туда загрузчик заливать - все едино...

anonymous ()

Для начала нужно понять, чем пытаетесь шить?

Как я понимаю на ней загрузчик DFU, потому что она распознается как usb девайс

Как USB девайс распознаётся потому, что контроллер с аппаратной поддержкой USB и с прошивкой, которая активирует USB интерфейс. А загрузчика DFU на ней скорее всего нет.

Что бы прошить плату, нужно произвести сброс контроллера и не позднее 2 секунд после сброса начать процесс прошивки.
После сброса контроллера начнёт работать бутлоадер, который инициализирует USB интерфейс как CDC (ACM) устройство, которое должно в системе определиться как /dev/ttyACMx. Этот бутлоадер в течении пары секунд ждёт команды на прошивание. Если команд нет, то запускает основную прошивку. А уж как сконфигурирует основная прошивка USB интерфейс, ведомо только ей... Поэтому при работе основной прошивки ни каких устройств (типа /dev/ttyACMx) может и не появиться в системе.

Netzschlange ()

да есть такое дело, но у меня оно определяется не как /dev/ttyACMx если быть точнее как /devices/pci0000:00/0000:00:1c.1/0000:06:00.0/usb3/3-1/3-1.1/3-1.1.1 на 8 секунд как по мануалу в режиме прошивки:

Bus 003 Device 012: ID 2341:0037 Arduino SA
и вне его
Bus 003 Device 013: ID 2341:8037 Arduino SA
у меня есть правило чтобы было во что писать
SUBSYSTEMS=="usb", ATTRS{idProduct}=="0037", ATTRS{idVendor}=="2341", SYMLINK+="_usb/atmega32u4_for_flash", MODE="0660", GROUP="plugdev"
но когда правило отрабатывает создавая SYMLINK делает это
lrwxrwxrwx 1 root root 18 Feb 28 14:03 /dev/_usb/atmega32u4_for_flash -> ../bus/usb/003/014
но даже когда пытаюсь писать туда что либо с правами рута, все равно ничего не выходит пишет:
avrdude: ser_open(): can't set attributes for device "/dev/_usb/atmega32u4_for_flash": Inappropriate ioctl for device

avrdude done.  Thank you.
я плачу... Решил для начала разобраться с правилами udev почему оно не хочет создавать SYMLINK с владельцем plugdev.

SmilePlz ()
Последнее исправление: SmilePlz (всего исправлений: 1)
Ответ на: комментарий от SmilePlz

Первые шаги

Попробуйте следующее правило:

ATTRS{idProduct}=="0037", ATTRS{idVendor}=="2341", MODE="0660", GROUP="plugdev"
Симлинк всё равно не поможет, это ссылка не на последовательный порт, а на интерфейс USB. Именно поэтому получаете:
Inappropriate ioctl for device
Далее укажите при прошивке устройство /dev/ttyACM0. Оно должно создаваться, если драйвер в системе присутствует (если ядро сами не пересобирали, драйвер должен быть). Потом нажмите кнопочку Reset на Ардуинке и примерно через секунду запустите процедуру перепрошивки на какой-нибудь стандартный блинк (в комплекте Arduino IDE есть).

Решил для начала разобраться с правилами udev почему оно не хочет создавать SYMLINK с владельцем plugdev

С чего это вдруг решили, что не создаёт? Создаёт и к нему есть доступ.

Netzschlange ()