Beginner's question(s) on the BGC 3.1 controller

Hi everyone, I hope you’re doing well

I’m kinda new to the bldc motor/controller world and I’ve come across a simplefoc ytb video controlling the position of a bldc motor with a gimball controller. I would like to do the same with this controller.

Firstly the documentation says that this board is compatible with the simplefoc library but I don’t quite understand how to speak with it, is it considered as an arduino ? I would just plug the usb cable, send the code through the arduino IDE and use serial communication to control it ? Secondly , how to know the pins used by the board, because the BLDCDriver3PMW class requires the 3 motor pins, are they always 9,10,11 ?

Thank you for your answers, have a nice day

Hello @Julien

Welcome to the board.

Could you lease post a link to the actual documentation? What you posted is just an aliexpress sales link.


Hello @Valentine ,

Here is the doc: BLDC drivers | Arduino-FOC,

3rd row of the second table.


Hi, and welcome @Julien ,

This is one of the many Storm32 BGC clones… it is not an “Arduino”, but its STM32 MCU is “Arduino compatible” in the sense that there exists a (well tested much used) Arduino framework binding for this MCU, and so you can program it with Arduino IDE.

Normally these boards come unfleshed or flashed with an old version of the Storm32 firmware. So to use it with SimpleFOC, first you have to flash a normal firmware using the SWD connections and a ST-Link. Alternatively you can use the serial connections and a serialTTL2USB dongle, manually putting the board into boot mode.
After this you can probably use USB to flash it.

The board has I2C routed out, but if you want to use SPI you will have to do some soldering.

In the end you have to verify the pinout using a multi-meter… here’s a pinout diagram of a similar board to get you started:

The pinout for SPI is generally something like this:

Hi @runger,
Thank you for your explanations,

Where can I find the firmware ? I think I’ll use the USB dongle since the board does not have easy access SWD pins.

For the communication, I told you about serial because , from the video I saw, I thought the computer communicated with the board through the arduino serial window by the usb port.

Thank you for the time you take to answer me
Have a nice day,

Download the STM32CubeProgrammer, a free utility from ST-Micro…

I think you can use this Bootloader: GitHub - Serasidis/STM32_HID_Bootloader: Driverless USB HID bootloader and flashing tool for STM32F10X devices
Or one from ST-Micro. Don’t use the old Maple Bootloader.

There’s a video here describing in good detail how to flash a new Bootloader. It’s for BluePill boards, but the concepts apply directly to the storm32 as well.

Edit: I just checked my notes on flashing the Storm32 - one of the boards I was trying to flash didn’t work until I discovered Read Protection was set. This prevents flashing. I switched it off (in the OB tab in CubeProgrammer) and it flashed the new Bootloader right away.

Did you have any luck with this board? I have a similar one arriving soon.

Just recieved my “BGC 3.1” that looks like the one in the original link. The chip is an Atmel mega328. I’ll post back once i try to play with it.

Hello Nate,
Sorry for the late response, unfortunately I abandonned the idea of using this board, my knowledge in this field is quite limited and from my previous exchange, using this board seemed to be over my capabilities due to the “flashing firmware” part. Please keep me updated if you have any luck !
Have a nice day