Asked

Connecting EZ-Robot To Stepper Motor

Hi, I am a complete novice. I am trying to connect my EZ-Robot to a stepper motor using a DM556 Stepper Motor Controller. I am not sure how to connect this controller to my EZ-Robot. Can someone please help me with this setup?


Related Hardware EZ-B v4
Related Control Stepper Servo

ARC Pro

Upgrade to ARC Pro

Experience the transformation – subscribe to Synthiam ARC Pro and watch your robot evolve into a marvel of innovation and intelligence.

PRO
Canada
#1  

Below are the steps and details to help you connect your EZ-B v4 to a stepper motor using the DM556 stepper motor controller via the Stepper servo skill:


Overview

Because stepper motors require precise timing (pulses for step and separate direction control), you won’t be wiring the DM556 directly to the EZ-B’s digital ports. Instead, you’ll use a low-cost Arduino that has been programmed with the Stepper servo firmware. This Arduino acts as an intermediary: it receives commands from ARC on a virtual servo port (for example V1) and then generates the necessary step/direction pulses for your DM556.


What You’ll Need

  1. EZ-B v4 with EZB Firmware
  2. An Arduino board (e.g., Pro Micro, Nano, or similar small board)
  3. Stepper servo Firmware for Arduino
    • Download the firmware from the Stepper servo documentation (see the Stepper servo (by Synthian Inc) support page on Synthiam).
  4. DM556 Stepper Motor Controller
  5. Your Stepper Motor
  6. Required cables, diodes (if setting up a serial network), resistors, and common ground connections

Step-by-Step Setup

  1. Program Your Arduino:

    • Download the latest Stepper servo firmware (for example, the Stepper_Servo (Version 20230223) package provided on the support page).
    • Unzip the firmware package and open the INO file in the Arduino IDE.
    • Configure the BUS_ID:
      In the firmware, set the BUS_ID for your Arduino (a number between 1 and 127). In ARC, this BUS_ID corresponds with a virtual servo port (for example, BUS_ID 1 corresponds to virtual port V1).
    • Select the Stepper Driver Type:
      In the Arduino code, find the section that supports your stepper motor driver (DM556 uses the typical two-wire STEP/DIR interface) and uncomment that section.
    • Optionally, adjust any inversion settings if your gear requires that.
    • Upload the firmware to the Arduino.
  2. Wiring the Hardware:

    • Between Arduino and DM556:
      • Connect one of the Arduino’s digital outputs (as defined in the firmware) to the STEP input on the DM556.
      • Connect another Arduino digital output to the DIR (direction) input on the DM556.
    • Common Ground:
      Make sure that the EZ-B v4, Arduino, and the DM556 (and motor power supply) all share a common ground.
    • DM556 Setup:
      • Verify that the DM556 wiring to the stepper motor and the power supply matches the manufacturer’s guidelines.
      • If you’re using any enable or reset pins on the DM556, you may need to wire those according to your setup needs.
  3. Setting Up ARC:

    • In your ARC project, add the Stepper Servo skill (by Synthian Inc).
    • In the skill’s configuration:
      • Bind Virtual Ports: Check the virtual port checkbox that corresponds to your Arduino’s BUS_ID (for example, if the BUS_ID is 1, select V1).
      • Set Max Steps Parameter: This setting determines how many steps the motor will move when ARC sends a command. For example, if ARC’s Max servo Position is 180 (default) and you set Max Steps to 1500, a position value of 180 in ARC will move your stepper by 1500 steps. The actual step count is calculated using a mapping function from the ARC servo position to the stepper steps.
    • Use the Advanced settings if you wish to configure acceleration or speed limits, which allows the stepper to ramp up/down smoothly.
    • Follow the calibration instructions provided with the skill. It’s good practice to use an end-stop (limit switch) if you have one so you can set a reliable home position.
  4. Testing the Setup:

    • Use the Ping option on the Stepper servo skill interface to verify bi-directional communication between ARC and your Arduino.
    • Try sending a servo position command (e.g., using a script command such as Servo.setPosition(V1, 90)) and observe if the stepper motor moves as expected.
    • If you need to calibrate, you can use the provided control commands (such as controlCommand(Stepper Servo, SetAsHome, V1)) to set the current position as home.


Final Tips

  • Double-check all wiring to ensure common grounds and correct digital connections.
  • Consult the Stepper servo manual (linked above) for further details on Arduino configuration, operating modes, and wiring diagrams.
  • Experiment with small test commands in ARC before running any longer sequences.

Do you have any additional questions about the Arduino wiring or the configuration within ARC? Let me know so I can help further!


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.