Arduino IDE всем хороша, за исключением того, что писать код в ней просто неудобно. В поисках альтернативы настроил более-менее привычный для меня Visual Studio Code под написание кода для ардуино.
К сожалению, для работы с ардуино в VSCode не достаточно просто поставить плагин из маркета, это микрософт во всей красе! Вам так же понадобится установить cpptools и настроить его при помощи гугла и опыта других пользователей, странно что про эти настройки не пишут в документации.
Итак, ваш settings.json должен включать следующее (это все можно накликать в интерфейсе, но проще так):
Для MacOS:
"arduino.path": "/Applications", "arduino.commandPath": "Contents/MacOS/Arduino", "C_Cpp.default.includePath": [ "/Applications/Arduino.app/Contents/Java/hardware/**", "/Applications/Arduino.app/Contents/Java/libraries/**", "~/Documents/Arduino/libraries/**" ], "C_Cpp.intelliSenseEngine": "Tag Parser"
Для Linux:
"C_Cpp.intelliSenseEngine": "Tag Parser", "C_Cpp.default.includePath": [ "/usr/share/arduino/hardware/arduino/**", "/usr/share/arduino/libraries/**", "~/Arduino/libraries/**" ]
Для Windows, наверное, аналогично, но сам не пробовал.
После этого начинает работать менеджер библиотек, а из редактора уходят ошибки про несуществующие include, и начинают работать подсказки кода. Конечно, подсказки далеки от идеала, оно собирает все возможное со всех *.h файлов в includePath, не обращая внимания на те, что реально включено в вашем коде, но это уже гигантский шаг вперед по сравнению с Arduino IDE.
P.S. Удивительно, насколько среда разработки влияет на процесс написания ПО. Изначально я достаточно долго ковырял прошивку для декодера шагового двигателя в "родной" Arduino IDE, а когда дошли руки настроить Visual Studio Code для работы с ардуино, все было завершено за пару дней.