Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Stepper Won't Reverse, Instead Cooks Eggs

    Scheduled Pinned Locked Moved
    Off Topic
    3
    4
    214
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • shishioudeundefined
      shishioude
      last edited by

      Sorry if this a repeat question. I spent a good portion of the last couple evenings trying to figure out what I'm doing wrong, searching thither and yon.

      Virtually all of the hits on Google refer to specific issues with CNC controller kits, voltage being too low, or programming errors.

      Background: I'm the Jon Snow of electronics
      More background: I have what I believe to be a fairly simple setup:

      Small stepper motor (https://www.oyostepper.it/goods-993-Motore-passo-passo-ad-alta-temperatura-Nema-17-18-gradi-13Ncm-10A-Classe-di-isolamento-H-180C.html, https://www.oyostepper.it/images/upload/File/17HS08-1004S-H.pdf)
      3.3V to 5V Level Shifter
      Teensy 3.5
      Digital Stepper Driver (https://www.oyostepper.it/goods-111-Driver-passo-passo-digitale-10-42A-20-50VDC-per-motore-passo-passo-Nema-17-Nema23-Nema-24.html, https://www.oyostepper.it/images/upload/File/DM542T.pdf)
      24V x 15A Power Supply

      Code and schematic follow. I'm a programmer but I am very new to electronics. I learned KiCAD just to make this post so I didn't waste anyone's time if possible. The issue is as follows:

      The code runs and happily rotates the motor in one direction.
      When the code flips to reverse direction, it instead stands still.
      It happily rotates/stands still until it makes a buzzing noise and gets hot (this is the point I gave up and started learning KiCAD).

      Validation Steps:
      Checked and re-checked the Red, Green, Blue, Black wires to A+/-, B+/- until my eyes crossed
      Validated that the code only sends the reverse signal once per second (during inversion).
      Put a multimeter on the level shifter to validate that the output for PUL and DIR is changing from 200mV to 4.8V in time with the serial output of the code.

      Code:
      /*
      Stepper Motor Test
      stepper-test01.ino
      Uses MA860H or similar Stepper Driver Unit
      Has speed control & reverse switch

      DroneBot Workshop 2019
      https://dronebotworkshop.com
      */

      // Defin pins

      int driverPUL = 7; // PUL- pin
      int driverDIR = 6; // DIR- pin
      int ledPin = 13;

      // Variables

      int pd = 500; // Pulse Delay period
      boolean setdir = HIGH; // Set Direction
      int reverse = 0;

      // Interrupt Handler

      void setup() {
      Serial.begin(9600);
      pinMode (driverPUL, OUTPUT);
      pinMode (driverDIR, OUTPUT);
      pinMode (ledPin, OUTPUT);
      digitalWrite(driverDIR, setdir);
      digitalWrite(ledPin, HIGH);

      delayMicroseconds(1 * 1000000);
      Serial.println("Validate LED");
      delayMicroseconds(1 * 1000000);
      digitalWrite(ledPin, LOW);
      delayMicroseconds(1 * 1000000);
      digitalWrite(ledPin, HIGH);
      }

      void loop() {
      reverse++;
      if (reverse >= 1000) {
      Serial.printf("Reverse loop: %d to %d\n", reverse, setdir);
      setdir = (setdir == LOW) ? HIGH : LOW;
      digitalWrite(driverDIR, setdir);
      digitalWrite(ledPin, setdir);
      reverse = 0;
      delayMicroseconds(pd);
      }
      digitalWrite(driverPUL, HIGH);
      delayMicroseconds(pd);
      digitalWrite(driverPUL, LOW);
      delayMicroseconds(pd);
      }

      "Schematic" to follow. I screwed up the drawing. Not pictured is the Neutral wire on the power supply connected to Neutral on the digital stepper driver. I'm tired and I just can't go back and open up the library definition and rewire the drawing.

      Thank you for any advice or help.

      droftartsundefined dc42undefined 2 Replies Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @shishioude
        last edited by

        @shishioude This forum is for users of Duet electronics boards and/or RepRapFirmware. Unfortunately you are using neither! While we're happy for these kinds of questions, it's outside the scope of my knowledge to debug your firmware and electronics. I hope someone else will be able to help you.

        I'm moving this thread to the 'Off topic' category.

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        1 Reply Last reply Reply Quote 1
        • droftartsundefined droftarts moved this topic from General Discussion
        • dc42undefined
          dc42 administrators @shishioude
          last edited by

          @shishioude your code is a little hard to understand because of the lack of indentation (hint: use the </> button when entering code into your post), but I think you are trying to move the motor alternately forwards and in reverse, at the same speed in both cases. If that's the case, I suggest the following:

          • Disconnect the DIR input wires between the driver and the level shifter
          • Check that the motor runs smoothly (but in the same direction always) when you run your code
          • Then connect the DIR input wires of the driver to +5V and ground to reverse the direction
          • Check whether your code now runs the motor smoothly, but in the opposite direction always

          If that works then there was something wrong with your wiring to the DIR inputs of the driver, or the level shifter wiring. If it doesn't work and in one case the motor just buzzes and gets hot, then I suspect a faulty driver.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          shishioudeundefined 1 Reply Last reply Reply Quote 0
          • shishioudeundefined
            shishioude @dc42
            last edited by

            @dc42 OK, Thanks for your suggestion, i will have a try.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post
            Unless otherwise noted, all forum content is licensed under CC-BY-SA