Updated 1 Sep 2016
This package contains a guide that explains, in a step-by-step fashion, how to develop device driver blocks (blocks that perform target-specific functions when executed on a target platform).
Example drivers for:
-) Arduino digital output
-) Arduino digital input
-) Arduino analog output
-) Arduino encoder read
While the examples are built using the Arduino as the hardware platform (specifically relying on the Simulink Support Package for Arduino), the method applies to any other supported target.
In this guide, the first method to develop device drivers is based on the S-Function Builder block. Following chapters also describe different methods based respectively on the Legacy Code tool, the MATLAB function block, and the System Object block. Advantages and disadvantages of each method are discussed in the guide.
Finally, note that for MATLAB 2013b you will need to apply a fix for the S-Function builder to develop blocks with no input. To do so, go to the following page: http://www.mathworks.com/support/bugreports/1006532 , scroll down to the bottom, and follow the instructions therein.
Giampiero Campa (2023). Device Drivers (https://www.mathworks.com/matlabcentral/fileexchange/39354-device-drivers), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- Code Generation >
- Simulink > Simulink Supported Hardware >
- Test and Measurement > Image Acquisition Toolbox > Device Connection >
- Code Generation > Embedded Coder >
- Physical Modeling > Simscape Electrical > Applications > Converters (High power) >
Inspired by: Simulink Support Package for Arduino Hardware, Simulink Support Package for Raspberry Pi Hardware
Inspired: Driver for Arduino Data Logging Shield, Play a Tune on Arduino, Arduino - Loop Time S-Function, Device Drivers for the BeagleBone Black, Arduino Additional Sensors Library (DHT, LPS331), Soft Real Time, Data Logger on Arduino UNO, Simulink Library for MiniQ Robot, Rensselaer Arduino Support Package Library (RASPLib), Raspberry Pi Simulink Driver Blocks ADC DAC PWM, Arduino Udp Ethernet Shield, 3 Note Piano on Arduino with S-Functions, Embedded Coder Target for Arduino, ADLX345 i2c Driver for Arduino Mega, Example Driver blocks for Simulink Hardware Support Packages, Raspberry Pi Driver Block SFunction, Raspberry Pi DC Motor H-Bridge Driver Block SFunction, Raspberry Pi PWM Driver Block SFunction, Raspberry Pi Quadrature Encoder SFunction, Arduino S Function for MPC4725 I2C DAC, Raspberry Pi MPU6050 SFunction with I2C Communication using WiringPiI2C, RC Receive Driver Block for Arduino, Simulink Library for Zumo Robot, Motor Shields, SEN0140 Simulink i2c Driver for Arduino Mega 2560, Controle moteur à courant continu avec arduino
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Added System Object and Legacy Code Tool approach, examples, and documentation.
Also removed the motor shields -related files since updated versions can be found in the "motor shields" file exchange entry.
Included drivers for AF Motor Shield V2, and Embedded MATLAB-based examples.
Fixed small typos, updated copyright, and added troubleshooting section to the guide.
Fixed a few typos and added a troubleshoot page at the end of the guide.
The PDF document was slightly refined.