Segger’s SmartMSD simplifies USB file transfer

April 17, 2015 // By Graham Prophet
SEGGER’s Smart Mass Storage Device (SmartMSD) uses the proven MSD standard to easily stream files to and from USB devices, by Drag and Drop command.

The active file system technology employed in SmartMSD is unique. 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. The SmartMSD software analyses what operation is performed by the host and passes this to the application layer of the embedded target, which then performs the appropriate action.

This makes the software very flexible and allows using it for various types of applications and purposes, with no additional software or drivers necessary on the host side. The most common application is to easily deliver a firmware update. Upon dragging and dropping the new firmware image onto the SmartMSD drive, the SmartMSD hands it to the application’s flashloader. This flashloader programs the image to the flash of the target device. Once completed, the target device restarts and now makes use of the new firmware image. This process may also be coupled with Segger’s emSecure ensuring authenticity of the new update.

There are numerous other applications, such as storing new configuration files on the target device, or reading measurement data in the event that the USB device is a sensor or collects other pertinent information.

SEGGER uses this technology in its own J-Link OB (On-Board) debug probe with Drag and Drop capability, which simplifies the programming of the target without the need of complex development software. SmartMSD is an extension of the MSD component and comes as an option to SEGGER’s emUSB-Device stack. It works smoothly with hosts running Windows, OS X, Linux and even Android.

The memory requirement is very low: less than 10 kBytes of ROM and 4 kBytes of RAM.


emUSB-Device is a high performance USB device stack specifically designed for embedded systems. The flexible device stack allows the creation of multi-class devices using nearly any combination of classes provided. emUSB-Device provides classes for the Media Transfer Protocol, Mass Storage Device, CDROM,