Thermwood C53 5x10 Retrofit

All things related to the Centroid Acorn CNC Controller

Moderator: cnckeith

kentonsj
Posts: 47
Joined: Wed Apr 18, 2018 3:31 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: 38D2694DE4D2-0423180849
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: SK, Canada

Thermwood C53 5x10 Retrofit

Post by kentonsj »

I am new to this forum and Centroid. I have a 3'x5' home built CNC router running Mach3. I recently purchased the frame of a Thermwood C53 5x10 CNC. This CNC was from 1997 and the controller was obsolete. The owner had already removed all of the electronics and scrapped them. I will be retrofitting it with DMM servos and DYN4 drivers. DMM has helped me size the replacement motors. I'm planning on a 4HP (2.5kW) water cooled ER20 spindle for now with provisions to upgrade to a ATC spindle in the future. This machine originally had a 10HP spindle with a massive 3600RPM AC induction motor. I suspect the motor and spindle combo was 500lbs. That motor and spindle was also removed and was not part of what I purchased. The original machine was 480V, 3 phase. I will be using 240V, single phase power for the new machine. So at the risk of this becoming a long post, I would like to propose what I'm planning and some of the questions I have.

Here's a summary of what I have tentatively settled on for the major components:
Centroid Acorn Controller
DMM DYNA 4 AC Servo motors
2.5kW water cooled spindle with VFD

My questions deal with the homing of the slaved Y axis gantry. As far as I can tell, there is only one home switch on the Thermwood gantry from factory. The original servos where almost certainly equipped with absolute encoders. Does anyone know how the Thermwood handled the gantry squaring? The gantry is incredibly rigid. I can turn one Y axis pulley with my fingertips and I can see the opposite side ballscrew follow immediately. Was the original squareness of the gantry mechanically adjusted and gantry squareness is just always assured, or did Thermwood use the absolute encoders to have the servos make squareness corrections? I have seen Marty's video with the DMM DYN2 servos home on the Z pulse from the servo encoder. I'm thinking I would like to home this machine the same way to take advantage of the absolute encoders and the high level of accuracy that comes with that. The way I see it working would be to decouple the two Y axis motors to independent axis. Move both home together to a limit switch on one side and when the limit switch is active the gantry would slowly move off the limit switch until the first Z pulse from the encoder is present. It would then write that axis' position to the PLC. The gantry would have to keep moving together until the next pulse is read and that axis' position would also write to the PLC. Then I would just do some math in the PLC program to have the gantry move one of the axis motors independently until the gantry is square. Because the encoder would mark the exact position on the ballscrew everytime, I would just apply my measured squareness offset to make the gantry perfect. The motors would work together after this point. This will require 3 inputs, one for the limit switch and 2 for the Z pulses. Does this make sense? Would it be possible with the Acorn controller?

Thanks for the feedback. Looking forward to getting this machine running again.
Attachments
IMG_20180302_085559.jpg
cnckeith
Posts: 7325
Joined: Wed Mar 03, 2010 4:23 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: Yes
Oak CNC controller: Yes
CNC Control System Serial Number: none
DC3IOB: Yes
CNC11: Yes
CPU10 or CPU7: Yes
Contact:

Re: Thermwood C53 5x10 Retrofit

Post by cnckeith »

nice looking machine. wish i had that one!
yes, we have auto gantry squaring working on two routers at the moment in beta test mode with the Acorn CNC12 software.
to auto square a gantry it involves a custom home program that uses two switches on each side of the gantry to square it up. works great.
when the next version of cnc12 is released (v4.12) you can install the custom auto square home program and tweak it to your needs.
Need support? READ THIS POST first. http://centroidcncforum.com/viewtopic.php?f=60&t=1043
All Acorn Documentation is located here: viewtopic.php?f=60&t=3397
Answers to common questions: viewforum.php?f=63
and here viewforum.php?f=61
Gear we use but don't sell. https://www.centroidcnc.com/centroid_di ... _gear.html
cnckeith
Posts: 7325
Joined: Wed Mar 03, 2010 4:23 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: Yes
Oak CNC controller: Yes
CNC Control System Serial Number: none
DC3IOB: Yes
CNC11: Yes
CPU10 or CPU7: Yes
Contact:

Re: Thermwood C53 5x10 Retrofit

Post by cnckeith »

here is a sample Gantry Auto square cncm.hom home program that is currently running on a large (14') CNC router with a paired set of servo motors on the gantry axis using cnc12 v4.12

;------------------------------------------------------------------------------
; Filename: cncm.hom
; Description: Homing with paired axes support. Axis label neutral.
; Notes: Assumes the paired axis is the 4th axis. The "master" axis can be either
; of the first first two axes. Support may be added at some point in the
; future for the 3rd axis and/or paired configurations not including the
; 4th but will not be addressed at this time.
;
; Requires: Separate home inputs for axis in a paired configuration.
;
; Parameters 964-967 be set to correctly configure the axes pair as
; desired. This is handled by the Wizard so the Wizard must be run
; at least once prior to using this macro.
;
;
;------------------------------------------------------------------------------

;SV_MACHINE_PARAMETER_967 = Axis Pairing Axis4 if = 2 then master is axis 2
; If -2 then paired axis is reversed relative to master

;Variables used:
#100 = 0; Time to display M225 message in seconds. 0 = Wait for Cycle Start
#101 = 3; Time to display temporary messages
;#151 = Master to 4th axis
;#102 = Ascii value of current axis label
#103 = 0 ;1 = Paired axis configuration error.
#104 = 0 ; = 1 = Master tripped first
#105 = 0 ; = 1 = Master tripped first
#111 = 0 ;DEFINE AXIS_1_LIMIT_ASSIGNED>
#112 = 0 ;DEFINE AXIS_2_LIMIT_ASSIGNED>
#113 = 0 ;DEFINE AXIS_3_LIMIT_ASSIGNED>
#114 = 0 ;DEFINE AXIS_4_LIMIT_ASSIGNED>
#115 = 0 ;DEFINE <AXIS_LIMIT_TRIPPED>

;#20101-20108 - labels for axes 1-8 M26 /$#20101
; N = 78, A = 65, B = 66, C = 67, U = 85, V = 86, W = 87, X = 88, Y = 89, Z = 90

;#21301-#21308 - Home axes 1-8
;#21401-#21408 + Home axes 1-8

;Variable name substitution to make code more readable
;DEFINE <macro_name> substitution_text

;Variables used:
;DEFINE <MESSAGE_DISPLAY_TIME> #100
DEFINE <AXIS_1_LIMIT_ASSIGNED> #111
DEFINE <AXIS_2_LIMIT_ASSIGNED> #112
DEFINE <AXIS_3_LIMIT_ASSIGNED> #113
DEFINE <AXIS_4_LIMIT_ASSIGNED> #114
DEFINE <HOME_SWITCH_TRIPPED> #115
DEFINE <MASTER_AXIS> #151
DEFINE <AXIS_1_LABEL> #20101
DEFINE <AXIS_2_LABEL> #20102
DEFINE <AXIS_3_LABEL> #20103
DEFINE <AXIS_4_LABEL> #20104
DEFINE <MASTER_TRIPPED_FIRST> #104
DEFINE <SLAVE_TRIPPED_FIRST> #105
DEFINE <AXIS_1_HOME_PLUS> #21401
DEFINE <AXIS_2_HOME_PLUS> #21402
DEFINE <AXIS_3_HOME_PLUS> #21403
DEFINE <AXIS_4_HOME_PLUS> #21404
DEFINE <AXIS_1_HOME_MINUS> #21301
DEFINE <AXIS_2_HOME_MINUS> #21302
DEFINE <AXIS_3_HOME_MINUS> #21303
DEFINE <AXIS_4_HOME_MINUS> #21304
DEFINE <CONFIGURATION_ERROR> #103
DEFINE <MASTER_OR_SLAVE_TRIP> 70010
DEFINE <AXIS_1_HOME_TRIPPED> 50000


N10 ;Skip if searching or graphing
IF #50001 ;Force lookahead to stop processing
IF #4201 || #4202 THEN GOTO 1000 ;Skip when graphing or searching
IF #50001 ;Force lookahead to stop processing

N20 ;Get pairing configuration
IF ABS[#9967] == 1 THEN <MASTER_AXIS> = 1 ;First axis is "master" axis
IF ABS[#9967] == 2 THEN <MASTER_AXIS> = 2 ;Second axis is "master" axis

IF #50001 ;Stop parsing
G10 P967 R2
G10 P965 R0 ;Make sure axes are paired at start of homing
IF #50001 ;Stop parsing

N50 ;Confirm axes have only 1 home input set

IF #50001 ;Stop parsing
IF <AXIS_1_HOME_PLUS> && <AXIS_1_HOME_MINUS> THEN M224 #100 "Home switches set in both directions on %c axis\n#)Please select only 1 direction for homing\n#)Enter 1 and press Cycle Start to continue configuration check.\n#)Press Cycle Cancel to exit" <AXIS_1_LABEL>
IF [<AXIS_1_HOME_PLUS> && <AXIS_1_HOME_MINUS>] THEN <CONFIGURATION_ERROR> = 1
IF #50001 ;Stop parsing

IF <AXIS_2_HOME_PLUS> && <AXIS_2_HOME_MINUS> THEN M224 #100 "Home switches set in both directions on %c axis\n#)Please select only 1 direction for homing\n#)Enter 1 and press Cycle Start to continue configuration check.\n#)Press Cycle Cancel to exit" <AXIS_2_LABEL>
IF [<AXIS_2_HOME_PLUS> && <AXIS_2_HOME_MINUS>] THEN <CONFIGURATION_ERROR> = 1
IF #50001 ;Stop parsing

IF <AXIS_3_HOME_PLUS> && <AXIS_3_HOME_MINUS> THEN M224 #100 "Home switches set in both directions on %c axis\n#)Please select only 1 direction for homing\n#)Enter 1 and press Cycle Start to continue configuration check.\n#)Press Cycle Cancel to exit" <AXIS_3_LABEL>
IF [<AXIS_3_HOME_PLUS> && <AXIS_3_HOME_MINUS>] THEN <CONFIGURATION_ERROR> = 1
IF #50001 ;Stop parsing ;Stop parsing

IF <AXIS_4_HOME_PLUS> && <AXIS_4_HOME_MINUS> THEN M224 #100 "Home switches set in both directions on %c axis\n#)Please select only 1 direction for homing\n#)Enter 1 and press Cycle Start to continue configuration check.\n#)Press Cycle Cancel to exit" <AXIS_4_LABEL>
IF [<AXIS_4_HOME_PLUS> && <AXIS_4_HOME_MINUS>] THEN <CONFIGURATION_ERROR> = 1
IF #50001 ;Stop parsing

;Check for tripped switch before starting homing
IF <AXIS_1_HOME_PLUS> != 0 THEN <AXIS_1_LIMIT_ASSIGNED> = 50000 + <AXIS_1_HOME_PLUS>
IF <AXIS_1_HOME_MINUS> != 0 THEN <AXIS_1_LIMIT_ASSIGNED> = 50000 + <AXIS_1_HOME_MINUS>

IF <AXIS_2_HOME_PLUS> != 0 THEN <AXIS_2_LIMIT_ASSIGNED> = 50000 + <AXIS_2_HOME_PLUS>
IF <AXIS_2_HOME_MINUS> != 0 THEN <AXIS_2_LIMIT_ASSIGNED> = 50000 + <AXIS_2_HOME_MINUS>

IF <AXIS_3_HOME_PLUS> != 0 THEN <AXIS_3_LIMIT_ASSIGNED> = 50000 + <AXIS_3_HOME_PLUS>
IF <AXIS_3_HOME_MINUS> != 0 THEN <AXIS_3_LIMIT_ASSIGNED> = 50000 + <AXIS_3_HOME_MINUS>

IF <AXIS_4_HOME_PLUS> != 0 THEN <AXIS_4_LIMIT_ASSIGNED> = 50000 + <AXIS_4_HOME_PLUS>
IF <AXIS_4_HOME_MINUS> != 0 THEN <AXIS_4_LIMIT_ASSIGNED> = 50000 + <AXIS_4_HOME_MINUS>

;Check for tripped switch
IF <AXIS_1_LIMIT_ASSIGNED> && !#[<AXIS_1_LIMIT_ASSIGNED>] THEN M225 #100 "HOME TRIPPED"
IF <AXIS_1_LIMIT_ASSIGNED> && !#[<AXIS_1_LIMIT_ASSIGNED>] THEN <HOME_SWITCH_TRIPPED> = 1

IF <AXIS_2_LIMIT_ASSIGNED> && !#[<AXIS_2_LIMIT_ASSIGNED>] THEN M225 #100 "HOME TRIPPED"
IF <AXIS_2_LIMIT_ASSIGNED> && !#[<AXIS_2_LIMIT_ASSIGNED>] THEN <HOME_SWITCH_TRIPPED> = 1

IF <AXIS_3_LIMIT_ASSIGNED> && !#[<AXIS_3_LIMIT_ASSIGNED>] THEN M225 #100 "HOME TRIPPED"
IF <AXIS_3_LIMIT_ASSIGNED> && !#[<AXIS_3_LIMIT_ASSIGNED>] THEN <HOME_SWITCH_TRIPPED> = 1

IF <AXIS_4_LIMIT_ASSIGNED> && !#[<AXIS_4_LIMIT_ASSIGNED>] THEN M225 #100 "HOME TRIPPED"
IF <AXIS_4_LIMIT_ASSIGNED> && !#[<AXIS_4_LIMIT_ASSIGNED>] THEN <HOME_SWITCH_TRIPPED> = 1

IF <CONFIGURATION_ERROR> || <HOME_SWITCH_TRIPPED> THEN GOTO 50




;Home 3rd axis Z Axis
N100
IF <AXIS_3_HOME_PLUS> THEN M92 /$<AXIS_3_LABEL> L1 ;Move to 3rd axis + to limit switch, back off until it clears.
IF <AXIS_3_HOME_MINUS> THEN M91 /$<AXIS_3_LABEL> L1 ;Move to 3rd axis - to limit switch, back off until it clears.
M26 /$<AXIS_3_LABEL> ;Set Z home here


;Home independent axis (not part of a pair)
N200
IF <AXIS_1_HOME_PLUS> && [<MASTER_AXIS> != 1] THEN M92 /$<AXIS_1_LABEL> L1 ;Move to 1st axis + to home switch, back off until it clears.
IF <AXIS_1_HOME_MINUS> && [<MASTER_AXIS> != 1] THEN M91 /$<AXIS_1_LABEL> L1 ;Move to 1st axis - to home switch, back off until it clears.
IF <AXIS_2_HOME_PLUS> && [<MASTER_AXIS> != 2] THEN M92 /$<AXIS_2_LABEL> L1 ;Move to 2nd axis + to home switch, back off until it clears.
IF <AXIS_2_HOME_MINUS> && [<MASTER_AXIS> != 2] THEN M91 /$<AXIS_2_LABEL> L1 ;Move to 2nd axis - to home switch, back off until it clears.
IF [<MASTER_AXIS> != 1] THEN M26 /$<AXIS_1_LABEL>
IF [<MASTER_AXIS> != 2] THEN M26 /$<AXIS_2_LABEL>



;Home paired axes
N300
;----------------Move both axes in a pair until either inp1 or inp2 opens (<MASTER_OR_SLAVE_TRIP> - MEM10 set)------------------
IF <AXIS_1_HOME_PLUS> && [<MASTER_AXIS> == 1] THEN M106 /$<AXIS_1_LABEL> P-<MASTER_OR_SLAVE_TRIP> F.5 ;Move axes plus until INP1 or INP2 opens
IF <AXIS_1_HOME_MINUS> && [<MASTER_AXIS> == 1] THEN M105 /$<AXIS_1_LABEL> P-<MASTER_OR_SLAVE_TRIP> F.5 ;Move axes minus until INP1 or INP2 opens
IF <AXIS_2_HOME_PLUS> && [<MASTER_AXIS> == 2] THEN M106 /$<AXIS_2_LABEL> P-<MASTER_OR_SLAVE_TRIP> F.5 ;Move axes plus until INP1 or INP2 opens
IF <AXIS_2_HOME_MINUS> && [<MASTER_AXIS> == 2] THEN M105 /$<AXIS_1_LABEL> P-<MASTER_OR_SLAVE_TRIP> F.5 ;Move axes minus until INP1 or INP2 opens
;------------------------------------------------------------------------------

;Determine whether Master or Slave tripped first, free pair.
IF !#50001 THEN <MASTER_TRIPPED_FIRST> = 1 ;Master tripped first
IF !#50002 THEN <SLAVE_TRIPPED_FIRST> = 1 ;Slave tripped first


IF <MASTER_TRIPPED_FIRST> THEN M225 #100 "Master tripped first"
IF <SLAVE_TRIPPED_FIRST> THEN M225 #101 "Slave tripped first"

G10 P965 R4 ;Unpair axes
IF #50001
#120 = #9965
;M225 #100 "Slave parameter 965 = %.0f" #120
G4 P1
IF #50001

;Clear switch by .01 in negative direction on slaved axis prevent further skewing.
IF <SLAVE_TRIPPED_FIRST> THEN G1 G91 Y -.025 F100
;M225 #100 "Slave parameter 965 = %.0f" #120
G4 P1
IF #50001

;Move master positive until switch opens
G10 P965 R0
G10 P967 R0
G4 P1
M106 /Y P1 F.5
;M225 #100 "Slave parameter 965 = %.0f" #120
G4 P1
IF #50001

;Move master axis back to square position
G1 G91 Y-.4375 f100
;M225 #100 "Slave parameter 965 = %.0f" #120
G4 P1
IF #50001

;IF <MASTER_TRIPPED_FIRST> && <SLAVE_TRIPPED_FIRST> THEN M225 #100 "Master and slave tripped at same time.\nNow what?"
;m0
;;----------- Move initially tripped axis back until switch closes -------------
;;If master tripped first - move master back until switch closes to minimize skew
;IF <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && <MASTER_TRIPPED_FIRST> THEN M105 /$<AXIS_1_LABEL> P-1 F.5 ;Move master negative until switch closes
;IF <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && <MASTER_TRIPPED_FIRST> THEN G91 $<AXIS_1_LABEL> -.005 ;Move .005 incrementally - to "set" switch
;IF <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && <MASTER_TRIPPED_FIRST> THEN G90 ;Set back to absolute
;IF <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && <MASTER_TRIPPED_FIRST> THEN M106 /$<AXIS_1_LABEL> P-1 F.5 ;Move master positive until switch closes
;IF <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && <MASTER_TRIPPED_FIRST> THEN G91 $<AXIS_1_LABEL> .005 ;Move .005 incrementally to "set" switch
;IF <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && <MASTER_TRIPPED_FIRST> THEN G90 ;Set back to absolute
;IF <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && <MASTER_TRIPPED_FIRST> THEN M105 /$<AXIS_2_LABEL> P-1 F.5 ;Move master negative until switch closes
;IF <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && <MASTER_TRIPPED_FIRST> THEN G91 $<AXIS_2_LABEL> -.005 ;Move .005 incrementally - to "set" switch
;IF <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && <MASTER_TRIPPED_FIRST> THEN G90 ;Set back to absolute
;IF <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && <MASTER_TRIPPED_FIRST> THEN M106 /$<AXIS_2_LABEL> P-1 F.5 ;Move master positive until switch closes
;IF <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && <MASTER_TRIPPED_FIRST> THEN G91 $<AXIS_2_LABEL> .005 ;Move .005 incrementally to "set" switch
;IF <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && <MASTER_TRIPPED_FIRST> THEN G90 ;Set back to absolute
;
;m0
;;If slave tripped first - move slave back until switch closes to minimize skew
;IF <AXIS_4_HOME_PLUS> && <SLAVE_TRIPPED_FIRST> THEN M105 /$<AXIS_4_LABEL> P-2 F.5 ;Move slave negative until switch closes
;IF <AXIS_4_HOME_PLUS> && <SLAVE_TRIPPED_FIRST> THEN G91 $<AXIS_4_LABEL> -.005 ;Move .005 incrementally - to "set" switch
;IF <AXIS_4_HOME_PLUS> && <SLAVE_TRIPPED_FIRST> THEN G90 ;Set back to absolute
;IF <AXIS_4_HOME_MINUS> && <SLAVE_TRIPPED_FIRST> THEN M106 /$<AXIS_4_LABEL> P-2 F.5 ;Move slave positive until switch closes
;IF <AXIS_4_HOME_MINUS> && <SLAVE_TRIPPED_FIRST> THEN G91 $<AXIS_4_LABEL> .005 ;Move .005 incrementally to "set" switch
;IF <AXIS_4_HOME_PLUS> && <SLAVE_TRIPPED_FIRST> THEN G90 ;Set back to absolute
;;------------------------------------------------------------------------------
;
;;------------------Move trailing axis until switch opens-----------------------
;;If master hit first and is back at home closed position, move slave until switch opens
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_PLUS> && #50001 THEN M106 /$<AXIS_4_LABEL> P2 F.5 ;Move slave positive until switch opens
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_MINUS> && #50001 THEN M105 /$<AXIS_4_LABEL> P2 F.5 ;Move slave negative until switch opens
;
;;If slave hit first and is back at home closed position, move master until switch opens
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && #50002 THEN M106 /$<AXIS_1_LABEL> P1 F.5 ;Move master positive until switch opens
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && #50002 THEN M105 /$<AXIS_1_LABEL> P1 F.5 ;Move master negative until switch opens
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && #50002 THEN M106 /$<AXIS_2_LABEL> P1 F.5 ;Move master positive until switch opens
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && #50002 THEN G91 w.01
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && #50002 THEN M105 /$<AXIS_2_LABEL> P1 F.5 ;Move master negative until switch opens
;;------------------------------------------------------------------------------
;M0
;;------------------Move trailing axis until switch closes to square------------
;;If master hit first and is back at home closed position, move slave until switch closes
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_PLUS> && #50001 THEN M106 /$<AXIS_4_LABEL> P-2 F.5 ;Move slave positive until switch closes
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_PLUS> && #50001 THEN G91 $<AXIS_4_LABEL> .005 ;Move .005 incrementally to "set" switch
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_PLUS> && #50001 THEN G90 ;Change back to absolute
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_MINUS> && #50001 THEN M105 /$<AXIS_4_LABEL> P-2 F.5 ;Move slave negative until switch closes
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_MINUS> && #50001 THEN G91 $<AXIS_4_LABEL> -.005 ;Move .005 incrementally to "set" switch
;IF <MASTER_TRIPPED_FIRST> && <AXIS_4_HOME_MINUS> && #50001 THEN G90 ;Change back to absolute
;
;M0
;;If slave hit first and is back at home closed position, move master until switch closes
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && #50002 THEN M105 /$<AXIS_1_LABEL> P-1 F.5 ;Move master negative until switch closes
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && #50002 THEN G91 $<AXIS_1_LABEL> -.005 ;Move .005 incrementally to "set" switch
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_PLUS> && #50002 THEN G90 ;Change back to absolute
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && #50002 THEN M106 /$<AXIS_1_LABEL> P-1 F.5 ;Move master positive until switch closes
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && #50002 THEN G91 $<AXIS_1_LABEL> .005 ;Move .005 incrementally to "set" switch
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 1 && <AXIS_1_HOME_MINUS> && #50002 THEN G90 ;Change back to absolute
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && #50002 THEN M105 /$<AXIS_2_LABEL> P-1 F.5 ;Move master negative until switch closes
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && #50002 THEN G91 $<AXIS_2_LABEL> -.005 ;Move -.005 incrementally to "set" switch
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_PLUS> && #50002 THEN G90 ;Change back to absolute
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && #50002 THEN M106 /$<AXIS_2_LABEL> P-1 F.5 ;Move master positive until switch closes
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && #50002 THEN G91 $<AXIS_2_LABEL> .005 ;Move .005 incrementally to "set" switch
;IF <SLAVE_TRIPPED_FIRST> && <MASTER_AXIS> == 2 && <AXIS_2_HOME_MINUS> && #50002 THEN G90 ;Change back to absolute

;------------------------------------------------------------------------------

;-----------------------------------Re-Slave axes------------------------------
G10 P965 R0
G10 P967 R2
G4 P1

;---------------------------------Home and Sync--------------------------------

IF [<MASTER_AXIS> == 1] THEN M26 /$<AXIS_1_LABEL>
IF [<MASTER_AXIS> == 2] THEN M26 /$<AXIS_2_LABEL>
M26 /W



N1000 ;End of Macro
Attachments
cncm.hom
(17.17 KiB) Downloaded 129 times
Need support? READ THIS POST first. http://centroidcncforum.com/viewtopic.php?f=60&t=1043
All Acorn Documentation is located here: viewtopic.php?f=60&t=3397
Answers to common questions: viewforum.php?f=63
and here viewforum.php?f=61
Gear we use but don't sell. https://www.centroidcnc.com/centroid_di ... _gear.html
kentonsj
Posts: 47
Joined: Wed Apr 18, 2018 3:31 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: 38D2694DE4D2-0423180849
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: SK, Canada

Re: Thermwood C53 5x10 Retrofit

Post by kentonsj »

Thanks for the macro! I'm anxiously waiting for my Acorn to arrive. There was a large brokerage fee with UPS coming across the border to Canada and I had to refuse the original shipment (on Centroid's recommendation). I'm hoping to get the board soon so I can start bench testing.
cnckeith
Posts: 7325
Joined: Wed Mar 03, 2010 4:23 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: Yes
Oak CNC controller: Yes
CNC Control System Serial Number: none
DC3IOB: Yes
CNC11: Yes
CPU10 or CPU7: Yes
Contact:

Re: Thermwood C53 5x10 Retrofit

Post by cnckeith »

yes, we now recommend USPS shipping instead of UPS for shipping to Canada.
Need support? READ THIS POST first. http://centroidcncforum.com/viewtopic.php?f=60&t=1043
All Acorn Documentation is located here: viewtopic.php?f=60&t=3397
Answers to common questions: viewforum.php?f=63
and here viewforum.php?f=61
Gear we use but don't sell. https://www.centroidcnc.com/centroid_di ... _gear.html
slodat
Posts: 793
Joined: Thu Apr 12, 2018 11:16 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No

Re: Thermwood C53 5x10 Retrofit

Post by slodat »

Keith - It would be nice if all of these small items went out USPS. It gets here in two days instead of seven..
cnckeith
Posts: 7325
Joined: Wed Mar 03, 2010 4:23 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: Yes
Oak CNC controller: Yes
CNC Control System Serial Number: none
DC3IOB: Yes
CNC11: Yes
CPU10 or CPU7: Yes
Contact:

Re: Thermwood C53 5x10 Retrofit

Post by cnckeith »

yes.. we have switched to USPS for canada shipping. and DHL for rest of the world.
Need support? READ THIS POST first. http://centroidcncforum.com/viewtopic.php?f=60&t=1043
All Acorn Documentation is located here: viewtopic.php?f=60&t=3397
Answers to common questions: viewforum.php?f=63
and here viewforum.php?f=61
Gear we use but don't sell. https://www.centroidcnc.com/centroid_di ... _gear.html
bphillip2
Posts: 26
Joined: Tue Jun 12, 2018 3:22 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: c8fd19c8198d-0522180927
DC3IOB: No
CNC12: Yes
CNC11: Yes
CPU10 or CPU7: No
Contact:

Re: Thermwood C53 5x10 Retrofit

Post by bphillip2 »

Thank You cnckeith
This macro looks just about right for our CNCRouterParts PRO gantry router but it stops executing when the X(Master) end trips the limit switch.

Please let me know if I am on the right track or set me straight if you can.
Thank You

Note: the post below is far more complete and detailed
cncm.hom-issue Capture.PNG
Last edited by bphillip2 on Wed Jun 13, 2018 4:52 pm, edited 1 time in total.
Bryan
bphillip2
Posts: 26
Joined: Tue Jun 12, 2018 3:22 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: c8fd19c8198d-0522180927
DC3IOB: No
CNC12: Yes
CNC11: Yes
CPU10 or CPU7: No
Contact:

Re: Thermwood C53 5x10 Retrofit

Post by bphillip2 »

Hello,

We replaced a Mach3 with the Acorn on our gantry router.
We started with the schematic and wizard provided (Thank You).

Description:
6’ x 10’ table gantry router
NEMA 34 steppers
Geckodrive 201X’s
Spindle 2.2 kW, water cooled
VFD Delta Model# VFD022M21A
X with slaved N-axis
Acorn with 4.12 software

From CNC ROUTER PARTS http://www.cncrouterparts.com/pro60120- ... p-374.html

We have all axis, the “Home All” and the spindle working fine but are having trouble squaring (homing) the 4th axis, slaved to the X-axis using the provided file "cncm.hom" from the forum at:

viewtopic.php?f=60&t=1746&p=12660#p12660

When it runs it aborts out leaving the Y axis slaved to the 4th stepper.
I am including system report, log, files and configuration screenshots

You are getting two reports one says running - all axis are working fine.
The second shows what happens when I try to square the machine using cncm.hom.

Thank You for helping us
Attachments
4th_axis Homing.zip
(2.93 MiB) Downloaded 120 times
Bryan
Centroid_Tech
Posts: 286
Joined: Thu Mar 18, 2010 2:24 pm

Re: Thermwood C53 5x10 Retrofit

Post by Centroid_Tech »

The cncm.hom file in the report that you attached has no logic in it to square the table. What's odd is that there is logic in that file that sets certain local variables but the variables aren't used anywhere in that file. I would recommend starting with the cncm.hom file that cnckeith posted which is attached.
Attachments
cncm.hom
(17.17 KiB) Downloaded 145 times
When requesting support, please ALWAYS post a current report. Find out how to take a report from your Acorn, CNC11 or CNC10 system here: https://www.youtube.com/watch?v=Ecvg0VJp1oQ.

If your question is PLC, Macro or program related, please also post a copy of the program or macro as well.

Without the above information we may not be able to help and/or reply until the required information is posted..
Post Reply