

The B-G431B-ESC1 is an advanced electronic speed controller (ESC) developed by STM32. It is specifically designed for controlling brushless motors with high precision and efficiency. This ESC leverages advanced control algorithms and the STM32G4 microcontroller to deliver smooth motor operation, making it ideal for applications requiring precise motor management, such as drones, robotics, and industrial automation.








| Parameter | Value |
|---|---|
| Microcontroller | STM32G431CBU6 (32-bit Arm® Cortex®-M4 with FPU and DSP instructions) |
| Input Voltage Range | 3S to 6S LiPo (9V to 25.2V) |
| Maximum Current | 40A continuous, 80A peak |
| PWM Frequency | Up to 96 kHz |
| Communication Interfaces | UART, CAN, PWM |
| Motor Type Supported | Brushless DC (BLDC) and Permanent Magnet Synchronous Motors (PMSM) |
| Dimensions | 50 mm x 50 mm |
| Weight | 32 grams |
| Operating Temperature | -40°C to +85°C |
| Pin Name | Pin Type | Description |
|---|---|---|
| VIN | Power Input | Main power input for the ESC (connect to battery positive terminal). |
| GND | Power Ground | Ground connection (connect to battery negative terminal). |
| MOTOR_A | Motor Output | Phase A connection to the brushless motor. |
| MOTOR_B | Motor Output | Phase B connection to the brushless motor. |
| MOTOR_C | Motor Output | Phase C connection to the brushless motor. |
| UART_TX | Communication | UART transmit pin for communication with external devices (e.g., flight controller). |
| UART_RX | Communication | UART receive pin for communication with external devices. |
| PWM_IN | Signal Input | PWM input for motor speed control. |
| CAN_H | Communication | CAN bus high line for communication. |
| CAN_L | Communication | CAN bus low line for communication. |
| 3.3V_OUT | Power Output | 3.3V output for powering external devices (e.g., sensors). |
Power Connection:
Motor Connection:
Control Signal:
Optional Communication:
External Power:
Below is an example of controlling the ESC using a PWM signal from an Arduino UNO:
// Include necessary libraries
#include <Servo.h> // Library to generate PWM signals
Servo esc; // Create a Servo object to control the ESC
void setup() {
esc.attach(9); // Attach ESC signal wire to pin 9 on Arduino
esc.writeMicroseconds(1000); // Send minimum throttle signal (1000 µs)
delay(2000); // Wait for ESC to initialize
}
void loop() {
esc.writeMicroseconds(1500); // Send mid-throttle signal (1500 µs)
delay(5000); // Run motor at mid-speed for 5 seconds
esc.writeMicroseconds(2000); // Send maximum throttle signal (2000 µs)
delay(5000); // Run motor at full speed for 5 seconds
esc.writeMicroseconds(1000); // Send minimum throttle signal (1000 µs)
delay(5000); // Stop motor for 5 seconds
}
Motor Does Not Spin:
ESC Overheats:
Motor Spins in the Wrong Direction:
No Communication via UART:
Q: Can I use the B-G431B-ESC1 with a brushed motor?
A: No, this ESC is designed specifically for brushless motors.
Q: What is the default PWM frequency?
A: The default PWM frequency is 48 kHz, but it can be configured up to 96 kHz.
Q: Can I use this ESC with a 2S LiPo battery?
A: No, the minimum input voltage is 9V, which corresponds to a 3S LiPo battery.
Q: How do I update the firmware?
A: Firmware updates can be performed via the UART interface using STM32 tools.
This concludes the documentation for the B-G431B-ESC1 Front Side. For further assistance, refer to the official STM32 user manual or contact technical support.