File Exchange

image thumbnail

App Designer: Instrument Control over Serial (Arduino)

version 3.0 (8.29 MB) by Pavel Roslovets
Control Arduino RGB LED over serial using MATLAB App Designer


Updated 15 Jul 2019

GitHub view license on GitHub

This is an example of how you can use App Designer tool to build program to control any hardware over supported protocol (i.e. serial).

Execute in MATLAB:

App Designer has visual instrumentation components (knobs, swithes, etc.) so it allows you to build interactive apps for instrument control.
The submission contains a scheme of Arduino based simple device with RGB LED and photoelectric cell. Simulink program for Arduino is provided (requires Arduino Support Package).
With interactive program you can control the RGB LED color and observe illuminance level over the serial connection.
Instrument Control Toolbox is required for optional features.


Also there is a describing video (on Rissian, for old version):

* Please note that app versions for old releases aren't maintained and are presented just for legacy *

Cite As

Pavel Roslovets (2020). App Designer: Instrument Control over Serial (Arduino) (, GitHub. Retrieved .

Comments and Ratings (10)

Вы можете более подробное уроки по App Designer

apple, it depends on your operation system settings. I have a green theme in my Win10.


Thank you Pavel, How to set the background color of the Title 'Instrument Control over Serial' to green?

Amirala Barjasteh, thank you!
You can see and edit main code in App Designer tool (R2016a and newer). Open 'rgb_control.mlapp' in App Designer (in MATLAB: Right click -> Open) and press 'Code View' button.
FYI: Introduction to App Designer (video)
Good luck!

Thank you Pavel! really interesting!
Is it possible to see the main code of this app? I mean you describe sth about code but I could not find any script in files.

You can create another Timer that will check if your serial port available and opened.

Check whether port is opened:
s = serial('COM6'); % COM6 for example
s.Status % 'opened' or 'closed'

Returns all available serial ports:
p = instrhwinfo('serial')


Thank you for shearing!!! do you know how can i change the the program that the LED would change its collier wean Serial is disconnected? and not only by Event?

can i run a loop that will check for communication all the time?


abd saleh, thank you for your interest. I have updated the discription and added an <App Designer Eng.pdf> file for better understanding

abd saleh

I want to explain more please



- Update RGB app, new LED app and model. Update docs
More information

- App, model and documentation have been upgraded to R2017b

- finaly added model previews

- added model previews

- updated Simulink model for Arduino: Buffer block is rejected due to a new ability of Serial Recieve block to recieve an array of elements (R2017a)

- added version compatible with R2017a release
- transfered arithmetics from Simulink program for Arduino to application for flexibility (R2017a version only)

Update cover picture

- new graphics features (area plot)
- efficient coding with shared callback functions
- colors values now stored in arrays to optimize code & execution
- Fix and refresh button to delete broken serial object from memory and find available port again

Update the discription, add <App Designer Eng.pdf> with diagrams for better understanding.

MATLAB Release Compatibility
Created with R2019a
Compatible with R2016b to any release
Platform Compatibility
Windows macOS Linux

Inspired by: Toolbox Extender