Smart/Augmented Low Side Current Sense Open Loop

My most recent observations have led me to a somewhat controversial idea.

Using a cheap unidirectional low-side current sensor (between GND and COM) to run a motor in open loop mode with enhanced current control. In other words, introduce a current target as a parameter, and given a target velocity, adaptively change the open-loop current to match the low-side current sensor current while trying to reach the open-velocity loop target. Obviously there will be a need for a sensor, however, the requirements for the sensor and control algorithm will be a lot lower than the proper closed loop feedback.

The disadvantages are obvious and I will skip them. The advantages would be:

  1. Low MCU processing power.
  2. Cheap low-side current sensor and easy to manufacture and design PCB. Target would be INA225 or INA199 with one low-side current shunt resistor between COM and GND.
  3. Cheap and easy angular sensor, even AS5600 which is good up to 500rpm, or hall sensors or anything that could feed the velocity of the motor shaft.

Any thoughts?


1 Like

It looks like you are proposing a simplified hardware implementation of TorqueControlType::dc_current.

I think that would work, but since you already integrate a sensor in your design, can’t you just estimate the current based on the motor kv, speed and resistance? I guess the advantage is that you don’t have to know the motor kv and resistance when programming.

Or maybe for educational purposes, one-wire current sense for less clutter on the breadboard.

That’s a good point, however, not sure how real is the use case for generic motors where we only plug a black box motor.

Not sure if this is even realistic and achievable for educational purposes. But worth exploring.