6DOF motion platform using ODrive


Hi Zennix,

Today I studied the Odrive-commands that are given in the Odrive documentation and I made a summary In order to get a better understanding for building of the commands:
please have a look (still in progress…):

But I found that a lot of commands and settings shown in the firmware are not explained or shown in the Odrive documentation. So its difficult for me to optimise the firmware for my system without having a detailed understanding of the commands !
what to do!!!

I changed some settings in your firmware, but I am not able to get the Odrive running with the firmware. Now there is an error shown, that I can´t find in the troubleshooting. It is error = 0x0040
please have a look:

Kind regards
Peter W.


Hi Peter, nice job with the spreadsheet, for us with little experience in this stuff, maybe it will make using and experimenting a bit clearer.

“I’m having a stab here” do you think it could be related to an encoder error?


Confirm that your encoder is plugged into the right pins on the odrive board.

However, You’ve probably checked that already.

Regards Jerry.


Hi Peter,
I gave you the latest build of the endstop firmware. I have a version running from september last year.
You can try this. But I have made some settings inside the firmware, so I didn’t have to make it after every flash progress.
The changes are as follow:

axis config:
startup_motor_calibration = true; //<! run motor calibration at startup, skip otherwise
startup_encoder_index_search = true; //<! run encoder index search after startup, skip otherwise
// this only has an effect if encoder.config.use_index is also true
startup_encoder_offset_calibration = true; //<! run encoder offset calibration after startup, skip otherwise
startup_closed_loop_control = false; //<! enable closed loop control after calibration/startup
startup_sensorless_control = false; //<! enable sensorless control after calibration/startup
startup_homing = false; //<! enable homing after calibration/startup
enable_step_dir = false; //<! enable step/dir input after calibration

encoder config
use_index = true;

motor config
current_lim = 30.0f; //[A]

controller config
vel_limit = 50000.0f; // [counts/s]
homing_speed = 4000.0f; // [counts/s]

As we have the same config, so you can use it as it is. Maybe the current and the vel_limit is to high for testing. With your encoder you can use index search as well.
Normally your settings are kept after a flash but you should know that the default settings has changed.

Thanks for your spreadsheet.
You should add the vel_limit. It limits the rotation speed of your motor.
And save_config.

Greetings / Zennix


Hi Jerry,
nice to see you here in the thread and thank you for your hint.

Because I didnt change the connection between the encoder and the Odrive and it was running before, the source for the error had to come from anything other .
Peter W.


Hi Zennix!
Thanks again for your great support!!
Today I flashed the new firmware you gave me today. I changed the configurations acording to your proposal, but nothing worked…
But I allways set my counts per revolution “cpr” to 800 and the encorder.switches to 200 PPR (I thought it is ok) and now I changed it to 8192 (odrv0.axis1.encoder.config.cpr = 8192).

And…Bang!! :bomb::boom:…now everything is working (nearly) perfect!
Maybe this was the issue.
My Odrive now follows the pos_setpoint command and if I want to turn the motor by hand he resists…really cool :sunglasses:

Regarding the spreadsheet: It is only a draft and I did´nt test all commands. My aim is to make an easy to use and common understandable spreadsheet with all the main commands. When it is finished I want to share the file with the community in order to help other newbie like me.

Peter W.


Hi Zennix!

Now I made the “interface settings” in the Sim Tools Game Engine:

And my Odrive is connected to COM 5:

I tried to sent commands from Sim Tools to the Ordive with help of the “Output Testing” - but the Motor doesn´t respond.

What I dont understand is:
Do I have to set the output type to

  • DOF Output,
  • (a) axis output, or
  • (b) axis output?
    I Tryed them all, but no response of the Motor (note: my Motor is connected to the M1 side of the Odrive)

You wrote about an issue with the ASCII protocol, but I dont really understand what you say and where to find the ascii_protocoll.cpp

Now at the end of the day……I honestly wonder if controlling my simulator with Odrive is not too difficult for me as a Software-beginner.
Every time I solve one problem, a new one emerges that I can not solve myself.
Please be honest … does that make sense?
I also have a bad conscience to have to ask you over and over again how it goes on.


Peter W.


Good morning Peter,

you are really close to the end of the tunnel. You wrote that you use M1, why do you drive M0 with game engine? :grin:
Try: p 1 32767<13>

If you want to see movements only for one axis, try LFS.
You can see, that sway is connected to Axis1a, so you have to write in the second line of game engine:
p 1 <Axis1a> <13>.

If you are not sure where your problem is, try this:

I clicked a little app together to get a better test. You need dot net 4.6.1 to run it.

To your ASCII issue. In the firmware I sent you, I removed the bug. To this, you cannot use parameter w and r in ODrive tool anymore, but as sim rig user you will not need it.

As I told you before, ODrive is not a out of the box product. You can go and buy a ready build sim rig for thousands and thousands of €. Or you can go the stoney way and do it by yourself. We are the first people who build a sim rig with ODrive. I found nobody doing this before. So its a development process with up and downs.
During my project, I often come to a point that I thought there is no solution for my problem. But after digging and help of the community, it goes further and further, sometimes in small steps but it moves. I wait 6 weeks for the endstop firmware, without any progress.
You are in the lucky situation that somebody (me :laughing:) allready has a running configuration. You can be sure, that your project will be supported to 100%.

Greetings / Zennix


Hi Zennix,

Thank you for your nice words and your help !!!
I changed the settings in Sim Tools and it worked at the first try.!!!
Now I’m confident again :smiley:

You asked:"…why do you drive M0…"? …… thats because I dont understand chinese :rofl:
…but every day I get a little closer to mount midoriyama :rofl:

I think time has come now shaping that crazy actuator out from the lump of metal

warm regards

Peter W.