Since the **ESP32** family was officially supported in Arduino IDE (around **2018**), several new **MCU-specific functions and features** have been added to the IDE to support modern microcontrollers. Here are some notable additions:
---
### **1. ESP32-Specific Features (espressif/arduino-esp32)**
- **Dual-Core Support**
- `xTaskCreatePinnedToCore()` – Run FreeRTOS tasks on a specific core.
- `ARDUINO_RUNNING_CORE` – Macro to detect the current core.
- **WiFi & Bluetooth**
- `WiFi.mode(WIFI_MODE_APSTA)` – Simultaneous AP + Station mode.
- `BT.begin()` – Bluetooth Classic & BLE support.
- **Deep Sleep & Low Power**
- `esp_sleep_enable_timer_wakeup()` – Wake up after a delay.
- `esp_deep_sleep_start()` – Ultra-low-power sleep modes.
- **Peripheral Enhancements**
- **DAC (Digital-to-Analog)** – `dacWrite()` for analog output.
- **Touch Pins** – `touchRead(pin)` for capacitive sensing.
- **Hall Effect Sensor** – `hallRead()` for built-in magnetic sensing.
- **File System & NVS (Non-Volatile Storage)**
- `SPIFFS` & `LittleFS` – File system support.
- `Preferences` – Key-value storage (replaces EEPROM).
---
### **2. RP2040 (Raspberry Pi Pico) Support**
- **Dual-Core Processing**
- `setup1()` & `loop1()` – Second core execution.
- **PIO (Programmable I/O) Support**
- Allows custom state machines for bit-banging protocols.
- **Improved ADC & PWM**
- Higher resolution (12-bit ADC, 16-bit PWM).
---
### **3. STM32 (STM32duino) Enhancements**
- **Hardware-Specific Timers**
- `HardwareTimer` – Advanced PWM & interrupt control.
- **True Analog Output**
- `analogWrite()` with real DAC on supported pins.
- **Low-Power Modes**
- `LowPower.sleep()` – Multiple sleep modes.
---
### **4. ESP8266 Updates (earlier but still evolving)**
- **WiFi Improvements**
- `WiFi.softAP()` – Better access point control.
- **Over-the-Air (OTA) Updates**
- `ArduinoOTA` – Wireless firmware flashing.
---
### **5. General Arduino IDE Improvements**
- **Better Multi-Board Support**
- **Arduino CLI** – Command-line tool for managing cores.
- **New Library Manager**
- Easier installation of MCU-specific libraries.
- **Debugging Support**
- **Arduino IDE 2.0+** – Basic debugging for some ARM & ESP32 boards.
---
### **Conclusion**
Since ESP32 support was added, Arduino IDE has expanded to include **multi-core processing, advanced wireless features (WiFi/BLE), low-power modes, and better peripheral control** for modern MCUs like ESP32, RP2040, and STM32.