Haven't been on this site in awhile, I hope I have the right forum or can get a redirect. So as a design engineer I'm looking into what it would take to design a motor controller for a BLDC so that you'd have separate velocity and position modes. I was around when we used to do control loops like this with early hard disk drives, in velocity mode you'd calculate the distance (it actually was track difference) and look up the demand velocity, when the difference was zero you could change to position mode and then you'd have an encoder output that would be proportional to the distance from track center and you'd close that as a second-order loop. (The "modern" equivalent is called an incremental quadrature sin-cos encoder and the primary output is analog, I watch with some amusement as I see a number of these Chinese brushed motor controllers trying to use digital position encoders, those would give you TERRIBLE results, yikes!) Anyway with a standard velocity-only BLDC control you can do sensor-driven or back-EMF commutated or field-oriented control (FOC), I believe the premise of FOC is it allows the greatest amount of torque to be used. Now when you try to add a position mode what you DON'T want to do is find yourself becoming committed to a high-resolution ABSOLUTE encoder JUST so you've got something available to commutate the phase windings with, you're talking a COST of at least $700! If you try and add anything to a single-chip sensorless controller (say Allegro A4963, one that I looked at) if you restart out in the machining area you don't know which direction the spindle will go upon restart which would be unacceptable. I just got off the TI E2E motor drivers forum and inquired about adding a position mode to FOC and they said they've never been asked this and don't have a ready solution. In my opinion if you can't provide a substantial "restoring force" to counter any force disturbances when you're "on station" so that it keeps you there you don't have a viable solution. Now I recall that some of you folks have mentioned that you've done BLDC in position loops but I don't know if you just "threw in the towel" and went full absolute encoder,but I'd sure like to hear what has already been done especially if it involves readily available controller chips or PCBs etc.