I have been trying to build upon an existing small footprint CNC router, by removing the router head and replacing with 3D printing components. I put on a QU-BD single extruder; put on a heated print bed with leveling screws and springs; and used a pretty good controller board (gnexlab) for both the hot-end and the heated bed to regulate the temperatures (with thermocouples) ; all this to say that I just cannot seem to get consistently good printing with ABS or PLA. I use MACH 3 as my runtime environment. I use a couple simple bottle opener prints from Thingiverse as a test, and I think I have plenty of power for the hotend, but my prints fail 95% of the time. They don’t stick well, the thickness of what is extruded vary for each pass. They easily delaminate, or end up with un-even levels; So I want to hit reset and go back through, but could use some pointers. Oh, and I use slic3r to generate the G-Code.
Does the controller board coordinate the router movement with the extruder, adjusting the feedrate on all axes (including the extruder)? There are a bunch of possible causes for uneven extrusion, but the first thing to do is to validate that it is, in fact, feeding consistently at various speeds. If the PID response is too slow, the temp fluctuations alone can cause material feeding issues.
A number of thoughts on this Bruce.
Perhaps most importantly, the key to adhesion is the right temperature for both the plastic being extruded and the plastic it is contacting. The source plastic has to be in the ‘melt’ zone which is called the ‘glass state’ in some literature. The PID algorithm, in cooperation with the temperature sensor of the hot end should work to insure that plastic coming out of the extruder is at this temperature. Since it is diff erent for different materials, you really need to be able to set this as a parameter.
But just as important is that the plastic it is being extruded on to will stick to it, and that requires that the plastic your are sticking to is already hot enough that the addition of new melt will bring them both into the temperature where the plastic can fuse. The thermal trick that is going on here is that the plastic coming out of the hot end is a bit “too” hot, the plastic already laid down is just a bit “too” cold, and when they meet the exchange of heat brings them both to the “perfect” temperature to achieve maximal blending/adhesion.
So when you are building/designing/debugging a printer, one of the key factors is “how hot is the plastic coming out of the hot end?” and “how hot is the plastic it is going over?”. Typically the slicer sets up a tool path that tries to insure that any plastic laid down that is going to have plastic on top of it, gets re-visited by the tool head in “time” (it starts cooling as soon as it is laid down so you have only so much time before it is so cool it won’t heat up enough from the new plastic to get to the right temperature for adhesion)
When I looked at my old Sherline mill (with CNC retrofit) as a possible 3D printer base, I realized it could not move the axes fast enough to get back to where it needed to get back to in time.
Finally, don’t start with the wrench as your test object. Use test objects like the 20mm test cube or one you’ve made yourself to test how far away your print head can be and still get back in time to lay down some good adhesion.
Welcome to 3D printing, lots to learn, but definitely still on the “ground floor” 
@Joseph_Chiu @Chuck_McManis Thanks for the thoughtful and detailed ideas. I may go back and rethink the controller, as well as the platform. The controller just runs a single temperature so the gcode does not vary the temp or thickness from layer to layer, ( I can adjust manually, but that would not be practical); the CNC machine was just an available testbed, and truly is not that fast, so perhaps then I should start from the ground up. It has been a good learning tool.