will be read-only starting December 31st, 2018. For more info please look at this Forum Post

Hardware Abstraction Resource
Author:  Alexander Brevig

Harware Abstraction Libraries

For how to write Libraries, see the Library tutorial.

Current Libraries:


What is a Hardware Abstration library?

A Hardware Abstraction Library (later referred to as HAL) is a library that serves as a wrapper around the Arduino API to enhance code readability and user experience. The library should be intuitive to use, and all names should describe, in an efficient way, all questions regarding what, when, and where, but should conceal the how.

It is important to remember that you do not need a HAL for interfacing with additional hardware. It only makes it simpler.

If you are interested in the inner mechanics of a library, you'll find them (if downloaded) in /hardware/libraries/library/

Most HALs uses:

Why do we have these libraries?

  • Simplify the use of additional hardware
  • Enhance code readability
  • Decentralize logic
    • Main sketch kan now simply state library.action() instead of coding the equivalent in the sketch


Information about this page

Part of AlphaBeta Tutorials and Resources.
Last Modified: January 05, 2010, at 06:13 PM
By: calebzulawski