This library provides abstractions that help you write event-driven Arduino and mbed applications. It has device abstractions that allow you to treat device pins, PCF8574, MCP23017, MPR121 and AW9523 almost the same in code. This includes higher level interrupt management, buttons with de-bouncing, matrix keyboards, rotary encoders and even LiquidCrystalIO. There are many examples packaged with the library that cover most use cases.

For development, you can use any Arduino or mbed IDE. However, our recommendation is platformIO with Clion or VS Code. We test the library with Arduino and PlatformIO.

Need help with a commercial design, or want a customised version for your hardware, see the consultancy link at the top of the page?

Reference guide and code repo

Digital IO for Arduino and mbed

Analog IO for Arduino and mbed

Switches, keyboards and rotary encoders

EEPROM abstractions

Logging, text utilities and unit testing helper classes

Arduino logging using io-logging

By dave

Logging is part of the TcMenu offering provided by library , it has a moderately complete logging framework that is still lightweight enough to work on small boards. It can easily be turned off completely for very small boards too. TaskManagerIO, IoAbstraction and tcMenu use this logging to provide information about internal state and operations. You can also use this logging...

IoAbstraction - Cross platform build support

By dave

General Arduino 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. Notes for mbed For mbed we support mbed V5 and V6 Bare-Metal and RTOS. Pins are managed using the underlying gpio methods. Interrupts are managed using . Analog input PWM output,...

Using Arduino Pins and Io Expanders at the same time

By dave

Sometimes there is a need for more IO than can be catered for using an single set of pins, even on the MEGA, or maybe you just want to combine Arduino pins with some pins on an PCF8574 IO expander chip. In this case IoAbstraction now supports that, you create an abstraction of type . See the sketch that has Arduino...

These may be of interest

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

See the privacy policy and terms of use of this site should you need more information or wish to adjust your settings.