TI Motor Drive Bundle, MotorWare, Personal Trainer - Review

Table of contents

RoadTest: TI Motor Drive Bundle, MotorWare, Personal Trainer

Author: cetinkayafaruk93

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: null

What were the biggest problems encountered?: null

Detailed Review:

I want to thank you Element14 and Ti for giving me the chance to test Ti  Motor Drive Bundle. I applied the RoadTest because of Ti C2000 microcontroller have very detailed Power and Motor Control library.Before this review, I already have some  BLDC motor control experiences but I am planning to use FOC control technique for future projects.


My review consists of 6 parts ;


1-Introduction and Box Opening

2-Ti Software and Hardware Explanation

3-Ti 24v LVBLDCMTR Motor Identification and Test

4-12V-24V 600w High Cogging Torque Bldc Motor Test

5-Instaspin 4 Quadrant Operation with Active Motor Load




1) Introduction and Box Opening


After Element14 announced RoadTesters, I got a big well-packed box. It came without any customs issue.



Ti motor Bundle  RoadTest contain;


- C2000 Piccolo MCU F28027 ( LAUNCHXL-F28027F InstaSPIN™-FOC enabled C2000 Piccolo MCU F28027 LaunchPad Development Kit | TI.com )

- DRV8301 Motor Drive BoosterPack ( BOOSTXL-DRV8301 Motor Drive BoosterPack featuring DRV8301 and NexFET™ MOSFETs | TI.com  )

- 24V BLDC Motor ( LVBLDCMTR 24V BLDC Motor | TI.com )

- 6 Hours Personel Training Information Card

- Gift (Multitasking Engineer Pen)


All hardware is in the box only you need to download Ti software and then spin the motor.



2) Ti Software and Hardware Explanation



  • Code composer studio (CCS)

Code compose studio is an integrated development environment for  Ti's microcontroller. It's optimized for C/C++ compiler, code editing and debugging.

You can download and integrate other Ti software through AppCenter which is in the CCS.

CCSTUDIO Code Composer Studio (CCS) Integrated Development Environment (IDE) | TI.com




  • C2000ware

C2000Ware for C2000™ microcontrollers is a cohesive set of development software and documentation designed to minimize software development time. From device-specific drivers and libraries to device peripheral examples, C2000Ware provides a solid foundation to begin development and evaluation of your product. C2000ware is not necessary for Instaspin motor control but I strongly recommend to download.


C2000WARE C2000Ware for C2000 MCUs | TI.com


  • Motorware

MotorWare™ is the software and documentation package for developing InstaSPIN-FOC™ and InstaSPIN-MOTION™ based applications for Piccolo F2802x, F2805x, and F2806x series. The software is really saving time for InstaSpin and InstaMotion motor control. All example labs, source codes, guidelines inside the MotorWare. Motorware well organized for every  InstaSpin and InstaMotion motion MCU and evaluation boards. During your C2000 labs, you will use Motorware.





InstaSPIN-FOC technology brings powerful sensorless field oriented motor control technology to all skill levels of designers. InstaSPIN-FOC auto-identifies, auto-tunes, and fully controls 3-phase motors in minutes

InstaSPIN-MOTION builds on InstaSPIN-FOC technology to provide robust motion control, allowing you to accelerate, position, and plan your movement


MOTORWARE MotorWare™ Software | TI.com


  • MotorWare Universal GUI

GUI Composer Runtime Installation and GUI source (Webapp) for MotorWare Universal GUI. This GUI instruments the existing variables in any MotorWare InstaSPIN-FOC or InstaSPIN-MOTION project, meaning you can recompile the .out to add your own settings and other system code.


GUI Composer executable and source (add your own widgets and variables)

Uses the variable structures of MotorWare, common variables already attached to widgets for instrumentation

Documentation for installation, use and customization

Use with any InstaSPIN-enabled hardware (TMDSCNCD28069MISO, TMDSCNCD28054MISO, TMDSCNCD28027F, LAUNCHXL-F28027F, or your custom Piccolo board) and a .out built using MotorWare.




INSTASPINUNIVERSALGUI GUI Composer Runtime Installation and Webapp for MotorWare Universal GUI | TI.com


  • InstaSPIN-FOC or InstaSPIN-MOTION hardware

InstaSPIN-FOC or InstaSPIN-MOTION features only enabled some C2000 controller. Ending code of C2000 MCU shows special library in the ROM. Like TMS320F28027F ( F is FOC enabled ROM) , TMS320F28069M ( M is Motion and FOC enabled ROM )


Full list of INSTASPIN enabled MCUs;  http://www.ti.com/lit/ml/sprw258/sprw258.pdf


InstaSPIN Compatible Hardware list


Part NumbercontrolCARDDriverPower RangeSoftwareGUI
BOOSTXL-DRV8301Piccolo F28027F LaunchPad
Piccolo F28069M LaunchPad
DRV83016-24V, 10AMotorWareUNIVERSAL InstaSPIN
BOOSTXL-DRV8305EVMPiccolo F28027F LaunchPad
Piccolo F28069M LaunchPad
DRV83054.4-45V, 15AMotorWareUNIVERSAL InstaSPIN
DRV8301-69M-KITPiccolo F28054M supported
Piccolo F28069M included
Piccolo F28027F + Emulator supported
DRV83016-60V, 40AMotorWareInstaSPIN-FOC & -MOTION
DRV8305-Q1EVMSoldered on-boardDRV83054.4-45V, 25AMotorWareUNIVERSAL InstaSPIN
DRV8312-69M-KITPiccolo F28054M supported
Piccolo F28069M included
Piccolo F28027F + Emulator supported
DRV831212-52V, 3.5AMotorWareInstaSPIN-FOC & -MOTION
TMDSHVMTRINSPINPiccolo F28054M supported
Piccolo F28069M &
Piccolo F28027F included
Powerex IPM50-350V, 10AMotorWareInstaSPIN-FOC & -MOTION


Also, Ti still developing new InstaSpin enabled MCUs and hardware.


New  Instaspin enabled C2000 TMS320F280049C which is not on the list. I think they are developing example software for MotorWare.

TMS320F280049C Piccolo™ Microcontroller With InstaSPIN-FOC and CLB | TI.com


New motor control BoosterPack DRV8323  compatible with Instaspin MCU. ( Drv832x firmware for InstaSpin; http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=slvc705&fileType=zip )

BOOSTXL-DRV8323RS DRV8323RS Three-Phase Smart Gate Driver With Buck, Shunt Amps (SPI Interface) Evaluation Module | TI.c…



Motors available from Ti


Motor TypePart NumberSensorPrimary Kit Use
BLDC - Low VoltageBLY172S-24V-4000
Order From Anaheim Automation
Encoder: external
PMSM - High VoltageHVPMSMMTREncoder: internal 2.5k/revTMDSHVMTRPFCKIT
Encoder: internal 4k/rev
Two motors, shaft and frame couplers


Telco DN4240S24-026-TI (LVBLDCMTR) is provided inside the MotorDrive Bundle. It's a low power motor to test and understand InstaSpin software. It doesn't have any position sensor but I think easily attachable with 3 screws.


Motor Datasheet ;





3) Ti 24V LVBLDCMTR Motor Identification and Test


-Before the connect C2000 LauchPad with MotorDrive BoosterPack, you should remove Jp1, 2, 3  to power LaunchPad from BoosterPack and  S4 should be OFF to allow LaunchPad to drive fault LEDs of BoosterPack.

-Connect motor phase wire and adjustable DC power supply.  For identification step, adjust power supply current level under the motor nominal current in case of a problem.




For a good motor identification, you need change some variable from CCS. I made two videos to show you how to identify and run your motor with MotorWare Gui.

I preferred to use Lab5b to identify and run my motor first time.


Ti already wrote some defined motor inside the user .h. There is the predefined motor which is USER_MOTOR == My_Motor. It's good to activate this motor and then change important parameters only for identification.

These are ;


#define USER_MOTOR_NUM_POLE_PAIRS (4) //  to see true RPM of motor on the Gui. For our motor, it should be 4 pole pairs ( 8 poles).


#define USER_MOTOR_RES_EST_CURRENT (0.5)  // resistance estimation current should be 10% of your motor nominal current.


#define USER_MOTOR_IND_EST_CURRENT (-0.5) //  induntance estimation current should be 10% of your motor nominal  negatif current.

-Last two parameters are important to identify your motor. I will explain them detailed at section 4.

#define USER_MOTOR_MAX_CURRENT (3.0) // nominal current of the motor.


#define USER_MOTOR_FLUX_EST_FREQ_Hz (30.0) // motor Hz = RPM * poles / 120.  For our motor  Hz = 4000*8/120 = 267Hz . Value should be 10% of your motor Hz which is approximately 30 .

These setting significant for estimating PMSM&BLDC motor parameters and changed for Ti LVBLDCMTR

You should save and build the project. CCS will give you Lab5b.out file on the MotorWare lab5b folder. You need to copy Lab5b.out file to GuiComposer folder.


Lab out file direction : C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8301_revB\f28x\f2802xF\projects\ccs


GuiComposer direction : C:\ti\guicomposer\webapps\InstaSPIN_F2802xF_UNIVERSAL


You can see every step above in the before identification video.


  • Before motor identification;


When you open MotorWare be sure User.h not selected and RsRecalc, OffsetCalc, ForceAngle should be selected for identification. Motor identification takes almost 85-90 second to identify your motor. The motor should spin during identifying parameters. If everything is right, the motor will identify and green led on. Green led doesn't mean your motor identified truly. It's mean, completed without an error that's why start with low speed command and then observe the current and sound of the motor. If there is no problem and parameters are close to the datasheet, we can say our motor parameters correct.






  • After the motor identification;


Copy  Rs(ohm), Ls-d(mH), Flux(V/Hz)  and adcBias offsets to user.h


You can start your motor from user.h. You need to write some code to user.h to define your parameters.





-First, change offset of your hardware ( Your hardware offset will be different)

//! \brief ADC current offsets for A, B, and C phases
//! \brief One-time hardware dependent, though the calibration can be done at run-time as well
//! \brief After initial board calibration these values should be updated for your specific hardware so they are available after compile in the binary to be loaded to the controller
#define   I_A_offset    (0.848190784)
#define   I_B_offset    (0.844651699)
#define   I_C_offset    (0.836506844)

//! \brief ADC voltage offsets for A, B, and C phases
//! \brief One-time hardware dependent, though the calibration can be done at run-time as well
//! \brief After initial board calibration these values should be updated for your specific hardware so they are available after compile in the binary to be loaded to the controller
#define   V_A_offset    (0.506202519)
#define   V_B_offset    (0.500748217)
#define   V_C_offset    (0.503971219)


-Give a name and unique id to your motor

//! \brief Define each motor with a unique name and ID number
// BLDC & SMPM motors
#define Estun_EMJ_04APB22           101
#define Anaheim_BLY172S             102
#define My_Motor                    104
#define hobby_3p5T                  105
#define hobby_4p5T                  106
#define small_hobby                 107
#define teknic_2310P                108
#define hobbywing_ezrun_8p5T        109
#define eflite_helicopter_420       110
#define Bodine_34B3FEBL             114
#define Pittman_elcom_5233B599      115
#define medical_instrument          117
#define Ti_LVBLDCMTR             120

//! \brief Uncomment the motor which should be included at compile
//! \brief These motor ID settings and motor parameters are then available to be used by the control system
//! \brief Once your ideal settings and parameters are identified update the motor section here so it is available in the binary code
//#define USER_MOTOR Estun_EMJ_04APB22
//#define USER_MOTOR Anaheim_BLY172S
//#define USER_MOTOR hobby_3p5T
//#define USER_MOTOR hobby_4p5T
//#define USER_MOTOR My_Motor
//#define USER_MOTOR small_hobby
//#define USER_MOTOR Belt_Drive_Washer_IPM
//#define USER_MOTOR Marathon_5K33GN2A
//#define USER_MOTOR teknic_2310P
//#define USER_MOTOR hobbywing_ezrun_8p5T
//#define USER_MOTOR eflite_helicopter_420
//#define USER_MOTOR Bodine_34B3FEBL
//#define USER_MOTOR Pittman_elcom_5233B599
//#define USER_MOTOR medical_instrument
//#define USER_MOTOR Kinetek_YDQ1p3_4


-Define your motor parameters

#define USER_MOTOR_TYPE                 MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS       (4)
#define USER_MOTOR_Rr                   (NULL)
#define USER_MOTOR_Rs                   (0.7631)
#define USER_MOTOR_Ls_d                 (0.00115658)
#define USER_MOTOR_Ls_q                 (0.00115658)
#define USER_MOTOR_RATED_FLUX           (0.0310)
#define USER_MOTOR_RES_EST_CURRENT      (0.5)
#define USER_MOTOR_IND_EST_CURRENT      (-0.5)
#define USER_MOTOR_MAX_CURRENT          (3.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz     (30.0)





4) 12-24V 600w High Cogging Torque Bldc Motor Test


I tried to spin a 12-24V 600w outrunner BLDC motor with InstaSpin but the motor only locked and vibrated. Every time it behaves differently. Even I was thinking the motor has a problem. After that, I found same sections on the InstaSPIN-FOC™ and InstaSPIN-MOTION™ User Guide.  These are USER_MOTOR_RES_EST_CURRENT and USER_MOTOR_IND_EST_CURRENT which are resistance and inductance estimator current. These parameters only applied to the motor identification and should be 10% of your motor nominal current. My motor has a high cogging torque that's why it required much more estimation current. When I identified the motor around 3.5A for RES_EST_CURRENT and -3.5A for IND_EST_CURRENT, it started to rotate.



  • PMSM identification process;





                                        State  diagram                                                                                Waveform of current injection during estimation


The injected current should be high enough to generate a significant measurement in the ADC converter, and at the same time low enough to avoid motor overheating.


I got kind of similar waveform with a low cost current sensor.





5) Instaspin 4 Quadrant Operation with Active Motor Load


In this test, I will show you how to implement InstaSpin 4 quadrant operation. I made a small dyno system with two same 105W 24V BLDC motor. Motor 1 working in speed mode with lab10a,  motor 2 working in torque mode with lab5b


Unfortunately,  InstaSpin Gui is not supported run Two Gui at the same time. I used two computers to make this test. Adjustable power supply connected with two BOOSTXL-DRV8301 and Piccolo F28027F LaunchPad.




Quadrant 1: Speed +  Torque +

Quadrant 2: Speed +  Torque -

Quadrant 3: Speed -   Torque -

Quadrant 4: Speed -   Torque +


I applied to motor 1  ± 2000RPM speed command and  ± 1, 2, 3 torque command to motor 2 as an active load for every quadrant.







6) Summary


RoadTest took a long time to complete. But InstaSpin labs and Motorware Gui Guide helpful to understand InstaSpin.

Motor drive bundle is a quite good packet to start InstaSpin FOC Motor control.Drv8301 Boosterpack is compact and has many futures.However, there is no test point on BoosterPack. Launchpad S1 and S4  switch a bit large that's why BoosterPack doesn't place well.

There are 19 Labs for this kit and they are well documented but some of them are not. Sensored motor lab examples not for F28027F launchpad. CCS is powerful  IDE but takes time to learn for new users.

I think Ti can make a step by step video for every lab instead of long pdf documentation. This can be a better move in the Labs. Motorware Universal Gui contains everything you need during the Labs. You can add your variables and widget to Gui.

Overall they made great PMSM and ACIM motor control Library and HW. If you want to learn and implement very detailed field oriented control, this will be a good choice to start not only for the detailed document but also well support Ti community.