Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
general-appendixes [2017/01/25 19:01]
arthur
general-appendixes [2019/05/04 17:11] (current)
80.99.59.202 added TB6600 sub-block
Line 19: Line 19:
 If your Smoothieboard came with connectors, you got connector casings, and [[http://​en.wikipedia.org/​wiki/​Crimp_connection|crimps]]. You will need to attach your crimps to your cables, and then insert the crimps into the connector casings. If your Smoothieboard came with connectors, you got connector casings, and [[http://​en.wikipedia.org/​wiki/​Crimp_connection|crimps]]. You will need to attach your crimps to your cables, and then insert the crimps into the connector casings.
  
-[http://​sparks.gogo.co.nz/​crimping/​index.html This tutorial] is a good read about crimping properly.+[[http://​sparks.gogo.co.nz/​crimping/​index.html|This tutorial]] is a good read about crimping properly.
  
 <callout type="​warning"​ icon="​true"​ title="​ Patience">​ <callout type="​warning"​ icon="​true"​ title="​ Patience">​
 +
 Please be careful and patient, if you have never done it before you will probably fail a few times before getting the hang of it. Also be careful to insert the crimp into your connector the right way around. Please be careful and patient, if you have never done it before you will probably fail a few times before getting the hang of it. Also be careful to insert the crimp into your connector the right way around.
 +
 </​callout>​ </​callout>​
  
 </​col>​ </​col>​
 <col md="​6">​ <col md="​6">​
-[[html]]<iframe width="​100%"​ height="​400px"​ src="​http://​www.youtube.com/​embed/​L8Mfvv1PqpY"​ frameborder="​0"​ allowfullscreen></​iframe>​[[/html]]+ 
 +<html><iframe width="​100%"​ height="​400px"​ src="​http://​www.youtube.com/​embed/​L8Mfvv1PqpY"​ frameborder="​0"​ allowfullscreen></​iframe>​</html
 </​col>​ </​col>​
 </​grid>​ </​grid>​
 +
 ===  Soldering connectors ===  Soldering connectors
 <​html><​a name='​soldering-connectors'></​a></​html>​ <​html><​a name='​soldering-connectors'></​a></​html>​
Line 42: Line 47:
 Stepper motor drivers on Smoothieboard can handle up to 2Amps per driver. ​ Stepper motor drivers on Smoothieboard can handle up to 2Amps per driver. ​
  
-If you want to control two separate motors with a single driver ( for example you have two stepper motors for your Y axis ​like on a [[http://​www.shapeoko.com/​|Shapeoko]],​ or two stepper motors for your Z axis like on a [[http://​reprap.org/​wiki/​Prusa_i3|Reprap Prusa i3]] ) and have both motors move simultaneously,​ you have two options.+If you want to control two separate motors with a single driver ( for example you have two stepper motors for your Y axis ​like on a [[http://​www.shapeoko.com/​|Shapeoko]],​ or two stepper motors for your Z axis like on a [[http://​reprap.org/​wiki/​Prusa_i3|Reprap Prusa i3]] ) and have both motors move simultaneously,​ you have two options.
  
 If the total of the current used by your motors is more than 2Amps ( for example two 1.5Amps motors are 3Amps ), you can not wire them together on a single driver, and you need to look at [[#​doubling-drivers|doubling drivers just bellow]]. If the total of the current used by your motors is more than 2Amps ( for example two 1.5Amps motors are 3Amps ), you can not wire them together on a single driver, and you need to look at [[#​doubling-drivers|doubling drivers just bellow]].
Line 64: Line 69:
 If you need to drive two motors with a single axis, but the total current used for the motors is more than 2Amps ( for example two 1.5Amps motors add up to 3Amps ), you can not wire the steppers in parallel to a single driver and have it control both motors at the same time like described [[#​doubling-steppers|above]]. ​ If you need to drive two motors with a single axis, but the total current used for the motors is more than 2Amps ( for example two 1.5Amps motors add up to 3Amps ), you can not wire the steppers in parallel to a single driver and have it control both motors at the same time like described [[#​doubling-steppers|above]]. ​
  
-This is the case for example for the Y axis ​of [[http://​www.shapeoko.com|Shapeoko]] machines.+This is the case for example for the Y axis ​of [[http://​www.shapeoko.com|Shapeoko]] machines.
  
-In this case, you will need to use one driver for each of your motors. This means you need a Smoothieboard with one more stepper motor driver than you have axes. If you have 3 axes and need to double one, you will need a 4X or ​5X Smoothieboard.+In this case, you will need to use one driver for each of your motors. This means you need a Smoothieboard with one more stepper motor driver than you have axes. If you have 3 axes and need to double one, you will need a 4X or ​5X Smoothieboard.
  
 To enslave a driver to another, you will need to connect the control pins for both drivers together. To enslave a driver to another, you will need to connect the control pins for both drivers together.
Line 78: Line 83:
 The connectors for this can be found close to the stepper motor drivers, and are labelled. The connectors for this can be found close to the stepper motor drivers, and are labelled.
  
-[[html]]<iframe width="​560"​ height="​315"​ src="​http://​www.youtube.com/​embed/​b0dCM0JDYOM"​ frameborder="​0"​ allowfullscreen></​iframe>​[[/html]]+<html
 +<iframe width="​560"​ height="​315"​ src="​http://​www.youtube.com/​embed/​b0dCM0JDYOM"​ frameborder="​0"​ allowfullscreen></​iframe>​ 
 +</html>
  
-Finally you need to do two things in your configuration file : +Finally you need to do two things in your configuration file :
  
-First, set the current value for **both** drivers. For example if you are using beta and delta set : +First, set the current value for **both** drivers. For example if you are using beta and delta set : 
  
 <​code>​ <​code>​
Line 91: Line 98:
 Then, you need to make sure that none of the step, dir and enable configuration values for your slave stepper motor driver, are present in the configuration file. Then, you need to make sure that none of the step, dir and enable configuration values for your slave stepper motor driver, are present in the configuration file.
  
-For example if you are using gamma as a slave, make sure that none of the following values are present in the configuration file : +For example if you are using gamma as a slave, make sure that none of the following values are present in the configuration file : 
  
 <​code>​ <​code>​
Line 113: Line 120:
 <callout type="​success"​ icon="​true"​ title="​ Pins">​ <callout type="​success"​ icon="​true"​ title="​ Pins">​
  
-While this example will show using the pins of one of the on-board drivers to control the external driver, you can use pretty much any free GPIO pin ​to control the step/​direction/​enable pins on your external driver.+While this example will show using the pins of one of the on-board drivers to control the external driver, you can use pretty much any free GPIO pin ​to control the step/​direction/​enable pins on your external driver.
  
 See [[http://​smoothieware.org/​pinout|pinout]] and [[http://​smoothieware.org/​lpc1769-pin-usage|pin usage]] to find free pins. See [[http://​smoothieware.org/​pinout|pinout]] and [[http://​smoothieware.org/​lpc1769-pin-usage|pin usage]] to find free pins.
Line 124: Line 131:
 <div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '> <div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '>
 <div class='​panel-heading'><​h4 class='​panel-title'>​Wiring an external driver with a common cathode</​h4></​div>​ <div class='​panel-heading'><​h4 class='​panel-title'>​Wiring an external driver with a common cathode</​h4></​div>​
-<image src='​http://​arthurwolf.github.io/​smoothieboard-graphics/​schematics/​external-driver.svg' ​style='width:620'>+<image src='​http://​arthurwolf.github.io/​smoothieboard-graphics/​schematics/​external-driver.svg' ​width='620px'><br/>
 This shows control of an external driver using the pins on the positive side of the external driver'​s input. This shows control of an external driver using the pins on the positive side of the external driver'​s input.
 </​div>​ </​div>​
Line 134: Line 141:
 Two solutions to this : either use a [[https://​www.sparkfun.com/​products/​12009|level shifter]] or use the Smoothieboard'​s pins as Open-Drain ( ie linking to ground instead of linking to 3.3v, when closed ), and wire accordingly. Two solutions to this : either use a [[https://​www.sparkfun.com/​products/​12009|level shifter]] or use the Smoothieboard'​s pins as Open-Drain ( ie linking to ground instead of linking to 3.3v, when closed ), and wire accordingly.
  
-For example : +For example : 
  
 <​html>​ <​html>​
 <div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '> <div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '>
 <div class='​panel-heading'><​h4 class='​panel-title'>​Wiring an external driver with a common anode</​h4></​div>​ <div class='​panel-heading'><​h4 class='​panel-title'>​Wiring an external driver with a common anode</​h4></​div>​
-<image src='​http://​arthurwolf.github.io/​smoothieboard-graphics/​schematics/​external-driver-open-drain.svg' ​style='width:620'>+<image src='​http://​arthurwolf.github.io/​smoothieboard-graphics/​schematics/​external-driver-open-drain.svg' ​width='620px'><br/>
 Here, the 5V is taken from an endstop input'​s positive terminal, taken to the 5V inputs on the external driver. The step/​direction/​enable pins on the Smoothieboard are taken to the GND inputs on the external driver. Here, the 5V is taken from an endstop input'​s positive terminal, taken to the 5V inputs on the external driver. The step/​direction/​enable pins on the Smoothieboard are taken to the GND inputs on the external driver.
 </​div>​ </​div>​
Line 145: Line 152:
  
  
-In this case, you will also need to change those pins to be open-drain. To change a pin from being normal to being open-drain, you add a <​kbd>​o</​kbd>​ to the pin's number. For example :+In this case, you will also need to change those pins to be open-drain. To change a pin from being normal to being open-drain, you add a <​kbd>​o</​kbd> ​LowerCase "​o" ​to the pin's number. For example :
  
 <​code>​ <​code>​
Line 156: Line 163:
 alpha_step_pin ​  ​2.0o ​    # Pin for alpha stepper step signal alpha_step_pin ​  ​2.0o ​    # Pin for alpha stepper step signal
 </​code>​ </​code>​
 +
 +it's also possible to invert a pin:
 +
 +<​code>​
 +alpha_step_pin ​  ​2.0!o ​    # Pin for alpha stepper step signal
 +</​code>​
 +
  
 <callout type="​info"​ icon="​true"​ title="​ ReprapDiscount Silencio">​ <callout type="​info"​ icon="​true"​ title="​ ReprapDiscount Silencio">​
Line 165: Line 179:
 It comes with an adapter for pololu-type drivers for RAMPS-type boards. However, you can also simply wire it to Smoothie'​s external driver connectors. It comes with an adapter for pololu-type drivers for RAMPS-type boards. However, you can also simply wire it to Smoothie'​s external driver connectors.
  
-The only catch is : the ​pins are not in the same order in Smoothie and on the driver'​s cable. (Note the colors maybe different on your cable)+The only catch is : the pins are not in the same order in Smoothie and on the driver'​s cable. (Note the colors maybe different on your cable)
  
 || Silencio cable color              || Black           || Green         || Red             || Blue             || || Silencio cable color              || Black           || Green         || Red             || Blue             ||
Line 188: Line 202:
  
 <​code>​ <​code>​
-alpha_step_pin ​       0.      # Pin for alpha stepper step signal +alpha_step_pin ​     2.      # Pin for alpha stepper step signal 
-alpha_dir_pin ​        ​0.5       # Pin for alpha stepper direction +alpha_dir_pin ​      ​0.5       # Pin for alpha stepper direction 
-alpha_en_pin ​         2.0!      # Pin for alpha enable pin+alpha_en_pin ​       0.4!      # Pin for alpha enable pin
 </​code>​ </​code>​
  
Line 196: Line 210:
  
 </​callout>​ </​callout>​
 +
 +<callout type="​info"​ icon="​true"​ title="​ TB6600 external driver">​
 +
 +There are more versions labeled TB6600 on the market, but they use different driver chips inside. First of all you'll need to know, if the driver is ok with higher step rates (200 kHz), or you'll have to tune <​kbd>​microseconds_per_step_pulse</​kbd>​ and/or <​kbd>​base_stepping_frequency</​kbd>​.
 +
 +Since TB6600 uses 5V signals and Smoothie is 3.3V we should either use TTL converters or open-drain (as mentioned before). My setup uses open-drain with 5V taken from the board ( signals are connected to "​-"​ pins, 5V is to all "​+"​ pins ).
 +
 +The config is the following for alpha, but it's the same for the rest:
 +
 +<​code>​
 +# Stepper module pins ( ports, and pin numbers, appending "​!"​ to the number will invert a pin )
 +alpha_step_pin ​                              ​2.0!o ​             # Pin for alpha stepper step signal
 +alpha_dir_pin ​                               0.5!o              # Pin for alpha stepper direction
 +alpha_en_pin ​                                ​0.4!o ​             # Pin for alpha enable pin
 +</​code>​
 +
 +If you want to change the rotating direction, simply leave out the "​!":​
 +
 +<​code>​
 +alpha_dir_pin ​                               0.5o              # Pin for alpha stepper direction
 +</​code>​
 +
 +</​callout>​
 +
 +==== Multiple drivers in parralel
 +
 +If one of your axes requires more than one motor and driver, you can wire the control signals for one axis to multiple drivers, like so : 
 +
 +
 +<​html>​
 +<div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '>
 +<div class='​panel-heading'><​h4 class='​panel-title'>​External drivers wired in parralel</​h4></​div>​
 +<a href="​http://​smoothieware.org/​_detail/​unnamed.png?​id=general-appendixes"​ class="​media"​ title="​unnamed.png"><​img src="​http://​smoothieware.org/​_media/​unnamed.png?​w=800&​amp;​tok=f1375f"​ class="​media img-responsive"​ alt=""​ width="​620"></​a>​
 +<br/>
 +</​div>​
 +</​html>​
 +
 +
 +
  
 ===  Solid State Relays ===  Solid State Relays
Line 205: Line 258:
 Typical Solid State Relays ( SSR ) can handle up to 40Amps easily, sometimes more. AC ones can run 220V AC, and DC ones up to 60V DC ( typically, look at the specs for yours ). Typical Solid State Relays ( SSR ) can handle up to 40Amps easily, sometimes more. AC ones can run 220V AC, and DC ones up to 60V DC ( typically, look at the specs for yours ).
  
-To control your Solid State Relay ( SSR ), you will need one GPIO pin ​( use one of the free ones on the board ideally ), and a connection to GND ( plenty of those ).+To control your Solid State Relay ( SSR ), you will need one GPIO pin ​( use one of the free ones on the board ideally ), and a connection to GND ( plenty of those ).
  
-A SSR ​is essentially a big switch : you cut a wire, plug each end of the cut wire into it's two terminals, and then you'll be able to control whether or not those two ends of the wire connect or not. Simple as that.+A SSR ​is essentially a big switch : you cut a wire, plug each end of the cut wire into it's two terminals, and then you'll be able to control whether or not those two ends of the wire connect or not. Simple as that.
  
 <​html>​ <​html>​
 <div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '> <div class='​panel panel-default wrap_center'​ style='​width:​640px;​padding:​10px '>
 <div class='​panel-heading'><​h4 class='​panel-title'>​Wiring a Solid State Relay</​h4></​div>​ <div class='​panel-heading'><​h4 class='​panel-title'>​Wiring a Solid State Relay</​h4></​div>​
-<image src='​http://​arthurwolf.github.io/​smoothieboard-graphics/​schematics/​ssr-basic.svg' ​style='width:620'>+<image src='​http://​arthurwolf.github.io/​smoothieboard-graphics/​schematics/​ssr-basic.svg' ​width='620px'><br/>
 You will need to connect GND on the Smoothieboard to the "​-"​ connection on the Input side of the SSR, and the GPIO pin on the Smoothieboard to the "​+"​ connection on the Input side of the SSR. This example shows using P{{1.30}} You will need to connect GND on the Smoothieboard to the "​-"​ connection on the Input side of the SSR, and the GPIO pin on the Smoothieboard to the "​+"​ connection on the Input side of the SSR. This example shows using P{{1.30}}
 </​div>​ </​div>​
Line 232: Line 285:
 SSRs have a low maximum frequency they can be switched at. You need to specify that frequency or Smoothie will drive it way too fast. In this example, the maximum frequency is 20Hz. SSRs have a low maximum frequency they can be switched at. You need to specify that frequency or Smoothie will drive it way too fast. In this example, the maximum frequency is 20Hz.
  
-So, you need to modify your module to both use the correct pin ( the free GPIO you ​wired to the SSR ), and to the correct frequency. Here are the two lines to change : +So, you need to modify your module to both use the correct pin ( the free GPIO you ​wired to the SSR ), and to the correct frequency. Here are the two lines to change : 
  
 <​code>​ <​code>​
Line 247: Line 300:
 </​code>​ </​code>​
  
-[[html]]+<html>
 <iframe width="​100%"​ height="​720"​ src="​https://​www.youtube.com/​embed/​TiEwNf1H_Tc"​ frameborder="​0"​ allowfullscreen></​iframe>​ <iframe width="​100%"​ height="​720"​ src="​https://​www.youtube.com/​embed/​TiEwNf1H_Tc"​ frameborder="​0"​ allowfullscreen></​iframe>​
-[[/html]]+</html>
  
 === Swapping stepper motor drivers === Swapping stepper motor drivers
Line 259: Line 312:
 In that case, all you need to do is exchange the 3 pin definitions for these two axes. In that case, all you need to do is exchange the 3 pin definitions for these two axes.
  
-For example : +For example : 
  
 <​code>​ <​code>​
Line 283: Line 336:
 </​code>​ </​code>​
  
-Now your beta driver becomes your Z axis, and your gamma driver becomes your Y axis.+Now your beta driver becomes your Z axis, and your gamma driver becomes your Y axis.
  
 Please note that the current control parameters do not get swapped : <​kbd>​alpha_current</​kbd>​ always controls the current for M1, no matter what you do to the step/​direction pins. Please note that the current control parameters do not get swapped : <​kbd>​alpha_current</​kbd>​ always controls the current for M1, no matter what you do to the step/​direction pins.