Here’s my own foc controller design, it’s compatible with vedder’s VESC6, but only jerry bean component (no drv8301), making it much cheaper (<15$ each).
The design is based on CFOCer2, check it also! link here
Capable of 12s lipo / 50.4v
Continuous current more than 20A (tested), 30A with heatsink (maybe)
3 phase low-side current sensing
type-C usb connecter
Optimized for low cost
Possibility to buy the SMD parts pre-soldered: Everything except MOS and shunt are on one side, and no much special ics.
Separate power stage and control stage, easily replace broken MOS or driver.
The gate driver is time-tested FD6288 (or compatible EG2134), current sensing with standard 4ch universal opamp. (useful information:Link here)
For now I have only test it with VESC firmware, but I guess simple foc lib will work fine aswell.
More test result will release later.
While driver motor current is around 20A, with some air flow, the MOS temp is finally around 50 degree (right side). The results of the temperature gun test are consistent with the controller report
Ignore left side temperature display, for its temp sensing pin is floating (a mistake).
In sums it works fine, doing FOC with no trouble, the results of automatic measurement and manual measurement of motor parameters are very close. It’s fair to say that the hardware design worked as expected.
This is awesome. I didn’t realize VESC was compatible with other boards, I thought it was just for the one board you can buy from them. How complete is this though? Working in one narrow circumstance is one thing.
edit some line for the hardware:
line 24, change the name to distinguish it from the original version: #define HW_NAME "PingFOCer"
line 113&115. change the gain: #define CURRENT_AMP_GAIN 33
line 119, shunt resistor in ohm: #define CURRENT_SHUNT_RES 0.001
line 272 to 281, max current should be 3.3V/33/2/0.001ohm=50amp, so with some margin, it should be like :
#define MCCONF_L_CURRENT_MAX 35.0 // Current limit in Amperes (Upper)
#define MCCONF_L_CURRENT_MIN -35.0 // Current limit in Amperes (Lower)
#define MCCONF_L_MAX_ABS_CURRENT 45.0 // The maximum absolute current above which a fault is generated
And you are done! Just make it and flash it: make Cheap_FOCer_2_v09