В общем, помолясь и убедившись, что Timeshift сделал снимок системы пару часов назад, решил таки попробовать, что это за зверь. Бойся, не бойся, а переходить придется
Сначала прочитай это
Ниже описан мой опыт перехода на Arduino Cli в VS Code + расширение Arduino от MicroSoft. Опыт геморройный. Но это лично мой опыт, утверждать, что так будет и у вас не буду. Тем более, что Влад ниже утверждает, что у него переход прошел абсолютно гладко.
Переходить однозначно нужно, в работе разницы не увидите, все доступные параметры, платы, порты и программаторы по прежнему можно выбирать мышкой, компиляция и заливка на тех же кнопках, что и раньше. Зато не будут доставать сообщения об устаревшей IDE.
Резюме: если решили перейти, для начала попробуйте просто согласиться с предложением во всплывающем сообщении. Если все пройдет гладко, текст ниже можно не читать. Ну а если гладко не прошло, то…
Итак, для перехода на Arduino Cli нужно в настройках расширения поставить галку Arduino: Use Arduino Cli и очистить опции Arduino: Patch и Arduino: Command Patch. И перезапустить VS Code.
Сразу приготовьте большое полотенце - протирать монитор, плеваться поначалу будете (возможно) непроизвольно и обильно
Первое, что бросилось в глаза - нет ни одной стандартной ардуиновской платы. Т.е. нашлось все, даже просто скопированное два года назад в папку hardware в папке со скетчами, которая у меня лежит вообще на другом физическом диске, были все остальные ядра, установленные менеджером плат, а стандартного ядра не было.
Далее, среда упорно не видела библиотеки, установленные в папку libraries в той же папке со скетчами. Т.е. и папку со скетчами она тоже не видела, хотя платы из нее подхватила.
Совет создать файл конфигурации и прописать пути в нем не сработал, на команду
arduino-cli config init
я получил отлуп - команда неизвестна. А в какую папку установилась Arduino Cli - одному вскоду известно.
а спрятал он надежно ))
Позже нашел в папке
~/.vscode/extensions/vsciot-vscode.vscode-arduino-0.5.0-linux-x64/assets/platform/linux-x64/arduino-cli/
В общем пришлось идти длинным путем.
Инструкции брал отсюда - Installation - Arduino CLI
Заново установил Arduino Cli. Установил в папку, которая записана в переменной PATCH. Устанавливал командой
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=~/local/bin sh
где вместо ~/local/bin подставил свою папку. Теперь команда на создание конфига сработала, файл arduino-cli.yaml создался в папке ~/.arduino15. В этом файле прописал путь к папке со скетчами в
directories:
user: // тут путь к папке со скетчами
После чего стали видеться библиотеки, которые там установлены.
Стандартное ядро пришлось устанавливать отдельно командой
arduino-cli core install arduino:avr
Для компиляции и заливки прошивки в плату по прежнему работают соответствующие кнопки, тут разницы нет никакой. Залил стандартный блинк в нану - залилось, скомпилировал и залил один из рабочих проектов - залилось. Потом залил блинк в ESP8266 - все прошло нормально, а вот на ESP32 компилироваться отказалось - папка с установленными пайтоном не внесена в переменную PATCH. Тут, впрочем, ничего сказать не могу, раньше я для ESP32 ничего не компилировал, может оно и раньше не работало. Для ESP8266, помнится, тоже была проблема с пайтоном, но ее решил простой установкой, команду уже не помню, давно это было
Далее новый скетч, в котором практически и кода еще нет, скомпилировался для наны, но упорно отказывался компилироваться для ESP8266 - выдавал ошибку в одном из файлов FastLED. Решение оказалось неприлично простым - забыл в скетче поменять пин, на который подключен лента, от наны остался прописан пин 8, а в ESP он оказался нерукопожатым.
Далее залил в ESP8266 рабочий скетч WiFi выключателя - вроде работает.
Пробему с ESP32 решил командой
sudo apt update && sudo apt upgrade -y \
python-is-python3 \
python3-serial
После чего все заработало.
В общем, монитор протер, слегка подуспокоился, когда уже все прошел - вроде оно не так уж и страшно. Не оставляет ощущение какого-то подвоха, но рационально причины объяснить не могу Буду посмотреть, как оно себя дальше поведет.