FYI, this printer was just posted on Thingiverse as "Core IDX" or as thing:6224372.
Posts made by Strider007
-
RE: CoreXY to IDEX conversion update
-
RE: CoreXY to IDEX conversion update
@Strider007 Here is a short U-Tube video of an ABS benchy
-
RE: CoreXY to IDEX conversion update
@Strider007 This project started life as a Hypercube HEVO kit with linear rails for X & Y, and was considered large format for 2019 when purchased. I used 3-mgn12 rails with H blocks to make a good CoreXY system. Multiple CoreXY designs of the time were studied and concepts were taken from many of the most popular ones; then I designed my own. The gantry XY joiners and rear pulleys are loosely based on SSchuelller’s HEVO Fusion design (thing:2839395, Mar’2018). He used a mgn15H rail for the gantry and a different carriage design while I used a mgn12 rail that I had. I also inverted his design to use single side rails on each side to mount both the Y rails and the top attachment for the Z drive linear rods. At the time Z was a double stepper drive with 12mm rods. This performed well as a CoreXY but I had already planned the CoreIDX. By fall 2020 I had found the thread which helped me define the proper kinematics to drive this system and I purchased a Duet 2 wifi.
The CoreXY motor mounts on the back of the printer came directly from Kuhnikuehnast (thing: 2975496, June 2018) but they are installed upside down. Other design influences included BLV (open front and top frame with belt adjustments in front) and HevORT, among others. PanDue 7i design is a slightly modified from Lumberjack Engineering (thing:2799628 Feb 2018).
The G3d CoreIDX printer as it is setup now uses 7- mgn12H blocks with 6 - 500mm linear rails. The frames interior dimensions are 520mm wide by 510mm deep and the height is 900mm tall. Just recently I decided to go with a triple Z drive and after multiple tries I adapted the SolidCore style design concept though I modeled it from scratch. I use 3-500mm T8-2 threaded rods and 3-500mm mgn12H rails and blocks for Z drive yielding a build height of just over 400mm. The Z drive steppers were also changed so that pillow blocks hold the weight of the build plate rather than motor couplings and motors.
This printer was designed for 2 color ABS work so a good enclosure was mandatory. I used standard cabinet hinges (HD) and Lexan to allow access to the upper sides (from belts up), the front and half of the top. There are some minor air gaps but I print ABS without layer separation using a small 350 watt heater in the bottom.
I wanted brushes for the extruders to minimize drips and eliminate the need for prime towers or ooze shields when printing dual colors. Those wipers are between the print bed and the endstop positions of the X and U carriages on the gantry so that they wipe each time a tool is called or retired. This limited my print bed to about 350mm. I settled on a 330x330x6 mm Mic6 plate with a 650 watt heater powered off the mains with a 125deg C thermal fuse in circuit to prevent thermal runaway.
The motherboard is a Duet 2 wifi with 3 separate stepper drivers circuits added individually. I drive 9 steppers but get away with 8 drivers by using the Duet’s Drive 2 dual motor connectors, (the original Z drive) to drive both Y steppers. There is 1 stepper motor each for X and U, 2 for Y, 3 for Z plus 2 extruders. The 3 external drivers are TMC2209s for the new Z drive. The Sailfin extruder design came from Threewheels design (thing: 5118899.Nov 8 2021) but was highly modified for my needs. The E3d V6 volcano extruders are driven by NEMA 14 steppers. The U carriage contains an E3d V6 heatsink that has a threaded rather than the standard mount so that shims can be used to allow precision vertical alignment with the X carriage. -
CoreXY to IDEX conversion update
It has been over a year since I posted my IDEX project and decided I needed to provide some updates. (https://forum.duet3d.com/topic/27864/coreidx-conversion-of-a-corexy-printer-into-an-idex/7?_=1685127576825) . The machine has gone through multiple minor modifications but the CoreIDX design has remained the same. Here are several additional drawings to aid in explaining the differences between CoreXY, CoreIDX and HaqXY or Dual Markforge belt arrangements. Thank you to Haggan90 and dc42 as referenced by sonderzug, for setting up the kinematics for this back in 2019.
CoreXY
CoreIDX
First I wanted to show how close the physical layout is between a CoreXY and a CoreIDX. Basically just splitting the X carriage into X and U carriages and adding a Y drive. Of course one must add an additional endstop for U and modify the system software files for the kinematic changes plus it must be setup as an IDEX system.
CoreIDX belt system
Dual Markforge belt systemNext is a quick discussion about the differences between "Dual Markforge" (which is HaqXY) and CoreIDX. They both use the same or very similar kinematics formulas as far as Duet RepRap firmware is concerned but the belt configuration is different and significant. The CoreXY belt pattern is superior to the Markforge configuration because the CoreXY belt tensions hold the gantry alignment. Note the only changes between these two belt systems are the routing of the belts and the placements of two pulleys (shown with "*"s) . The CoreIDX moves the pulleys off of the gantry and onto the opposite corner of the back frame (diagrams above) positioning pulleys like a CoreXY. That alteration makes all the difference in whether or not the gantry holds its proper right angle alignment to the frame. CoreXY theory states the gantry is held perpendicular to the Y axis, reference Ilan E. Moyer 2012 http://corexy.com/theory.html because of the pulleys and belt routing. This is true whether a single carriage (CoreXY), double carriage (CoreIDX), or no carriage (straight edge as is the case with a drafting table). The tension on the gantry presented by one CoreXY belt is countered by the tension of the other belt and gantry alignment is established by their tensions, as explained by Mark Rehorst in his “Core Belt Tensioning myths” https://drmrehorst.blogspot.com/2022/07/the-corexy-belt-tuning-myth.html If the belts are tightened to the point where the gantry is square to the printer frame and tight enough for precision movement, the gantry will be constrained by the CoreXY belts and remain perfectly aligned through all movements. That is true if the CoreXY system was designed properly in the first place. The CoreIDX belts do the same, with the new Y belts providing additional constraint.
All HW changes shown in redHere is CoreIDX with its latest updates that include moving from one to two Y motors for the Y drive, new carriage designs with Sailfin extruders and print cooling fans, and a new triple Z drive.
G3d CoreIDXSoon to be released on a Thingiverse near you,
-
RE: Problems with drivers after a HW change
@Phaedrux Yes I have researched that link and my drivers were (before HW change) working fine, but that firmware issue with my second board caused my problems. Now the drivers are fixed and working as I need them to.
I have found the auto config not useful at all with my specific design and HW implementation. I needed 8 driver to run 2 carriages and my new 3 motor driver Z axis. I added 3 add on polo drivers (8825s) for the Z. I moved the Z drivers to 5,6,and 7 to maintain common driver motor combos as recommended. With this implementation of drivers, the "auto config" can not compute. I can not make the old Z driver into my new U driver as that option is not allowed (as far as I can see).
Now my only issues relate to my new Z probe (NPN inductive) not working and having gone up to RRF 3.4 I need to figure out how to get 3 point leveling working (reference, pivot, roll) to sync to three motors/drivers but that is no longer a HW or wiring issue so I'll more to a different tread/forum.
Thanks for straightening out my firmware issue! Consider this solved.
-
RE: Problems with drivers after a HW change
@Strider007 Thanks, I had swapped MBs and did not check to see the status of the firmware. I'm now updated it to 3.4.4 as you described (yes WDC still worked) and all is working with my existing config.g file except for some minor issues.
I have not figured out how to make the config tool work for an IDEX system. When I attempt to add multiple drives, it will not until I add a Deux 2 or 5. Even when I do that, it still will not allow me to name one off the drives U. It only gives me the choices of X Y Z E0 E1 E2. There for I can not use that tool until someone explains to me how to get past this point of setting up the drives.
Thanks again, -
RE: Problems with drivers after a HW change
Thank you for the feedback. I'll get on it.
-
RE: Problems with drivers after a HW change
@Phaedrux said in Problems with drivers after a HW change:
M98 P"config.g"
Here are the 2 requested files which now reflect the 2000C temp sensors which are plugged in and have ~120K ohm resistance.
-
RE: Problems with drivers after a HW change
OK, after several redundant checks of wiring, my axis are now functioning as expected. It seems power cycling the MB may be important.
I live up north and the cold dry weather is causing potential problems. Any advice on having all 3 of my temp sensors now stuck a 2000C
-
Problems with drivers after a HW change
I am currently struggling with an issue that may be related to how I am using the M584 code. I use a Duet 2 Wifi with RRF3.1.1 firmware.
I had this system fully functional as a Cartesian IDEX with a 2 Z motor system; I was using the double output of driver 2 and one single Chinese driver board for my E1, no problems worked like a dream. 6 drivers, the extra was a Chinese single driver board.
I'm converting this to a triple Z drive and have added 2 additional single driver boards to my setup. Note I am not using a Duex 2 or Duex 5 but instead using 3 single Chinese driver boards with 8825s for my Z drivers, all now external as I did not want to mix driver types on an axis. These are not the problem, Z performs fine but I can not either Y or U to operate properly. One of the two will work fine, the other goes into hard chatter like a broken motor wire or motor miss plugged.
Is there a problem with "M584 X0 Y1 Z5:6:7 U2 E3:4" ? This means the need to have all 3 Z drivers the same (8825s)
Here is my config file
; Configuration file for Duet WiFi (firmware version 3.1.1)
; executed by the firmware on start-up
;
; generated by XXXXX 10-2022 rev C3d
;
; General preferences
G90 ; absolute axis movement
M83 ; relative extruder movement
M550 P"IDEX C3d" ; set printer name
;
; Network
M552 S1 ; enable network
M586 P0 S1 : enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ;disable Telnet
;
; Movement section
; Drives
M569 P0 S0 ; Drive 0 goes reverse X
M569 P1 S1 ; Drive 1 goes forward Y
M569 P2 S0 ; Drive 2 goes reverse U
M569 P3 S1 ; Drive 3 goes forward E0
M569 P4 S1 ; Drive 4 goes forward E1
M569 P5 S1 ; Drive 5 goes forward Z Rear center
M569 P6 S1 ; Drive 6 goes forward Z Left front
M569 P7 S1 ; Drive 7 goes forward Z Right Front
M584 X0 Y1 Z5:6:7 U2 E3:4 ; Create U axis, assigns driver to axis, defines 3 Z motors that use an extension board (modified RAMP 1.4)
M669 X1:0:0:0 Y-1:1:0:1 Z0:0:1:0 U0:0:0:1 ; Cartesian Kinematics mapping for G3D IDX specific printer
M671 X-240:240:0 Y255:225:-225 ; Leadscrews at left-front(5), right-front(6), and rear-center (7)
;
; Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop
M574 Z1 S1 P"zstop" ; configure active-high endstop for low end on Z via pin zstop
M574 U2 S1 P"e0stop" ; configure active-high endstop for high end on U via pin ustop
;
; Drive
M906 X1020 Y1200 U1020 E800:800 ; Set motor currents (mA) Z drivers are old school 8825s
M84 S120 ; Enable motor idle current reduction after 2 minutes
M201 X500 Y500 U500 Z100 E5000 ; Accelerations (mm/s^2)
M203 X12000 Y12000 U12000 Z400 E9000 ; Maximum speeds (mm/min)
M566 X900 Y900 U900 Z12 E120 ; Maximum jerk speeds mm/minute
M350 X16 Y16 Z16 U16 E16:16 I1 ; configure microstepping with interpolation
M92 X80 Y80 U80 Z1600 ; Set axis steps/mm
M92 E691:691 ; Set extruder steps per mm
;
; Axis Limits
M208 X-191:135 Y-200:195 U-125:196.8 Z0:450 ; sets U centering by changing U max (was 197.1) changed Y from Y-220:175
;
;
; Z-Probe
M558 P1 ; Z probe active high
G31 X20 Y-55 ; Set NPN inductive probe XY offset from Extruder
;
; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" Q10 T0 ; create bed heater output on bedheat and map it to sensor 0, freq=10hz
M307 H0 B1 S0.8 ; enable 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
;
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 B0 S0.8 ; disable bang-bang mode for heater and set PWM limit
;
M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
M307 H2 B0 S0.8 ; disable bang-bang mode for heater and set PWM limit
;
; Fans
M950 F0 C"fan0" ; create fan 0 on pin fan0
M106 P0 S0.0 ; set fan 0 value.
M950 F1 C"fan1" ; create fan 1 on pin fan1
M106 P1 S0.0 ; set fan 1 value.
M950 F2 C"Fan2" Q25000 ; create MB Fan on pin fan2, and set freq
M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
M308 S4 Y"drivers" A"DRIVERS" ; configure sensor 4 as temperature warning and overheat flags on the TMC2660 on Duet
M106 P2 H3:4 L01 T35 ; set fan 2 value = ON if MCU of DRIVERS hits 30C
;
; Filament sensors
;M591 D0 P7 C"e1stop" L7.52 R75:150 E22 S0 ; T0 L=7.5mm, R=75-150% E=22mm, ON
;M591 D1 P7 C"exp.e2stop" L7.23 R50:175 E22 S0 ; T1 L=7.2MM, R=75-150% E=22mm, ON
;
; Tool configuration section of config.g
;
; Create a tool that uses the low end (X) carriage
; Tool 0 Left Extruder X only
M563 P0 D0 H1 F0 ; tool 0 uses extruder 0, heater 1 and fan 0
G10 P0 X0 Y0 Z0 S0 R0 ; set tool 0 offsets and temperatures X extruder is 0.1mm lower than U
;
; Create a tool that uses the high end (U) carriage
; Tool 1 Right Extruder U only
M563 P1 D1 H2 X3 F1 ; tool 1 uses extruder 1, heater 2, fan 1, and maps X to U
G10 P1 Y0 U0 Z0.1 S0 R0 ; set tool 1 offsets and temperatures X extruder is 0.1mm lower than U
;
; Create a tool that uses both (X) and (Y) carriages to duplicate 2 copies
; Tool 2 X & U Duplicate same 2 copies
M563 P2 D0:1 H1:2 X0:3 F0:1 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U
G10 P2 X80 U-80 S0 R0 ; set tool offsets and temperatures
M567 P2 E1:1 ; set mix ratio 100% on both extruders
;
; Create a tool that uses both (X) and (Y) carriages to mirror 2 copies
; Tool 3 X & U Duplicate mirror 2 copies
M563 P3 D0:1 H1:2 X0:3 F0:1 ; tool 3 uses both extruders, hot end heaters and fans, and maps X to both X and U
G10 P3 X80 U-80 S0 R0 ; set tool offsets and temperatures
M567 P3 E1:1 ; set mix ratio 100% on both extruders
;
; Custom settings are not defined
;
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
M912 P0 S-5.5 ;calibration of mcu temp sensor
;
M501 ; read stored parameters
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; relative extruder movesSorry if I didn't upload the file correctly. Please help. I know my motors are good and wires are fine, and I've tried 2 different MBs.
Thanks, Glen -
RE: CoreIDX- Conversion of a CoreXY Printer into an IDEX
@sonderzug, I appreciate your input as I have not been following the latest IDEX designs concepts since about January of 2020, but I had seen a post back in 2019 that had a standard CoreXY design with Markforge carriage and pulleys added to it, and that was part of my inspiration. I believe, ( I'm not a mechanical engineer, just electrical) that the CoreXY style belt routing provides less raking of the Y gantry. Note that I also designed and build a Gli3DR style to see if it would work but I could not get the precision of the CoreXY especially if you are working with a large frame (520 x 510 mm interior) so I settled on this design. I am not surprised that others have found similar ways to implement independent extruders, but since my machine has been operational for 2 years now, I finally decided to basically publish the design and implementation of what I came up with. Better late than never. Here is a photo of the system after it completed a 2 color print
-
RE: CoreIDX- Conversion of a CoreXY Printer into an IDEX
@oliof the Y drive happens to be a dual shaft single stepper that is a bit larger than my U 8 X motors. It was something I had in my spares.
-
RE: CoreIDX- Conversion of a CoreXY Printer into an IDEX
Oliof, the machine has been build and fully operational for about 18 months although several of the components have been redesigned several times. I'm not sure about your question on steppers. There are two carriages (X & U) each with a single hotend. They are located on the Y gantry. The extruders which drive the filaments can be located on the carriages (like BMG) or located on the frame in a bowden arrangement. Let me know if I answered your question or not.
-
RE: CoreIDX- Conversion of a CoreXY Printer into an IDEX
@strider007 said in CoreIDX- Conversion of a CoreXY Printer into an IDEX:
2
Sorry, I incorrectly stated under "X and U Drive,..., FIg 2", that should refer back to Fig 1.
-
CoreIDX- Conversion of a CoreXY Printer into an IDEX
This is a short discussion of a novel design conversion done to a CoreXY system, turning it into an IDEX or independent extruder system. The only additional mass added to the Y gantry is the weight of the new U carriage. Almost all of the original CoreXY components remain the same or very similar. This approach infers a lower complexity and mass on the gantry than all the IDEX systems available today. A Duet style mother board is required.
I have always loved the design of a CoreXY machine for its scalability, precision, and speed. It is a truly great design but it only supports a single X carriage or single extruder. If the desire arises for dual extrusion, the conversion ideas that I have researched have been very complicated design modifications. They consist of tool changer systems, or a new motor on the Y gantry (added mass), or a complete duplicate set of belts, pulleys and motors. I have used dual extruders on a single carriage before and the results were not predictable and often too sloppy with smearing. I need independent extruders (IDEX) for the work I do. I spent most of my “Covid pandemic time” perfecting what I think is a reasonable path for conversion of most CoreXY machines into what I will call CoreIDX, or a modified CoreXY machine that becomes an IDEX system.
Figure 1: CAD version of a CoreIDX gantry systemMy original design criterion was to create a very good CoreXY machine on a fairly large frame (~350x350x500mm print area); but this was really a fall back position if my IDEX idea didn’t work. I did not want to be wasteful so I reused as much of the original CoreXY components as possible. This concept reutilizes almost all of the original hardware by keeping the Core XY belts, pulleys and motor placements without additional motor weight to the Y gantry, only the U carriage weight is added. Figure 1 represents what I created based on a basic HEVO frame kit and design ideas found on Thingiverse.
X and U Drive
Figure 2 shows the pulleys, belts, and motors are the exact same as a CoreXY design. This conversion of a standard Core XY into a modified Cartesian IDEX is done by splitting the single X carriage into two carriages, X and U. These are now X&U belts and X&U motors .
Figure 2: One belt attaches and the other passes through on the X and U carriagesEach of them now attached to only one of the two pre-existing Core XY belts allowing the other belt to freely pass through it as shown in the circled area of Figure 2.
Figure 3: Bottom view X & U carriages showing belt attachment and pass-through areas
Figure 3 shows how the separation of the belts between the two new carriages was accomplished allowing a belt to attach to one carriage while passing through the other one.This design maintains the rigidity and alignment of the Y gantry in a similar manner as the CoreXY design since belts, pulleys tensions remain the same but they no longer drive the gantry in a Y direction. Each carriage is free of the other and driven by the original X and Y motors now repurposed as X and U drive motors driving either carriage in the X directions only.
Fig 4: Y motor, shaft, and belts all mounted horizontally on topY Drive
The Y gantry is no longer driven or controlled by either of the two original motors. One additional motor is now required to drive the Y gantry back and forth. It is accomplished by adding the new Y motor to the back of the frame as shown in Figure 4. It drives a shaft with drive pulleys that push/pulls the Y gantry fore and aft just like many typical Cartesian printer designs. Adjustable belts pulleys are added to front of the machine to provide adjustment for the Y belt loops. This means the only added weight to the Y gantry is the weight of the additional U carriage and the attachment points for the belts and no additional motor mass since all positional drive motors are frame mounted.Kinematics
This design maintains CoreXY belt tensions but does require modified kinematics not available to Marlin based HW/FW. The new X and U drives accurately move the two carriages in the +/- directions in a normal Cartesian manner but not the Y drive. If the Y gantry moves it will affect both X & U carriage positions. If the new Y gantry is moved, the X & U carriages either move diagonally together or apart. This means any Y movement of the gantry has to be countered by an equal movement of both the X & U motors (in opposite directions) in order to maintain their current position. This design requires hardware/firmware combination that allows for easily modified kinematics. Marlin and that class of hardware/firmware as far as I know can not accomplish this task. I do not have the programming skills to tackle C++ and/or Python therefore my logical choice was to move to a Duet style motherboard which runs RepRap firmware and capable of what I needed. With this motherboard the kinematics g-code command used is:M669 X1:0:0:0 Y-1:1:0:1 Z0:0:1:0 U0:0:0:1.
CoreIDX Summary
The CoreIDX machine has performs flawlessly and there are no plans to revert back to CoreXY. I have successfully used it for over a year commercially with amazing results. Besides great two color printing it has been utilized in duplicate and mirror mode operation too. -
RE: Question regarding K# for CoreXY to IDEX conversion
Great! To move forward I will use the IDEX config as a starting point as it already addresses the homing issues, and put in my own Matrix like I described above. Thank you.
-
RE: Question regarding K# for CoreXY to IDEX conversion
I believe I need to ask DC42 for a new K? I would like to call it "CoreIDX".
-
RE: Question regarding K# for CoreXY to IDEX conversion
@Strider007 Any help would be greatly appreciated.
-
Question regarding K# for CoreXY to IDEX conversion
I have a CoreXY machine I'm converting to an IDEX by adding only a Cartesian Y drive and splitting the Carriage into two (by belt). The old X is now X , new Y motor added, the old Z, new U is the old Y motor replugged.
My matrix for M669 would be I believe
X 1: -1:0:0, Y 0:1:0:0, Z 0:0:1:0, U 0:1:0:1What K# do I use?
It's part Cartesian, modified CoreXYU?, or a double Markforged?I include this photo, not of my HW but of a system with similar kinematic requirements. My system has the pulley placement like a std Core XY.