BESC - beefed up VESC motor controller for high power ebikes

galp

100 W
Joined
Mar 22, 2014
Messages
196
Location
Slovenia, EU
Heyo!

I've been working on high power VESC fork for the last couple of months. It uses VESC logic and isolated gate drivers from TI combined with high performance MOSFETs. It is designed to take maximum input voltage of 150V (30S lithium capable) and peak 200A phase/battery current.

Top side of the controller
pFCSkhM.jpg


Bottom side of the controller
J59bFjv.jpg


Features of my hardware fork:
-Input voltage: 15-150 V
-Max phase / battery current 200 A
-12 MOSFET design with high low Rdson parts
-Isolated Texas Instruments gate drivers
-Allegro 200A isolated hall current sensors
-Copper busbars for electrical and heat conduction
-Rail is decoupled with 8x 560 uF 160V aluminum and 42x 0.47 uF 200V x7r ceramics
-M6 input and output power screws[/list]
-Requires separate 12V supply - recommended Meanwell RSD-60-H
-USB, CAN, serial, I2C, SPI, 2x ADC, RC PPM inputs / outputs
-Automotive JST connectors for I/O signals
-Disconnecting 12V rail shuts down the controller - battery stays connected - no need for high current / voltage switches

Some features of VESC firmware:
-Sensored and sensorless FOC with auto-detection of all motor parameters
-Hall sensor, ABI/SPI encoder
-Current and voltage measurement on all phases
-Regenerative braking
-USB programmable and nice GUI
-Adjustable protection against
---Low input voltage
---High input voltage
---High motor current
---High input current
---High regenerative braking current (separate limits for the motor and the input)
---Rapid current changes (ramping)
---High RPM (separate limits for each direction)
---Motor and driver overheating
---... and much more

What you see on the pictures above is the second version. The first version had some problems with phase transients coupling to control signals and the whole half bridge oscillating every switch cycle. It sill ran on 50V with 70A phase currents though. :mrgreen: I've taken care of that in second version with careful layout and stuff that I learned from the first. The last version is now complete and will be sent in fabrication soon so I can have with soldering and testing during holidays.

Here's how the first version looksed during testing:
V3669Lq.jpg

Notice one transistor missing? I fried its gate by shorting it to positive input rail with a soldering iron because I forgot to discharge the capacitors first. :|

Video of the first version running when there were still some bugs in the code configuration:
[youtube]RD5hWyjkdps[/youtube]

I'll CNC machine / 3d print a housing for it that will double as a heatsink.
 
In second version I used film capacitors instead of ceramics. Also changed MOSFET gate drivers for isolated ones. Improved high current routing to caps and between gate drivers and mosfets. Filtering to analogue components was also added for improved noise immunity.

First tests look very promising.
[youtube]lDOkBaCXiCE[/youtube]

I'll CNC / 3d print an enclosure for it. The bottom part will be made from aluminum that will double as heatsink / surface to mount a bigger heatsink to.

AyV5Z8Dl.jpg
 
This looks like an awesome project. Keep up the great work, I would definitely be interested if you started selling these.
 
nice work :bigthumb:

the copper busbars are soldered ??? watch out for the fact the the pcb and the copper have different thermal expansion , so this might cause problems later .
 
galp said:
BOM is ~200-300€.

I also made a manual / datasheet with more specifications if anyone is interested. https://e.pavlin.si/wp-content/uploads/2019/02/manual.pdf

In US dollars that's $230-340.

For an FOC VESC based controller that works up to 150v and 200 amps...this could be a great deal.

Maybe you would consider making a higher power version? Something like 400 phase amps?

According to the manual you posted and looking at the wiring, how do I connect a throttle, 3 speed switch, CA and other things? I have never used a VESC of any kind before. Maybe this is obvious?

2019-02-25%2003_25_46-manual.pdf.png
 
ElectricGod said:
how do I connect a throttle, 3 speed switch, CA and other things?

J2 pins 4 and 7 are the inputs for external analog signals. This is where you would connect the signal line for a throttle. You go through a setup wizard on the VESC Tool program and that's where you configure the VESC to accept a throttle signal from one of these inputs. You can even adjust throttle response and tailor it to your liking.

Multi-speed switches aren't a thing for the VESC that I'm aware of but it is possible to set up different speed profiles with the various VESC compatible apps for VESC based controllers.
 
This project is epic!!! Thank you so much for your work!!!

Going to half film caps and isolated gate drivers was how to win at growing the power!
 
I'm wondering a few things, but don't take offense.

It is a nice design, with some optimistic data in the manual ;)
For example the power loss: at 200A phase peak current the RMS current of a FET is 200/sqrt(2)/4 = 35A, and with Rdson=3.4mOhm the conductive loss is Pd = 4.25W for one FET, and that would be only at Tj=room temperature. Are you sure the switching loss and the others altogether are less than 1.17W/FET? (= 65W/12-4.25W)

I'm interested in also the FET turn-off Vds overshoots, because that is the highest voltage you can expect, and I've already measured a similar arrangement (2 FETs placed in parallel and the high/low sides in antiparallel, with HSOF package /IPT015N10N5/ in my case) and it was not very good:
There is a horizontal inductive loop formed of the 4 FETs (of a half-bridge) and the wiring between them: the output wire connecting the high side source with the low side drain, and the power supply bus bars. With the good capacitors the DC bus can be considered as a short at high frequency (freq. of the overshoot and the possible ringing), but the inductive loop is still there with its relatively high inductance that takes effect in the Vds overshoot. Moreover the overshoot of an outer FET is much higher than the overshoot of the other FET closer to the center of the loop. The difference was surprisingly high despite the parallel FETs are just next to each other: if the overshoot on the internal FET was 20V, the same on the outer FET was already 40V (or both more or less, depending on the switching speed).

Can you do Vds measurements at the highest current at MOSFET turn-off with the probe connected just right on the FETs pins/pads?
Can you do this with double pulse test? - It is more simple than setting up a motor with a high load, but need to write a firmware.
Do you have a differential probe?
 
shaman said:
ElectricGod said:
how do I connect a throttle, 3 speed switch, CA and other things?

J2 pins 4 and 7 are the inputs for external analog signals. This is where you would connect the signal line for a throttle. You go through a setup wizard on the VESC Tool program and that's where you configure the VESC to accept a throttle signal from one of these inputs. You can even adjust throttle response and tailor it to your liking.

Multi-speed switches aren't a thing for the VESC that I'm aware of but it is possible to set up different speed profiles with the various VESC compatible apps for VESC based controllers.

I guess a CA or other monitoring device that uses the CA signals has to be done 100% external to the controller.
I'm sure the apps are pretty good that work with VESC controllers.
 
ElectricGod said:
I'm sure the apps are pretty good that work with VESC controllers.

Yes and there are different ones with different features to pick from. There is an official VESC Tool App form the original designer and then there are 3rd party ones as well. See examples below.

https://play.google.com/store/apps/details?id=vedder.vesctool&hl=en
https://play.google.com/store/apps/details?id=ackmaniac.vescmonitor&hl=en
 
TilmanBaumann said:
I think he meant the apps running on the controller. ;)
Like the simple ADC input is an app.

No Shaman was right...I meant android or IOS apps. You don't really need a CA if you have the same thing transmitted via BT to your phone.

Looking at the VESC tool, there's options in there for setting up multiple profiles...essentially identical to having a 3 speed switch. Most smart controllers use a physical 3 speed switch and you program the controller with specific settings for each switch position. This is convenient since you don't need a phone to change modes and you can do it while riding with the flip of a 3 position switch. However, that's an inconvenience that is pretty small. 99% of the time, I'm the rider on my EV's so I set them for maximum performance. It's the rare time I let somebody else ride and that's when I flip to low or medium on the switch.
 
peters said:
For example the power loss: at 200A phase peak current the RMS current of a FET is 200/sqrt(2)/4 = 35A, and with Rdson=3.4mOhm the conductive loss is Pd = 4.25W for one FET, and that would be only at Tj=room temperature. Are you sure the switching loss and the others altogether are less than 1.17W/FET? (= 65W/12-4.25W)

It's what I calculated but never measured. I hope you notice the big DRAFT written all over pages. It should be somewhere close with the size of heatsink I currently have installed. :mrgreen:

I have rise time set to about 0,4 us to limit overshoot. I made some measurement here. Unfortunately I don't have proper test setup at home nor funds to build one. Also keep in mind that I never tested this design at 125V and it is quite possible it wouldn't run at such high voltage. But with 84V or 100V there is a lot of room left (50V) for overshoots. I might do the double pulse test.

Design is confirmed though. I made more than 500 km with my bike without a single failure or maintenance with phase current set to 200A and 20S li-ion battery.

I haven't fully decided yet but I'm 80% sure I'll make this project opensource with design files, gerbers and detailed assembly instructions. I'm also planning to make some minor changes to the current design and call it final. It was never in my interest to make money with this design although it would be nice to get some development cost back.
 
ElectricGod said:
Maybe you would consider making a higher power version? Something like 400 phase amps?

Maybe in the future. First I'm going to double my battery pack on my ebike. Then I'll then decide if a bigger controller would benefit the whole system. I'm not just going to develop something I'll never need. But yeah, I've looked into it in the past and found LEM current sensors that are affordable and up to the task. Challenge will be paralleling three transistors (18 in total) and taking care of overshoots. I think I could keep the current layout for 400A.
 
Yes, I saw the DRAFT label :)
400ns for Vgs rise time is quite short at this power level, I would expect more by default. The Vds rise/fall time is much shorter, that is only the length of the Miller-plateau.
Anyway it is a good final measure that it works well without failure, congrats for that!

Are you using IPB044N15N5ATMA1?
I may try the same because the HSOF I tried is not very good in several ways.
 
galp said:
ElectricGod said:
Maybe you would consider making a higher power version? Something like 400 phase amps?

Maybe in the future. First I'm going to double my battery pack on my ebike. Then I'll then decide if a bigger controller would benefit the whole system. I'm not just going to develop something I'll never need. But yeah, I've looked into it in the past and found LEM current sensors that are affordable and up to the task. Challenge will be paralleling three transistors (18 in total) and taking care of overshoots. I think I could keep the current layout for 400A.

Open source would be cool, but I bet you will get people who want a built unit. You should be able to make your money back by offering that. While I'm capable of building it myself, I have way too many projects going at any point in time so I'd personally want to pay for you to build me a couple of them.

I know lots of people that run their 100v mosfets/controllers at 22S/90S and personally I think they are nuts. That's too close to the upper limits of the components IMHO and greatly increases the chances of failure. Since your maximum limit is 150v, staying around 20v less than that ought to account for ringing and over shoots. I've never had a problem staying at 20v less than the maximum and everything works well. IE: Test at 32S/131v as your realistic maximum. If you do and it all works well, you've won me over! I'll take 2 please. :)

My next build has been held up due to needing decent controllers that are FOC and can do at least 200 phases amps and run at 131 volts. I'd really like 300+ phase amps continuous so I have some "room" for overloads and cranking the throttle. This build will be running 2 controllers on a 6 phase motor and my expectations are 30-40kw.

Down the road...
I have a motenergy 80kw axial flux motor. It's 6 phase...that pretty much means 400 phase amps at 131 volts.
 
ElectricGod said:
My next build has been held up due to needing decent controllers that are FOC and can do at least 200 phases amps and run at 131 volts. I'd really like 300+ phase amps continuous so I have some "room" for overloads and cranking the throttle. This build will be running 2 controllers on a 6 phase motor and my expectations are 30-40kw.

Down the road...
I have a motenergy 80kw axial flux motor. It's 6 phase...that pretty much means 400 phase amps at 131 volts.

Have you ever powered a six phase motor with two vescs? It should work but I've never tried it myself and have not seen it done anywhere online. I've been meaning to rewind a small outrunner to six phase to play around.
 
district9prawn said:
ElectricGod said:
My next build has been held up due to needing decent controllers that are FOC and can do at least 200 phases amps and run at 131 volts. I'd really like 300+ phase amps continuous so I have some "room" for overloads and cranking the throttle. This build will be running 2 controllers on a 6 phase motor and my expectations are 30-40kw.

Down the road...
I have a motenergy 80kw axial flux motor. It's 6 phase...that pretty much means 400 phase amps at 131 volts.

Have you ever powered a six phase motor with two vescs? It should work but I've never tried it myself and have not seen it done anywhere online. I've been meaning to rewind a small outrunner to six phase to play around.

NO I haven't, but it won't be a problem. Neither controller "sees" the other 3 phases on the other controller. AS far as any one controller is concerned, it is "seeing" the entire motor.

A 12 tooth stator is pretty easy to wind for 6 phases. Give it a shot!
 
The benefit of winding it like that is lower phase current per driver only?
Naively I would think that a six pole motor can be hooked up to a three phase driver by hooking up the phases in parallel. Is that so?
Sorry for those questions, I just wondered if I understood that right?
 
galp said:
It's what I calculated but never measured. I hope you notice the big DRAFT written all over pages. It should be somewhere close with the size of heatsink I currently have installed. :mrgreen:

I haven't fully decided yet but I'm 80% sure I'll make this project opensource with design files, gerbers and detailed assembly instructions. I'm also planning to make some minor changes to the current design and call it final. It was never in my interest to make money with this design although it would be nice to get some development cost back.

I'll hope it will be final soon :D
Grtz Nils

ElectricGod said:
Looking at the VESC tool, there's options in there for setting up multiple profiles...essentially identical to having a 3 speed switch. Most smart controllers use a physical 3 speed switch and you program the controller with specific settings for each switch position. This is convenient since you don't need a phone to change modes and you can do it while riding with the flip of a 3 position switch. However, that's an inconvenience that is pretty small. 99% of the time, I'm the rider on my EV's so I set them for maximum performance. It's the rare time I let somebody else ride and that's when I flip to low or medium on the switch.

I would never want a hard wire switch because of legal regulations in my country. The only time I ride full power is when I'll take the bike into the woods. But when I use the bike to travel to work I will limit it's power and speed so I don't have to constantly look over my shoulder for law enforcement. If they see me going over 45 km/h (25 mph) they fill fine me for about € 500,- ($600) for driving without a motorcycle license and driving without insurance. And they probably would confiscate the bike too. It would be much more convenient to lie about the power of the bike when I don't have a hardware switch for more power.

I'm using a vesc for my e-skateboard now, and it's just really the best software if you want freedom programming your controller. The ability to log everything with your phone, or even your smartwatch is a nice to have bonus.
 
Back
Top