Any interest in a custom e-foil ESC?


I can confirm your mesurements, my abs max current is also much higher than the avarage max current. I did test this with 80A and it showed twice the max current with the Sampling Feature in the Vesc-tool.
I compiled my own firmware and boosted the abs max current as I have custum cooling that will allow to use higher currents. This removed the Fault_abs_over_current hickups. However I still get sometimes throttled down because of the current peaks, this limits my duty to 75% then. I will have to research this further when my setup is running again. I have no physical explanation for it, at least none that I think is reasonable, but I first experienced those problems when I lengthended my motor wires from ~15cm to 1,5m of 16mm².
And it is possible then to get to higher currents here is a short burst without watercooling of 120A:

Unfortunately I cannot make another measurement now. I’m currently reconfiguring my setup.
@PowerGlider : Do you really get 30kg of thrust at ~2250rpm? That’s pretty cool for 2kW Input power. I might just have to order one of your motors now.


On my side with the setup of @pacificmeister I reached 42kg for the Thrust. consumption around 4500w - around 100A (tested in a Pool with a body-scale) - you can see the test in this video :


Even if the measurement was crappy for some reason, i use to look for the input power on my TF02 instrument, and it never exceeds 2.4kW, this happens after a few seconds when reaching top speed normally. This time with the crane scale it was 28-31kg. We did 4 measurements, all had the same result. A week before we recorded 33kg, but that was with a very cheap luggage scale capturing maximum weight. You can barely hold it with two hands and a big handle, sitting on a rack. The amount of water pushing through the duct is enormous. If i had 80A motor current it would be higher bollard thrust…

…maybe we stop the discussion about thrust here, this thread is about custom VESC and the problems arising.
The slow abs current limit is calculated in BLDC mode like this:

	// Filter out outliers
	if (fabsf(last_current_sample) > (conf->l_abs_current_max * 1.2)) {
		last_current_sample = SIGN(last_current_sample) * conf->l_abs_current_max * 1.2;

	filter_add_sample((float*) current_fir_samples, last_current_sample,
			CURR_FIR_TAPS_BITS, (uint32_t*) &current_fir_index);
	last_current_sample_filtered = filter_run_fir_iteration(
			(float*) current_fir_samples, (float*) current_fir_coeffs,
			CURR_FIR_TAPS_BITS, current_fir_index);

So, as a first step the outliers are truncated to 120% of the maximum threshold. Than a FIR filter with a length of 16 is implemented. This is rather slow i think. How can it be, that this error is reached at all? I suspect it is an implementation problem or a concept problem, there is something wrong. How can it be, that the control over the current is lost for 16 and even more control cycles? Ok, a commutation happens, how many control cycles is this? one or several? If the commutation happens too early or too late, could this cause the error?
@Flo, what do you miss, when disabling the error reaction at all? General current control is still active i expect.


@PowerGlider are you switching at 20 or 40kHz?
@Flo are you switching at 40kHz or 20kHz when you hit 120A?


I am using BLDC mode with 3-40kHz switching frequency.


Same here, I did not touch the switching code in the firmware. -> BLDC Mode, 3-40kHz switching frequency.
Or is there a way to monitor the current switching frequency directly from the vesc without attaching a scope?


" The current simply becomes noisy and gets aliasing at certain motor phase angles at high speed when using two shunts. " benjamin stated in April this year.
Now that he is advertising the improvements gained by 3 shunt design, the weaknesses of HW 4 are discussed in detail.
How is the current measurement working in HW4? Is it measured during the Off-phase of the high side fets, when the low side fets short the current during the remaining 5% (of 95% maximum dutycycle). That would mean that if running with 40kHz, the time window for measuring the current would only be 1.25µs. That fits to the osci picture i already posted 3 weeks ago.
It is around 1.25µs long.

Now for me the question is, if the signal becomes so noisy, will the VESC be able to climb over the 60-80% problem region ever?
“This can be noted on HW4 where a commanded constant current will give a non-linear acceleration: it will be linear to around 60% of full speed, then it will decrease for a bit up to around 80 % and then it will increase from 80% to 100%.”

In the past there was written a lot about motor saturation as an excuse that vesc looses sync, but i do not believe in that, since i got 3.5kW through an APS 6374 with a water cooled YEP 120A without loosing sync.

So, next test will be with Abs over current set to a higher level, this is the solution benjamin spreads through the last year.


I am still confident that this will solve your problem for now. I have only tested this with my 200kv 6374 motor, but I ordered your motor and prop today so I can test your setup, too.

I think all of this is why we are In the „custom ESC“ thread. Your scope image shows just how weak the gate drive really is. And from your post I understand that the current measurement is also more involved in the control scheme for BLDC mode as we thought. So three phase shunts with individual amplifiers and a strong gate drive is necessary for a custom esc. But thats for the wintertime, I think for this years tests the vesc will be fine.


I do not think the BLDC detection is so complex to use the current measurement, but the aliasing current reading at a certain point in the power curve or DC curve could mean, that the vesc is not getting above this point. If it reads back 180A phase current with the normal limit set to 80 or 90A would mean it is decreasing the DC to decrease the phase current.
So at the moment i am stuck with around 60% DC, thats the drama. I need to go through this range quickly. Its a resonance effect. Very rare, but interesting, that you can get stuck there, ending in a temporary shutoff and sometimes a jump into the water.
This current measurement is noisy from the very basics. Low sampling time at high power with a lot of noise from previous switching, almost no analog filter, double sampling was tried but died.
Ok, but never mind, maybe this Abs limit is not necessary at all, so lets vary the threshold to find out what is going on.


@PowerGlider I agree, bump up your absolute max current way up or comment out the check.

I finished my dyna-mometer! I can now test any esc and motor to any current at any speed. Unfortunately the KDE7215 motor I have is somewhat limited, and gets REALLY HOT at 50A. I have a video where you can see that it’s at 50A for about 1 minute, and a shorter video where you can’t see anything but it touched 87A for a fraction of a second. I purchased a new APS80100 130kV that can supposedly take 200A, but its on backorder :sob:

Learning a lot from the testing.

Switching Transients:
The impedance to the power caps is a little higher than in a typical ESC layout (that part was not well thought out :cold_sweat:). Plus I don’t have enough ceramic caps due to space constraints. So have to switch a little slower to prevent large switching transients, which heats up the fets. The transient peaks under load right now are Vbatt+10V with no ringing. I could eliminate them by switching even slower but it would make the fets hotter.

Heating of the FETs
There is no heat sink mounting provisions on this board due to space constraints (also not well thought out :weary:). The fets have dense thermal vias to pads on the back of the board, but that only works if there is a milled heat-sink or good airflow over the board. I have a thermal camera on it during testing. Highest I have seen it is 115. The datasheet claims the die temp can get up to 175, which is probably 150 on the transistor case, so maybe I am being too cautious by keeping it down below 115.

Rev 1 is probably not a significant gain over a typical VESC, though for sure it wouldn’t blow out its DRV and dump you into the water. The fact that its a VESC4 and the limitations of the circular form factor cause other issues that limit the power below what is necessary for this task. I think the more experienced members here suspected this might be the case.

The new version has a much better chance of working out. The prototypes are coming next week and I am very excited to test them (also nervous that I mucked up the board layout)!


New boards are here! New test motor is here! Very happy with the performance! :metal::metal:

SM-1206 Rev A. 55 seconds test. 48Vin, 51Ain, 155A motor, 77C FET temp, 40% throttle, 2.1 Shaft HP. BLDC mode with current control. Noise at the end is the motor shaft coupling slipping, and I had to end the test.

Sampled current data for the motor under load.

Logic board with two switching modules and some makeshift heatsinks.

This is my current concept for the mechanical integration. I will need input to make the mechanical setup something that works with a wide variety of e-foil and jet-board thruster setups. The final assembly includes custom male-female bullets for stacking, and a capacitor board.

It seems that creating an apparatus to test a circuit board is significantly more difficult than creating the board itself. The latest drama is the shaft coupling is slipping above 6lbft (~150A), so I need to put the shaft back under the mill to add a keyway so I can push it harder.

Apparatus problems aside, this board has no trouble with 155A. I bet it would handle 200A for a 10-20 seconds, though that test will have to wait for next week. The temperature sensor is next to the FETs on the first switch module, and follows the thermal camera, so it seems good for safety and preventing fires.

The switch modules are designed to be stackable. This is TWO modules. If I added another switch module, we should expect 50% better performance. I would recommend people to use a number of switch modules based on application:

  • Smaller people who use the VESC now but wish they had something better: 1 switch module
  • Larger people, or daredevils: 2 switch modules
  • e-surf, electric outdrive: 3 switch modules



I am really impressed with this ! I admire the way you design, test and share your info here.
2 quesions:

  1. What are the pros and cons for placing the ESC near the motor and not on the board ?
  2. What would be the target selling price for a 2 board unit ?

Thanks !


Thanks for the compliment!

The main pro of electronics in the water is infinite cooling. Common themes on this forum about overheating ESCs catching fire in the battery case, elaborate setups to keep the ESC cool, and other issues with having an air cooled ESC in a watertight compartment.

Another big pro is current control mode in the VESC software. When motor speed matches the PWM duty, the motor draws very little current. If the motor speed does not match the PWM duty, electric current will flow, causing torque, causing motor acceleration. If these currents grow too large, or last too long, the ESC or the motor can blow up.

Most hobby ESCs translate operator throttle command directly to PWM duty. For cost reasons, they do not measure motor current. Few hobby applications (cars, boats, planes) have enough mass that the motor speed and PWM duty can be different for long periods of time. It’s different when there is a human-sized mass involved like on a skateboard or bicycle or electric surfboard. In these cases, you must monitor current and control duty to prevent over-current and fire. The VESC software is designed for this.

Cons are that you must seal the electronics somehow. Ideally this would not be a brick of plastic.

I would like to create a sort of common interface to the nose/mast mount and the motor. Everyone here is a DIYer, so I don’t want to force people to a particular design, but it will be helpful to have a sort of electronics package which anyone can adapt to their specific design. I’ll need input and help from others to design something that can be acceptable to the group.


You don’t necessarily need a common interface to the mast. If you look at my build, My motor tube has a flat front section that attaches to any mast clamp with 4 bolts. It means that anyone could print a mast clamp (custom to their mast) that just attaches to the tube. I found it also simplified sealing my wires coming out the tube.

I think the ESC in the tube would greatly simplify the cooling solution, but it may make placement for the Rx a bit more complex. I really like the way Fliteboard has done their cooling by placing the ESC at the top of the mast. This ESC could work well for that too!


Is it possible to fit it on a 1.05" radius? (So it will fit the 60mm OD 56mm ID tube)


@Giga It is possible to fit a motor driver within a 56mm circle, but as you can see from the picture it would need smaller transistors and would have less current handling. The layout of the logic board would be a challenge, like I would have to ditch the gate drive dc/dc, some interfaces, and a few other things.

A sleek 60mm tube with integrated electronics would look rad. Maybe we can work on that design next after this one?


I also had a problem with diameters so I designed a liitle piece for assembling different tubes, maybe it could be useful in the case of bigger or smaller motors



I was thinking about this in regards to the broken lift mast pictures that were posted by @Southernkiwico. If a mast breaks and the electrical cables tear I would want the ESC to be on the board rather than in the motor pod. If the ESC is in the motor pod you would risk both losing it if the mast and wires get separated from the board and also you would short between the + and - , through the water, which would cause the batteries to catch fire.

I agree that the risk of all of this happening is small but if it does happen the damage could be catastrophic. Just another point to think about.



Wouldnt you have an inline fuse to stop this happening? or individual battery fuses on a 18650 battery?


I’ve been thinking about how to package the electronics. I hope this concept is able to be integrated into a wide variety of designs, and that someone will find it useful.

The ESC enclosure has two parts: the logic and first switch board are housed by a can with a rear face seal and screw holes to mount to the motor adapter/prop guard mount. Additional switch boards stack up and face seal against the mast clamp/nose cone face. The can seals around a motor adapter.

The switch board heat sinks and electronics housing would be supplied with the ESC. The motor adapter and mast clamp would need to be made specifically for the motor and mast in the application. This is my design, which adapts to an APS 80100. Both components can be done a bunch of different ways, this is how I happened to do it.

Here is the thruster broken apart so the wiring connections can be made and ESC programmed.

Inside view of the motor adapter.

Nose/mast clamp separated from the electronics

Here are 3D models:

  1. What do you guys think generally?
  2. How can this be improved?
  3. Would this be helpful or is it looking like submerged electronics are just plain terrible idea?