External stepper setup and config
-
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; General preferences M111 S0 ; debugging off G21 ; work in millimetres G90 ; send absolute coordinates... M83 ; set extruder to relative mode M575 P1 B57600 S1 ; enable and configure PanelDue ; General setup M669 K1 X-1:-1:0 Y1:-1:0 Z0:0:1 ; select CoreXY mode and set kinematics matrix ; Network M550 P"Voron Trident" ; set printer name M552 S1 ; enable network M586 P0 S1 ; enable HTTP (for DWC) M586 P1 S1 ; enable FTP (for remote backups) M586 P2 S0 ; disable Telnet ; --- Z drive map --- ; _______ ; | 0 | ; | ----- | ; | 2 | 1 | ; ------- ; front ; Drives for Z M569 P0 S0 ; Z1 (physical drive 0) goes backwards M569 P1 S0 ; Z2 (physical drive 1) goes backwards M569 P2 S0 ; Z3 (physical drive 2) goes backwards ; Drives for XY M569 P3 S0 ; X (physical drive 3) goes backwards M569 P4 S0 ; Y (physical drive 4) goes backwards ; Drive for extruder M569 P5 S0 R1 ; E (physical drive 5) goes backwards with enable polarity active high ; Motor mapping and steps per mm M584 X4 Y3 Z0:1:2 E5 ; set drive mapping M350 X16 Y16 Z16:16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00:400.00:400.00 ; set XYZ steps per mm (1.8deg motors) M92 E430.11 ; set Extruder steps per mm (BMG) ; Drive currents M906 X1400 Y1400 Z1200:1200:1200 ; set XYZ motor currents (mA) M906 I30 ; set ide current percentage M84 S30 ; set idle timeout ; Accelerations and speed M98 P"/macros/System/Speed/speed_printing.g" ; set normal speed & accel ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X350 Y358 Z300 S0 ; set axis maxima ; Endstops M574 X2 S1 P"xstop" ; configure active-low endstop for low end on X via pin xstop M574 Y2 S1 P"ystop" ; configure active-low endstop for low end on Y via pin ystop M574 Z0 P"nil" ; no endstop ; Z microswitch (nozzle probe) M558 K1 P8 C"zstop" I1 H2 F400:100 T18000 A10 S0.01 R0.1 ; set Z probe type to switch and the dive height + speeds G31 K1 P500 X0 Y0 Z0.00 ; set Z probe trigger value, offset and trigger height (higher Z value = nozzle closer to bed) ; Z-probe (klicky probe) M558 K0 P8 C"^zprobe.in" H8 F400:100 T10000 A5 S0.01 R0.1 ; set Z probe type to switch and the dive height + speeds G31 K0 P500 X0 Y21 Z6.42 ; set Z probe trigger value, offset and trigger height (higher Z value = nozzle closer to bed) ; Bed leveling M671 X175:388:-38 Y416.6:1.5:1.5 S10 ; leadscrew locations (Rear, Right, Left) M557 X25:315 Y25:325 P5:5 ; define mesh grid ( positions include the Z offset!) ; Bed heater M308 S0 P"bedtemp" Y"thermistor" T104400 B4138 A"Bed" ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S110 ; set temperature limit for heater 0 to 110C M143 H0 A2 C0 S110 ; make sure bed heater stays below 110°C M143 H0 A1 C0 S125 ; make sure bed heater shuts down at 125°C ; Hodend heater M308 S1 P"spi.cs1" Y"rtd-max31865" A"Hotend" ; configure sensor 1 as thermocouple via CS pin spi.cs1 M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Chamber temperature sensor M308 S4 P"e1temp" Y"thermistor" T9600 B3950 A"Chamber" ; configure sensor 4 as thermistor on pin e1temp ; Fans M950 F0 C"fan0" Q100 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 C"Part Cooling" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q100 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; Mosquito Hotend fan @ 100%, turns on if temperature sensor 1 reaches 45 degrees M950 F2 C"fan2" Q100 ; create fan 2 on pin fan2 and set its frequency M106 P2 H2:3 L0.15 X1 B0.3 T40:70 ; Set fan 2 value, Electronics cooling, starts to turn on when the MCU temperature (H100) reaches 45C and reaches full speed when the MCU temperature reaches 65C or if any TMC2660 drivers (H101 & H102) report that they are over-temperature. Thermostatic control is turned on ; Tools M563 P0 S"Mosquito" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings M308 S2 Y"mcu-temp" A"MCU" ; configure sensor 100 as mcu temperature M308 S3 Y"drivers" A"DRIVERS" ; configure sensor 101 as drivers temperature M950 P2 C"e1heat" ; create output port 2 attached to e1heat connector for LED lights M591 D0 P1 C"e0stop" S0 ; filament monitor for extruder0, simple sensor (high signal when filament present), connected to e0stop and it's disabled ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss M912 P0 S-2.9 ; MCU temp calibration parameters M572 D0 S0.0 ; Disable Pressure Advance M98 P"/macros/System/Current/xy_current_high.g" ; set normal xy currents M98 P"/macros/System/Current/z_current_high.g" ; set normal z currents M98 P"/macros/System/fw_retraction.g" ; set firmware retraction settings M501 ; load config-override.g T0 ; select tool 0
-
@exerqtor said in External stepper setup and config:
; Drive for extruder
M569 P5 S0 R1I think you'll need to specify more for the M569 for external driver. The timing etc.
-
@phaedrux
I tried doing that too (adding the same line as in that example since i couldn't find or didn't understand where to find the timings correct for the TMC2100. ), but it didn't change anything. I've also tried changing out the enable state, but that don't solve anything either.What worries me the most is that the stepper gets so darn hot, like it's to the level where it smells like hot electronics and is unpleasant to touch (once i've powered down the printer) the stepper motor also gets hot.
-
I'm surprised by the heat as well. What did you set the vref to? I wonder if it's been damaged...
-
Vref is set too 1.41V should be the right amount for the stepper, and within spec for the stepper driver
-
If you reduce it does the driver get less hot?
-
@phaedrux
Haven't done it yet, been preoccupied with trying to find out why it won't respond / make the stepper move thinking it could be the same issue causing both issues -
Ok so now i've had the chance to have another lool at things, and the steppstick only gets hot if the stepper is connected.
So just so the hivemind agree with me, this is wired correctly right? I've ohmed between the connector to verify that the a windings on the stepper indeed are the two center pins on the connector btw.
EDIT:
Read thru the stepstick product wiki again and apparently they name the motor windings back asswords compared to eachother on the stepper and stepstick
Or i just straight up missundeestood it the whole time lets re-pin and see if that yields any better results, if the stepstick ain't allready fubar at this point
-
So yeah now rewired to this
And with this config:
M569 P5 S0 R1 T2.5:2.5:5:0
It says "CFG6_ENN - Enable input (high to disable) and power down configuration" in Trinamics datasheet for the TMC2100, so that means "M569 R1" is the right choice i guess (Rnnn - Driver enable polarity: 0 = active low, 1 = active high) ?
I can hear the stepper do a faint highpitched whine when i try to run my filamanet load macro, and it stops when the macro is done.
Don't know if that's a good sign or not. But i'm also a little bit unsure if i should have defined the microstepping for the extruder in config or not as well? So the MCU know how to send the pulses?
Must be someone here that know whats the correct way of configuring this? Because it's srsly not clear in any documentation i've managed to find as of now
-
@exerqtor
From my understanding it should be M569 R0
You can't set M350 microsteps but need to calculate the M92 value accordingly. ( eg. 430.11 x 16 ) -
Yup that's totally correct!
__
So i finally got it working, and the issue is so embarrasing i don't even know if i want to say it
Turns out i had managed to bork up the DIR,STP & EN pins totally on the breakout board, haven't got any excuse for how i even managed doing that wrong. The mind boggles
Now it's a matter of finding the heatsink belonging to the stepstick and slap it on before i calibrate esteps and do a test print
-
-
Still having some "slight" issues with the stepper running hot, turns out it's a relatively commonly know thing the TMC2100's run VERY HOT. And it's even to det point where they suggest not going over 0.9V vref on a 1A stepper because of it and also having to run a heatsink with a fan to cool the bastard.
I actually think it's getting so hot now with 1.41V and no active cooling that it's shutting down due to the built in protection that shuts it down at 150C and wakes it back up at 120C. So there's that, it's at least turning the stepper so that's a step in the right direction (badumtss ).
Gonna slap together a 4010 fan mount for the breakout board in CAD now and print it. Then adjust the vref to 0.9V and see if that solves it
EDIT:
Let's hope this works, despite looking stupid as hell:
EDIT 2:
So that stupid looking fan cooling together with lowering vref to 0.90V solved the steppstick overheating (woho🥳).BUT the stepper motor still gets hot even tho it should have been disabled (if my config is right) , not so hot that it's melting the printed parts (CPE) it's attached to but over 60C if i should guess. So i'm a little sceptical if it's getting disabled by the duet
-
Glad to hear it's running (basically). Now you can use a more recent driver like TMC2209 or even TMC5160
@exerqtor said in External stepper setup and config:
So i'm a little sceptical if it's getting disabled by the duet
I have the same effect on my BTT-M5 adaption
At first I confused the E#_EN pins from the expansion port with the enable pins for the driver, (but they seem to be chip select pins for SPI comms)
Then I tried the ENN-pin on the expansion port, but no matter how I configure it, it is always LOW = enabled... -
@o_lampe said in External stepper setup and config:
Glad to hear it's running (basically). Now you can use a more recent driver like TMC2209 or even TMC5160
@exerqtor said in External stepper setup and config:
So i'm a little sceptical if it's getting disabled by the duet
I have the same effect on my BTT-M5 adaption
At first I confused the E#_EN pins from the expansion port with the enable pins for the driver, (but they seem to be chip select pins for SPI comms)
Then I tried the ENN-pin on the expansion port, but no matter how I configure it, it is always LOW = enabled...Thanks, me to despite not being totally haooy with the result yet.
Yeah I started looking into mayve trying out some other driver yesterday. But i haven't come to any conclusions yet, like it's for the extruder so i want it to be reliable etc.
Whats the "best supported" stepper to use with a duet/rrf 3? It would be hella sweet to have some or all the setting abilities as with the onboard drivers
I'm trying to think out some way i can get the driver to turn off now, i've just unplugged the enable pin totally now an use the built in "auto current reduction" of the 2100. But if i had some way of automagically applying VCC-IO to the enable pin when i want the driver disabled it would work good i think. And just leave it open when i'm printing and let the driver do the idle/enable handling itself.
-
@exerqtor
With a Duet2 you have to make compromizes regarding setup-compatibility. It only supports SPI-comms with TMC2660, but they aren't available (yet) in the classic pololu driver footprint. There is a bigfoot TMC2660 with support for SPI-config.
The STM32-port of RRF has some options to mix all sorts of drivers with UART or SPI comms. I hope, the main branch of RRF will pull this mixed drivers option one day. -
@o_lampe said in External stepper setup and config:
@exerqtor
With a Duet2 you have to make compromizes regarding setup-compatibility. It only supports SPI-comms with TMC2660, but they aren't available (yet) in the classic pololu driver footprint. There is a bigfoot TMC2660 with support for SPI-config.
The STM32-port of RRF has some options to mix all sorts of drivers with UART or SPI comms. I hope, the main branch of RRF will pull this mixed drivers option one day.All of that stuff is beyond my scope of knowledge i see that it's a "TMC2660-BOB" avalible, but well it's not exactly a plug'n pray option 🤪
-
Ok so how about this, to get the TMC2100 disabled when not printing:
Adding a little mosfet that toggles 3.3V to the Enable pin on the driver. Using exp8 / heater3 to activate the mosfet with a macro that gets runned in the start/stop of a print etc.
Or am I missing out on something obvious