-
17-01-2018 #1
The title? Medium-size – bigger than a bench-top machine but not as big as a “full-sheet” 8x4. Steel-framed – basic structure is steel box section throughout, including the gantry, no aluminium extrusions. AVOR? I don’t usually name my machines but it seems to be fashionable so here is “A Very Ordinary Router.”
I’ve put this in the Build Log section although this isn’t a build log – the machine is built already apart from some small details and is in fairly regular use. There are one or two points about this machine that are a little unusual, and I would also like to encourage others to look at steel as a build material.
There are some great build logs going on at the moment with some very nice machining, etc, going into them. Maybe this machine will demonstrate that a machine doesn’t have to look pretty to work! It’s great if it does, and there are some people who are skilled enough to build machines that are both good-looking and work well. But a machine does not have to look pretty to work well, so don’t let that aspect put you off building.
I must thank all those contributors to this forum whose ideas I have shamelessly copied or adapted, too many to name. However, any errors or problems that I describe are mine alone and not the fault of anyone else. I can make my own mistakes without needing any assistance
The Machine
I wanted to replace my first CNC router which was based heavily on the JGRO design (available via a Google search – plenty of examples around) and built in MDF. It had many problems which I wanted to avoid with the Mk2 although it did a useful job for me for around 4 years. Basic goals were a decent woodworking machine although the ability to machine aluminium would be an advantage. Not necessary, though, as I have a vertical mill anyway for metalwork (CNC conversion might happen one day ). Capacity is always a compromise - ability to work with quarter-sheets of material was a starting point, but the machine needed to fit in my garage/workshop so could not be very much bigger. I had already decided to use ballscrews and Hiwin rails. I started the project about 3 years ago (I’m not a fast worker) and at that time buying these from China was not as obvious a choice as it is now so I bought from CNC4YOU. Not as cheap as China but I have always had good service from them. They stocked standard sizes, so having worked out my minimum machine size, I bought the next stock size up for ballscrews and redrew the machine to suit. As a result, the overall dimensions are length 1800mm, width 1000mm, giving a cutting area of about 1550x750. The X rails overhang one end of the bed which allows me to machine work clamped to the end face of the frame.
I wanted a floor-mounted machine which could be moved around with the idea that longer pieces of work could overhang the bed if necessary by moving the machine out from the wall. For various reasons (cost, ease of working, and modification) I chose steel rather than aluminium. This is a CAD drawing of the machine as it shows the general structure rather better than a photograph (which is difficult in my workshop anyway). There is obviously a lot of detail missing from this picture; in particular, there is a lot more bracing of the structure in the finished machine.
Although I did a lot of the design in Fusion 360, this was more to work out overall dimensions and some of the details which is why the drawing has some odd little items (motor mounts, for example) but no ballscrews shown.
The photograph was taken during construction but you can see the bracing in place.
The structure is steel box. Most is 50x50x3 although you can see that there are some 100x50x3 sections supporting the side of the bed and the X rails to give extra stiffness for relatively little extra weight. Reading this forum, there seems to be a general view that anything less than 4mm wall thickness is needed, and 5mm might be better. I have not yet found 3mm to be a problem with one exception – it is not thick enough to take the M5 capscrews holding down the profile rails, or for similar attachment screws elsewhere.
An unusual feature (not unique so I’m making no claims here but I don’t remember seeing one described at the time I started my design) is the welded steel gantry. People worry about gantry mass and how it might affect performance. When I did the sums, I reckoned that the rotational inertia of the ballscrews was at least as important, if not more so, than the inertia of the gantry when it came to acceleration/deceleration (which is what often matters most – inertia isn’t very relevant to speed) even with the steel gantry. With suitable bracing it could be pretty strong even though I was using my 3mm wall thickness box. This design also meant that I could run the ballscrews through the uprights at the ends of the gantry which solved a lot of design issues. More about all this later.
Again, more details to come, but the drive is by NEMA 23 3Nm steppers, two for X, one for each of Y and Z. X ballscrews are 2005, Y and Z are 1605. Motors drive the ballscrews via belts and 1-1 pulleys. Rails are 20mm Hiwin.
The control box uses EM806 drivers running from 68V linear PSU for X and Y, and a recycled M752 for Z – less critical than X and Y, and not needing the stall detection which (in my view) is absolutely necessary for a dual-motor axis such as mine. There is a CSMIO-IP/M motion controller, plus Pilz safety relay and the usual odds and ends. Limit switches are inductive, NPN NC, running off 24V.
Spindle is the usual Chinese water-cooled 2.2KW/3HP choice driven by an HY VFD. These are the same units first used on my Mk1 router and are now about 5 years old, and have never given a problem. Cooling, when I bother to switch it on, is via a small caravan water pump recirculating water from a 10l bucket. In fact, to extend the life of the pump, I only run it on 12V when initially filling the system or to purge any air bubbles and most of the time it keeps a trickle going driven from 5V. However, for short cuts, I don’t bother to turn on the coolant although I do check the spindle temperature from time to time. Occasionally, the water seems to be a few degrees above ambient. I probably don’t drive the machine hard enough…
-
-
17-01-2018 #2
Basic Structure
As described in the intro, I used 3mm wall thickness box section steel throughout for frame and gantry, with a mix of 50x50 and 100x50. The frame is pretty straightforward. I found that steel has one brilliant advantage over aluminium extrusion – it is remarkably forgiving. The combination of angle grinder and MIG welder (I’m not clever enough for or could justify TIG) means that building the frame is not difficult, and in particular those two tools will also deal with the odd mistake. Chop and reweld to your heart’s content. What I did realise, after the event, is that I should have spent a lot more time jigging and clamping and aligning before welding. Obvious to the more experienced out there, not so obvious at the time to a beginner with a welding torch. Close scrutiny of any of the welds will indicate my lack of ability, but fortunately it seems that a strong enough weld does not have to look pretty. In many cases, I welded as a series of “spots” as I had found that there was more tendency for things to move if I made continuous welds, and what I have done is probably good enough.
3mm is too thin to take a decent tapped hole for fittings, especially for things like M5 cap screws to hold down the Hiwin rails. I have used the same idea as other people, therefore, and fitted a steel strip inside the relevant box sections to provide added thickness for tapped holes. To keep tapped holes square, I used the old toolmakers’ trick of turning up a short mild steel cylinder, maybe 20mm long, ends faced square, with a hole up the middle a close but not binding fit on the tap. Hold guide to the work and turn tap with other hand. Very easy to make, very easy to use, does a good job. And use spiral-point taps for these kinds of through-holes – enormously better than conventional hand-taps for this kind of work. Mine were cheap from China but stood up well enough to this steel with a bit of tapping compound, even when I was turning them with a cordless drill. I “marked out” the hole positions by clamping the rails in place and then using a cordless drill with a drill bit that was a close fit in the rail’s mounting hole to make a small mark in the steel. You can then swap to the correct tapping size drill which will pick up the mark and drill a hole where you want and not where the drill point drifts to. Using M5 cap screws in the rails gives just a little bit of wiggle room for final alignment as long as you were fairly accurate to start with.
Note that the additional short vertical braces (see photograph in previous post) which take loads from the main rail supports to just above the diagonal braces are not shown on the original drawing. These were added as a result of a sophisticated deformation analysis. I clamped a DTI to the bed structure and measured the deflection when I put my weight on the middle of the (unsupported) X rail. From memory, I think the bend was around 0.25mm which seemed a bit too much. So I added the extra supports and the deflection was very much reduced. Again, I forget the numbers but I think it was around 0.05mm. Gut feel said that this was better, and good enough.
The gantry is also a welded steel structure. More 50x50x3 box. Why not aluminium? Well, I had the steel to hand and the tools to cut and weld it, and weight saving is not as important as you might think at first glance. The steel gantry is almost certainly heavier than an aluminium version but not by an enormous amount. Things like the two 20mm Ecocast slabs forming the Z moving and fixed platforms are pretty heavy, and the spindle and mount add a chunk of mass. There are also Y and Z motors, ballscrews, and rails. As mentioned in the intro, the rotational inertia of two 20mm ballscrews 1700mm long is quite significant as well, so a bit of weight-saving in the gantry structure doesn’t make a big percentage difference to the total inertia as seen by the X drive motors. I reckon that the total finished gantry weight with everything in place is about 40kg. Of that, the steel weighs about 18kg. If you just replaced the steel with identical section aluminium it would weigh about 6kg, but in practice the aluminium would need to be of much heavier section, so maybe around 12kg? In other words, aluminium would only save about 6kg out of 40kg.
A partial view of the gantry but it shows all the important bits. There are also a couple of short upright sections of 50x50 bracing top rail to lower rails not shown on the picture.
The gantry structure has Hiwin rails mounted on top and bottom. I considered using the front face of the rails but top and bottom gave more separation. I was also able to achieve the ideal of the ballscrew geometrically centred between the rails, by running it through the gantry uprights which might be more difficult with aluminium. All the relevant holes have sufficient clearance to allow tweaking on assembly to get the alignment right – I allowed something like +-1.5mm. You can see one ballscrew bearing at one end of the gantry and the clearance/mounting holes at the other.
Of all the things that are important with a home-built machine like this, the most important has to be, “If you can’t build it accurately, make it adjustable!” I knew that I was not going to be able to keep the “feet” of the gantry accurately aligned due to welding distortion (I should have done better – see comment about jigging and clamping) but the machine design allowed for that. The X Hiwin carriages bolt to a flat 12mm aluminium plate. The gantry feet - lengths of 50x50x3 - bolt into tapped holes in those plates via a set of holes just inside the ends of the feet. However, the feet were not truly horizontal, as expected. I therefore made up a thick epoxy paste, smeared a good layer on each plate, covered it with a sheet of Cling film, and gently placed the gantry on top. Excess epoxy oozed out and was removed, and the whole thing left to cure. Once cured, I lifted the gantry clear, removed the epoxy from over the tapped holes (a small square of sellotape over the hole ensures that the threads stay clear), and the gantry then dropped neatly back on to its prepared bed with no wobble. As I said, allow for inaccurate build! The holes in the gantry feet were also made a little oversize for their bolts, to allow a small amount of movement for squaring the gantry (at a later stage).
The whole machine sits on castors bolted to simple welded brackets so it moves easily around the workshop if necessary. However, in use, it sits on home-made feet. I welded M12 nuts to flat plates across the bottom of the legs, and turned down the heads of 12mm bolts so that they fitted into counterbores in wooden pads to sit on the concrete workshop floor. I also welded on M12 nuts so that the feet would be easily adjustable with a spanner (as I had just turned off their heads which were hidden in the wooden pads anyway…), and a locknut makes sure that they don’t move afterwards.
A lower shelf of thick MDF rests on the bottom rails, and I welded on a set of brackets to carry a second shelf halfway up and across half the area of machine. There is just enough room to bolt the control box to the frame so that it sits, in effect, on the lower shelf but is easily accessible, and at the moment the PC and monitor also sit on the lower shelf. I’m still making a swivelling bracket to hold the monitor at eye level, and I use a wireless keyboard with built-in touchpad. However, I have just started using one of the wireless Mach3 MPG devices from Aliexpress which is making things easier and I wouldn’t want to be without it now.
The bed is supported by a simple grid of 50x50x3 box welded in place. I did my best to ensure that the grid was flat, but I had a plan to allow for inaccuracies anyway. I have bolted a set of strips of hardwood to the bed support rails. I used U-bolts sunk into grooves below the top surface of the wood. I then machined the top surface of these wooden strips using a 50mm face cutter, and using the machine itself. This guarantees as far as possible that the bed supports are parallel in all dimensions with the machine X and Y axes. The bed itself is a simple sheet of 19mm ply which seems to be flat enough for my purposes (mostly woodworking) and if I need more accuracy for small components I machine a spoil board in situ. I have also added ľ” aluminium extrusion track to take T nuts and bolts for work hold-down; by machining the grooves for the track with the machine itself I can also align work pretty accurately using the tracks. The track comes from Rutlands – they have it on special offer fairly often. I also bought a big set of T-bolts and clamping knobs, again at special offer prices. They are intended for ˝” track, but I made up some sliders to make use of them on the bigger track. Really useful.Last edited by Neale; 17-01-2018 at 10:12 PM.
-
The Following User Says Thank You to Neale For This Useful Post:
-
17-01-2018 #3
Epoxy levelling
I want to be a bit controversial here.
First – using epoxy to level isn’t as easy as it looks. It’s not that difficult either, but there are a few gotchas.
Secondly - you don’t need a bridge between the two X rails. At least, not with the adjustment I built into my gantry mountings. Leaving out the bridge really does simplify the X rail epoxy levelling.
First point first. I didn’t allow for the effect of ambient temperature. It was a big mistake to try to do the epoxy application during a spell of cold weather. The stuff cures OK (although it takes a bit longer), but it doesn’t particularly want to flow and you really need low viscosity for the process to work. Levelling is all based on the idea that the fluid epoxy will “find its own level” and it doesn’t want to do that readily if it is too cold. I used the thinnest resin from Reactive Resins [note – it appears that the supplier has now gone into liquidation and this resin is no longer available]. No problems with the resin, it was my technique that was at fault. I tried building a tent over the machine frame with a fan heater underneath but I couldn’t really get enough heat into it to make the resin thin enough. The other thing to watch is that the resin seems to like at least a couple of millimetres or so of depth to flow; it doesn’t particularly want to run into very shallow areas. Allow for this when you make up your batch of resin – have enough to give adequate depth over the whole area. That was another of my mistakes. Yet another was not checking for leaks before filling the area with resin. I used a simple dam around the X rails made by sticking gaffer tape to the vertical faces of the rails. Works better than you might think but there will be leaks! And once a leak has started, you can’t do anything about it – gaffer tape does not stick to steel covered with resin. Easiest way, I reckon, is to fill the holes before you do the main epoxy pour. Make up a small amount of resin, then run it around the rail/gaffer tape join. A small amount will run into any gaps but without much pressure behind it, it will stay there. Once cured, no more gaps and you can go ahead with the main pour. Note that without a bridge between rails, there are fewer joints to leak…
Why don’t you need a bridge? Because with my design, the two X rails do not actually need to be at exactly the same height, and it’s pretty easy to get them to less than a millimetre with simple tools. A builder’s spirit level will probably claim to be within 1mm per metre, but you can calibrate them to quite a bit better than this – place on “flat” surface, note bubble position, turn level around and repeat. “True” level is with the bubble halfway between the two bubble positions, whatever the little lines on the bubble tube say. Use the calibrated level to get the X rails as level as you can, using the adjustable feet you have already fitted. You have fitted adjustable feet, haven’t you? This levelling is going to be approximate anyway. In my case, one X rail dipped in the middle by about 1.5mm, the other by about 2mm. Don’t know if that was welding distortion or if the tube was like that to begin with. If you start with the rails as level as you reasonably can and add equal amounts of resin to both sides, they are going to end up pretty close in height. What is more important is that the level of the finished epoxy is flat in both planes (along and across) and self-levelling using gravity is the easiest way to achieve this. Both X rails need to be parallel along their length but this is easy to achieve if the rails are sitting on accurately flat, horizontal, surfaces which is what the epoxy bed gives you. Hiwin rails are great, but they are so accurate that they are not very tolerant of misalignment. If a rail twists along its length, or the X rails are not parallel in all axes, they will bind. In my case, my gantry to X carriage mount fixing allowed for small differences in height, so I was not worried about these and could scrap the whole bridge thing.
Having said that, I have to admit to having two attempts at the epoxy levelling. The first, with a bridge (which was why I wasn’t convinced that it contributed much to levelling between rails anyway), leaked badly, to the point that I lost so much resin there wasn’t enough left to self-level. Second attempt was better, without the bridge and after chipping off the remains of the first.
I levelled the top of the gantry using epoxy, with the gantry mounted on the machine. I had intended to then remove the gantry, turn it over, and rest the epoxy surface on one of the (epoxy-levelled) X rails, propping it into position. The idea was then to epoxy level the lower rail mounting surface so that both surfaces would be parallel. In the end, I left the gantry in place and fitted the lower rail using shims between mounting bolts. I think that plan A would have been better but it’s all fitted and working now although it took quite a time to do.
I am very glad that the Z axis uses Ecocast plates which are more than accurate enough to take rails and carriages without all that faffing about with epoxy…
Here’s another thought. If you are using steel tube that is too thin to take tapped holes for rail hold-down bolts, you are going to need an extra strip of steel to thicken the surface. The usual way to do this is to add the steel strip inside the tube. I did this for the X rails (the long ones) by drilling holes through the box section, avoiding the points where I was going to put the rail fixing bolt holes, and making up a “wedge-on-a-stick” arrangement which held the strip against relevant face inside the tube. I then welded through the holes to keep the strip in place. This was a bit awkward to do, although it worked OK. However, I forgot to fit the strips in the Y (gantry) box sections before welding the gantry together, so I just welded the strips to the outside of the tubes. If you are going to use epoxy anyway, this is a perfectly practical way to do things and much easier than fitting the strips inside the tubes. This is a good time to repeat that when you are tapping for the rail fixing bolts, you really want to use spiral-point machine taps, not hand taps. I found that the spiral-point taps worked fine through steel using a cordless drill but I did use a tapping guide to help keep them square. Don’t use spiral-point taps for blind holes as they are designed to push the swarf ahead of them; use spiral-flute instead.
-
The Following 2 Users Say Thank You to Neale For This Useful Post:
-
17-01-2018 #4
Drive system
The drive system on my machine is pretty conventional. Nema 23/3Nm steppers driving the ballscrews through 1-1 pulleys and HTD5 belts.
I fitted pulleys partly because I wondered at the design stage about needing to change pulley ratios. However, given that the critical speed of the X ballscrews is about 900RPM (2005, fixed/floating bearings, although different critical speed calculators give slight variations) and the corner speed of the steppers is about the same, I was designing for a machine rapid speed of about 4500mm/min, which seemed reasonable at the time. Still does, in practice, as I tend to be making small fiddly bits where acceleration is more important to total cutting time than speed. In practice, after playing about with settings, I’m running with a max rapid speed of 5000mm/min which seems to work OK, and I’ve set the Y to be the same just for consistency. I don't see any real need to change pulley sizes.
However, pulleys also allowed me to mount the motors within the overall envelope of the machine rather than protruding, which is useful in a confined workshop where space is important. The motors sit on slotted brackets which allow belt tensioning and in theory the slots are long enough to allow other pulley size combinations.
I spent a long time wondering about two X motors or one bigger motor with a long belt. Two motors is mechanically better on my machine as it leaves one end completely unobstructed without needing multiple pulleys to guide a long belt across. However, I also wanted to use a CSMIO-IP/M motion controller which originally did not support dual motors on a single axis, sending me down the single-motor route. However, before I had finally committed to the single-motor design, CS Labs issued a new firmware update which provided minimal but adequate support for dual motors, so that’s the way I went.
I honestly have no idea how fast my machine will actually cut. Each time I start on a new job, I tend to wind the cutting feed rate up from what I used the last time, but my usual cutting speeds are below my max rapid speed still. I could, in principle, change my 2005/1605 ballscrews for 2010/1610 without too much effort, but I’m not sure if I would be using the increased speeds that should be possible, or whether I would have to compromise on acceleration which would slow down fiddly little jobs.
One issue relevant to the drive mechanism is how to set and then keep the gantry square. In any particular machining session, I have never had the gantry go out of square (as far as I can tell) unless I’ve had to hit e-stop, or had an X motor stall (which only seems to happen if I’ve hit e-stop and rehomed but without checking gantry square – a small out-of-square amount is enough to cause the gantry carriages to bind at full rapid speed). Setting gantry square within close enough limits for woodworking is easy – drill 4 holes at the corners of a square (making sure that you approach each hole from the same direction to eliminate backlash, if any), poke a matching drill shank into each hole, and measure the diagonals of the square. I wrote a little bit of gcode to do this, using a peck drill cycle. I found that a digital caliper was essential for this process as I couldn’t accurately set and read a Vernier caliper while it was on the bed. Adjust via whatever means you have provided, and recheck. Repeat until you get bored, or you’ve achieved the desired degree of accuracy! I had deliberately made the gantry feet mounting holes, where they bolt to the sliding carriage assemblies at each end, oversize to allow for a little bit of tweaking at this stage.
Ok, so that’s the gantry square for the moment – how do you make sure you can rehome to that position? In my case, as the motion controller understands enough to drive two motors in parallel but not enough to home them to separate predefined home positions, I have to do the homing of the slave axis “manually”. I have limit switches fitted to X on both ends of the gantry, although the motion controller only uses one of these. So, I hit “ref all home” in Mach3, and the motion controller will bring the gantry to a home position with just the “master” X axis limit switch tripped. Z and Y home normally with just one switch each, of course. With the gantry still in the home position, I hit e-stop, and power is removed from the motors so I can then turn the slave X axis ballscrew by hand. I tweak it until that side limit switch is just tripped (using the built-in LED in the switch). Then hit reset on the control box, hit “reset” in Mach3, hit “ref all home” once again as Mach3 needs you to rehome after any reset, and I’m ready to go. I should probably just mark the pulley instead of peering at the LED but I never quite get round to doing that kind of thing. Instead, I spent quite a lot of time tweaking the limit switch and its trigger block until it was triggering at just the right point. In practice, I hardly ever need to do this more than once per session, and it only takes seconds. The conclusion is that if the only thing stopping you going down the CSMIO-IP/M route is the lack of ability to properly home a dual-motor axis, then stop worrying about it – the manual approach is really not a big deal. The IP/M has a number of good features and I wouldn’t willingly throw those away. However, if I were starting again today, I would seriously look at, probably, the UC300ETH (I am a big fan of Ethernet for this kind of environment) and a decent BOB to go with it, or possibly the Dynomotion hardware and LinuxCNC.
-
The Following User Says Thank You to Neale For This Useful Post:
-
17-01-2018 #5
The Electrickery
The early design decision which drove much of the design in this area was the selection of the CSMIO-IP/M motion controller. This choice was driven mainly by discussion on this forum. Not the cheapest option, but I was attracted by a number of features:
- Ethernet communication to PC (noise resistance)
- 24V supply and external digital I/O signalling (noise resistance)
- Differential signalling to stepper drivers (noise resistance)
- No BOB needed – built-in to unit
- Built-in analogue output (and input, although I’m not using this)
- Good reputation for build quality and reliability
It required a move to Mach3 (Mach4 would have been possible but I preferred to go Mach3) from LinuxCNC which I had been using with the Mk1 router. LCNC does have motion control hardware available, but this seems rather more difficult to specify (and understand!) Not sure if I would go the same way today, but would need to do more research on the LCNC added-hardware options first. Anyway, the IP/M was available off-the-shelf from Zapp and I bought during one of their “special offer” periods where (at that time, I believe) the LCNC-supported hardware was only available from the US. Again, this might have changed – I’m talking about decisions made around 3 years ago.
Having chosen dual X motors I wanted to go digital for the stepper drivers, replacing the older analogue drivers I had used with the Mk1. Generally described as giving smoother motion with various anti-resonance features, for me, the most important feature was stall detection. With a dual motor setup, if one X motor stalls for any reason, you want the other to stop immediately before you potentially break something by driving the gantry on one side with the other locked. These motors are surprisingly powerful! I bought EM806 drivers which are a later updated version of the popular AM882. At that time, I thought that the AM882 would become obsolete and I wanted something that was going to stay current for a while; in the end it seems that the AM882 is still going strong. However, I only use EM806 for X and Y; the Z axis uses an old M752 salvaged from my old router. Saved money and I’m not sure that the Z axis needs the advantage of the digital driver or stall detection. Seems to work fine in practice. I use a 68V linear power supply for the steppers. The original 500VA toroidal transformer failed and I replaced it with a 650VA item but it doesn’t even get warm with my normal machine use.
To keep the control box contents cool, I have a couple of 12V 120mm fans on one side with foam dust filters that get cleaned from time to time. However, they are run in series off 12V so just give a gentle waft of air over the drivers and then through the box.
I was able to pick up a cheap “new but shop-soiled and obsolete” Pilz safety relay on eBay. 24V so it worked well with the PSU needed for the CSMIO. I’m still not quite sure exactly how the thing works internally, but the effect is like having two relays with their coils wired in parallel, but their switch contacts wired in series, and with a latching capability so the thing is reset with a momentary-operation switch. Both coils have to be activated so that all their switch contacts are closed for the machine to work. Even if one relay fails to release when the e-stop is operated, or a switch contact welds together and does not open, the other relay will still act as a safety device - it is very unlikely that both would fail together. If I were doing this again and couldn’t buy a cheap Pilz device, I might well consider doing something similar with two ordinary relays. Not quite the same level of reliability, perhaps, but pretty good if you don’t have to satisfy the safety mafia who want everything documented. Anyway, my safety relay has (the equivalent of) three n/o contacts plus one n/c contact. One n/o switches the enable signal to the CSMIO, one n/o switches mains to the stepper driver PSU (via a 24V relay), and the n/c switches the enable signal to the drivers. Ideally, this last signal should also go via a n/o contact but the wiring was slightly easier this way. Belt, braces, and electric trouser hoist – any one of these three actions should stop the machine. The safety relay can be tripped by any one of the three e-stop switches mounted around the machine and there is a single "reset" button on the front panel.
The fault signals from the digital drivers are wired to the “driver fault” input on the CSMIO. The hardware documentation tells me that the response time is very quick like this, although clearly I am relying on a single safety mechanism via the CSMIO firmware here. However, a motor stall might damage the machine but it is not the same as a “personal safety” issue which is handled by e-stop switches and the safety relay. Limit switches are wired to the CSMIO; a limit switch event does not cause an e-stop event and I have to trust the CSMIO firmware to do the right thing.
So, I have to rely on the CSMIO for limit switch events. I do have limit switches at max X and Y travel as well as min; the min limit switches are also used for homing as usual. Each axis has both limit switches wired in series. There is a single min limit switch on the slave axis but this is not wired to the motion controller. Just a single limit switch at top of Z travel, also as usual. I’m not happy about the reliability of the cheap proximity switches that I have bought. It was a cheap box of ten from eBay; one was the wrong type, one never did work, and the rest seem to have virtually no hysteresis between on and off switching points. This was a pain when first setting up the machine. Because I have the home switches for each axis wired to separate CSMIO inputs, I can home more than one axis at a time. I have the machine configured to home Z (to raise the tool clear of any work) then X and Y together. What happened was that Z homed fine, then X and Y started moving, and almost immediately I had a limit switch trip. This could only be on the Z axis, as the X and Y switches were being used for homing at this point. Eventually I discovered that Z homed correctly by moving until the switch tripped “off”, then moved a tiny amount in the opposite direction until it tripped “on” and Mach3 used this position as “home”. This is normal Mach3 homing action. However, because the on and off trip points were so close, once the Z axis had homed any slight vibration was enough to cause the Z switch to trip “off” again – which was now being interpreted as a limit switch event. I am very grateful to Dean/JazzCNC for pointing out that the CSMIO allows you to define a small offset for the home position; now, my Z axis goes through the usual homing process, then drops 0.5mm and sets “home” there. Far enough that the switch does not trip accidentally.
I mentioned proximity switch reliability – I have had two of them fail while fitted to the machine. This is one reason why I also use soft limits set slightly inside the physical limit switch trip points. I find this very useful as I often jog an axis out of the way, and you can just run the axis up to its soft limit without any ill-effect or physical limit switch event. The only down side that I have found with soft limits is that they prevent use of jogging unless the machine has been homed. If you want to rehome the machine and one or more axes have a long way to go, it can take a bit of time as homing speed is rather slower than full rapid speed. However, homing is a bit faster by having X and Y home simultaneously so I don’t usually bother to turn off soft limits to jog in this situation.
For completeness, here are a couple of pictures of my control box. External controls are mains on/off and pilot LED, reset button and associated LED, e-stop, and spindle coolant pump switch. This has two positions and centre-off; turn to left gives 12V on pump (only used for filling system and purging bubbles) and turn to right gives 5V – slow trickle of water through system which is more than adequate and should extend the life of the cheap water pump I am using. I often don’t bother with the spindle coolant if I’m only doing a smallish job – I just check the spindle case temperature from time to time. Everything else is driven through Mach3, using a wireless PC keyboard with integrated touchpad and a wireless MPG “pendant”. You will see warnings against using wireless keyboards like this because of potential electrical interference generating false keystrokes but I have never seen this problem.
External connections are made via cabinet-mounted sockets, with the exception of the hard-wired mains lead. Stepper motor connections are via 4-pin XLR connectors. They lock in place, so minimal chance of one falling out, and the contacts, on paper at least, are rated for the motor current. I started by hard-wiring motor connections to DIN rail terminals but found that I was continually needing to remove the control box while setting up and testing so went back to the same connectors that I had used on my previous machine, and where they had worked successfully for a number of years. Control and similar connectors use what were described as “avionics connectors” or GX16. I use 4-pin versions which have a screw-lock to keep them in place. There are 5 of these altogether and carry e-stop, limit switch, spindle coolant pump, and VFD connections. The remaining connector looks like an XLR connector but inside the shell is an RJ45 ethernet connection. The actual plug and socket are pretty much standard RJ45 but the cabinet-mounted socket has an XLR-compatible fitting around it and the plug is an XLR shell that fits over the RJ45 plug for protection and locking. These are available off-the-shelf from people like Rapid Online, but make sure that you get the one that fits over an existing connector if you want to use a commercial Ethernet cable. Otherwise, you are going to have to fit the RJ45 connector yourself AFTER putting the shell on the wire. Guess how I know this… The RJ45 bulkhead connector has a short length of Cat5 cable inside the cabinet connecting it to the CSMIO.
All cables on the machine run through cable chains; motor, limit switch, spindle power, and spindle coolant pipes all run through the same guide. I have tried to keep limit switch and motor cables (all CY) on opposite sides of the cable chain and I have not seen any interference or false triggering effects. I suspect that the 24V signalling voltages are a great help here – much better noise rejection. I have also run ground wires through each section of cable chain between ground points close to each end of the cable chain. This removes any reliance on ground connections via the Hiwin rails. Certainly the touchplate mechanism is very reliable – no need for crocodile clips to the tool bit or anything like that.
As well as a movable touchplate, I have also installed a fixed touchplate set into the bed, just below bed level, which works with my Mach3 macros for tool-height setting for either single tools or multiple tools per job.
-
The Following 2 Users Say Thank You to Neale For This Useful Post:
-
Bloody hell Neale you are putting me to shame good write up.
..Clive
The more you know, The better you know, How little you know
-
17-01-2018 #7
Well... that's me nicking a few ideas, designs and pointers.
In particular - very interesting about the all-steel construction, well argued case.Last edited by Doddy; 17-01-2018 at 07:28 PM.
-
17-01-2018 #8
Please do - that's exactly what I did!
It's taken me nearly as long to write this as I did building the machine, but I know that I have left out a lot of detail. For example, I'm very happy with the way I was able to run the Y ballscrew through the gantry uprights because wherever else I put it seemed to have disadvantages. I've made a few mistakes as well - believe or not, I completely forgot to allow for the bed supports and bed thickness when I was calculating Z clearance under the gantry. Fortunately, it's fine for the kind of work I normally do.
I'm happy to provide more information on any points I have not mentioned - or any of the ones I have but where I haven't gone into detail.
-
17-01-2018 #9
-
18-01-2018 #10
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Similar Threads
-
Large Format Steel Framed Router
By nathandavies in forum Gantry/Router Machines & BuildingReplies: 2Last Post: 07-02-2016, 02:51 PM -
Rough idea of costs to build a medium size router.
By jimbo_cnc in forum Gantry/Router Machines & BuildingReplies: 7Last Post: 27-06-2014, 01:18 PM -
BUILD LOG: Steel Framed CNC router
By Joe in forum DIY Router Build LogsReplies: 14Last Post: 23-06-2013, 10:45 PM -
BUILD LOG: Steel Framed Router
By GTJim in forum DIY Router Build LogsReplies: 52Last Post: 14-09-2011, 06:51 PM -
BUILD LOG: My steel framed router
By pavlo in forum DIY Router Build LogsReplies: 17Last Post: 06-03-2011, 10:08 PM
Bookmarks