IndyMill CNC: GT2560 GRBL 5-axis controller

In my search for the best affordable CNC motherboard for my new to build Indymill CNC machine  I finally chose the GT2560 from Geeetech as best compromise.  At least for now, and maybe later I may change to an RRF3 board with a good remote CNC interface like the Mellow Fly-CDY-V2.

GT2560 3D Printer Controller Motherboard Mega 2560+Ultimaker Ramps 1.4 Geeetech Other Electrical Equipment & Supplies com Business & Industrial

The board has a budget price and utilizes an atmega chip with great performance.

The board does not come with the CNC GRBL firmware installed, you can get the required arduino library HERE for the Arduino Mega with the add-on RAMPS 1.6 board and HERE for the GT2560 integrated board!

The nice thing about this board is that it can be flashed with the arduino IDE, and I like the board especially because I can plug in the NEMA23  closed loop stepper motor  cables directly in the driver connectors of the GT2560 board.  By doing so, I don’t need the lumpy seperate 6600 driver units and I never miss a step.  These closed loop drivers get attached to the rear of the Nema23 stepper motors and use the 24 Volts from the wiring to the GT2560 driver socket.  The max Amps is 4 Amps per unit and this is enough to have good CNC results.  I also added the tiny LCD’s into the closed loop units, this makes it possible to perform local management like the initially required one-time calibration of each stepper without the need for a PC. And= the display also shows the status of the stepper motor (errors, missed/corrected steps etc).

The required Gcode can easily be made with Esticam.  I first make my design in Openscad, export the design as .STL file in the highest resolution ($Fn at 128 or higher) and import the STL file in Esticam.    Then I use Esticam to send the Gcode via a USB cable in the GBRL format to the GT2560 board.  BUT- it is also possible to save the CNC file output from Esticam and put it on an SD card.  The LCD unit that is attached to the GT2560 accepts SD cards (formatted as FAT 32) so you can work independantly of a PC.

Or- you can connect your Mega2560 to a Raspberry PI and use the Raspberry PI as webinterface , to control your CNC machine via wifi from your PC or phone/tablet.

Please read on about how I use this setup for my IndyMill CNC machine!

 

MMU2S on Ender3pro with TT SKR E3 mini motherboard

In 2020 I upgraded my Ender 3 with synchronised Z-axes and a new motherboard, the SKR Mini E3 V2.1.

The Ender 3 is very reliable and has been equipped with a direct drive bondtech extruder but still has the original hotend.

I chose the Ender3 to be the 3d printer on which I will attach the MMU2S.  This also means that I will have to exchange the hotend/extruder combination with a Prusa Mk3S version.

Started this on May 4th, 2021.  Only the printed parts were needed, all other parts were already available through sourcing form a.o. Ali.  I printed everything in ABS, mostly red.  For this I used 2 machines: The Twotrees Sapphire pro with enclosure for black ABS and the Voron 2.3 (300) for red ABS.

The motherboard that is also in the Ender3, SKR mini E3 V2.1.  I used this setup to test the MMU hard- and software together with the SKR mini E3 motherboard
The MMU2S on top of the Ender3, just next to the 6mm belt that connects both Z-leadscrews
The bondtech Prusa MK3S hotend/extruder combination, mounted on a 2020 mounting plate for the Ender3

There is a firmware version for the SKR mini E3 V2.1 on Github that makes use of the MMU2S.  I downloaded this version and uploaded it to the board via visual studio code maker, all works well in the test setup. Some tweaking was needed in configuration.h and in the advance config, since I am using the S-version of the MMU2 and the filament sensor was not standard ON. And- it appears that the communication port needs to change to the 2nd port. You can see it all at the Reddit page, the additional changes to the published config files are these (thnx to fixel112):

Excerpt from Configuration.h:

#define SERIAL_PORT -1

#define SERIAL_PORT_2 2 <————— This has been the issue. Uncomment that line.

#define BAUDRATE 250000

Excerpt: Configuration_adv.h

#if ENABLED(PRUSA_MMU2)

// Serial port used for communication with MMU2.

// For AVR enable the UART port used for the MMU. (e.g., mmuSerial)

// For 32-bit boards check your HAL for available serial ports. (e.g., Serial2)

//#define MMU2_SERIAL_PORT 2

#define MMU2_SERIAL MSerial2

//#define MMU2_RST_PIN 23

// Enable if the MMU2 has 12V stepper motors (MMU2 Firmware 1.0.2 and up)

//#define MMU2_MODE_12V

// G-code to execute when MMU2 F.I.N.D.A. probe detects filament runout

#define MMU2_FILAMENT_RUNOUT_SCRIPT “M600”

#define MMU2_DEBUG // Write debug info to serial output

#endif // PRUSA_MMU2

Next is to put everything physically on the Ender, and exchange the hotend/extruder.  Then, the settings for the extrusion lengths will have to be determined.  And- the buffer for the filament between the MMU2S and the filament spools has to be installed. As soon as I have it all properly installed, more pictures will follow!

I discovered that the dual display I now use for the Ender3 will only work for Marlin LCD and no longer for TFT, since the serial TFT pins will be used to drive the MMU2S unit.  I exchanged the TFT/LCD unit with the original Ender3 LCD, I kept this in storage and tested it today with the Ender mini E3 V2.1 , it works very well!

The twotrees SKR Mini E3 V2.1 motherboard is really perfect for the combination with the MMU2S and the new  filament sensor in the new hotend/extruder. The firmware has been updated to include the MMU2S and the AUX’s serial that was previously used for the TFT screen is now in use by the MMU!  It all works!!!

Now the next thing was to get the new extruder, F.I.N.D.A. and the filament sensr to work properly.

That took some time and next on the agenda is the filament management.

I already decided to go with the original Prusa filament box with plates to hold the retracted filament for all 5 spools. The spools themselves will hang at the wall, behind the printer.  I don’t have space for standing spoolholders.  Underneath the spools the filament box with plates gets its place on the wall and from there the 5 PTFE tubes will run to the MMU!

Wobbling in cheap linear bearing screws

As I experienced, from my 10+ 3d printers only the Prusa mini and the I3 Bear deliver adequate print quality.  Even the Voron 2.4 CoreXY has problems if you look carefully at the printed results.  Though all prerequisites were made to build a good printer, it was never really matching real good quality.  So- in my search for the root cause of this somewhat disappointing discovery, I stumbled on some interesting stuff: The HevORT Advanced DIY 3D Printer project.

I found this website as a link from one of my fact finding searches for the cause of wobble in my linear rails that I am using for my Indymill CNC.

Obviously, the cheaper rolled linear screws with ball bearing nuts are not as good as the ones that are first cut on a lathe and are then grinded on a special machine.  The better linear screws with ball bearings are specified into 10 categories from 1 to 10 where no.1 is most expensive and no.10 the least expensive. Quality is better with higher price.  Prices are over 500 Dollars US for the better ones, but can mount up even higher.

If you look at the category of the rolled ball bearing screws, these take a lot of strain in the material due to the manufacturing process. The strain causes an unequal surface and therefore this can cause lateral wobble.  When using these cheap linear ball bearing screws for 3d printers as Z-drives, the lateral problem can be solved by adding shifting plates as horizontal shift compensator.

On the net, a solution is given by using a couple of bearing balls (3) between magnets that are used as rolling plates on top and bottom.  The shifting plate holders on top and bottom stay aligned with each other by mounting 2 magnets that attract each other on 2 sides of these plates.  Please see the cutouts I took from the movie that is provided in the above mentioned link:

This can be implemented in the HevOrt BUT I feel that my Voron2.4 could really benefit also from this solution. Although the Voron is depending on the vertical linear rails for sliding up and down and a belt mechanism is making the motion happen, the mechanism that compensates for any wobble or different sizing of the frame is only a friction plate of (in my case) 2 PETG surfaces that slides on each other, 1 per vertical axle.

So, I will see what I can find or make to get the above anti-lateral wobble solution built and implemented in the Voron 2.4 asap and see what the result will be!

 

Indymill adapted X-axis for more rigidity

2021-05-22

On top you see the X-axis, still without mounted linear rails but the 1605 screw is loosely mounted. The red connecting piece for the Z-axis is on the ball bearing nut. the black part on the left between the 2 lengths of 2040 aluminium extrusions is the (anti-) push/pull bearing block that holds an axial (up/down/left/right) and a radial (left/right) bearing but can not withstand any real big lateral force (L-R)

Under construction-still trying to find out how to do this.

I intend to use the same method as with the Y-axes so drop the 3d printed parts as much as possible and re-use the available bearing blocks and nut holder.

For the red nut holder I only need to make a flat extension plate to connect the nut holder to the Z-plate.

For the end bearing block BF12 to the right, this is no problem. I can mount it easily on the sideplate’s outside.

The push/pull bearing block BK12 is more difficult to re-use,  I will try and find a small enough connection block that is 3d printable to shape the BK12 in, and still fits in between the 2 horizontal aluminium profiles that shape the X-axis. It will be very tight so I might have to make something myself, possibly I will just mount the BK12 on a in-between piece of  2040 and first I can mill a hole in the center of the 2040 piece so the end of the 1605 ball bearing screw can gain access to the BK12… Or something like this, will try and report how it goes later!

2021-5-24: Found a possible solution with an adaption of the same  Nema23 to BK12 housing as is used for the Y axis. I am printing this fast with PLA on the Ender pro, will cut off some flesh of the NEMA23 top and bottom flange and will then fit this between the 2 lengths of 2040 extrusions and see how it works!  The screw holes will have to be saved, but 4cm in the center will be removed, some 4 mm wide om both top and bottom.

Today I made the last solution fit the X axis and got all related components to fit the X-axis.  During this I found that the left bottom ball bearing slider cannot move along the BK12 block..  So, I machined some material from this block’s side bottom.  That doesn’t hurt but it does impact my planning a bit.  And- during the process I destroyed a piece of the PETG BK12 holder that connects the BK12 bearing block to the stepper motor and the in-between side plate.  I already directly printed a new ABS part to replace the PETG and wished I had started with ABS like I dit with the Y-axes.  But- look at the bright side: Now all 3d printed parts will be ABS red: like the steel plates!

You must know that I elaborated quite a lot on how to print the Neam to BK12 couplers and fount that it is not good to print these withh the face to the Nema23 motor DOWN.  Instead- I printed them flat, with the side that faces the stepper motor to any side but down or up.  This gives great strength to the 2 pieces that carry the mounting holes for the BK12 bearing so they won’t break during use.

And I found that ABS in my case (both ABS red and PETG vblack are Sunlu products)    works better for this build because the PEG breaks under strain and ABS flexes a little but does nor break..

 

Indymill Z-axis with adapted lead screw bearing

The Indymill’s Z-axis uses a lead screw  by design , and not a ballscrew as I would like.  But- that will be changed later.

For now, the lead screw solution will be OK because I will first build the Indymill machine and use the 500 Watt DC engine I already have for my CNC3018 setup.

The leadscrew of the Indymill is an 8mm leadscrew with a brass nut mounted in a 3d printed part that is mounted on the vertical rear of the Z-plate.

And- the drive stepper motor is mounted hanging on a horizontal plate on top of the Z-plate.

The required motion is exchanged to the leadscrew with a pair of 8x10x22  treehed wheels that are coupled with a GT2-10 mm wide 200 mm long belt.

The change I made to the original setup is to use an original 8mm lead screw bearing on top, under the horizontal plate.

I did not particularly like the original setup with an 8mm bearing in a 3d printed holder, and an 8 mm lockup ring under and above this bearing.

I had to machine the pro-bearing to fit the Indymill’s mounting holes and get  the threaded drive screw nicely centered.

 

 

 

Indymill CNC Controller -the final choice- and WHY

To get the best possible CNC driver / firmware setup, in combination with the CAD and CAM programs that are required, I tested the following setups with the Indymill hardware:

1) Reprap 3.3 & the Duet2wifi.  STL’s are made with OpenScad and then converted either online or with Estlcam to Gcode (.nc files).  The Gcode is then uploaded via Duet webinterface and run on the local reprap driver board.  Not chosen by me beacause it proved impossible to run a gcode stream online from the PC to the USB interface of the Duet2wifi board.  It is, however, possible to attach a serial handwheel to the Duet2wifi and manually control the CNC setup.  And dual axis squaring is also easily made possible.  Actually, the Duet reprap CNC setup is very mature and customizable.  I still have this setup as backup and by switching the connectors from the Indymill over, I can easily switch to this setup.  Some advantages of this setup are a.o.  the webinterface and the ease of having an automatic squaring gantry on the 2 Y axes with individual endstops.  I also learned that Estlcam can generate Gcode that I can then send via the webinterface to the Indymill CNC machine which works very well.  (I make my designs in Openscad and save this as .STL files. Estlcam can then convert these .stl files to .nc files…, using the machine configuration to get the code properly generated for the Indymill’s dimensions and hardware settings)

2) GRBL, Estlcam & Openscad, Marlin & GT2560 (A) board; This is also working out of the box and emulates a GRBL driver board. The main reason to NOT use this is the fact that the GT2560 board just has not got enough pins available onboard for things like a handwheel and other outputs for accessories.  The second thing that prevents me from going this way is the fact that it proved impossible to have a functional LCD attached that shows things like position, speed, status et cetera.

3) Mach3, FreeCad & USB CNC ‘barebone’ .  This is actually a very solid and reliable solution BUT I could not get it to do any way of squaring my dual Y axis setup.  Still investigating this…

4) GRBL, Estlcam & Openscad & MKS DLCV2.1 board with TFT 3.5 “;  Also for this setup: No option for squaring the dual Y axis setup.  But- this is a very neat solution for smaller machines.  or larger, if you use external drivers.  The nice option of this setup is the 3.5 inch LCD that also comes preconfigured for CNC.  I use this for my small 3018 CNC.

5) GRBL, Estlcam& Openscad & Mega2560 & RAMPS 1.6 shield. 

DUET2WIFI clone Mellow FLY-CDY-V2

 

MACH-3 with a generic USB-CNC converter

I also have an original USB Mach3 interface with a. o. a handwheel unit. This works very straight forward but needs a PC to keep a stream of Gcode commands running to the USB controller. I am not very fond of this solution since a little mishap will destroy your objects that is being carved.  But- this appears to work very well for many people so I have set this up after I had the FLY-CDY-V2 with the reprap 3.3 and the Duet webinterface running, to get to know the differences.  I must admit it works straight forward without any problem.  I decided to have this setup available next to the GRBL Mega2560/GRBL shield solution.  The thing that keeps me from the USB-CNC solution is primarily the fact that this setup cannot auto-square my dual Y axis gantry. The Mega 2560/GRBL shield solution does this squaring very well.

 

GRBL with MKS-DLCV2.1 and the TFT screen

And- the most in use hobbyist solution: The GRBL boards like the above shown setup from MKS.  I have this running on my old 3018 CNC milling machine and it always works well. This particular setup utilizes the preconfigured  KMS DLC 2.1 board and the preconfigured MKS TFT for CNC.  All is very neat and since the drivers can be adde externally as well as interanlly, it is possible to drive real high currents if you want that.  These boards don’t do sensorless homing and usually put the 2 Y steppers in serial.  This means that you will never be sure that they are well aligned.

RAMPS shield for Arduino UNO and Mega2560 (and DUE?)

Still to discoverESP-based CNC board 6-axis on Openbuilds is very promising!

Unpopulated Controller

My mini shop

One of the 2nd floor bedrooms was converted into my 3.5×2  meters mini in-house workshop… The garage is used for my larger machines like the lathes, milling- and welding machines, laser cutter et cetera…

Hanging 3d printer

My last 3d printer I built just produced too much noise, mainly from changing the tools during multi-filament prints

Finally, I made a construction where the printer hangs in big elastic suspenders.  This took away any noise that was previously transferred to the wall, so no more problems with noises throughout the house.  Pfff…

Flightcase for the Indymill

This is only the lower part of the newly built flightcase for the Indymill.  It is 15cm high, 75 cm deep and 80 cm wide, all measured on the inside.

The top of the case is 22 cm high on the inside and it will get perspex windows at the front and top.  Wheels will get mounted at the rear so the case can be moved standing upright.

The Indymill will be mounted in rubbers underneath and on the sides of the frame.  The connectors to the electronics will be mounted in flightcase shells at the front.  When all is positioned correctly and connected, the Indymill will be placed in my garage where I will use it in my large(r) shop.

With the 1.5 Kw spindle I intend to mill aluminium and brass, but mainly aluminium.

1st Job will be to machine ‘flat’ the 8mm aluminium plate I have bought some time ago for the heated bed of my Voron 3d printer. The plate is 310x310mm wide and was not entirely flat when I received it, due to the way it was stamped instead of saw’d.  Now, I will be able to get it done right.  I will use the boring head from my other mill to get this done.  My other mill can only work with smaller objects, not anything as large like the Indymill can handle.

 

error: Content is protected !!