NEMA 23 Drama
-
I use NEMA 23's with my Duet3 board with no issues. I also think you should check you wiring. My method with NEMAs is to disconnect the motor , then short two of the wires together. If they are on the same winding, the shaft will be hard to turn. If the shaft still turns easily, they are on different windings. Test a few combos to convince yourself you've got one pair of wires for each winding. Now you can connect them to the duet connector with confidence. If the motor turns in the wrong direction, you can adjust that in your M569 command.
Also, double check your M906 command (max motor currents). Be sure to put in your current in milliamps, probably something around 2200 for a NEMA 23 (derated to 80% of max current).
And congratulations on making it to the age of "do what you want". Lot's of us old coots here that also don't have anything better to do.
-
Can you please post the make and model of the NEMA23 motors, or photos of the labels (or both) ?
And also details of the "simple" drive that they do work with - again make and model, photos of any wiring diagrams or terminal layouts??
There are some types of motor that could work with an external drive of an appropriate type, but not be compatible with the Duet motor drivers.
-
I have checked all the motors for paired windings by checking resistance and by shorting them and spinning the shaft. I am 100% sure that the wiring is correct.
The 2 motors I plan on using are Intelligent Motion Systems M-2231-2.4S
And... No luck!I also tried an Oriental Motors C0145-9212K... No luck!
And an Oriental Motors PK268-E2.0A... No luck!All these motors work correctly with an external drive.
I have to run out and meet with a client for few hours. When i get back to the shop I'll share the setting that I have tried in the RRF Config tool.
Thanks again to all of you for "pitching in"!
-
@joaquin_suave
OK, the motors don't look to be anything particularly special.
The specifications are not much different from some I use.Info here:
https://www.motionsolutions.com/store/pc/viewPrd.asp?idproduct=1209Presumably you are using Red & Red/White as one winding and Green & Green/White as the other?
They are fairly high inductance, so will need moderate instantaneous speed change and acceleration settings, at least to start with.
-
@joaquin_suave Is there any chance you have one of the windings reversed at the driver connections?
-
Here is my M122 info:
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (standalone mode)
Board ID: 08DJM-9P63L-DJ3S0-7JTD0-3S46L-TUKZ8
Used output buffers: 3 of 40 (12 max)
=== RTOS ===
Static ram: 150904
Dynamic ram: 91692 of which 0 recycled
Never used RAM 111596, free system stack 193 words
Tasks: NETWORK(ready,30.3%,270) ETHERNET(notifyWait,0.1%,117) HEAT(notifyWait,0.0%,325) Move(notifyWait,0.0%,284) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,333) TMC(notifyWait,7.7%,59) MAIN(running,61.8%,1096) IDLE(ready,0.0%,29), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 00:09:16 ago, cause: software
Last software reset at 2022-03-17 13:47, reason: User, GCodes spinning, available RAM 111596, slot 0
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Step timer max interval 148
MCU temperature: min 34.0, current 36.9, max 36.9
Supply voltage: min 36.0, current 36.0, max 36.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Driver 0: position 730913, standstill, reads 19469, writes 14 timeouts 0, SG min/max 0/0
Driver 1: position 0, standstill, reads 19456, writes 27 timeouts 0, SG min/max 0/179
Driver 2: position 0, standstill, reads 19469, writes 14 timeouts 0, SG min/max 0/0
Driver 3: position 0, standstill, reads 19469, writes 14 timeouts 0, SG min/max 0/0
Driver 4: position 0, standstill, reads 19472, writes 11 timeouts 0, SG min/max 0/0
Driver 5: position 0, standstill, reads 19473, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2022-03-17 13:56:29
Slowest loop: 6.84ms; fastest: 0.05ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 2.1ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, maxWait 219077ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 21, completed moves 21, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 21], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
SBC is idle in state(s) 0
Daemon is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== CAN ===
Messages queued 5011, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 49 (min 49), ts 2785/0/0
Tx timeouts 0,0,2784,0,0,2225 last cancelled message type 30 dest 127=== Network ===
Slowest loop: 4.60ms; fastest: 0.02ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
HTTP sessions: 1 of 8- Ethernet -
State: active
Error counts: 0 0 1 0 0
Socket states: 5 2 2 2 2 0 0 0
========
Help me guys! I am more confused than ever! - Ethernet -
-
m203
Max speeds (mm/min): X: 12000.0, Y: 12000.0, Z: 180.0, E: 1200.0, min. speed 30.00
3/17/2022, 2:52:11 PM m106
3/17/2022, 1:58:43 PM m98 p
Error: M98: non-empty string expected=========
When i am trying to make changes, i go into the RRF config tool and create a new zip file the download it in "my printer". It goes through the process then tells me that only one file has changed... I presumed that it was the config.g, but don't know for sure.Am I missing something... I'm starting to feel really dumb here!
-
I think everything you put into the configurator ends up in one file - config.g. Config.g is in the sys directory of the downloaded file set. It's a text file that you can edit yourself with any text editor. It is usually not too complicated and has some good comments in it. You can use the gcode disctionary in the documentation (https://docs.duet3d.com/en/User_manual/Reference/Gcodes) to look up what each of the gcodes are doing, and you'll quickly see how they map to the things you put into the configurator. You'll pretty quickly never go back to the beginning with the configurator again.
If you are connecting to the duet board via the web interface (are you?), you'll see a link to the "System" page next to the gear icon on the left side of the page. When you select that link you'll see a list of those same files that you installed. You can right-click on any of them to edit, and you'll see config.g right there.
One warning - if you do edit those files right on the system, you should definitely keep a copy somewhere off the duet board. You can download a file after you've changed it. My personal; preference is to always edit a copy of any file on my PC and upload it to the duet board. That way, I know I have a backup copy.
-
@joaquin_suave said in NEMA 23 Drama:
i go into the RRF config tool and create a new zip file the download it in "my printer".
Once you have everything in the printer the first time, I'd suggest just modifying the config in place via the web editor.
The config tools does a good job of a general setup but then you really need to do the "fine tuning" for your specific machine by hand.
I actually save the entire config for each machine on another PC (in fact on network storage) and edit files there, then drop the updated file(s) back on the machine via the DWC web page.
That way if anything goes wrong during an update, I can just drop the whole lot back on a new SD card setup via DWC and it's working again straight away, with no messing about.
-
Here is my latest test and still no luck:
; Configuration file for Duet 3 (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.10 on Fri Mar 18 2022 10:57:30 GMT-0700 (Pacific Daylight Time); General preferences
M575 P1 S1 B57600 ; enable support for PanelDue
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer name; Network
M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0.1 S1 ; physical drive 0.1 goes forwards
M569 P0.2 S1 ; physical drive 0.2 goes forwards
M569 P0.3 S1 ; physical drive 0.3 goes forwards
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M584 X0.1 Y0.2 Z0.3 E0.0 ; set drive mapping
M350 X1 I0 ; configure microstepping without interpolation
M350 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X200.00 Y1.50 Z266.00 E100.00 ; set steps per mm
M566 X6000.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X30000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
M906 X2000 Y800 Z800 E800 ; set motor currents (mA)
M84 S0 ; Disable motor idle current reduction; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X416 Y416 Z400 S0 ; set axis maxima; Endstops
M574 X1 S1 P"null" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin null
M574 Y1 S1 P"null" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin null; Z-Probe
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:215 Y15:195 S20 ; define mesh grid; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"out8" Q500 ; create fan 0 on pin out8 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out7" Q500 ; create fan 1 on pin out7 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 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 are not defined
-
@joaquin_suave
That config makes no sense?
It has X with 200 steps per mm, but Y with 1.5 steps per millimetre!!Are all the motors the same - and are you connecting the NEMA23 motors with two reds as one winding and two green as the other?
-
Oops My bad!
I am only testing the motor (nema 23) with the X drive and have set it so that when I manually move 1 mm it should turn the shaft 1 revolution. I figured that once i have achieved that I can tune the X & Y drives correctly.
Z and E are nema 17's and I don't seem to have any issues with them.
Any test setting you guys can suggest will be GREATLY appreciated!!!!
-
So your motor is 200 full steps per revolution. But you have microstepping set to 16, which means that "steps" to the FW are 16 * 200 = 3200 steps per revolution. Instructing it to turn 1mm should get you 200microsteps, or 1/16 revolution.
Does not explain why your NEMA 17's are behaving properly (maybe they don't support microstepping?)
-
@joaquin_suave said in NEMA 23 Drama:
M584 X0.1 Y0.2 Z0.3 E0.0 ; set drive mapping
M350 X1 I0 ; configure microstepping without interpolation
M350 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X200.00 Y1.50 Z266.00 E100.00 ; set steps per mm
M566 X6000.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X30000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
M906 X2000 Y800 Z800 E800 ; set motor currents (mA)
M84 S0 ; Disable motor idle current reductionI am only trying to configure X for right now (the X & Y motors are identical).
Z is a nema 17 with a leadscrew and is moving correctly as for as I can tell ( without using a test indicator), E is a nema 17 and moves the filament close to the correct length.
Wiring:
A2: Green
A1: Green/ White
B2: Red
B1: Red/ White -
I GOT IT!!!!!
I didn't have enough current for the motors! Now I will start fine tuning!
Thank all you SO MUCH!
-
-
@joaquin_suave I was going to suggest that your jerk/maximum instantaneous speed of X6000 may be a problem. 6000mm/min is 100mm/s; larger motors may have a problem starting at this speed and require a lot of current to do it. Any move request at under 100mm/s would immediately be trying to run at that speed. High jerk is generally considered bad; better to have low jerk and higher acceleration, though you've also set that pretty high too. Minimum jerk should be 5mm/s, or 300mm/m, and a sensible value is 600 to 900mm/m.
I was also going to ask how you were actually testing the motor; just pressing the jog buttons in DWC, or sending a gcode command with a feedrate? Note you can change the feedrate of the DWC jog buttons in Settings > Machine specific > General > Machine specific > Feedrate for move buttons. See https://docs.duet3d.com/User_manual/Reference/Duet_Web_Control_Manual#general-tab-1
Ian
-
Well I spoke too quickly!
I did one test run @ 16x : 150 steps/ sec. : 15 change: 200mm/ sec. : 500 Accl :
5000 current... And the motor shaft rotated without stalling.Since then I have done +/- 60 tests WITH NO LUCK (in every imaginable configuration).
I disconnected the motor from the board and wired it up to a simple driver i have and it works just fine!?!?
Can anyone give a starting point to configure the drives for these motors?
Intelligent Motion Systems M-2231-2.4S (nema 23)
And I desire to achieve this travel:
79.8mm = 1 rotation of the pinion on the rack / the timing belt gear reduction of 3.75:1 = 21.28mm for 1 revolution of the motor shaft.Or at 1X (200 steps) = 9.398 steps/ mm.
Or at 16X (3200 steps) = 150.368 steps/ mm.Could there be a possibility that i am just asking too much from the drivers?
Could there be a possibility that i "fried" the drivers?
Could there be a possibility that i can wire in "add-on" drivers?In the worst case scenario, I could tear the machine apart and replace the rack/ pinion w/reduction to a regular belt drive. If so, what is a "comfortable" mm to shaft ratio?
I am not trying to break any "speed records", but rather trying to repurpose a really nicely made (expensive) piece of hardware, learn about controls, 3D printing.
I can't say that I have been very successful so far! -
-
@joaquin_suave said in NEMA 23 Drama:
ntelligent Motion Systems M-2231-2.4S
Do you have the specs for the motor? Googling comes up with several and I don't know which matches yours.
-
Holding Torque: 2.39 oz-in (169 N-cm)
Phase Current: 2400 ma
Leads: 4
Phase resistance: 1.5 Ohms
Phase Inductance: 5.4 mH
Detent Torque 9.7 oz-in (6.9 N_cm)
Rotor Inertia: .0065 oz-in-sec2 (.46 kg-cm2)
Length: 2.99" (7.6 cm)
Weight: 35.3 oz (1 kg)Thanks again for your help!
Here are a couple of more pictures:
-
@joaquin_suave excuse me if I overlook that someone already mentioned it:
In this environment, I would ground all stepper casings with a star formed grounding to protect against static charging.