Wow, it's been a while since this project has gotten an update. After a long hiatus, I have finally completed the assembly and testing of the current sensing booster-pack. The only problem i ran into was one of the tiny 0402 caps was shorted because of a poor soldering job. I was able to fix that easily enough, and since I tested for continuity between power and ground before actually powering the board I didn't break anything. I also modified the firmware to use the new ADC channels that the booster pack feeds into. To verify, I was able to apply voltages to each of the motor phases and see the correct current output in the ADC registers. Over the last couple of days I have been working on a task-scheduler that I can use to do various tasks at fixed rates using one timer. I used this blog post as a template, but since I am using C++ I am doing things a little differently. Check the github if you are interested. I will use this for my control loops as well as data transfer to a host-PC (more on that later...)
The obvious next step is to start working on the controller. We very obviously need current controllers for both the A and B phases. In my experience developing control systems, ones job becomes much easier if he/she is able to see an output of the control signals as well as the setpoint in order to do step-response test, see errors in real time, etc. My plan is to develop a GUI in Python that communicates with the motor control processor to facilitate this. This GUI will make tuning and validating the system much easier. I usually use Java for this sort of thing, so I am excited to see what Python brings to the table. Once the GUI is working I'll implement the PID controllers for the current control system and start testing.