Cutting ESC power under load

I’m building my first eFoil, and my original plan was to use a kill cord to cut power when I fall. I’ve spent some time on the forum, and I’ve seen that this could damage the ESC if done incorrectly. I’ve also seen some people have a kill cord that when pulled, ramps down the motor quickly before cutting power. What would I need to build a device like this?

This is the ESC I was planning on getting, if it helps at all.

I am in the middle of my build.
I use those FSESC and I plan to cut the Power with an Reed Relay on the Receiver from the Remote.
So, the ESC Switch of himself.

I bought this ESC and i have the exact same question, i couldn’t find a good answer… I hope that somebody here can give us good advice

1 Like

I just thought of a possible solution. Do you know if the ESC has a fail safe that sets the throttle to zero when the remote gets disconnected? If so, the kill switch could cut power to the receiving part of the remote (the part in the board) to cut the connection, which would cause the ESC to automatically zero the throttle rather than actually cutting off power from the ESC. This itself would probably be enough, but for extra safety there could also be a timer that disconnects the battery power after the throttle has been zeroed.

Don’t cut the battery circuit under load, it will fry your ESC. The motor is still spinning when you cut power. Recall that applying current to an electric motor turns the shaft but applying a shaft turn to an electric motor generates current (using it as a generator). You may hear this described as back EMF. Since the shaft is still spinning when you cut power the motor is acting like a generator and producing current and with the battery circuit cut it has no where to go but overload the ESC.

I have given this problem some thought. Assume you are controlling the VESC via PPM and the pulse width of the signal is 1ms for 0% and 2ms for 100%. If you use a relay and set this to ground I don’t know how the VESC firmware is programmed to handle this condition. I don’t think it’s good to assume it does what you expect. What if we had a 1ms PPM signal generator on hand we could flip the circuit over to? Easy enough, use a relay but don’t pull the signal to ground when the safety signal goes high instead pull the signal to the SG. How might we generate this signal? There are tutorials to make an Arduino control VESC via PPM - a modification to only generate 1ms PW signals should be trivial. Remove the analogRead to the potentiometer and hardcode the value. Won’t the Arduino draw alot of power for such a simple task? You could minify this sketch to an ATtiny85 for lower power draw. Be sure to wire the relay such that it is hot when it is getting signals from the remote and off when it is getting signals from the SG. This will account for the relay failing or the safety signal going high to stop the motor. Hope it helps!

1 Like

I do not want to switch off the ESC even under load too.
My idea is a circuit with relays, which first disconnects the signal from the receiver to the ESC and via time relay approx. 1 second later disconnects the voltage between battery and ESC.

I also want to make a relay circuit which first charges my capacitor bank via a resistor and only then switches on the power.

I bought before an Flier ESC.
When i cut the power to the Remote that is connected to the ESC, the ESC spin down and the propeller stop.

I am waiting now for my new Flipsky FSESC 200A and will try that soon…

I also have a flipsky 200A FESC. Just tried cutting the power for the remote signal, with motor spinning at max rpm. Motor stopped spinning 1-2 second After power was Cut. IMO it took just a bit too long, maybe it is different in water with load in propeller, or Maybe there is a setup in VESC?

I got the information from a German speaking group that you can change those values and the motor stop immediately!

It is no problem to cut the power under load with signal of receiver being 100%. I did it several times with a VESC 4.10. You also can set the recuperation current during braking to 0A, so it will not recuperate anything into the open circuit. Only if you cut the battery AND set the throttle to 0% at the same moment AND your motor is driven by the water AND you have configured recuperation the Voltage at the capacitors may raise above normal voltage. Even in this situation will the VESC try to keep the voltage below the configured maximum voltage. Some of the Vescs but not all have a zener diode which can limit the voltage.

It’s good to know the VESC is robust enough to handle loss of power during operation. I still don’t think we should ever cut power to our motor controller. I equate this to turning off your PC by unplugging it from the wall. Each time you do this you put the VESC at risk not knowing what internal state it is in. Partially through instruction execution could be an irrecoverable state. I propose it is better to use the VESC as a motor controller - when you want the motor off send a signal which turns it off.

If a motor is still spinning for 1-2 seconds under water after signaling off it is not spinning with any dangerous torque. With no additional energy being given to the motor it is spinning based on a finite amount energy (momentum of rotating body) and that finite amount of energy is quickly diminished by friction between the water.

If you set recuperation > 0A you will also have a EMF helping to decrease momentum after a stop as well. This is what @nice2cu is reporting.

I’m proposing you do not cut power. You use a relay to switch the PPM signal input to the receiver. The signal is switched from remote signals to signals from a signal generator like an Arduino. The Arduino generates signals which correspond to the motor not spinning. The relay is wired so it uses these signals when low and the remote when high.

This approach does not rely on any undefined behavior such as leaving the PPM signal input floating

2 Likes

Thank you for that explanation, I wasn’t really sure what you meant before, but I get it now.

1 Like

Instead of using a relay it would be better to feed the remote PPM signal into the Arduino and use it as a “relay” in software. During normal condition it reads the PPM input and sends it to the output/ESC. In case of fall a digital input can be used to register this and the Arduino sends pre set 1000us value (0%) instead of remote input. It would be much quicker than a relay which takes some time to energize and switch over. I can probably write some usable code

1 Like

My question is.

I am using the Flipsky 200A FSESC.
So you saying, to cut the Signalcable with an Reed Relay Is not good?

Do you know if it is possible to connect that Reed Relay to a other port of the VESC and he spinning down the motor?

To use an Android for that cannot be a solution. It makes the hole technic inside more and more complex and sensitive for many errors!!!

Keep it Save, keep it simple!!!

No need to write any code - I will implement this and share it. Thank you! It is a perfect job for the ATtiny85.

In the future a circuit in the receiver PCB should be implemented with a pin for safety sensor input. I agree with keep it simple but please note a software based solution can be very robust. I will write the code in Arduino and use the Arduino to flash a small chip called an ATtiny85. It can be thought of as a lightweight version of an Arduino. The ATtiny will act as a passthrough for the PPM receiver signal thanks to the suggestion from @ltronsm. A digital pin goes to receiver PPM out, a digital pin goes to VESC PPM in and an analog pin goes to your safety switch. The code sorts out what signals to send where, when.

This is a strange concept:Instead of having a two way safety part, the relais to switch off power and/or signal plus the original signal from the remote, you introduce a new part without any safety measures at the bottleneck, the VESC input. Think of the possible failures in your chains. E.g. remote is mechanically blocked or software failure in either remote, receiver, VESC or this ATtiny or electrical failure in VESC making the whole thing burn. The ATtiny only covers a small part of them and introduces a new source of failure. Think also about the robustness of your complete system, it has really to be rugged. You also need to decide what will trigger the safety switch: Is it a foot leash? Or a simple switch? Will it trigger every time you fall, or only if you switch it off by a main switch? I used a foot leash in the beginning, but it makes things complicated, so i did not like to use it any more and built in a main switch. I would like to invest more on a good remote with safety features, but it should be open source and well documented or some company takes over the responsibility and documents its development process following some standard like ISO26262 and let it prove by UL e.g.

I still not understood why we not should cut the Signalconnection from the remote to the esc?
The ESCs have all build in autostop.
And a lot of VESC you can program how long he should wait until he stop the motor!

If your ESC has an autostop feature this solution is irrelevant to you. Ground the signal wire like you said - done! The VESC has undefined behavior for a non PPM signal as input thus the signal pass through will pre-process the signal to handle that edge case before the VESC ever sees it.

I see what you are saying about any added complexity decreases robustness. In my case I’m treating the Maytech V2 remote as a black box and pre-processing it’s signals for the VESC to prevent undefined motor behavior. Any one of these systems can fail for a random reason. A part of this hobby requires you to assume that risk. I can’t wait for a focused open-source project to take over or a company as you said that sticks to a unified design. In the meantime I am thankful for this forum to connect me with others to work towards the safest most robust e-foil system.