Anet A8 Stepper motor question
-
@tsitalon1 Let me tell you from my experience with converting Anet A8 to use the Duet: it just works.
To add to your list of specs to the motors: no one really knows the inductance of these motors but it was guessed to be about 10 mH. You would need info sometimes.
I run my motors at 500mA for X, Y and Z and 700mA for E. I set maximum speed to 110mm/s (6600 mm/min) for X and Y and took all other values regarding movements from Marlin config (if you are interested I could post my full
config.g
here.Also you don't have to care about anything else than amperage. All other values will be adjusted by the driver or the laws of physics automatically.
One more advice: there is a small potentiometer in the PSU near the mains input. I've dialed mine to 13.6V which helps in a little faster heating as well as allowing the motors to run faster without losing steps.
EDIT: It is recommended to wire high inductance, high voltage Z motors (such as these used with Anet A8) in parallel instead of using the two ports on the Duet that are internally wired in serial. But as I said it works also that way without any problems. Only if you want to use stallGuard for Z you might need to rewire them. I do not use stallGuard for Z so I have no experience in this regard.
-
Awesome, thank you for your help!
I'm using an ATX PSU right now, so I don't think I can turn up the voltage
Once I get the Duet installed and configured i'll see how it goes, if I run into any issues, i may ask you for that config file
Thanks again!
-
@tsitalon1 You're welcome.
And ask whatever you want to know. If I cannot answer it there are plenty of very knowledgeable people around here that probably will have an answer for you.
If you have a quite steady 12V supply you might need to reduce maximum speed for X and Y to 100mm/s (6000mm/s). The motors of the Anet A8 are not really good for high speeds. But try it first and see how far you get. I also printed with 120mm/s (or rather travel moves) while "only" at 12.6V and never had a problem that I could really connect to being too fast.
-
@wilriker I am a beginner and I am starting to upgrade my Anet A8 right now, I would like to ask you if you could share your config file.
Thanks.
-
@black-canary Of course, here you go:
; Configuration file for Duet WiFi (firmware version 1.20 or newer) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Sat Apr 28 2018 20:07:26 GMT+0200 (CEST) ; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin output ; Network M550 PDuet ; Set machine name M552 S1 ; Enable network ;*** Access point is configured manually via M587 M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Drives M569 P0 S1 C65974 ; Drive X goes forwards and gets TOFF=6 M569 P1 S1 C65974 ; Drive Y goes forwards and gets TOFF=6 M569 P2 S0 C65971 ; Drive Z goes backwards and gets TOFF=3 M569 P3 S1 C65972 ; Drive E0 goes forwards and gets TOFF=4 (default) M92 X100 Y100 Z400 E96.939 ; Set steps per mm (at default 16x microstepping) M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M566 X600 Y600 Z24 E300 ; Set maximum instantaneous speed changes (i.e. jerk) (mm/min) M203 X6600 Y6600 Z720 E3000 ; Set maximum speeds (mm/min) M201 X2000 Y2000 Z100 E10000 ; Set accelerations (mm/s^2) M204 P400 T1000 ; Lower accelerations when printing though M906 X500 Y500 Z500 E700 I30 ; Set motor currents (mA) and motor idle factor in per cent (increments of 100mA, rounded down otherwise) M84 S15 ; Set idle timeout ;M915 X S10 R1 ; Enable logging of stallGuard for X axes ;M915 Y S15 R1 ; Enable logging of stallGuard for Y axes ;M915 Z S1 R1 ; Enable logging of stallGuard for Z axes ;M915 P3 S1 R1 ; Enable logging of stallGuard for E axes ; Axis Limits M208 X-32.5 Y-1.5 Z0 S1 ; Set axis minima M208 X220 Y216 Z220 S0 ; Set axis maxima ; Endstops M574 X1 Y1 Z1 S0 ; Set active low endstop at low end on X, Y and Z ; Z-Probe M558 P0 H2 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed M557 X5:215 Y20:195 S42:35 ; Define mesh grid ; Heaters M305 P0 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for bed heater M305 P1 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for hotent MK8 M143 H0 S120 ; Set temperature limit for bed heater to 120C M143 H1 S275 ; Set temperature limit for hotend to 275C M307 H0 A177.2 C871.3 D2.8 S1.00 V13.4 B0 ; Use PID on bed heater - tuned@60°C M307 H1 A744.4 C223.7 D6.5 S1.00 V13.5 B0 ; Use PID on hotent - tuned@220°C M305 P101 S"TMC" ; Virtual heater for TMC driver over-temperature state ; CPU Temperature calibration M912 P0 S-4.25 ; Fans M106 P0 S0 I0 F100 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P2 S0.75 I0 F500 H0 T25 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Tools M563 P0 S"Hotend" D0 H1 ; 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 0°C ; Automatic power saving M911 S12 R13 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss ; Custom settings ;M671 X3:217:217 Y108:3:213 P0.5 ; Adjusting screws for bed, thread pitch 0.5mm M404 N1.75 D0.4 ; Filament width and nozzle diameter M376 H10 ; Set bed compensation to taper off over 10mm M207 S3.5 F1920 Z0.0 ; Firmware retract settings ; Miscellaneous T0 ; Select first tool
So, you might need to adjust some of the value to your specific machine:
- Axis limits (they might differ a little)
M307
commands are specific to my exact instances of heaters/thermistors so you should redo PID autotuning- Note that my system now runs at 13.6V (turned on the potentionmeter of the stock Anet PSU to get to this value - it would even go up to 15V but that would fry my fans) - that also includes the thresholds of
M911
power-failure-command - I have commented out some of the stuff that is specific on my machine like adjustment screws (I use 3-point levelling) or stallGuard
If you have any question/issues just feel free to ask.
-
There is also data from this page: https://3dprint.wiki/reprap/anet/a8/steppermotor
The SL42STH40-1684A motor specs are:Step Angle: 1.8° Step Angle Accuracy: ±5% (full step, no load) Voltage: 2.8V Current per phase: 1.68A Resistance per phase: 1.65Ω Resistance accuracy: ±10% Inductance per phase: 3.2mH Inductance accuracy: ±20% Holding torque: 3.6 Kg·cm (0.4 N·m) Moment of inertia: 54 g/cm^2 Weight: 0.28 kg Orientation torque: 150 g/cm Length: 40 mm Temperature rise: 80°C max (rated current, 2 phases on) Ambient temperature: -20°C ~ +50°C Insulation resistance: 100MΩ min, 500VDC Shaft radial play: 0.02 mm max (450g load) Shaft axial play: 0.08 mm max (450g load) Max. radial force: 28N (20mm from the flange) Max. axial force: 10N
But I am not sure these are correct, and in the end there is no guarantee that the drives you have on your Anet are really these.
-
@obeliks This info is outdated. Anet used to use 1.7A steppers but switched to the 0.9A steppers "because they not get so hot" - which probably means they just get them cheaper.
-
@wilriker Thanks for the config file, unfortunately only had time today to finish the upgrade of the Duet3D in the anet A8. I already tuned the heaters but I am getting an error saying that I have no home files when I try to home the axis, do you know why is this happening?
-
@black-canary RepRapFirmware works a little different than most other firmwares. Also for homing. It uses 4 different files to home depending on what you want to do. They belong into the
/sys
folder on the SD card (also accessible viaSettings -> System Editor
in DWC). They should have been part of the configuration that you get from https://configurator.reprapfirmware.org. Anyway I'll include mine below (filename is always on the first line):; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool on Sat Apr 28 2018 20:07:26 GMT+0200 (CEST) G91 ; relative positioning G1 Z2 F3000 S2 ; lift Z relative to current position G1 S1 X-260 F3600 ; move quickly to X axis endstop and stop there (first pass) G1 X5 F3000 ; go back a few mm G1 S1 X-260 F360 ; move slowly to X axis endstop once more (second pass) G1 Z-2 F3000 S2 ; lower Z again G90 ; absolute positioning
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool on Sat Apr 28 2018 20:07:26 GMT+0200 (CEST) G91 ; relative positioning G1 Z2 F3000 S2 ; lift Z relative to current position G1 S1 Y-250 F1800 ; move quickly to Y axis endstop and stop there (first pass) G1 Y5 F3000 ; go back a few mm G1 S1 Y-250 F360 ; move slowly to Y axis endstop once more (second pass) G1 Z-2 F3000 S2 ; lower Z again G90 ; absolute positioning
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool on Sat Apr 28 2018 20:07:26 GMT+0200 (CEST) G91 ; relative positioning G1 S1 Z-260 F900 ; move quickly to Z axis endstop and stop there (first pass) G1 Z2 F3000 ; go back a few mm G1 S1 Z-260 F180 ; move slowly to Z axis endstop once more (second pass) G90 ; absolute positioning
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool on Sat Apr 28 2018 20:07:26 GMT+0200 (CEST) G91 ; relative positioning G1 Z2 F3000 S2 ; lift Z relative to current position G1 S1 X-260 Y-250 F3600 ; move quickly to X and Y axis endstops and stop there (first pass) G1 X5 Y5 F3000 ; go back a few mm G1 S1 X-260 Y-250 F360 ; move slowly to X and Y axis endstops once more (second pass) G1 S1 Z-260 F900 ; move quickly to Z axis endstop and stop there (first pass) G1 Z2 F3000 ; go back a few mm G1 S1 Z-260 F180 ; move slowly to Z axis endstop once more (second pass) G90 ; absolute positioning
-
@wilriker Ah, OK. Mine are probably the old ones. I tried to use 500mA, ad the printer was not moving. So that means they must be 1,68A version. And they get to ~50°C with 23°C ambient temperature.
-
@obeliks It is quite easy to tell: the new ones are marked as
42SHDC3025-24B
on the back (probably easiest to spot on the extruder motor). The old one have either another or no model number on them. -
Yup. Exactly.
-
@wilriker Thanks for posting your config.g ! Made setting up my A8 a lot faster Just one question: how did you come up with the M569 C values?
I just tried to do some investigating in the trinamic driver docs, but without an electronics degree its quite cryptic to me
-
@mortn said in Anet A8 Stepper motor question:
@wilriker Thanks for posting your config.g ! Made setting up my A8 a lot faster Just one question: how did you come up with the M569 C values?
I just tried to do some investigating in the trinamic driver docs, but without an electronics degree its quite cryptic to me
It all came together here https://forum.duet3d.com/topic/5392/does-m906-set-rms-or-peak-current/19
Basically this is a bitmap of flags where the
TOFF
part has the highest influence on noise at standstill. At the end of the linked thread there is also a list of values for all 16TOFF
variants. Not sure if the link is also in that thread but I wrote a little tool to create these numbers:
https://github.com/wilriker/chopconf-generator (under releases are pre-compiled versions)In one of the next RRF versions @dc42 will implement a dedicated parameter to set
TOFF
without having to use these cryptic bitmap-integer in decimal notation (hex notation does no longer work).P.S.: the value for
TOFF
is motor specific - and note that I did not write model but motor, i.e. even if you have the same model your motor is different and may need differentTOFF
value to be most silent. So please test various values. -
@wilriker Cheers man. Like I told you I'm really beginer in this, I did not even created the files on the website you mentioned because I thought I just needed the config.g file, It's working now, I feel that I can make it work better because It doesn't look 100% good, but I will eventually get it to the point. Just another question by the way, Imagine that I want to now use the board in another printer I go to the website and just put the details of the printer, but I got a bit confused in the motors settings, how should I know what is the, max speed and the Steps per mm and every other information? in the data sheet of the motor? (if it has one how about if it doesn't?)
-
@black-canary said in Anet A8 Stepper motor question:
[...] how should I know what is the, max speed and the Steps per mm and every other information? in the data sheet of the motor? (if it has one how about if it doesn't?)
This is a tough one. If this is e.g. a totally new printer build from scratch you'd have to start at reasonable defaults and try from there.
Here is how I did it: before switching my A8 to Duet I was using Marlin on the stock board. So I looked at Marlin's values for these settings and just took them exactly over to the configurator for RRF. Except that I forgotM204 P400 T1000 ; Lower accelerations when printing though
which led to... say... a surprisingly rough first print. From there I adjusted the values partly by trial-and-error and partly by using the EMF calculator at https://reprapfirmware.org/. Take the value of "speed at which torque starts to drop (low slip angle)" as the new maximum speed.
-
@wilriker Thanks again, at this moment it's not to build one from scratch it's actually to upgrade one printer. So in this case this printer uses marlin, could I just literally drag and drop the config files? Or my only option is to copy the values to the https://configurator.reprapfirmware.org and then use those files? (Sorry if i'm bothering you but I really like 3D printing and my only regretting is knowing just a little)
-
@black-canary No worries, we all started some point in time. And this forum was also a great help to me in gaining knowledge (besides hours of videos at YouTube ).
You cannot use the files used with Marlin. RRF would not understand them. It is actually your second idea how it is done: get the values from the appropriate
Configuration.h
orConfiguration_adv.h
in Marlin and enter them in RRF Configurator. This will then create all the necessary files in the appropriate format.The biggest difference of RRF compared to Marlin is that you will (probably) never compile RRF yourself. Everything in RRF is configured via GCode - and it can be done at literally any point in time. So if e.g. you decide in the middle of a print that your acceleration is to high you can just reduce it live with the appropriate GCode command (btw. something I already did more than once).
-
Good man @wilriker, Thanks a lot!