Ранее мы отмечали, что альфа-релиз ESP32 Arduino Core 3.0.0 добавил поддержку ESP32-C6 и ESP32-H2 среди других изменений. Хорошая новость: Arduino ESP32 Core 3.0.0 теперь считается стабильной и была выпущена несколько дней назад на базе фреймворка ESP-IDF 5.1.4. Пользователи Arduino IDE могут применять её сразу, но, как подробнее рассмотрим ниже, неясно, будет ли официально поддерживаться PlatformIO.
С момента нашего обзора альфа-версии Alpha2 в ноябре 2023 произошло много изменений: 327 коммитов от 96 участников . Недавние правки (по сравнению с RC3) включают:
- Обновление ESPDuino с дополнительными опциями (частота CPU и разделение)
- Добавление поддержки WeAct Studio ESP32C3
- Корректное подключение событий ETH
- Активация использования SPI ETH всего с 4 проводами
- Исправление ETH.end()
- Исправление ETH.stop() с IDF SPI
- Nano ESP32: удаление записи programmer.default (в main) из-за непредвиденных последствий для CLI-пользователей
- Обновление Kconfig.projbuild для исправления выборочной компиляции LittleFS
- Корректировка устаревшей сигнатуры функции (ledcWrite)
- Удаление маскирования номера канала ADC
- Добавление карты GPIO для M5Stack CamS3 Unit и выбор OPI PSRAM по умолчанию
- Предоставление имени TAG по умолчанию для макроса логирования USE_ESP_IDF_LOG
- Обновление merge_package.py с использованием packaging.version вместо устаревшего distutils.version
Найти релиз можно на GitHub для установки в Arduino IDE, как и в случае с Alpha2. Теперь больше плат ESP32-C6 и ESP32-H2 поддерживаются из коробки — ранее было лишь две модели ESP32-C6 и одна ESP32-H2…
Это отлично для пользователей Arduino IDE, но некоторые предпочитают PlatformIO, где сейчас существует открытая проблема о поддержке Arduino ESP32 Core v3.0.0, которая, возможно, не получит официальной реализации:
ESP32 Core for Arduino 2.x — последняя основная версия, рекомендованная для PlatformIO. Решение о прекращении поддержки принято компанией Espressif, как указано в их официальном заявлении
Обсуждение длинное, но, похоже, идут коммерческие переговоры между Espressif Systems и разработчиками PlatformIO, ещё не завершённые:
[…]
Текущая поддерживаемая версия — Arduino Core v2.x для ESP32. Наше сотрудничество с Espressif, включая переговоры о продлении, продолжается. Отметим, что в обсуждении участвует @VojtechBartoska, менеджер проектов Espressif. Мы совместно работаем над обеспечением оптимальных функций и поддержки. Обо всех обновлениях сообщим дополнительно для бесперебойного продолжения услуг.[…]
PlatformIO — коммерческий open-source проект. До 2020 года это был платный сервис по модели B2C. Неожиданно PlatformIO обрел глобальную популярность среди миллионов разработчиков. В результате мы изменили стратегию, сделав профессиональные инструменты для embedded-разработки бесплатными.
Активная разработка и поддержка PlatformIO, включая инфраструктуру, теперь обеспечивается технологическими партнерами, ориентированными на качественный опыт разработчиков. Espressif был таким партнёром, и мы ценим многолетнее сотрудничество.
Сейчас Espressif прекратил поддержку новых продуктов в PlatformIO, но гарантируем: существующие продукты Espressif, интегрированные до изменений, поддерживаются согласно лицензионной политике. Ваши проекты не пострадают, сервисы продолжают работу в штатном режиме.
Эти сообщения датированы ноябрём 2023, но на текущий момент (1 июня 2024) PlatformIO всё ещё не поддерживает Arduino ESP32 3.x. Вместе с тем один пользователь, судя по всему, запустил PlatformIO с платой ESP32-C6 при помощи следующего JSON-файла:
{ "build": { "core": "esp32", "f_cpu": "160000000L", "f_flash": "80000000L", "flash_mode": "qio", "mcu": "esp32c6", "variant": "esp32c6" }, "connectivity": [ "wifi" ], "debug": { "openocd_target": "esp32c6.cfg" }, "frameworks": [ "arduino", "espidf" ], "name": "Espressif ESP32-C6", "upload": { "flash_size": "4MB", "maximum_ram_size": 327680, "maximum_size": 4194304, "require_upload_port": true, "speed": 460800 }, "url": "https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitm-1/index.html", "vendor": "Espressif" }
Однако неясно, будут ли работать все функции, как отметил другой участник:
Да, для C6 достаточно добавить запись arduino. Но C6 не работает «из коробки». Требуемые доработки для поддержки C2, H2 и C6 не столь масштабны 😉
Посмотрим, как сложится ситуация. Использовать Arduino ESP32 Core 3.0.0 с PlatformIO возможно при дополнительных усилиях, но если компании не достигнут согласия, долгосрочные перспективы PlatformIO для плат ESP32 неопределённы. Arduino ESP32 Core 2.x в PlatformIO поддерживается, поэтому существующие платы и проекты не затронуты.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.