Main Content

Custom Arduino Libraries

Create custom add-on library for the Arduino®

An add-on library is a communication interface between custom C++ code executed on the Arduino hardware and MATLAB® code executed on your host-computer.

With add-on libraries, end-users can access additional features of an Arduino directly from the MATLAB command line by including the libraries when creating an arduino connection object. For an example of an add-on library, see Control Motors Using Adafruit® Motor Shield V2.

The MATLAB Support Package for Arduino Hardware provides you with a framework of classes that you can use to create custom add-on libraries to use with your Arduino device and attached hardware shields. This support package provides classes and functions to help you develop an add-on library, collectively referred to as the Arduino Add-On Software-Development-Kit (SDK).

Before you start, see Custom Add-On Library Concepts.

When you are ready to create your own add-on library, follow the steps in Create Custom Arduino Add-On Device, Library, or Code.


matlabshared.addon.LibraryBaseAbstract class for deriving Arduino add-on libraries


sendCommandSend message to Arduino device from MATLAB
configurePinResourceSet resource owner and mode of pin
decrementResourceCountDecrement count of number of instances of resource
incrementResourceCountIncrement current resource count
getTerminalsFromPinsGet terminal numbers from pins
listArduinoLibrariesDisplay a list of installed Arduino libraries
getResourceCountNumber of instances of a resource
getFreeResourceSlotGet first free slot of resource
setSharedResourcePropertySet shared resource property
getSharedResourcePropertyGet shared resource property
getResourceOwnerGet terminal resource owner
validatePinValidate that pin supports specific functionality
getPinsFromTerminalsGet pin numbers from terminal
getTerminalModeGet current terminal mode
isTerminalDigitalCheck if terminal can be used as a digital pin
isTerminalAnalogCheck if terminal can be used as an analog pin
getServoTerminalsGet terminals that have servo functionality
getI2CTerminalsGet terminals with I2C functionality
getSPITerminalsGet terminals that have SPI functionality
getPWMTerminalsGet terminals with PWM functionality
getMCUGet microcontroller of Arduino board
getPinAliasGet alias pin number
getInterruptTerminalsGet terminals with interrupt functionality


Create Custom Arduino Add-On Device, Library, or Code

Create your own custom MATLAB Arduino add-on library.

Add-On Package Folder

Learn how to package your custom MATLAB Arduino add-on library.

C++ Header File

Learn how to configure the C++ header file for your custom MATLAB Arduino add-on library.

Adapt Add-ons to New matlabshared.addon.LibraryBase Class

Learn how to configure your existing add-on class to the new matlabshared.addon.LibraryBase class.

MATLAB Add-On Class

Learn how to configure a MATLAB add-on class for your custom MATLAB Arduino add-on library.

Create HelloWorld Add-On

Create your first MATLAB Arduino add-on library.

Create LCD Add-on

Create a custom MATLAB Arduino LCD add-on library.

Custom Add-On Library Concepts

Learn about the workflow to create your own custom MATLAB Arduino add-on library.

Add-On Resources

Learn how to manage Arduino hardware resources among your custom MATLAB Arduino add-on libraries.

Physical Terminals and Pin Numbers

Learn the difference between terminal numbers and pin numbers on your Arduino board.