Your "One-Stop-Shop" for your next Embedded Project

Stacks Image pp8021_n8016_n7993

SmartMSD Component

Smart and easy to use interface
Flexible access to update data

The SmartMSD component allows to easily stream files to and from USB devices. Once the USB device is connected to the host, files can be read or written to the application without the need for dedicated storage memory. 

This makes the software very flexible: It can be used for various types of applications and purposes, with no additional software or drivers necessary on the host side.

The SmartMSD software analyzes what operation is performed by the host and passes this to the application layer of the embedded target, which then performs the appropriate action. A simple drag and drop is all it takes to initialize this process, which is supported by a unique active file technology.

The most typical application is a firmware update. Other examples are storing new configuration files on the target or reading measurement data in case the USB device is collecting data, such as a sensor. Smart MSD can access all data which has been created prior to the device being attached to the host, live data cannot be provided.


SmartMSD allows to use the storage device in a virtual manner, which means data does not need to be stored on a physical medium.
The storage device will be shown on the host as a FAT formatted volume with a configurable size and a configurable file list.

SmartMSD itself is based on the MSD class and thus can be used on virtually any OS such as any Windows, Mac OS X, any Linux distribution which supports MSD without installing any third party tools, or even Android.

Typically all MSD operations except from formatting the storage volume are allowed, which includes:

  • Create files
  • Delete files
  • Modify files 

emUSB-SmartMSD comes as a whole packet and contains the following:

  • Generic USB handling
  • MSD device class implementation
  • SmartMSD component
  • Sample application showing how to work with SmartMSD

Getting access to Storage

A SmartMSD device will be displayed as a standard drive in the "Computer" window when connected to a PC running a Microsoft Windows 7/8 operating system:


The files and directories stored on the device can be accessed in the usual way using the Windows Explorer:


On Mac OS X the SmartMSD storage device will be shown on the desktop:


The files and directories can be easily shown and modified as usual in the finder:


On Ubuntu (Debian-based Linux operating system) the SmartMSD storage device will be shown inside the launcher:


The files and directories stored on the device can be accessed in the usual way using the file manager:


Using SmartMSD as a Firmware Updater

SmartMSD can be used in order to update firmware on a target device by simply dragging and dropping a firmware image to the SmartMSD storage device.
As MSD is supported by any operating system, it will work without installing any third party drivers or tools.
Firmware update has never been easier.

On different platforms the update procedure is almost the same. Simply drag the file you want to update onto the SmartMSD drive icon or drive window:

On Windows it would like this:


While the file is copied to the SmartMSD storage drive, the application itself is being passed to an internal module and performs an update of the target device's flash.


Following completion of the operation, the application normally will be verified and the SmartMSD bootloader will detach from the host system and subsequently start the application.

The same procedure applies to Mac OS X. Drag the file onto the drive:


The normal copy progress is shown:


After copying, the device will normally disconnect and will start the new application. 

And for Ubuntu:


Ubuntu does not show a copy progression dialog for small files, the file is copied in the background.
After the copy operation is completed the SmartMSD application can process the file.