Another point that may already have been made:
If you separate the parts of the project, you see that you could do huge parts of the software, communications and user interface aspects without worrying about the motors, how many phases they have or haven’t and how to drive them.
You could get the power part, that is the motors and drivers, working without any programming beyond simple go/no-go testing from a logic level.
Do both, get all the wrinkles tweezed out, then combine them… with any luck, not much excitement or fun or trouble at that point. Cough!
I would probably go further with the software first, but that’s just me. Perhaps you know what the deal breaker would be for you - start there, like the motor drivers e.g., If that turns up a problem, no wasted time yet on a buncha software.