Skip to comments
This is the setup for my Tarot 6S 4108 KV:380 BLDC motor to be used like any other servo in ARC...
It is just MY PERSONAL setup and meant to get you started, please READ THE manual over at the official Odrive website!
https://docs.odriverobotics.com/
First you will need to install and configure your Odrive Software...
I am running Linux, please check the installation guide for Windows found at the official Odrive website if you are running Windows!
This will just be needed for the first time setup. After the setup you will use an Arduino connected to a Windows PC running ARC!
https://github.com/SwannSchilling/ODrive-for-ARC/blob/main/setup
You should see your BLDC motor moving, after being put to closed loop and receiving the odrv0.axis0.controller.pos_setpoint command...
Next you will have to upload this code to your Arduino Uno
https://github.com/SwannSchilling/ODrive-for-ARC/blob/main/ODriveArcArduinoTest.ino
In ARC just add a servo control to your project, and connect to the Arduino!
https://synthiam.com/Community/Tutorials/Connecting-Arduino-to-ARC-17526
The Arduino sketch will receive those servo positions and send them to the ODrive...
All non-power I/O is 3.3V output and 5V tolerant on input, on ODrive v3.3 and newer.
This tutorial is just meant to be a starting point, please mess around with my settings and share your experience, so we will get a better understanding on how this whole setup can be utilized!!

This is the setup for my Tarot 6S 4108 KV:380 BLDC motor to be used like any other servo in ARC...
It is just MY PERSONAL setup and meant to get you started, please READ THE manual over at the official Odrive website!
https://docs.odriverobotics.com/
First you will need to install and configure your Odrive Software...
I am running Linux, please check the installation guide for Windows found at the official Odrive website if you are running Windows!
This will just be needed for the first time setup. After the setup you will use an Arduino connected to a Windows PC running ARC!
https://github.com/SwannSchilling/ODrive-for-ARC/blob/main/setup
You should see your BLDC motor moving, after being put to closed loop and receiving the odrv0.axis0.controller.pos_setpoint command...
Next you will have to upload this code to your Arduino Uno
https://github.com/SwannSchilling/ODrive-for-ARC/blob/main/ODriveArcArduinoTest.ino
In ARC just add a servo control to your project, and connect to the Arduino!
https://synthiam.com/Community/Tutorials/Connecting-Arduino-to-ARC-17526
The Arduino sketch will receive those servo positions and send them to the ODrive...
All non-power I/O is 3.3V output and 5V tolerant on input, on ODrive v3.3 and newer.
This tutorial is just meant to be a starting point, please mess around with my settings and share your experience, so we will get a better understanding on how this whole setup can be utilized!!

By Mickey666Maus
— Last update
Other robots from Synthiam community

Crivellarodiego's How To Automate The Robot
Hello I state that I am using the product from very little, I would ask how I can create the project in ez builder for...

Mitzeljk's Meet Modi
This is Modi (Mobile, online, digital , interface) , my first attempt at ever building a robot. I am new to pretty much...

Ericez's New Synthiam Humanoid On Development
too long i not posted, and now i have idea to making a humanoid robot more freedom movement using 21 servo on the...
In the ino file, you are only sending the position received by ARC to the ODRIVE, and no positional feedback or speed to ARC am i right?
It allows you to use your BLDC motor just the way you would use any other servo in ARC!
But there is a lot more that can be done...check this code, to get started!
https://github.com/odriverobotics/ODrive/blob/devel/Arduino/ODriveArduino/examples/ODriveArduinoTest/ODriveArduinoTest.ino
So if you are still on v0.4.12 you can go ahead and use it, if you are updating, it will break your motor settings and the code!
But I took some time to revisit my settings and tuned the BLDCs again, so everything is working just fine, if there is anyone using the script and wanting to update, hit me up!
I also chopped together a quick script that lets you control your BLDCs with a PS4 controller in Python, to test a setup and put it to Github...
https://github.com/SwannSchilling/ODrive-for-ARC/blob/main/ODrive_PS4.py
The company Flipsky (which I've used for my hoverboard project) has created a clone of the ODrive. Its slightly cheaper at $92, so a little less than $50 a channel. Might order one to compare with the ODrive...
Flipsky ODrive clone
Is the same company ? They don't sell hoverboards maybe I'm missing something.
They are "experts" in cloning, the original vesc: https://vesc-project.com/Hardware
btw ODrive since 3.5 is not open hardware anymore, only the firmware is open source:
https://discourse.odriverobotics.com/t/3-5-odrive-schematic-release/1246
So the hardware is not an "official" ODrive 3.6 clone, maybe they studied and cloned the design, but, they shouldn't advertise the compatibility... maybe is nothing wrong.
What makes the difference is the firmware, community and support so unless they (Flipsky) spends the time and resources to build their firmware, I would pick the original product.
Does VESC supports position control with encoders ?
So you are testing FOC, position control and gear design what is after that ? What you plan to build or what you think can be useful for ?
Edit: Looks like it does! And always has.
From the developer:
Also what @ptp pointed out is a fairly valid point....
So far, the ODrive and the Moteus are the best options for BLDC control.
While the Moteus offers a nice an compact form factor for robotic joints, and is an all in one solution,
the ODrive is a more open solution which supports a wider range of hardware and applications!
My SimpleFOC Shields also arrived...lets see what they can bring to the table!
I am about to do an assembly video of the gearbox and will make all those files available, if you are interested in building one for yourself!
Here that assembly video one more time...I will upload all those files asap, if you guys want to give it a try!!!
This is very very good and also understandable video of PID control, if you are setting up your ODrive the
.controller.config.pos_gain = 20.0 [(turn/s) / turn]
.controller.config.vel_gain = 0.16 [Nm/(turn/s)]
.controller.config.vel_integrator_gain = 0.32 [Nm/((turn/s) * s)]
are the values that you would want to tweak, when setting up your motor...the above video explains what they mean, and how they are used.
Good you are having the MJBots dev kit, I will definetely also get one, to see the differences!
James B has so much stuff out there that I might have missed a few, but his and Skyentifics are really awesome channels...
This is the MJ Dev Kit.
https://www.prusaprinters.org/prints/53681-cycloidal-drive-3d-printed-gearbox-401
Did you ever make a video of the gearbox in action? I am curious what the vibrations are like at higher speeds.
Code:
Should be...
Code:
also, that code will only move one osdrive and no pwm servos. If you simply add an IF condition to make d0 the o drive, the rest could still be pwm servos.
@Perry_S this is a clip of the gearbox being controlled with ARC! I will make a torque, speed and precision test soon...
But since the firmware update of the Drive, the whole code would need to be updated anyways...
So I guess if there are a bunch of people being interested, we could think about doing so?
I think at the moment there are a few options for BLDC control being discussed here in the forum...
I think @DJSures would take a look in case there are a few requests?
These are the changes
https://docs.odriverobotics.com/migration
But you might want to go ahead and setup your motors once again so everything runs as smooth as possible...
I revisited my settings too and started from scratch!
Oh also I found that GUI now, that a nice thing to have...
Thanks for pointing it out to me, I guess they are not advertising it too much since it is still in beta!
https://discourse.odriverobotics.com/t/useful-cad-resources/257/14