ESC current control thru Arduino

DC Current sensor
Idea, goes straight within my “will do in the future”: hall sensor ring, to measure DC current right near the ESC, let’s define 100A max rated, plugged into the Arduino buffer or Arduino RC receiver, a sub-loop with an “if” and an “else” for example, measure the current and force a progressive smooth derating of the power to keep the max current within motor specs…
I know Vesc can do it but mostly we run on ESC, we struggle for safety etc… where keep the current absorption lower than motor max rating it’s the first thing!

Playing with codes, we might even ramp a constant current accelleration and other nice thing.
What do you think? So far, the big deal is to source a sensor at decent price… I’ve one plugged to my Volt/ Ammeter but it’s pricey… and there’s limited choice when it comes to DC current (for AC there are planty of transformer style sensors, ver cheap).

Thought about measuring the current with that kind of sensor as well and got this one: https://www.aliexpress.com/item/WCS1600-Hall-Current-Sensors-Measuring-100A-Short-Circuit-Overcurrent-Protection-Module/32721900645.html?spm=a2g0s.9042311.0.0.YPlQTE
I’ haven’t tested it so I can’s tell if it works but it’s reasonable priced and AWG 8 fits through the hole.

Those are definitely some cheap solutions, and not physically having to connect the cables is a bonus. I might get one to test the accuracy.

I currently use a Mauch HS-200-HV Current/Voltage Sensor. This is a hall sensor also, but mounts in-line in the cable. Only problem is it is so accurate it measures the highs and lows of current draw during the PWM cycle, so you have to average out in the Arduino.

1 Like

Edit: I misunderstood your discussions, for preventing the motor from overheating you should measure the motor side current. Current ripple there is expected as the motor current gets switched through the three phases. My original comment below was about battery current ripple on the DC side of the ESC which is unrelated here. @PowerGlider has answered a good solution below. Sorry for the confusion.
———
Are you really concerned about highs and lows of current draw during the PWM cycle on your battery side? When designing ESCs ( more precisely VFDs for bigger machines) we did quite a lot to suppress this ripple current. There will always be some, but it was considered bad to let the switching frequency through to the power supply. If the ripple current is more than a few amps I would place some capacitors with low series resistance close to the ESC and filter out the switching. I have to admit I never measured the ripple current on my current ESC, quite interesting that you brought this up, thanks. I don‘t know about batterys aging faster with high frequency ripple current, but I was not allowed such loads with our powersupplies. Some science on battery baehaviour with ripple currents would be interesting.

The pwm inducted ripple also concerned me, so I added 2 big capacitors in parallel right before the ESC, low ESR from Panasonic.
The reason behind this current absorption control, instead, it’s motor/ESC protection against excessive current, like if you run a propeller with too much pitch.
Further than this, a retroactive control over current (power) absorption, it opens the door to smart power ramp, proportional control over the real power that you get from the prop (which works with a kinda of hyperbolic curve, over rpm). I don’t know if would be feasible nor I think to have the skill to program such a controller… But I liked the idea a lot! I’ve tested similar solution at work, on asyncronous DC powered motor for thrusts, the difference is impressive

The current ripple was considerable I.e at 10A would show anything from 1A to 10A. Maybe this shows the Seaking Hv 130 has very poor power side filtering. I wonder if this has long term effects on the battery. I want a semi accurate consistent current reading as I use this for multiple features in my controller, such as current limiting and display to the rider etc.
I will add capacitors as you guys have suggested. What size/type low resistance do you recommend?

If the measurement is the only problem, you should have a first order filter with edge frequency with 1/5 of the sampling frequency. Its just a resistor and capacitor. Place them as near to the arduino input pin as possible to avoid inductive effects.

1 Like

All Low Pass / High Pass filters I have built in the past only used Inductors and Capacitors to generate the correct Band Pass filter for the frequencies you want to allow through. I didn’t use resistors. Is not it assumed that the load is the resistor?

resistors are only used in the signal path, not the power path.