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 Library or watch Create a Custom Arduino Add-On Library.


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


Getting Started

Arduino Hardware Resources and Pin Diagram

Additional Information