I’d like to use a SimpleFOC to interface with an Arduino and control the speed of a small motor (30W, 24VDC). The BLDC motor only has 3 phase wires, so there’s no encoder feedback. I read that even without encoders, I can still utilize vector control via back EMF if I’m just running in speed mode. Is that true?
Looking for how to buy a SimpleFOC board, I see some modules on Amazon and ebay, but not sure how they’re different. For example:
SimpleFOC Shield V2.0.4 that seems to have more board components (surface mount modules)
SimpleFOC Shield V3.2 that seem to have fewer board components
I’m not sure what the difference between the two versions is, and why the v3.2 has such naked looking boards compared v2.0.4. Does it make a difference which version I buy for my application? I read that certain versions of the hardware doesn’t have the current sensing hardware components - I’m unsure if both of the versions above have the current sensors built-in.
A fine illustration of why we call them integrated circuits Both boards are functionally very similar, but V3’s driver has all that functionality on one chip instead of several. Either will work fine.
Most hobby ESC’s do use back EMF for sensorless velocity control, but most SimpleFOC boards don’t have the necessary resistor networks for it, and nobody has written code for it yet anyway. But thanks to @Candas1 porting some code from MESC, we do have sensorless velocity control using current sensors to keep track of the rotor position. Both of those SimpleFOC shields have current sensors (the two chips closest to the motor wires - the third phase current can be calculated from the other two because all 3 always add up to 0), so you will be able to use it. It’s in the drivers repository dev branch: https://github.com/simplefoc/Arduino-FOC-drivers/tree/dev/src/encoders/MXLEMMING_observer
It works well, but is tedious to tune the parameters for it. The motor kv and resistance can generally be set from official specs, but inductance is rarely listed and usually too small to measure, so all you can do is hunt for it while the motor makes awful squealing noises.
Thanks. Regarding the tuning parameters for FOC operation, is this tuning process unique to SimpleFOC hardware or is it common to how all FOC works? I’ve also considered boards like the Odrive that have onboard micro that performs the FOC - and I’m wondering if I’d run into the same tuning challenges there?
I’m not sure. ODrive does do automatic motor characterization, so it may work straight away. And now that I think about it, there was something similar added to SimpleFOC recently:
I haven’t used it before, but I’ll give it a try once I finish swapping drivers around on my machine spindles (hopefully later today).
UPDATE: Unfortunately that characteriseMotor function doesn’t appear to be usable without a sensor, due to the calls to electricalAngle. We’ll have to go fishing in the ODrive source to see how they do it. VESC may have something too.