1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules




Arduino code for use with various hardware and SimTools

There are an array of Arduino firmware that are compatible with Simtools
Make your choice!

@RufusDufus :

Soft start SMC3 version by @BlazinH: https://www.xsimulator.net/community/threads/smc3-arduino-3dof-motor-driver-with-softstart.9479/

Modified SMC3 for G-Seat by @BlazinH: https://www.xsimulator.net/community/threads/blame73s-2dof-seat-mover.6029/page-26#post-241720

Modified SMC3 version for use with Sabertooth Packet Serial for 2 motors by @BlazinH: https://www.xsimulator.net/communit...ket-serial-pid-motor-driver-for-arduino.9277/

Modified SMC3 code for Cytron controllers by @Blame73: https://www.xsimulator.net/community/threads/blame73s-2dof-seat-mover.6029/page-22#post-198335

@skitz's SMC3 work in progress for Adafruit V2 shield and clones: https://www.xsimulator.net/community/threads/skizs-3dof-90v-dc-build.9899/#post-137382
But made specifically for this custom shield http://github.com/skiz/mcu
It now works correctly with SMC3Utils, but still isn't 100% complete or tested (save/restore, instructions/second, etc) but it's less than 1/6th the size of the original SMC3: https://github.com/SimulatorMotorController/SMC3/tree/clean

SMC3 soft start and shutdown compatible with the DOFReality Tool by @Klaus Schmidinger: https://www.xsimulator.net/communit...op-and-support-for-dofreality-h6-and-p.17630/

SMC3 Tuning: https://github.com/SimulatorMotorController/SMC3Utils

@SeatTime's SMC3 settings:


@eaorobbie :
RC Model Code for Arduino UNO - 2DOF - Expandable

@RacingMat :

@vthinsel :
New XPID software for Arduino UNO/Mega and Sabertooth (with LCD !!)
@Prilad :

@dontcarefilmer & @eaorobbie
Arduino code with comms module

In the Resources section

@Wanegain :
Arduino code V1.6

Baud rate Arduino and Sabertooth

220V Servo Motor Code

Arduino codes for Sabertooth 2x25, 2x32 etc.

Regardless of which code you select for your Sabertooth see @BlazinH's advice regarding the use of batteries to deal with regenerative current: https://www.xsimulator.net/communit...oller-recommendation.13191/page-2#post-180107

You can download a modified version of @RufusDufus SMC3 code by @BlazinH for use with Sabertooth Packet Serial: https://www.xsimulator.net/communit...ket-serial-pid-motor-driver-for-arduino.9277/

You can download @Wanegain's Arduino code for 2 DOF for Sabertooth using Simplified Serial, and config file, here: http://www.xsimulator.net/community...bertooth-using-simplified-serial-working.136/

You find an other code - an optimization of @Wanegain (written by @vthinsel) +LCD display to monitor/debug the runtime environment, including support for Arduino MEGA - here: http://www.xsimulator.net/community/threads/new-xpid-software-for-arduino-uno-mega-and-sabertooth-with-lcd.6747/

There is one more SMC3 code of @RufusDufus, using simplified serial: http://www.xsimulator.net/community/threads/smc3-sabretooth-test-version.6236/

This summary is provided by @Pit: http://www.xsimulator.net/community...e-and-powerful-motor-driver.8606/#post-107527

The SMC3 code written by @RufusDufus for Arduino Uno and Sabertooth 2x32 which is easy to install (much less wiring in comparison with MotoMonster) and not too expensive for the power you will get. You need only one sketch and no additional libraries. The SMC3 utility allows you to set all needed parameters. Perfect for beginners and advanced users!


There is one more code written by @vthinsel which is more complex but powerful and supports LCDs or 2.8 TFTs and the Arduino Mega.


Great for advanced users best to use with MEGA! High performance sketch (loops under 1ms!), all parameters set by using the LCD or TFT display on the fly (no windows utility available). The LCD let you control all values in real time.

Cost: One Sabertooth offers a continuous current of 32A. Current peaks up to 64 A for a few seconds will be handled without problems. The hard current limit is above approximately 70 amps which protects the Sabertooth from a shorted motor.

To get the same power you will need up to 8 MotoMonsters at least. There are more advantages of the SaberTooth: the Describe Software which allows you to play with many options and parameters. If you run into any hardware issues: any requests or questions will be answered in a very short time by the official support. 1 year manufacturer's warranty. If any product fails within one year of the purchase date they will replace the product at no charge. After 1 year they will either repair the item or the item can be replaced for 50% of the retail cost.


Build a model to test your design ideas

How to drive RC servo with Arduino and Simtools

With Arduino, a single PWM pin is enough to drive one servo.

Follow @eaorobbie tutorial
RC Model for Motion Simulation

You can find resources by @eaorobbie to download here:
RC Model Code for Arduino UNO - 2DOF - Expandable 2.0

Here a debugging step-by-step sequence from @eaorobbie :

Dedicated Shields
Driving 16 and more servos with arduino is no problem: 16-channel-pwm-servo-driver from Adafruit

Noisy motors while not moving?

Two parameters in SMC3 that are most likely to cause noise in the motor windings (buzzing or humming type noise) are the Kd and PWMmin values. This type of noise is most noticeable when the motors are holding position and not moving. If the noise you are getting is mostly when moving (unless slow smooth movement) it is probably not from the PID.

You will find all the related information and solution here: