Skip to content
HAL driver for the Microchip MCP23008 and MCP23016 I/O expander chips.
C++ CMake
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Microchip MCP230xx Hardware Access Layer

This is a HAL for the Microchip MCP23008 and MCP23016 I/O expander chips. It builds upon the HAL core layer system.

See "HAL-feather-m0" for details how to use the HAL system in your projects.

How to use this HAL

To use this HAL, include this repository as a submodule in your project. The submodule must be a subdirectory hal-mcp230xx in your Arduino project directory as shown below:

		hal/ <-- The core HAL submodule
		hal-mcp230xx/ <-- This repository as submodule

Make sure you also include the core HAL as submodule in your project. This code builds upon the WireMaster system.

Alternatively, just copy the directory in your project, if you do not wish to use GIT for updates of this library. Still, you have to copy the directory structure from above.

The src subdirectory is important! Place all your sources, except the .ino file in the src directory. All hal layer directories have to be placed below the src directory. The Arduino environment will only compile cpp files inside of the src subdirectory. If the hal* directories are placed outside of the src directory, the implementations of the are not compiled into the project.

cd YourProject/
git submodule add src/hal
git submodule add src/hal-mcp230xx


This library is a work in progress. It is published merely as an inspiration and in the hope it may be useful.


Copyright 2019 by Lucky Resistor.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

You can’t perform that action at this time.