Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Hardware Wiki — платы, на которых мы реально работаем

Справочник по платам ESP32, используемым в проектах VibeEngineering: характеристики, официальные источники, и главное — наш собственный опыт: что сработало, что нет, на чём мы обожглись и чего делать не стоит.

Не маркетинг и не пересказ даташитов. Каждый пункт «плюсы/минусы» здесь оплачен временем отладки на живом железе; спорные утверждения помечены как непроверенные.

Платы

Плата Чип Flash / PSRAM Наши проекты Статус
ESP32-S3-DevKitC-1 N16R8 ESP32-S3, 2×240 МГц 16 МБ / 8 МБ octal AtomSpectra Waterfall, Radex-шлюз, БДКГ-05 мост, стенды BLE ✅ основная рабочая
Seeed XIAO ESP32C3 ESP32-C3, RISC-V 160 МГц 4 МБ / нет RadonEye-шлюз, Radex-шлюз (C3), BLE Explorer ✅ в работе
ESP32-S3-USB-OTG ESP32-S3, 2×240 МГц 8 МБ / нет USB-host терминал к спектрометрам (usb_host_probe) ⚠ ниша
ESP32-DevKitC v4 (WROOM-32) ESP32, 2×240 МГц 4 МБ / нет ранние BLE-шлюзы, ble-explorer 🕗 legacy

Где что «завёрстано» — карта прошивок

Прошивка / проект Плата Фреймворк Репозиторий
atomspectra-waterfall — водопад гамма-спектров, USB Host + Web UI S3-DevKitC-1 N16R8 ESP-IDF v5.4 atomspectra-waterfall-esp32
radex_gateway_s3_n16r8.yaml — BLE-шлюз Radex MR107ion S3-DevKitC-1 N16R8 ESPHome (arduino) radex-esp32
radex_gateway_c3.yaml — тот же шлюз под C3 XIAO ESP32C3 ESPHome (arduino) radex-esp32
radon_ha_gateway_c3.yaml — BLE-шлюз RadonEye Plus2 XIAO ESP32C3 ESPHome (arduino) radoneye-esp32
atomfast_gateway*.yaml — BLE-шлюз AtomFast Plus2 DevKitC v4 / S3 ESPHome (arduino) atomfast-esp32
bdkg05-esp32-bridge — Modbus-RTU мост к БДКГ-05 S3-DevKitC-1 N16R8 ESP-IDF atomtex-esp32
usb_host_probe — полевой USB-терминал (экран, SD, Web UI) S3-USB-OTG ESP-IDF v5.5 внутренний
explorer_c3.yaml — сканер/RE BLE-устройств XIAO ESP32C3 ESPHome (arduino) внутренний (ble-explorer)
radex-idf, ble-test-server, ble-nimble-client — стенды BLE S3-DevKitC-1 ESP-IDF v5.4 внутренние

Сквозные уроки (не привязаны к одной плате)

1. Имя платы в конфиге ≠ её память

Самая дорогая ошибка в нашей практике. board: esp32-s3-devkitc-1 задаёт распиновку и загрузчик, но не объём флеша и не наличие PSRAM. ESPHome по умолчанию берёт 4 МБ, а определение платы в PlatformIO PSRAM не включает вовсе. Маркировка «N16R8» живёт только на наклейке модуля — в сборку она не попадает сама.

Итог одного такого недосмотра: прошивка год работала на плате с 16 МБ флеша и 8 МБ PSRAM, используя 4 МБ и ноль PSRAM, при этом документация уверяла, что «8 МБ PSRAM — запас heap есть».

Правило: профиль памяти задавать явно и проверять сборкой, а не намерением.

2. WiFi и BLE делят одну антенну

На всех наших платах WiFi и Bluetooth работают на 2,4 ГГц через одно радио. Практические следствия, полученные измерением:

  • Приёмный буфер, которого хватало без WiFi, начинает терять данные после его включения. У нас: потери в потоке спектрометра выросли с 0 % до устойчивых 7–9 %, пока кольцо не увеличили вчетверо (8 КБ → 32 КБ). Сначала мерить пик заполнения буфера, а не переносить задачи по ядрам — две гипотезы про конкуренцию ядер дали идентичные числа и обе были отвергнуты измерением.
  • bluetooth_proxy в ESPHome рядом с чувствительным BLE-клиентом пришлось убрать — интерференция.
  • Если задача требует и стабильного BLE-скана, и сети — рассмотрите вынос транспорта на провод. У Seeed есть готовый пример такого решения (BLE + Ethernet W5500).

3. WiFi Power Save включён по умолчанию

ESP-IDF для режима STA по умолчанию ставит WIFI_PS_MIN_MODEM: радио спит между маячками точки доступа. Наш чистый ping (20 пакетов, без всякой нагрузки) дал разброс 2–112 мс при среднем 63 мс — для локальной сети это ненормально.

Лечится esp_wifi_set_ps(WIFI_PS_NONE) ценой роста потребления. Разумный компромисс — переключатель «от сети / от батареи».

4. Тонкий запас RAM ловится не там, где ждёшь

На платах без PSRAM архитектурные решения, безобидные на S3 с внешней памятью, ломают всё. Переход с опроса на постоянное соединение (WebSocket) добавил ~10 КБ статики и уронил свободную кучу до сотен байт — веб-сервер переставал принимать соединения даже без единого браузера. Решение откатили целиком.

Правило: прежде чем менять архитектуру обмена, посмотрите бюджет RAM конкретной платы.

5. Проверяйте железо фактом, а не по документации

Случаи из практики, где документация расходилась с платой:

  • Полярность сигнала перегрузки по току оказалась обратной описанию в user guide.
  • Заявленный в документации «1-bit режим SD» на деле поднимался как 4-проводный SDIO.
  • Карта памяти 64 ГБ с завода отформатирована в exFAT, а сборка FatFs в ESP-IDF идёт с выключенным exFAT — карта не монтируется с невнятным кодом ошибки. Лечится форматированием в FAT32 (для тома >32 ГБ это умеет Windows 11 сборки 26100+).

6. Осторожно с COM-портами

Номера портов волатильны, а в системе могут быть последовательные устройства, не имеющие к платам никакого отношения (звуковые карты, модемы). Перед прошивкой идентифицируйте плату по MAC, а не по номеру порта — ошибка здесь стоит дорого.

Полезно: у XIAO ESP32C3 в board-определении PlatformIO прописаны USB VID/PID (2886:0046 и 303a:1001) — по ним плата опознаётся однозначно.

Источники

Все внешние ссылки — на официальные страницы производителей и их GitHub. Наши выводы опираются на измерения на живом железе; там, где утверждение не проверено, это сказано явно.


Проекты VibeEngineering: atomspectra-waterfall-esp32 · radex-esp32 · radoneye-esp32 · atomfast-esp32 · atomtex-esp32

About

Справочник по платам ESP32 в проектах VibeEngineering: характеристики, официальные источники и наш опыт эксплуатации - плюсы, минусы, найденные грабли, рекомендации

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors