Modular, Multi-Platform, 300A ESC

There are 8mil trace for gate driver. Is it enought for 4amps peak current? How much parasitic inductance will such a thin trace create? Could it be a problem?
I used to use 15-25mil trace for gate driver and see no issue, just wonder how far it can go until reach the limit. 8mil trace will buy much more free space for sure.
Hi.

The trace is always referencing a very close gnd plane (sandwiched for most of its length in between gnd planes actually). This reduces its inductance by a lot, protects it against noise.
Also, the peak current, about 2 amps in our case as per gate resistance iirc, is felt for just a fraction of the time. Mean current is much much lower. -> heat is also no issue.
Overall the result mattes, and its switching well :)

Br,
 
1686887417628.png a small Res value between SHA1+,SHA+ and SHA3+. flow low side MOSFET current not equal. maybe pahse current sample not correct.
 
Hi.
I am not sure what you are saying.
The shunts are all near the source of each mosfet. Resistance between source and shunt should be very low!

The circles you have drawn highlight the wide trace between the sources, for current equalizing in case of mosfet rdson inconsistence.

If you are referring to a case where only one FET is mounted, then yes, current measurement becomes a bit imprecise, because one needs to also factor in the resistance of those wide traces for having an accurate value.

This is why i suggest mounting all FETs - to220 can be found quite cheap - probably this board would work better with 18 cheap to220 than 6 expensive ones :).

Br,
 
Last edited:
Hi.
I am not sure what you are saying.
The shunts are all near the source of each mosfet. Resistance between source and shunt should be very low!

The circles you have drawn highlight the wide trace between the sources, for current equalizing in case of mosfet rdson inconsistence.

If you are referring to a case where only one FET is mounted, then yes, current measurement becomes a bit imprecise, because one needs to also factor in the resistance of those wide traces for having an accurate value.

This is why i suggest mounting all FETs - to220 can be found quite cheap - probably this board would work better with 18 cheap to220 than 6 expensive ones :).

Br,
1686909437500.jpeg
 
Hi.
OK, understood. Those traces, R1 and R2, create problems only if you put only 1 FET instead of 3. Because Shunt resistance is not SHA1 || SHA2 || SHA3 as the software assumes by default, but (SHA1+ R1) || (SHA2) || (SHA3+R2) -> assuming middle Fet populated and the other 2 are not.

If you put all 3 Fets, then they actually reduce error, and help! In that case, the biggest error comes from FET Rdson imbalance. if R1 and R2 would not exist, the error would be as big as the FET RDSon imbalance. if R1 and R2 exist, they even out a bit this imbalance.

The only way this could be made better is if R1 and R2 are very very small, as in either thicker copper or solder a bus bar.
But this is already in the area of diminishing returns.

Br,
 
Hi.
OK, understood. Those traces, R1 and R2, create problems only if you put only 1 FET instead of 3. Because Shunt resistance is not SHA1 || SHA2 || SHA3 as the software assumes by default, but (SHA1+ R1) || (SHA2) || (SHA3+R2) -> assuming middle Fet populated and the other 2 are not.

If you put all 3 Fets, then they actually reduce error, and help! In that case, the biggest error comes from FET Rdson imbalance. if R1 and R2 would not exist, the error would be as big as the FET RDSon imbalance. if R1 and R2 exist, they even out a bit this imbalance.

The only way this could be made better is if R1 and R2 are very very small, as in either thicker copper or solder a bus bar.
But this is already in the area of diminishing returns.

Br,
R=ρl/s. R1≈R2≈SHUNT=0.5mR (thickness:2OZ).
sorry, my english very poor.
 
Hello Foc'ers,

First I would like to thank all the members of the MP2-ESC team who made it working.
In a few words, my need is a DIY VESC-based design without dealing with 0.5mm fine pitch components.
Weigh, size and cost are not the highest priority for me. Reliability/Robustness is.
After browsing here and there, it seems to me that MP2-ESC was very close to what I need.
I really like the idea of using different pills from the shelf and classic Mosfet drivers.
Here are some practicals applications waiting in my garage:

Grass trimmer (56V 30 Amps, 18000 rpm, no position sensor)
Grass mower (56V 40 Amps, 3000 rpm, no position sensor)
E-bike wheel hub motor (48V 35 Amps, 350 rpm, no position sensor)
E-bike central motor (36V 15 Amps, 1500 rpm, no position sensor)
Servo CNC axis (24V 10 Amps, 3000 rpm, encoder position feedback)


I purchased first a genuine Adafruit STM32F411 blackpill
I also purchased a genuine ST-Link V2 USB stick
My primary task is to compile successfully the MP2-ESC source code and then transfer the executable binary in the 32F411 pill.

I have installed STMCube IDE ver 1.12.0 on my Linux LMDE desktop.
I have also installed STM32CubeProgrammer ver 2.14.0
I followed the instructions listed in FIRMWARE_INTRO.md
So, the project repository was git'ed on my local disk.
I can see the complete tree structure in the STMCube Project Explorer
When doing Project -> Build All, I came with the following results:
4 errors and 142 warnings (!) for STM32F411 project
0 errors and 19 warnings (!) for STM32F401 project


I have downloaded VESC tool ver 6.02 and start to play a little with the menus, without any ESC attached, just to get familiar with ;)
So, I looked in the Firmware -> Hardware version folder and I did not found the MP2-ESC hardware.
So, noooow comes a few questions:

- What did I miss when compiling the F411 project and getting 4 compile errors ?
- Does anybody here has got the same number of errors / warnings when following the above instructions ?
- How to setup VESC tool 6.02 for MP2-ESC hardware ? (because current sense circuit and Mosfet drivers are different from VESC)

Thanks for your help
 

Attachments

  • 32F411_compile_errors.png
    32F411_compile_errors.png
    169.8 KB · Views: 12
  • VESC_MP2_missing.png
    VESC_MP2_missing.png
    144.9 KB · Views: 12
Hello Foc'ers,

First I would like to thank all the members of the MP2-ESC team who made it working.
In a few words, my need is a DIY VESC-based design without dealing with 0.5mm fine pitch components.
Weigh, size and cost are not the highest priority for me. Reliability/Robustness is.
After browsing here and there, it seems to me that MP2-ESC was very close to what I need.
I really like the idea of using different pills from the shelf and classic Mosfet drivers.
Here are some practicals applications waiting in my garage:

Grass trimmer (56V 30 Amps, 18000 rpm, no position sensor)
Grass mower (56V 40 Amps, 3000 rpm, no position sensor)
E-bike wheel hub motor (48V 35 Amps, 350 rpm, no position sensor)
E-bike central motor (36V 15 Amps, 1500 rpm, no position sensor)
Servo CNC axis (24V 10 Amps, 3000 rpm, encoder position feedback)


I purchased first a genuine Adafruit STM32F411 blackpill
I also purchased a genuine ST-Link V2 USB stick
My primary task is to compile successfully the MP2-ESC source code and then transfer the executable binary in the 32F411 pill.

I have installed STMCube IDE ver 1.12.0 on my Linux LMDE desktop.
I have also installed STM32CubeProgrammer ver 2.14.0
I followed the instructions listed in FIRMWARE_INTRO.md
So, the project repository was git'ed on my local disk.
I can see the complete tree structure in the STMCube Project Explorer
When doing Project -> Build All, I came with the following results:
4 errors and 142 warnings (!) for STM32F411 project
0 errors and 19 warnings (!) for STM32F401 project


I have downloaded VESC tool ver 6.02 and start to play a little with the menus, without any ESC attached, just to get familiar with ;)
So, I looked in the Firmware -> Hardware version folder and I did not found the MP2-ESC hardware.
So, noooow comes a few questions:

- What did I miss when compiling the F411 project and getting 4 compile errors ?
- Does anybody here has got the same number of errors / warnings when following the above instructions ?
- How to setup VESC tool 6.02 for MP2-ESC hardware ? (because current sense circuit and Mosfet drivers are different from VESC)

Thanks for your help
Hi there!

Few things... I just compiled the MESC code for F411 and F401 from the latest branch I have been working on - the FW_ADC_sampling branch, which is definitely the best option at the moment. It compiled without issue. Unsure what branch you are using (fairly sure master should also compile, I always check for correct compiling all projects before merging, though it's possible I made an error, but it is quite behind at this stage), so try getting the FW_ADC_sampling one.

Now... VESC and MESC are different projects. VESC is completely locked to stm32F405 (it can run on the F407 which is the same but with added unused ethernet) so you would need to buy one of the F405 pills. VESC will not and never will run on the F411. I have attached a version of MP2 firmware for VESC and F405 pill. It is for the V1 pill/mp2 and the 6.0 VESC firmware, but runs on the later MP2s, but the ADC assignment might be a bit odd. You can get the header files for compiling with any later VESC version on the MP2 github repo.

It has not been assimilated into VESC tool for automatic inclusion... yet. Generally Benjamin Vedder (of VedderESC) only assimilates stable commercial products, not DIY stuff. It may include the MP2 later. Generally we assume that people building these are also quite capable of compiling VESC (or we can make a latest greatest VESC build for them on request).
 

Attachments

  • MP2_100_no_limits.zip
    270.5 KB · Views: 23
Thanks MxLemming for your prompt answer.
Few things... I just compiled the MESC code for F411 and F401 from the latest branch I have been working on - the FW_ADC_sampling branch, which is definitely the best option at the moment. It compiled without issue. Unsure what branch you are using (fairly sure master should also compile, I always check for correct compiling all projects before merging, though it's possible I made an error, but it is quite behind at this stage), so try getting the FW_ADC_sampling one.
Do you have a link (GitHub ?) for accessing the FW_ADC_sampling_branch ?

Now... VESC and MESC are different projects.
I understand different firmware running on different CPUs . But can we use VESC tool as a common service tool ?

VESC will not and never will run on the F411. I have attached a version of MP2 firmware for VESC and F405 pill. It is for the V1 pill/mp2 and the 6.0 VESC firmware, but runs on the later MP2s, but the ADC assignment might be a bit odd.
OK, it is clear for me that I have to buy a STM32F405 pill...
Does it mean that I should be able to flash MP2_100_no_limits.bin on it and then get a connection with VESC tool 6 ?
 
Thanks MxLemming for your prompt answer.

Do you have a link (GitHub ?) for accessing the FW_ADC_sampling_branch ?


I understand different firmware running on different CPUs . But can we use VESC tool as a common service tool ?


OK, it is clear for me that I have to buy a STM32F405 pill...
Does it mean that I should be able to flash MP2_100_no_limits.bin on it and then get a connection with VESC tool 6 ?
My firmware does not have any connection to VESC. There's not a single line of VESC code in it, so it won't work.

And yes if you get an f405 pill and put that binary on it it will work with VESC tool.
 
Could we summarize the situation like this :):

IF
I want to build a MP2-ESC board as it is here AND I want to use VESC tool 6.0 as a fine tuning/servicing software for this ESC
THEN
Stop any investigation on the F411 CPU
Buy or make a F405-based pill
Compile MESC-F405 project
Flash it on the pill
Use VESC tool 6.0 with the MESC-F405 binary running on the pill
ENDIF

As a consequence, could we say that a MP2-ESC board using any other CPU than F405 will not be serviced using VESC tool ?
 
Last edited:
Could we summarize the situation like this :):

IF
I want to build a MP2-ESC board as it is here AND I want to use VESC tool 6.0 as a fine tuning/servicing software for this ESC
THEN
Stop any investigation on the F411 CPU
Buy or make a F405-based pill
Compile MESC-F405 project
Flash it on the pill
Use VESC tool 6.0 with the MESC-F405 binary running on the pill
ENDIF

As a consequence, could we say that a MP2-ESC board using any other CPU than F405 will not be serviced using VESC tool ?
No that's wrong.

If you want to use VESC tool then you need to get the f405 pill and compile VESC firmware, as in GitHub - vedderb/bldc: The VESC motor control firmware with the header files in the f405 pill repo or use the image I posted above.

If you want to use MESC firmware, MESC_Firmware/MESC_F405RG/Core/Inc/MP2_V0_1.h at master · davidmolony/MESC_Firmware ,you can use any of the aforementioned pill options but you cannot use VESC tool.
 
Last edited:
No that's wrong.

If you want to use VESC tool then you need to get the f405 pill and compile VESC firmware, as in GitHub - vedderb/bldc: The VESC motor control firmware with the header files in the f405 pill repo or use the image I posted above.

If you want to use MESC firmware, MESC_Firmware/MESC_F405RG/Core/Inc/MP2_V0_1.h at master · davidmolony/MESC_Firmware ,you can use any of the aforementioned pill options but you cannot use VESC tool.
Thanks mxlemming for this clarification.

I made some search about F405 pills and it seems to be not common. I only found this OLIMEX one. Not really usual pill pcb format.
Building a F405 Badgineer's pill could be also an option and the project is well documented. Just dealing with some fine pitch SMD's.
Finally, in case of using MESC firmware with a aforementioned pill how do you perform setup/tuning/servicing without software tool ?
The attached picture made me doubt because it seems that VESC tool is communicating with MESC firmware (and not VESC) running on a F405. Sorry for this questions but I am entering in the VESC world after some DIY projects around the Arduino world !
 

Attachments

  • MP2_and_vesc_tool.png
    MP2_and_vesc_tool.png
    174.5 KB · Views: 8
Last edited:
Thanks mxlemming for this clarification.

I made some search about F405 pills and it seems to be not common. I only found this OLIMEX one. Not really usual pill pcb format.
Building a F405 Badgineer's pill could be also an option and the project is well documented. Just dealing with some fine pitch SMD's.
Finally, in case of using MESC firmware with a aforementioned pill how do you perform setup/tuning/servicing without software tool ?
The attached picture made me doubt because it seems that VESC tool is communicating with MESC firmware (and not VESC) running on a F405. Sorry for this questions but I am entering in the VESC world after some DIY projects around the Arduino world !
MESC firmware is not VESC. It's like Windows and Linux. They are two completely different software things that can run on the same hardware.

To set up MESC on f405 you just plug in the usb and open a serial terminal. You then type in the R L lambda and current settings you want and input options using set var_name x.yy
We use MobaXterm because it does nice formatting.

I'm thinking i should rebrand my firmware to avoid the VESC confusion. Anything with ESC in it seems to have become synonymous with the VESC project.
 
Maybe you could go for Microtinaesc? Or Microtinesque for a punny version? ;)
Except it isn't really all that tiny any more... Well the firmware takes about 1/4 the MCU resources of VESC, but Hackey put it on his CL1000 controller a while ago and took it up to many tens of kW, Owhite's logged 12kW... No longer very tiny.
 
Yeah, well, I picked the name because Microtinae is the subfamily name for Lemmings, rather than for the other possible reference. :p

I tried to think of something better before posting that one but couldn't in the few minutes I spent on it. :(

Arvicolinae is another name used for them, but it just didn't sound electronic....

But if it takes only 1/4 the resources, that's still pretty tiny, even if people are using it for big things. ;)
 
Yeah, well, I picked the name because Microtinae is the subfamily name for Lemmings, rather than for the other possible reference. :p

I tried to think of something better before posting that one but couldn't in the few minutes I spent on it. :(

Arvicolinae is another name used for them, but it just didn't sound electronic....

But if it takes only 1/4 the resources, that's still pretty tiny, even if people are using it for big things. ;)
Ok you completely outclassed me on knowledge about lemmings. To me they are (were) creatures that blindly jump off cliffs. But I recently found out that they don't, apparently Disney just chased a bunch off a cliff to make a more exciting documentary or some such charming ethical endeavour.

Actually I used to confuse them with marmottes which are far nicer but mxmarmotte just doesn't really work and they definitely don't jump off cliffs

The firmware is increasingly having significant contribution from netzpfuscher and others so I'm looking to make it a bit less me centric. There's much less development activity than VESC, but what activity there is is strongly biased towards motor control investigation where VESC is generally moving towards being more feature based.
 
I also know another lemmy . Sorry for this out of topic :cool:
Comming back to the *ESC, I think will go first for DIY F405 pill similar to Badginner design...
 
yes, I have a couple versions on my bench at the moment.
cool did you order built from jlcpcb ? or hand build ?

looked for link to order from JLCPCB .. anyone point me to a how to ? Thanks
 
Last edited:
So I encourage you to order from jlcpcb --it's unlikely that you save money by ordering the constituent parts and doing it yourself.

We typically use jlcpcb to handle all the SMD parts and you solder the rest. What we've found is for many people this is a very hard project if you dont have a lot of experience with soldering. I wrote up a description on assembly [LINK] and badgineer's github site [LINK] has a complete list of the documentation that we have.

I'm going to prompt badgineer to respond to the best link to get the files to order at jlc.
 
I am more than capable of surface mount work but to beat a pick and place machine would be going some :)
But yes, I am aware of the depth needed to make this work, that's why I was hunting for a link to order the most unto date version...
:) I hope bad badegineer can point me in the right direction :)
 
Hi everybody.
:) I hope bad badegineer can point me in the right direction :)
bad badgineer just merged branch to main.
this means, basically v0.5 is out. but not tagging yet, maybe we find bugs...
this also means: kibot made a new set of JLCPCB files. thats the easiest way to order.
1694380446539.png

This is the 100V max voltage (20s) version. for 150v max you need some bom changes.

Also, at this point this version is not tested at all. The changes are mostly small though.


@everybody, please take a look, lets find the bugs the easy way :D

Thanks!
 
Back
Top