By dave | December 4, 2020

Along with TaskManagerIO that tries to keep a consistent user level API regardless of the platform, IoAbstraction also has only very small differences across platforms. We support nearly all official (and many unofficial) Arduino devices, most ESP devices and many mbed boards too.

Known working devices

Processor Platform Tested? Analog Digital Example developer boards
AVR Arduino Fully ADC,PWM Pin, Int Uno, AT32x, MEGA 2560, MightyCore
SAMD Arduino Fully ADC,PWM,DAC Pin, Int MKR, Nano IoT and Zero
nrf52840 Arduino Fully ADC,PWM,DAC Pin, Int Nano 33 BLE devices
ESP8266 Arduino Fully ADC,PWM Pin, Int Huzzah, Node MCU
ESP32 Arduino Fully ADC,PWM,DAC Pin, Int Wifi32, Huzzah 32
STM32F* mbed Fully ADC,PWM,DAC Pin, Int Discovery, Nucleo etc
STM32 Arduino User Report Not tested Pin, Int Blue pill


  • Pin - We fully support working with digital pins
  • Int - We support attaching interrupts to a pin
  • ADC - Supports acquisition from the onboard ADC
  • PWM - Able to work with PWM on this device
  • DAC - Able to work with DAC on this device.


  • For mbed we support mbed V5 and V6 Bare-Metal and RTOS. Pins are managed using the underlying gpio methods. Interrupts are managed using InterruptIn.
  • On ESP32 ArduinoAnalogAbstraction uses native ESP functions for PWM and DAC.
  • On all devices we try to configure the device to the highest precision possible, and provide read and write methods based on float values between 0 and 1.

Other pages within this category

comments powered by Disqus

We use cookies to analyse traffic and to personalise content. We also embed Twitter, Youtube and Disqus content on some pages, these companies have their own privacy policies.

Please see our privacy policy should you need more information or wish to adjust your settings.