New hardware: FOCn - medium power driver module with Wi-Fi and BLE

I found there to be a very lacking selection of “off the shelf” SimpleFOC compatible driver modules that I could use for my projects. I was looking for something that could drive somewhat bigger motors, has phase current sensing for torque control, some kind of connectivity and a compact form factor that is still easy to use (no soldering).

So I developed my own! It’s called FOCn and you can get it on Tindie store. It is of course open source as well.

Why FOCn? It means a face slap in Slovenian :upside_down_face:

Features:

  • Fully compatible with SimpleFOC - obviously
  • High input voltage, up to 45V (up to 10s lithium battery)
  • Up to 10A motor current without extra cooling
  • Low-side current sensing
  • Supports hall sensors and encoders
  • Based on ESP32-S3 dual core MCU
  • USB-C and Wi-Fi / BLE connectivity
  • High power PWM output for solenoids, latches, magnetic brakes
  • Low idle current consumption for battery operation
  • Pluggable terminal block for easy and robust connections

More info, design files and example code on GitHub: GitHub - mrmp17/FOCn: ESP32-S3 based SimpleFOC compatible BLDC driver module
Buy on Tindie: https://www.tindie.com/products/plab/focn-bldc-driver-module/

9 Likes

A design based on the DRV8323! Very interesting to see. I’ve been thinking about doing a design with it but my FOC plans have been put on hold for some time. Now that you posted this project I can use to cross reference solutions I really want to start it back up. Isn’t going with the ESP32S3 somewhat risky because of the ADC issues or have they been resolved? Did you test it with other motors than the ones you use in your gate?

Anyway, thanks for posting this here and making it FOSS, I’ll be looking forward to any updates you post!

DRV8323 is very nice indeed! I found that the current sense for torque control works pretty well on S3. All my analog channels are on ADC1 which helps, but I do have to call an analogRead() once at the start on those channels for it to not crash while initializing FOC. Once I do this, it works well, though.

I did a lot of testing with an industrial geared 1pp BLDC with halls / encoder and some open loop testing on some smaller outrunner motors. The only issue I can see for much smaller motors is the current sensing resolution at low currents. The shunt amplifier gain can be doubled by a solderjumper in that case, which should help a lot.

1 Like