Что эмулятор умеет и чего не умеет

Список ведётся руками и обновляется вместе с моделью. Он здесь потому, что «библиотека собралась» и «датчик ответил» — разные вещи, и узнавать разницу лучше до того, как потратите вечер.

Работает

БлокЧем пользуетесь
GPIO, матрица выходов, прерывания по выводуdigitalRead, digitalWrite, attachInterrupt
LEDC (ШИМ)analogWrite, ledcWrite, серво, зуммер
Таймеры TIMG, сторожевой таймерmillis, micros, esp_task_wdt
UART0, UART1, UART2Serial, HardwareSerial(1), мост между портами
I2C0 и I2C1LCD 1602, OLED SSD1306, датчики на шине
RMT: передача и приёмлента NeoPixel, ИК-пульты
PCNTаппаратный счётчик импульсов, тахометр
АЦП, касание, датчик Холла, термодатчикanalogRead, touchRead, hallRead
Флеш-память, разделы, NVS, SPIFFSPreferences, файловая система
Глубокий сонпробуждение по таймеру и по выводу
Wi-Fi через виртуальную сетьWiFi, WiFiClient, configTime, HTTP
eFuse, генератор случайных чиселMAC-адрес, esp_random

Не работает

БлокЧто из-за этого нельзя
SPI2 и SPI3TFT-экраны, SD-карта, MAX7219, RC522, nRF24
I2Sцифровые микрофоны и усилители
MCPWMдрайверы двигателей с аппаратным мостом
TWAI (CAN)промышленные шины
AES, SHA, RSAHTTPS и всё, что через TLS
Модуляция несущей в RMTотправка команды ИК-пультом (приём работает)

Несмоделированный блок не роняет прошивку: его регистры работают как обычная память, что записали — то и прочитали. Скетч соберётся, запустится и ничего не покажет. Поэтому список выше стоит прочитать раньше, чем начать искать ошибку у себя.

Bluetooth

Нет и не планируется по той же причине, что радиочасть Wi-Fi: контроллер работает через двоичные библиотеки Espressif, исходников и описания регистров нет.

Если чего-то не хватает

Напишите — очередь на моделирование составляется по тому, сколько проектов открывает каждый блок. Сейчас первым в ней стоит SPI.