Device Control

This library enables you to use Interrupt from Hardware Timers on an ESP32, ESP32_S2 or ESP32_C3-based board to create and output PWM to pins.
It now supports 16 ISR-based synchronized PWM channels, while consuming only 1 Hardware Timer. PWM interval can be very long (uint32_t millisecs). The most important feature is they are ISR-based PWM channels. Therefore, their executions are not blocked by bad-behaving functions or tasks. This important feature is absolutely necessary for mission-critical tasks. These hardware PWM channels, using interrupt, still work even if other functions are blocking. Moreover, they are much more precise (certainly depending on clock frequency accuracy) than other software timers using millis() or micros(). That is necessary if you need to measure some data requiring better accuracy. Now you can change the PWM settings on-the-fly,

Author: Khoi Hoang

Maintainer: Khoi Hoang

Read the documentation


This library is compatible with the esp32 architecture.


To use this library, open the Library Manager in the Arduino IDE and install it from there.