Skip to content

Arduino Motor Controllers

Control motors and actuators with Arduino and Arduino-like boards. Supports UART and CANopen communication.

logo icon github dark blue

Build Your Motor Projects

Looking for a versatile way to control motors with Arduino?
SOLO Motor Controllers Arduino Library, supported by all SOLO Motor Controllers, is a simple-to-use, complete, and maintained library for managing motors and actuators using Arduino and Arduino-like products.

Hello World Tutorial

Building a motor controller project with Arduino, illustration

Guide

1. Easy Install

icon install white

SOLO Motor Controllers Arduino Library is fully Open Source and available on GitHub. Install it directly from the Arduino IDE Library Manager.

Github

Arduino IDE 2 Install Library

2.1. Setup

There are several ways to connect your system to your SOLO motor controller.
Alternatives:

  • USB port [need a USB data Cable]
  • UART pins (TX, RX, GND) [need a USB-to-UART adapter]
  • CAN pins (CH, CL, GND) [need a USB-to-CAN adapter]

Product Specifications

Solo Pico

SOLO Pico connection guide: USB, UART (TX, RX, GND) and CANopen (CH, CL, GND) pins

Solo Mini

SOLO Mini connection guide: USB, UART (TX, RX, GND) and CANopen (CH, CL, GND) pins

Solo Uno

SOLO Uno connection guide: USB, UART (TX, RX, GND) and CANopen (CH, CL, GND) pins

Solo Mega

SOLO Mega connection guide: USB, UART (TX, RX, GND) and CANopen (CH, CL, GND) pins

Important Note for Arduino Uno Users

NOTE 1

  • Whenever you want to program your ARDUINO UNO board through the ARDUINO IDE, you need to disconnect the UART_RX of ARDUINO UNO, by not doing this, you might get some errors in the ARDUINO IDE during uploading the code.
    ( In ARDUINO UNO, there is only 1 line of UART, which is shared between the UART to USB converter of the ARDUINO board itself, which is also used for flashing the ARDUINO UNO board as well. To know more, read this post on the ARDUINO website. )

NOTE 2

  • For Arduinos rated at +5V, to have a consistent start-up while Arduino is connected to SOLO, you need to make sure that the +5V output of SOLO is also connected to the +5V of Arduino.
    (Arduino might disturb SOLO during boot-up stages due to over-current drained from TX and RX lines.)
UART WIRING Example

solo uno UART wiring illustration

solo mini UART wiring illustration

CANopen WIRING Example

SOLO Uno CANopen wiring illustration

solo mini CANopen wiring illustration

2.2. Accessories

3. Code Example

UART

temperature.ino
#include "SOLOMotorControllersUart.h" 
SOLOMotorControllers *SOLO_Obj1; 

void setup() {
  Serial.begin(115200);
  SOLO_Obj1 = new SOLOMotorControllersUart(); 
}
  
void loop() {
  Serial.println((String) "Read from SOLO the temperature: " + SOLO_Obj1->GetBoardTemperature());
  delay(1000);
}

In the example Arduino is connected to the Motor Controller using the UART pins and GND.

CAN OPEN

temperature_canopen.ino
#include "SOLOMotorControllersCanopenMcp2515.h" 
SOLOMotorControllers *SOLO_Obj1; 

void setup() {
  Serial.begin(115200);
  SOLO_Obj1 = new SOLOMotorControllersCanopenMcp2515(); 
}
  
void loop() {
  Serial.println((String) "Read from SOLO the temperature: " + SOLO_Obj1->GetBoardTemperature());
  delay(1000);
}

In the example, ARDUINO is connected to the Motor Controller with a CANOpen Shield.

Here are some examples. You can also check the Repo/Examples, the Documentation or a complete Hello World Tutorial to better know our library.

You can also open library examples directly in the Arduino IDE

final arduino examples

CANopen Logo white

CANopen support

For demanding and industry-standard applications, the library supports the CANopen protocol, which can be used as a communication protocol, it’s as simple as the UART communication with extremely few differences, in short, the protocol is much stronger compared to UART, able to support high-intensity communication, under harsh conditions with superior error handling, and networking capabilities.

SOLO Motor Controllers Arduino Library is a single library that contains both UART and CANopen capabilities.
In order to use CANopen, you need a CAN shield (MCP2515).

Arduino Articles

article solo arduino library v5.5.0

SOLO Arduino Library v5.5.0: Now Supporting Arduino H7

Learn More

SOLO and Arduino code how-to article

Sensorless Speed Control of a Brushless Motor with ARDUINO and SOLO in Digital Mode using UART Communication

Learn More

article solo arduino library v5.5.0

How to control the Torque of your Brushless AC motor using SOLO and ARDUINO | ESC | FOC | Sensorless

Learn More

article solo arduino library v5.5.0

The Simplest way to Drive Brushless motor with ARDUINO using SOLO (Open-loop)

Learn More

SOLO and Arduino how-to article

SOLO Arduino Library – Hello World

Learn More

SOLO and Arduino code how-to article

Position control of a Brushless Motor with Arduino and SOLO [+ Arduino Code]

Learn More

SOLO and Arduino how-to article

How to control speed or torque of your Brushless Motor with Arduino using SOLO (closed-loop)

Learn More

SOLO and Arduino code how-to article

Speed and Torque Control of a Brushless Motor with Hall sensors using Arduino and SOLO [+ Arduino Code]

Learn More

Drive your next innovation today

Discover our High-Performance Motor Controllers, Test Benches, and Services trusted worldwide.