This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

InstaSPIN-MOTION running on a CNC Router

Other Parts Discussed in Thread: MOTORWARE

We’re putting together an InstaSPIN-MOTION multi-axis speed and position demonstration to share with Servo and CNC customers.  It has been so easy that I wanted to share the process with you.  In less than a week - while still doing our day jobs - we went from assembling our CNC Router Table to performing coordinated smooth motions.

February 17th:
Time Spent: 2 hrs

  • Received and assembled the CNC Router Table

February 18th :
Time Spent: 4 hrs

  • Attached LVSERVOMTR to X & Y Axes
  • Connected motor to the DRV8301-69M-KIT
  • Estimated inertia for X & Y stages using MotorWare Lab 05c
  • Tuned bandwidth for X & Y stages using MotorWare Lab 13a
  • Found the maximum acceleration and jerk using MotorWare Lab 13b 

February 19th:
Time Spent: 6 hrs

  • Added GPIO to communicate between the 2 DRV8301-69M-KITs (we used 2 kits, but the F28069M chip can drive 2 axes)
  • Created two new projects (proj_x-axis & proj_y-axis) based on MotorWare Lab 13c
  • Modified the Motion Plan in proj_x-axis & proj_y-axis to draw a square 

February 20th:
Time Spent: 6 hrs

  • Added a new Motion Plan to draw a triangle
  • Added a new Motion Plan to draw a circle 

February 21st:
Time Spent: 2 hrs

  • Added the ability to change the drawing shape with the buttons on the EVM
  • Filmed video 

Total Time Spent: 20 hrs

Download the modified motorware_1_01_00_11 used to run this project.

That's right, it only took 20 hrs to put together this complex 2-axis position control system with three different programmable motions in a flexible state machine.

If you want to learn more, we’ll be running a webinar where you’ll learn how to simplify design, enable rapid system tuning, and improve performance of single and multi-axis speed and position control applications.

  • Monday, March 10 at 10pm Eastern USA: register
  • Tuesday, March 11 at Noon Eastern USA: register

Can't wait to see what you spin with InstaSPIN-MOTION!

  • WOW!!!

    I can't believe how quickly you created a working CNC controller.  That would typically take months of work....just incredible.

    Is there a link to the CNC table for purchase so someone could duplicate the entire system?

    And I'm looking forward to the webinar.

  • Chris,

    You can purchase the router table from Precision Plasma.  The only modification is to purchase couplers to connect the 3/8" shaft of the router table to the 3/8" shaft of the LVSERVOMTR.  I recommend these couplers from McMaster-Carr: 9845T203.

  • Thanks, Adam.

    Here is the "official marketing" version of your video.

    I have a feeling this is going to make someone's job MUCH easier. :)

     

  • Hi Adam,

    I am developing a small CNC router using two DRV8301-69M-KITs just as what you did above. I went through lab5c, lab12a,lab13a and lab13b.  Everything looks well and I am able to  run the position control  from point to point in lab13b successfully. But at this moment all the tests were conducted on motor level only, that is, the motor is not coupled onto X&Y-stage yet.  I have 2 questions on the the next steps:-

    1. Do I need to re-ID the interia and friction when I couple motors with x&y-stage and update them into user.h? Also  need to re-tuned bandwidth for X & Y stages ?

    2. Could you share any idea on how to capture datum mark if a  photoelectric pair tubes is used to serve as datum on each stage.? I assume it is not a big piece of job to use a GPIO to sense the level change, but the problem I have is then how to let SpinTAC pos control system to record this point and use it as position reference for following movement.

    Thanks in advance,

    Harvey 

  • Harvey,

    I'm glad to hear you are working with InstaSPIN-MOTION.

    1. You will need to redo the inertia and friction identification with the motors coupled to the X&Y stage.  This is required because in order for SpinTAC to control the system well it needs to have an understanding about the system parameters.  And when the motors become coupled to the X&Y stage the system has changed.  I would also expect that the bandwidth would need to be retuned as well.  Typically if a system has a large inertia it does not need as high of a bandwidth.

    2. What I think you would need to do is when your GPIO senses the change in the photoelectric pair tubes you need to store the current position of the axis.  You can grab the position in mechanical revolutions.  Use these two functions to store the current position:

    STPOSCONV_getPosition_mrev - this function gets the current position inside of the current position window

    STPOSCONV_getPositionRollOver - this function gets the number of position rollovers since the mcu has been powered on

    This will be the datum mark for where your GPIO signal occurs.  

    In the SpinTAC position system all movements are relative movements.  This means that every following movement is relative to the previous movement.  So you will need to write software that converts your absolute position commands into these relative position steps.  

  • Thanks Adam!  Your above inputs are  what I am looking for.

  • Hi Adam,

    I am also evaluating InstaSpin-Motion. In reference to the above is it possible with InstaSpin-Motion (or?) to update the position reference in a kind of real time fashion to allow position/motion control from the outside? Much like a servo system?

    Thanks in advance,
    Robert
  • Robert,

    There are some current InstaSPIN-MOTION customers who have done this.  So it can be done.  In order to allow the system to take continuous updates you need to replace the profile generation with your own code that will take in the position command and convert it into the format that InstaSPIN-MOTION expects.  

    InstaSPIN-MOTION uses a position reference signal that rollsover so that it can maintain precision.  Your software would need to generate this signal.  I've attached a document that shows how InstaSPIN-MOTION handles the position reference signal.

    SpinTAC_Position_Move_Rollover.pdf

  • Hi Adam,

    Thanks for your reply/info.

    To "translate" your input I need to a kind of replace the STXXXPLAN_xxxxx functions (profile generation) and use the "output" in the STXXXMOVE_xxx functions. Correct?

    As I am looking at CNC type of application position/state changes are taking place on a timing basis; basically the next+ states is defined, so the end of the state could be calculated from position change in the next state. Alternatively one could use STXXXPLAN_xx functions to alter the state and transitions based on the calculations from the next state. Is this feasible and would the profile generation "handle" this??

    Your input is most welcome!

    Thanks in advance.

    Regards,

    Robert

  • Robert,

    There are two options. You could replace either the Plan component which provides motion sequencing (STPOSPLAN_*) or Move component which provides profile generation (STPOSMOVE_*). Depending on which component you replaced you would need to replace the functionality that you removed. If you replace Plan you would need to translate your position demand signal into position steps that can be passed to Move. If you replace Move then you would need to translate your position demand into the position reference signal that can be passed to the position controller.

    In that type of application, you should be able to use SpinTAC Move to generate the references between the two states. Since You would be changing the states at run-time it would be difficult to use SpinTAC Plan for this. But this is exactly what SpinTAC Move was designed to do. It is designed for point-to-point position movements.
  • Adam,

    Thanks again.

    For now I have sufficient to go on further exploring spinTAC direction.

    Is this the right forum/subject to use in case of additional questions/discussions?

    Much appreciated!

    Regards,

    Robert

  • Robert,

    This would be the right forum for questions going forward.  The only thing I would ask is that you create new topics for new questions.