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

Tutorial SMC3 Arduino 3DOF Motor Driver and Windows Utilities

Discussion in 'SimTools compatible interfaces' started by RufusDufus, Dec 1, 2013.

  1. tombo

    tombo Active Member

    Joined:
    Oct 5, 2013
    Messages:
    283
    Location:
    Germany
    Balance:
    1,969Coins
    Ratings:
    +249 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino
    Hello,

    it's a long time ago I build my simulator with this Interface.
    Its now time to give him a second life, as for me it is collecting dust. I will gift this to a friend.

    In the past I build a controller Box with 2 Monster Moto shields, one per motor. As i had little knowledge, and acces to tools, my controller box is quite ugly. I know managed to short one Monster moto while trying to remember which cable goes where ^^

    I was lucky and found a spare Moto Monster shield which i had ordered years ago. I am using the popular 90 ZYT Motors with MCP4 gearbox.

    Before it was a platform Simulator, which is now converted to a seatmover. Did any of you have any experience if one Monster Motoshield will be enough for both motors, or should I stick with one shield per Motor.

    If I understand it correctly, each channel of the Shield can supply 30A to the Motor peak. The motor is ratet at 23 Amps per label, so in theory one shield should be enough.

    I also have the pololu equivalent laying around, which maybe a better option than the cloned aliexpress monster moto.
  2. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    22,011
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    Tasmania, Australia
    Balance:
    153,661Coins
    Ratings:
    +11,148 / 57 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Clone MMs have long fallen out of favor with members.

    Member experience has led to the advice that even brand new clone MMs requires testing: https://xsimulator.net/community/faq/monster-moto-testing-before-use.158/

    I would suggest 1 MM per motor if they pass testing. The JRKs may be a better option. There are also other possibilities, for example: https://xsimulator.net/community/faq/reasonably-priced-100a-motor-controllers.412/
  3. tombo

    tombo Active Member

    Joined:
    Oct 5, 2013
    Messages:
    283
    Location:
    Germany
    Balance:
    1,969Coins
    Ratings:
    +249 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino
    Hello,

    I am aware of the issues with faulty clones, and tested this one years ago so it should be fine. Since the actual failure occured because of my wireing fail, I will replace the one defectrive driver. They worked flawless in the past when the sim was in use.

    If they will fail I will upgrade to another driver. Thanks for pointing me to the 100A driver. This should be a proper replacement for the future.
    • Like Like x 1
  4. tombo

    tombo Active Member

    Joined:
    Oct 5, 2013
    Messages:
    283
    Location:
    Germany
    Balance:
    1,969Coins
    Ratings:
    +249 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino
    While searching a little bit, i found this drivers: [​IMG]

    From the specs it looks got for me to drive both of my motors. Has anyone any experience with these drivers? They are a little bit easyer to source than the 100 A ones. It says 60A per channel.
    Last edited: Jan 13, 2026
  5. Mirko

    Mirko New Member

    Joined:
    Saturday
    Messages:
    3
    Balance:
    29Coins
    Ratings:
    +1 / 0 / -0
    My Motion Simulator:
    2DOF, DC motor
    This is an amazing idea for a father and son project. I wonder, if there is a chance to get the source code of SMC3 and SMC3Utils. Does anybody know, where to get it from?
    • Like Like x 1
  6. tombo

    tombo Active Member

    Joined:
    Oct 5, 2013
    Messages:
    283
    Location:
    Germany
    Balance:
    1,969Coins
    Ratings:
    +249 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino
    you can get it on the first post of this thread :) at least the smc3 source code for the arduino. The Utils is only avalible as an executable as far as i know
  7. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    22,011
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    Tasmania, Australia
    Balance:
    153,661Coins
    Ratings:
    +11,148 / 57 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    If I recollect correctly @RufusDufus confirmed the loss of the SMC3 utility source code many many years ago, as the result of a corrupted drive.

    Only the Arduino SMC3 Ino files remain, but those are the important bit and have been modified by many others over the years for different hardware.
  8. Mirko

    Mirko New Member

    Joined:
    Saturday
    Messages:
    3
    Balance:
    29Coins
    Ratings:
    +1 / 0 / -0
    My Motion Simulator:
    2DOF, DC motor
    That is really a pity
    Ad we haven’t checked the Arduino code yet, we will dig into it.
    I am just wondering, if all the information provided by SimTools will arrive at the Arduino as well - like shown in the attached image.

    Attached Files:

  9. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    22,011
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    Tasmania, Australia
    Balance:
    153,661Coins
    Ratings:
    +11,148 / 57 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    SMC3 is for configuring and tuning the hardware range/response, a SimTools plugin is totally separate from that, in that it allows available game telemetry and tuning of that within the hardware parameters/capabilities, be those set by SMC3 or others.

    Spend some time perusing the FAQs to get a bit of an overview: https://www.xsimulator.net/community/faq/
  10. Nailson Roveta

    Nailson Roveta Nailson

    Joined:
    Jun 3, 2025
    Messages:
    16
    Occupation:
    Retiree
    Location:
    Serra, Espírito Santo, Brazil
    Balance:
    51Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino

    Hello. Taking advantage of the subject, I'm trying to modify the SMC3 to be able to read my AS5600s via I2C and I've come across the following situation. It seems to me that the SMC3 is not prepared for the IBT_2 drivers. I always thought that the IBT_2 drivers needed two PWM signals. One for RPWM (pin 1) and another for LPWM (pin 2). It turns out that in the SMC3 layout, RPWM is connected to pin 9 of the Arduino, which is PWM - perfect, but LPWM is connected to D2 of the Arduino Uno and this pin is not PWM. Had anyone noticed this before? Would this improve the quality of the movement in our simulators?

    I apologize if my perception is wrong. Best regards
  11. tombo

    tombo Active Member

    Joined:
    Oct 5, 2013
    Messages:
    283
    Location:
    Germany
    Balance:
    1,969Coins
    Ratings:
    +249 / 2 / -0
    My Motion Simulator:
    DC motor, Arduino
    Hello, interesting.

    May I ask why you want to include the reading over I2c? I just installed some AS5600 today as a replacement for halleffect pots in the normal Analoge mode and they working fine. You need some thinking for mounting to set the zero position, but this was easy done with a rotatable 3d printed holder.
  12. Nailson Roveta

    Nailson Roveta Nailson

    Joined:
    Jun 3, 2025
    Messages:
    16
    Occupation:
    Retiree
    Location:
    Serra, Espírito Santo, Brazil
    Balance:
    51Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    Hey, thanks for replying. My simulator already uses the AS5600 in analog mode (I also used a rotating support made in 3D). The intention of using I2C is to eliminate noise from interference, since analog signals are more susceptible to this problem. Besides, it provides greater accuracy in the information. Actually, I wanted to validate this theory. My question is more about how the SMC3 manages to do PWM on pin 2? My impression is that PWM only exists in one direction of motor rotation; in the other, it's either 0 or 1.
  13. Nailson Roveta

    Nailson Roveta Nailson

    Joined:
    Jun 3, 2025
    Messages:
    16
    Occupation:
    Retiree
    Location:
    Serra, Espírito Santo, Brazil
    Balance:
    51Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    This is the proposal:
    Using the AS5600 via the I2C interface offers significant advantages compared to analog output, mainly in terms of accuracy, resolution, and ease of integration into digital projects. While analog output converts position into a voltage (0 to 3.3V/5V), I2C provides direct 12-bit digital data.
    Here are the main advantages of using I2C over analog on the AS5600:
    Higher Resolution and Accuracy:
    I2C: Offers 12-bit resolution (4,096 distinct positions per rotation), resulting in 0.087° steps.
    Analog: Although the chip has 12 bits internally, the analog output depends on the accuracy of the Analog-to-Digital Converter (ADC) of your microcontroller (e.g., Arduino Uno only has 10 bits), which generates losses.
    Noise and Distance Immunity: Analog output is susceptible to electromagnetic interference and noise, especially over long cables.
    I2C is a digital protocol, which makes angle readings much more consistent and immune to noise, allowing for more robust communication.
    More Information Available (Diagnostics): I2C allows reading internal registers that indicate the magnet's intensity (magnet status), which helps to verify if the magnet is too close, too far, or correctly positioned (0.5 to 3 mm). The analog output does not offer this diagnostic facility.
    Programmability and Configuration: Through I2C, it is possible to configure non-volatile sensor parameters, such as setting the zero angle, the direction of rotation (clockwise/counterclockwise), and the maximum/minimum output range, without needing a dedicated programmer.
    Ease of Use on the Bus (Multiple Sensors): You can connect multiple AS5600 sensors on the same I2C bus, using few microcontroller pins (only SDA and SCL), while the analog output requires a dedicated ADC pin for each sensor.
    Summary: I2C is ideal for applications requiring high precision and monitoring, while analog mode is limited by signal conversion and sometimes by a "dead band" at the output.