MSP430 USB Developers Package Release Notes

Table of Contents


This is version of the MSP430 USB Developers Package.

The MSP430 USB Developers Package provides APIs that make it easy to implement a simple USB data connection between a MSP430 and an USB host. It includes support for these common USB device classes:

Users must read the “Updating and Compatibility Information” below, and follow the instructions to port their application to this new release.

Package Contents


Other Documentation

What’s New in

Revision History

MSP430 USB Developers Package 5_20_06_02 Release

Bug ID Summary
MSPUSB-263 Possible bug in function HidToBufferFromHost()
MSPUSB-296 Provide BSL method od detecting crystal frequency as an option
MSPUSB-301 Custom HID interfaces are not stored in xml file
MSPUSB-302 Create USB example showing AES-128 implementation
MSPUSB-303 Update Java HID tool to encrypt and decrypt data
MSPUSB-305 COM Port name in Windows 10 for USB CDC example shows as ‘Generic Serial Port’
MSPUSB-306 Update Descriptor Tool to remove XT related variables from descriptor.h

MSP430 USB Developers Package 5_10_00_17 Release

Bug ID Summary
14545 New Descriptor tool’s drop down menu allows for current up to 100ma
14702 Add history info to release notes
16626 CDC type device does not work properly on El Capitan when serial port is closed and then opened
10883 H8_Keyboard example usbEventHandling.c support for other boards
11455 API programmer’s guide - add sidebar/linkable table of contents
11768 #ifdef the include files in usb.c
12794 cplusplus wrapper required for typedef in usb.c file
15282 H8_Keyboard example does not work with MAC El Capitan or Yosemite
16066 Ejecting an MSC device does not work in USB stack
16406 Update USB library with latest release of driverlib

MSP430 USB Developers Package 5_00_01 Release

Defects Fixed in 5_00_01:

Bug ID Summary
7903 MAC support for all tools (Java/Python) and examples

MSP430 USB Developers Package 5_00_00 Release

Defects Fixed in 5_00_00:

Bug ID Summary
10668 USB stack and examples need to follow ONeMCU coding standard
10670 Re-write Descriptor tool

MSP430 USB Developers Package 4_20_00 Release

Defects Fixed in 4_20_00:

Bug ID Summary
4927 Java HIID Demo tool does not work with Linux
6028 Need to support XT2 bypass mode
6076 USB_determineFreq() inaccuracy
6109 Generated inf file should support right click install method
6112 create an example that shows remote wakeup capability
6151 Change Driverver in generated inf file
6157 SYSBIOS examples have warnings when built in IAR
6166 INF file is missing when examples are imported into CCS
6773 CHM1 example - When SD care is removed, the wrong LUN is closed out
6879 HidDemo assumes first entry in interface list is interface ‘0’
6890 Media Removal/Insertion issues
8188 THe MSC example builds fail in IAR version 6.10
8220 WHQL inf files hould be part of the USB developers package
8308 Source code refers to removed example C7
8326 Add USB Bandgap and VBUS valid check in UsbIsr.c
6754 ‘Format disk drive’ message for MSC examples
8846 Update DMA channel definition in USB stack
8309 Cosmetic change: red bar in Help menu far too wide in Descriptor tool
8894 Calculated Custom Report descriptor size is wrong

MSP430 USB Developers Package 4_10_02 Release

Defects Fixed in 4_10_02:

Bug ID Summary
6157 SYSBIOS examples have warnings when built in IAR
6227 Include DRIVERLIB_LEGACY_MODE option in USB stack and example files
6228 Update types.h file by removing the structure definitions.
1266 USB Descriptor including HID even only CDC is generated
1999 Field Firmware Updater does not clsoe the file handle properly
6530 Python Firmware downloader updated with latest RAM_BSL

MSP430 USB Developers Package 4_10_00 Release

Defects Fixed in 4_10_00:

Bug ID Summary
4849 Replace the PUC with a BOR command in Python Firmware Upgrader tool
5521 Enumeration test fails on USB CV v1.4.10.1
5044 Instructions for bringing up examples on Linux platform
5344 Use C99 types in USB stack
4879 Consider enabling fst int latency by simply leaving XT2 running during suspend
4880 Extend new interrupt latency functions to work during VBUS-on events
4320 Add GCC support
5617 Turning OFF 3.3V LDO does not work on 5529 LaunchPad
4932 Hover over “ADD PHDC” button has incorrect text
1266 USB Descriptor including HID even only CDC is generated
1679 Generated C structures should be bracketed
5345 Programmer Guide Links Broken
5419 Fix release notes to use MB/sec for MSC performance measurement
4931 M1_fileSystemEmulation example does not work well on MAC OS
4933 Need to document need for Java install for Descriptor Tool within zip package
5207 USB10_WORKAROUND gives compile error in IAR
260 Show estimates of API code size and RAM usage according to the interface set chosen
6025 USB Developers Package USB_init() causing programs to hang

MSP430 USB Developers Package 4_00_02 Release

Defects Fixed in 4_00_02:

Bug ID Summary
5014 Remove all instances of USB_PLL_XT as all devices use XT2
5009 F6659 not supported
5080 Include entire driverlib in USB examples to avoid mix and match of driverlib versions
5081 Use driverlib.h files in stack and examples

MSP430 USB Developers Package 4_00_00 Release

Defects Fixed in 4_00_00:

Bug ID Summary
929 Add workaround for USB9 errata
1212 Use driverlib inside the USB stack and examples
1214 Convert Build Process to use Cygwin
1262 H5 and H6 fail on hudson testing
1329 DescriptorTool in Mac has small/unusable text boxes
1678 Descriptor tool path separator should use a standard java separator
1808 USBHID_receiveReport does not handle size of report
1811 Change report_desc_size to WORD instead of BYTE
2022 LED Control Demo(with CDC) fails at USB7 workaround
2149 USB HID Tool does not work with 64-bit JRE
2315 Descriptor tool creates an invalid entry in the inf file
3307 Code is missing in dma.c to support DMA channels greater than 2.
3310 ADD DMA4 workaround to stack. ALso check for other errata workarounds that need to be in place
3498 USB LDO settings (on/off) needs to be user configurable
3499 LEDs in example should be easier to change
3621 CH1_Example does not build for F5510
3622 Customer name exposed in usb.c
3623 USB9 workaround causes SVSH reset
3655 Include python based firmware downloader in release
3757 Wrong Java version requirement listed in release notes for HID Demo App
3996 Need a function to map ASCII to HID usage code
4051 wrong comment in h8 - main.c line 98
4297 Remove tabs
4304 Help text is very small
4307 Change implementation for multiple descriptor sets
4308 Add confirmation dialog box to delete button
4312 New button images
4313 Changes to GUI layout in CDC interface pane, re: USB/UART bridge functionality
4314 Interface panes have typo in intfNum label
4316 Change “Cheat Sheet” label on help pane tab, to “Help Pane”
4317 Changes to GUI layout in MSC interface pane –> CD-ROM
4318 MSP5430 USB stack does not STALL upon receiving Microsoft OS descriptor request.
4319 Makesure to use latest RAM BSL in firmware downloader. Also use latest txt files
4321 Hide USB_MCLK_FREQ from users.
4323 Generate USB examples using Project Templates
4325 Update examples with new changes as per 5529 UE code.
4326 Add new simple Rx, TX example for CDC, HID and MSC
4327 Rename example - C1 to led_onoff etc.
4330 Remove USB API docs from Programmers Guide.
4331 Move example description from Programers Guide to examples folder (readme.txt)
4334 Add stack version in shipped sources at the bottom
4335 Update release notes - remove info present in Prog Guide
4336 Add Makefile rule to remove all TABS and replace by spaces.
4337 Try to document or even automate CDC driver installation on Win8
4383 When generating output, don’t ask separately for location, for descriptors.c/h vs. usbisr.c
4569 WORD/BYTE declaration conflict, resulting in improper indexing of report_len_input [] array
4570 Finish migrating LUN information into the Tool
4575 Make sure device.h supports ALL USB devices.
4640 Accept a command-line parameter for target directory
4714 Composite CDC warning isn’t keying correctly
4738 If USCMSC_updateMediaInfo() called during READ/WRITE, causes the host to re-enumerate
4796 USB_handleEnumCompleteEvent called after SetAddress NOT SetConfiguration
4799 In the tree, change “Device” node label to “USB Device”

Known Issues

There are some known issues with importing and building USB examples with older/newer versions of CCS and IAR.

Upgrading from a Previous Version release of USB Developers Package has been compiled to work with with version driverlib library. (See driverlib release_notes.html file for changes).

If existing users want to update to, then the following should be done:

Updating driverlib to a New Version

Simply replace the entire dirverlib folder with the new version.

Command Line GCC and Makefile

To run the GCC examples from the command line, two variables in the each example makefile has to be updated. See the Examples Guide for more details


The USB stack code metrics were performed with the CCS 4.3.3 compiler, and IAR 6.30 compiler with different optimization settings. Users may see different code sizes depending on their project settings so it is best to perform the benchmarks within the project itself. Code metrics for the USB stack code can be viewed here:


MSC PERFORMANCE (Single Buffering)

File Size Read (MB/sec) Write (MB/sec)
4096 0.20 0.12
8192 0.22 0.13
16284 0.21 0.12
32768 0.22 0.12
65536 0.22 0.15
131072 0.22 0.13
262144 0.21 0.15
524288 0.20 0.15

MSC PERFORMANCE (Double Buffering)

File Size Read (MB/sec) Write (MB/sec)
4096 0.23 0.11
8192 0.25 0.12
16284 0.27 0.12
32768 0.27 0.12
65536 0.27 0.12
131072 0.26 0.14
262144 0.27 0.16
524288 0.28 0.15

VDBENCH application used for MSC benchmarking. No validation of transfer done. Measured in Mega Bytes/sec.


Direction Speed(Kbps) CPU frequency (MHz)
RX 69.421 1
RX 140.660 2
RX 274.005 4
RX 475.060 8
RX 598.844 12
RX 677.156 16
RX 675.738 20
RX 674.130 25
TX 67.005 1
TX 136.044 2
TX 271.304 4
TX 530.643 8
TX 704.830 12
TX 803.014 16
TX 800.531 20
TX 797.851 25

Tranfer size for CDC benchmarks is 2048 arrays with 1024bytes/array. The MSP430 application used calls USBCDC_rejectData() for any data it receives. The is to nearly eliminate the device application from being a factor. If the application rejects the data, it doesn’t use any time to move the data. In contrast, any real application must handle the data, and thus will get considerably less, probably closer to the 200-500KB/sec range.


Interrupt Source #Cycles
ENDPOINT0 Receive Data 224
ENDPOINT0 Transmit Data 415
CDC Receive Data 1601
CDC Transmit Data 246
HID Receive Data 1566
HID Transmit Data 106
MSC Receive Data 647
MSC Transmit Data 1758

Special benchmark applications were used with code inserted to measure latency using a timer. Applications made use new USE_TIMER_FOR_RESUME to reduce interrupt latency for resume interrupt. Without the use of USE_TIMER_FOR_RESUME resume interrupt can take arounbd 13000 cycles.

Host Support

Supported Operating Systems:


This release requires the following other software components and tools versions to successfully function:


This product’s version follows a version format,, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.

To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. msp_connectivity_library_5_10_00_01.

Technical Support and Product Updates

Additional Resources

For more information about Texas Instruments, MSP430 or MSP432 visit and