Arduino Uno R3 не распознается Arduino IDE в Ubuntu 21.04

Теперь я уже два дня дергаю себя за волосы по этому поводу. Я перепробовал все. Я перевернул каждый камень, просмотрел каждый результат поиска и каждую тему форумов Arduino.

Проблема в том, что Arduino IDE не распознает Arduino при подключении к ПК, поэтому я не могу загрузить скомпилированные скетчи. Как обычно, выпадающее меню последовательного порта выделено серым цветом.

Вещи, которые я пробовал до сих пор:

  1. Попробовал другой USB - кабель. Те же результаты.
  2. Попробовал это на Mac. Он безупречно работает с различными скетчами.
  3. Посмотрел журналы dmesg для Arduino при подключении. Он успешно подключается к компьютеру.
  4. Создал пользовательское правило udev для его символической ссылки из /dev/bus / usb/001/00X в /dev/ttyACMx.
  5. Изменил пользовательское правило udev для его символической ссылки из /dev/bus/usb/001/00X в /dev/ttyUSBx (так как по какой-то причине IDE сначала искал ttyUSB0).
  6. Пробовал Arduino IDE из snap, apt и из arduino.cc. Все они работают одинаково.
  7. Пробовал разные версии пакетов AVR board из диспетчера плат, но ни одна из них не работает вообще.
  8. Попробовал NodeMCU (ESP8266), он работает безупречно.
  9. Попробовал Arduino Due, он работает безупречно.
  10. Добавил себя в группы dialout, uucp и tty. Ничего не изменилось.
  11. Изменены разрешения на a+rwx для всех возможных файловых узлов устройства Arduino.
  12. Изменил групповое владение на dialout, uucp и tty для всех возможных файловых узлов устройств Arduino.
  13. Попробовал запустить Arduino IDEs от имени root. Ничего не изменилось.
  14. Установлены различные прошивки и библиотеки для linux (например, libserialport0)
  15. Исправил apt-версию Aruino IDE с помощью patchelf.
  16. Обновлено.
  17. Перезагрузился.

- Но, эй, чувак, почему бы тебе просто не использовать Mac для компиляции и загрузки скетча или любого другого микроконтроллера, если уж на то пошло? - Потому что мне нужно получить вывод с моего основного компьютера и делегировать его через последовательный интерфейс Arduino. А Arduino Due слишком неуклюж. А NodeMCU имеет спорную поддержку FastLED.

Если у кого-нибудь из вас, сумасшедших, есть идея, как это решить, я должен вам пиво.

, 👍-2

Обсуждение

это может быть несоответствие скорости передачи данных в бодах ... загрузите скетч, который отправляет известный символ с известной скоростью передачи данных в бодах каждые 1/2 секунды или около того ... используйте последовательную консоль, отличную от arduino IDE, для мониторинга последовательного порта, @jsotola

Когда Arduino подключен, есть ли какие-либо файлы устройств ttyACMx или ttyUSBx в /dev? Если да, пожалуйста, подключитесь к ним с помощью последовательной программы (например, "cu-l /dev/ttyUSB0-s 115200" в командной строке) и попытайтесь что-то отправить. Горит ли светодиод RX немного (будет только очень скоро, но видно)?, @chrisl

@jsotola Скетч ничего не может отправить, так как я не могу ничего загрузить в Arduino, к сожалению :(, @Tozzart

@chrisl Может быть ttyACX/ttyUSBx, так как я создал правило udev для символической ссылки на устройство после его подключения. По какой-то причине он обычно "монтируется" в /dev/bus/usb/001/00X. Я попробую тот же трюк. Большое вам спасибо!, @Tozzart

@Tozzart вы сказали, что это работает на Mac ... используйте Mac для загрузки тестового скетча, @jsotola

Пока вы не разберетесь со своей основной проблемой подключения к нему, я бы удалил все добавленные вами правила udev, потому что они только усложнят устранение неполадок., @timemage


2 ответа


0

Я испытал это с несколькими новыми установками ОС Linux. Попробуйте вот что:

Linux не видит board Run:

Введите "группы", есть ли там "dialout"?

sudo usermod -a -G tty yourUserName

sudo usermod -a -G dialout yourUserName

Выйдите из системы и снова войдите в систему, чтобы изменения вступили в силу. https://playground.arduino.cc/Linux/All/#Permission sudo ln -s /usr/bin /python3/usr/bin / python

,

1

После обновления до Ubuntu 22.04 с 20.10 я больше не мог ничего загружать на платы Arduino UNO. Проблема заключалась в том, что правильный порт не был указан в Arduino IDE. Все, что у меня было в качестве порта, это ttyS0. Это не будет работать с платами USB. Я использую Arduino IDE 1.8.19, но считаю, что это не имеет отношения к проблеме.

После проверки журналов:

sudo dmesg

Я получил следующий вывод:

usb 4-2: Product: USB2.0-Serial
ch341 4-2:1.0: ch341-uart converter detected
usb 4-2: ch341-uart converter now attached to ttyUSB0
input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input27
usb 4-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
ch341 4-2:1.0: device disconnected

Итак, все мои платы Arduino UNO, кажется, распознаются как какое-то tty-устройство Брайля (!). Затем поддержка Брайля пытается установить диалог с платой UNO. Это, конечно, не удается, что приводит к отключению платы UNO, что приводит к удалению устройства /dev/ttyUSB0. Именно по этой причине он не отображается в среде IDE.

Быстрое решение — просто удалить поддержку tty-дисплеев с шрифтом Брайля, если она вам не нужна.

sudo apt remove -y brltty

Это сработало для меня. Надеюсь, это сработает и для вас.

Проблема может быть связана с каким-то правилом udev, установленным с пакетом brltty. Если не ошибаюсь, правила udev обрабатываются в алфавитном порядке. Таким образом, может случиться так, что какое-то правило Брайля udev совпадет первым, что приведет к описанному выше сценарию.

,

Спасибо за подробные сведения о dmesg. Это помогло, потому что я прошел через все это и удалил brltty много месяцев назад после обновления до 22.04. Однако сегодня я попытался подключить Arduino Nano и не смог его распознать. Я обнаружил, что brltty был снова установлен. Я запустил apt remove, и arduino nano появился на ttyUSB0, как и должно быть. Поскольку вы показали dmesg, я смог сравнить со своим и увидеть, что проблема была в нем., @raddevus