This project has moved. For the latest updates, please go here.


ATL implements classes that represent and/or work with hardware ICs. As a general pattern this interfacing is always divided into two (or more if appropriate) classes.
  • Driver - implements how the hardware is interfaced to the Arduino.
  • Controller - implements the protocol to talk to the interfaced hardware.

The benefit of this separation is that the Controller logic which is always the same for a specific device or IC does not have to be touched when changing the way the device interfaces with the Arduino. Say a Driver initially is implemented using the Arduino's on-board pin's that are connected to the device in your schematic. When you wish to change that interfacing to say- a Serial3WireOutput, only the driver class needs to be replaced. So by separating the Driver from the Controller a minimal effort is required to adapt the code to your situation and a maximum amount of reuse is possible (the Controller).

The following hardware devices are currently supported:

Last edited Jan 6, 2015 at 12:27 PM by obiwanjacobi, version 4