author
1Instructables45,355Views23CommentsU.S.Joined July 13th, 2010
I'm a former electrical engineer who's changed careers and become a physical therapist. I still have a passion for tech though, as well as healthcare now.

Achievements

10K+ Views Earned a bronze medal
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Hello,It seems you have the incorrect value in your "configuration.h" file. Open the configuration.h file and search for "movement settings". Within that section look for "#define DEFAULT_AXIS_STEPS_PER_UNIT". This is where you define how many steps your stepper motor should move in order to travel 1 mm of distance. If you are wanting the axis to move 10mm, but instead it is moving 20mm, then the value you have listed in this section is twice what it should be. Reduce your value by half and try again. The equation to figure out exactly how many steps you should have is this: Correct Step Value= Desired mm of travel * (current step value/current mm of travel) So, for example, if your current step value is 40, and this is causing the axis to move 20mm,...

    see more »

    Hello,It seems you have the incorrect value in your "configuration.h" file. Open the configuration.h file and search for "movement settings". Within that section look for "#define DEFAULT_AXIS_STEPS_PER_UNIT". This is where you define how many steps your stepper motor should move in order to travel 1 mm of distance. If you are wanting the axis to move 10mm, but instead it is moving 20mm, then the value you have listed in this section is twice what it should be. Reduce your value by half and try again. The equation to figure out exactly how many steps you should have is this: Correct Step Value= Desired mm of travel * (current step value/current mm of travel) So, for example, if your current step value is 40, and this is causing the axis to move 20mm, but you really want it to move only 10mm, then the equation would look like this:Correct Step Value=10mm*(40/20mm)Correct Step Value=20 I have attached a screenshot of what this section looks like in my own setup.

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Awesome tip, thanks for sharing!

    The two pins are a requirement from trinamic. Trinamic designed the TMC2208 chip to use the same pin for both the RX and TX signals Therefore, they needed to devise a way to differentiate the two signals. Their solution was to split the output of the chip into two lines, and use a resistor on the TX line to drop the logic level voltage down, so the chip could differentiate between the signals.

    Thanks for the compliment! To answer your questions:(1)the actual driver chips are the same, the only difference is the board layout you purchased. Some board manufacturers will design in three solder pads and others only two pads. These pads just physically connect the PDN_UART pin of the chip to the header pin of the step stick...so just solder your two pads together and this will connect the chip to the header pin. (2)I wrote the instructable in reference to Marlin because that is what I use. In Marlin, we have to specify which pins of the RAMPS board will be the Tx and Rx pins of the step stick. In order to use the Repetier firmware, you would need to look on the Repetier website and/or forum and try to find where the PIN assignments are located within the firmware. And I'm as...

    see more »

    Thanks for the compliment! To answer your questions:(1)the actual driver chips are the same, the only difference is the board layout you purchased. Some board manufacturers will design in three solder pads and others only two pads. These pads just physically connect the PDN_UART pin of the chip to the header pin of the step stick...so just solder your two pads together and this will connect the chip to the header pin. (2)I wrote the instructable in reference to Marlin because that is what I use. In Marlin, we have to specify which pins of the RAMPS board will be the Tx and Rx pins of the step stick. In order to use the Repetier firmware, you would need to look on the Repetier website and/or forum and try to find where the PIN assignments are located within the firmware. And I'm assuming that you even need to specify the pins in Repetier for the RAMPS board. It is entirely possible that the Repetier developers have designated the pins for you, and don't give you any opportunity to change those pin assignments. Since I have never used the Repetier firmware, I am unable to provide any more guidance than that, unfortunately. Good luck! If you find a solution, please post back to this comments section so others can learn from what you find out.

    Ummmm, I'm not sure what you mean by "in or out". Are you talking about the jumpers for setting the microsteps on the RAMPS board? If so, then the only thing that matters is that the jumper is shorting together the two header pins

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Thank you for sharing this!

    No. You can leave the MS1 and MS2 pins soldered on. I just removed them to illustrate that the StepStick is truly controlling the steppers through UART. The MS1 and 2 lines are not used by the StepStick when you operating over UART, and therefore can be either removed or left on...your choice.

    Very clever! Thank you for sharing this!

    Hello,Step 10 (for Marlin 1.1.8) and Step 12 (for Marlin 1.1.9) show where to plug in the jumpers, on the Ramps 1.4 board, for the transmit and receive lines from the StepStick.

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    The One-Time Programmable (OTP) bits are for the stealthChop2 mode versus spreadCycle mode. So, by setting the OTP bits, you can no longer change the mode from spreadCycle to stealthChop2...it will forever be in the spreadCycle mode; however, all of the other UART features such as microstepping and motor current control as well as active control over the step/direction remain intact and are fully controllable via UART.I hope that helps, thanks for the compliment!

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Hi, thanks for the question. I've just updated all of the images for the firmware and Ramps pinouts. For the 5th driver, I use pins 57 and 58 in the AUX1 header, and these pins work just fine. I did initially try to use pin D1, but as you suspected, this wouldn't work. Look at Steps 10 and 12 for the images of the Ramps board (for Marlin 1.1.8 and 1.1.9 respectively).

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Thanks for letting me know that Marlin 1.1.9 moved these settings into the configuration.h file. I haven't looked that closely at 1.1.9 since I'm still running 1.1.8. After thinking about this for a couple of days, I think I'll add an additional step to the Instructable. One step will be a setup for Marlin 1.1.8 and the new step will be for setting up with Marlin 1.1.9. Since no new updates will be coming for Marlin 1.1 (all new Marlin development is focused now on 32-bit boards), this should eliminate any future revisions of this Instructable. I'll try to get to this, this weekend.

    Ahh, I see what you are saying. That's a really good point! In short yes, you could use two wires. For anyone else reading this, in Step 3, I show a Fritzing image of the SilentStepStick and explain how you have to solder the jumper pads to physically connect the stepstick header pins to the TMC2208 chip. On my SilentStepSticks, there are three jumper pads because the stepstick has two header pins that can be used for connection to the TMC2208 chip, and you solder one side or the other to choose which header pin you are going to physically connect. However, instead of limiting yourself to only one side, you could just solder all three pads together, thereby physically attaching both available header pins to the PDN_UART pin of the chip. This allows you to use two separate wires to ...

    see more »

    Ahh, I see what you are saying. That's a really good point! In short yes, you could use two wires. For anyone else reading this, in Step 3, I show a Fritzing image of the SilentStepStick and explain how you have to solder the jumper pads to physically connect the stepstick header pins to the TMC2208 chip. On my SilentStepSticks, there are three jumper pads because the stepstick has two header pins that can be used for connection to the TMC2208 chip, and you solder one side or the other to choose which header pin you are going to physically connect. However, instead of limiting yourself to only one side, you could just solder all three pads together, thereby physically attaching both available header pins to the PDN_UART pin of the chip. This allows you to use two separate wires to connect the Ramps board to the SilentStepStick. After all, the whole point of the Y cable was to combine the two Tx and Rx pins from the Ramps board to a single header pin on the SilentStepStick, but if you already have two identical header pins on the SilentStepStick, then there's no need to make the Y cable.Thanks for pointing this out! What a silly oversight on my part. I think I'll try to update the instructable this weekend to let others know as well.

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Thanks for the update! I didn't realize the newest version of Marlin (1.1.9) had changed the default pin assignments for the software serial feature (I haven't updated my version of Marlin yet). I just updated this Instructable with new images and verbiage to reflect this change in Marlin.

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Wow! Thanks for the great compliment. I agree that the V2 Protector Boards are important. Like I mentioned in the Instructable, I didn't have any at the time of writing it, but tried to impress the benefit they provided. I guess I wasn't that clear, so I've updated the text to try and illustrate that a bit better.Thanks for the links to the boards, I've updated the purchase links.

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Hi thanks for checking out my Instructable. I don't have an MKS Gen board, but according to the MKS Gen Wiki (https://reprap.org/wiki/MKS_GEN), the MKS Gen 1.4 is pin compatible with Ramps 1.4 and Pololu type stepper motor driver chips. It also has the AUX-1, AUX-2, AUX-3 header pins broken out, just like on the Ramps 1.4 board. Since it is pin compatible with Ramps 1.4, and can also run the Marlin firmware, then technically, you should be able to complete this Instructable using the MKS Gen 1.4.Looking at the pinouts for both boards (Ramps 1.4 and MKS Gen 1.4), the digital pin numbers are identical for the AUX-2 header, so the firmware changes I talk about in the Instructable should be exactly the same for MKS Gen 1.4 (running Marlin).I hope this helps answer your question.

    Please do! I'll update this instructable to let others know this works with the MKS Gen 1.4 board, if you can confirm it.

    View Instructable »
  • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin

    Hmmm, you're right! I just unsoldered my EN header pin and the stepper motor stopped working. Thanks for pointing this out to me. I have updated the 'ible and given you credit. I'm going to try and figure out why this is. To start with, do you also have the version of the Watterott board as me, with three solder pads? or two pads?

    View Instructable »
    • UART This! Serial Control of Stepper Motors With the TMC2208, Ramps 1.4 and Marlin
      204 views
      7 favorites
      5 comments