

The Spark Max Engine Controller is a high-performance motor controller specifically designed for brushless DC (BLDC) motors. It features advanced control algorithms, built-in encoder support, and compatibility with multiple communication protocols, making it a versatile and powerful choice for robotics, industrial automation, and other motor control applications.








The Spark Max Engine Controller is engineered to deliver reliable and efficient performance. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Input Voltage Range | 5.5V to 24V |
| Continuous Current | 40A |
| Peak Current | 100A (for 2 seconds) |
| Motor Compatibility | Brushless DC (BLDC) motors |
| Communication Protocols | CAN, PWM, USB-C, Analog Input |
| Encoder Support | Quadrature, Hall Effect |
| Dimensions | 90mm x 45mm x 20mm |
| Weight | 100g |
The Spark Max Engine Controller features a variety of input and output pins for flexible integration. Below is the pinout description:
| Pin Name | Description |
|---|---|
| VIN+ | Positive input voltage (5.5V to 24V). |
| VIN- | Ground connection for input voltage. |
| M+ | Positive terminal for motor connection. |
| M- | Negative terminal for motor connection. |
| Pin Name | Description |
|---|---|
| CANH | CAN bus high signal for communication. |
| CANL | CAN bus low signal for communication. |
| PWM | PWM input for motor speed control. |
| USB-C | USB-C port for configuration and updates. |
| ENC_A | Encoder channel A input. |
| ENC_B | Encoder channel B input. |
| ENC_I | Encoder index signal input. |
| ANALOG | Analog input for speed control. |
The Spark Max Engine Controller is designed for ease of use while offering advanced features for experienced users. Follow the steps below to integrate it into your project:
The Spark Max Engine Controller can be controlled via PWM signals from an Arduino UNO. Below is an example code snippet to control motor speed:
// Include necessary libraries
#include <Servo.h> // Library to generate PWM signals
// Define the PWM pin connected to the Spark Max
const int pwmPin = 9;
// Create a Servo object to generate PWM
Servo motorController;
void setup() {
// Attach the PWM pin to the Servo object
motorController.attach(pwmPin);
// Set initial motor speed to 0 (stopped)
motorController.writeMicroseconds(1500);
// 1500 µs is typically the neutral signal for motor controllers
}
void loop() {
// Example: Gradually increase motor speed
for (int speed = 1500; speed <= 2000; speed += 10) {
motorController.writeMicroseconds(speed); // Send PWM signal
delay(100); // Wait for 100 ms
}
// Example: Gradually decrease motor speed
for (int speed = 2000; speed >= 1500; speed -= 10) {
motorController.writeMicroseconds(speed); // Send PWM signal
delay(100); // Wait for 100 ms
}
}
Motor Not Spinning
Overheating
Erratic Motor Behavior
No Communication via CAN
Q: Can the Spark Max be used with brushed DC motors?
A: No, the Spark Max is specifically designed for brushless DC motors.
Q: How do I update the firmware?
A: Connect the controller to a computer via the USB-C port and use the manufacturer's configuration software to update the firmware.
Q: What is the default PWM frequency for the Spark Max?
A: The Spark Max operates with a default PWM frequency of 1 kHz.
Q: Can I use the Spark Max with a Raspberry Pi?
A: Yes, the Spark Max can be controlled via PWM or CAN communication from a Raspberry Pi.
By following this documentation, you can effectively integrate and operate the Spark Max Engine Controller in your projects.