Complete Nutcase Redesigns High-Performance FDM 3D Printer - Progress Log

Hi, all!
I’m getting cracking with the redesign of my third 3D printer, and I thought I’d make a little progress log here in case anyone’s interested.

Some background on the project:

When this printer was originally conceived of, I was jobless and had a bunch of spare parts from previous printer builds and unfinished/shelved attempts at such. Hence the challenge became to design a printer that used as many of the spare parts as possible, and to use as few fresh, new, extra bought-in parts - hence coining the printer “SPish” for “Spare Parts -ish”. Taking this spare-parts scrappiness approach into the CAD, I ended up with a very messy, very slow CAD document that was very hard to work on, especially when modifications were required as a few upgrades were made.

Here are some views of the current iteration of the printer:



Issues with this iteration:

  • 3D printed bed carrier is not rigid or repeatable enough
  • PSU mounted at the rear of the unit pushes the mainboard forward into the frame, not allowing enough space for adequate cooling, hence-
  • Drivers overheat
  • Z leadscrew setup takes up a lot of space
  • 3D printed XY motor mounts deform and deflect with motor heat and belt tension
  • Belt tension puts unwanted torque on the XY linear carriages, made worse by the leverage the belt has by being secured so high up relative to the carriages
  • Frame is not perfectly square or perfectly flush in construction due to manual processes used
  • XY rails mounted on said frame are very cheap and low quality (bearings have a kind of skipping, catching quality), and they also don’t sit perfectly in the V-channels of the aluminium extrusion, leading to high potential for error in the fixing of the rails to the extrusions
  • Inaccuracies in construction and fabrication result in inconsistency of the sensorless homing, such that at times it “homed” mid-axis and subsequently crashed on the next move
  • Some compliance of unknown origin in the Y axis prevented the acquisition of clean usable data for input shaping
  • Bed and hotend heaters aren’t powerful enough
  • Weight of the motors on the flying cross gantries combined with their placement on said gantries resulted in poor printing performance and strong moments on the assembly under high acceleration
  • The bed plate itself is badly out of flat

What am I going to do about it?

  • The XY linear motion setup will be mounted on a single, rigid stainless steel plate affixed to adapters at the top of the frame, establishing a better linear reference than the frame itself, and allowing me to reuse the current frame
  • XY motors will be mounted such that they will not be part of the moving mass, and will move to two motors per axis, instead of one
  • Belt tensioning will be designed in a way so as not to have adverse effects on the mechanical system under high tension (ideally, regardless of tension applied so long as it is sufficient)
  • Heaters will be upgraded
  • Mainboard cooling will be upgraded and its mounting changed to avoid incursion into the volume of the box frame
  • To enable this, the PSU will no longer be attached to the printer, and will be VHB-ed to the underside of the desk on which the printer is currently affixed
  • The Z axis will move to a belted solution, and will have a sheet metal bed carrier, supporting a cast-and-machined tooling plate as the bed, to achieve higher flatness
  • Higher quality linear guideways will be bought for XY
  • The new XY assembly will make extensive use of CNC-milled and/or SLM metal parts to avoid the deformation issues that plastics have under such extreme conditions, yet still be engineered such that a gross excess of extra moving mass is avoided

Additional comments, upgrades, and criteria:

  • Target acceleration is 50ms^-2, ~5G
  • Target top speed is 1ms^-1
  • Whole layer cooling is to be implemented, but it’s more of a “want” than a “need”
  • A toolboard may or may not be implemented in some form, as I was displeased with the size and weight of the wiring harness to the toolhead in the current/previous iteration
  • Will upgrade from TMC2209 drivers to TMC2240 drivers for some extra robustness and performance headroom
  • You’ll notice me scarcely mention the toolhead in this post, and most likely for the foreseeable future, as I consider the toolhead from the current iteration to already be pretty close to ideal/optimal - I do not expect it to need work:

Where are we today?

So far, the printer has been disassembled down to the box frame (and the Z rails too, while they are still of the cheap-and-cheerful kind, they are acceptable in this use case), though still retaining some of the original design’s reinforcements, which may yet be removed:

You will be able to notice evidence of filing, done in order to mount the X-axis linear rails in the original iteration. Don’t mind all the cables, and the other custom 3D printer to the left.
I have largely started the CAD document afresh, giving it a proper structure and only importing the most relevant parts from the previous iteration. This is going to allow me to operate a lot more efficiently and smoothly, and will give less room for dependency-related errata to occur.
From this point, I have reassembled the box frame in CAD, and have already redone the mainboard mounting and cooling (now using two 4028s instead of a single 4010):




(I haven’t bought the 4028s yet, and the USB-B connector is missing, as I have replaced it with the pigtail that you can see on my left hand, which leads into an external USB-C breakout, which works better for me)

What’s next?

Next, I’ll be working on the XY stage, which is going to be the bulk of the hard work, and which I expect to take weeks, if not months. I’ve been making some rough concept sketches in my notebook, and generally getting my thoughts in order, ahead of launching into prototyping/iteration:

The plan at this point is to have an adapter block at each upper corner of the box frame, that a motor mount and tensioner can then bolt to, with tapped holes at the upper extent, to which the XY reference plate will be attached, with the linear guideways subsequently attached to that.
I’ll be updating this topic as the design process progresses. See you then!

11 Likes

That’s 3D printer is my hobby moment. Super cool.

2 Likes

Starting on the corner mounting adapters to go at the top of the frame.
This is a bit tricky, since a lot of the assembly has to come together all at once for the dimensions to be truly finalisable.
A rough prototype emerges.


Idea being, one of these is on each corner, and has tapped holes in it (that aren’t modelled yet) that allow you to screw pulley and motor mounts to the adapter. (yes I bothered to import the screws instead of relying on the Onshape inbuilt ones that don’t have the kind that I use… probably will be the case for all XY, but not for the rest of the machine).

A small thought just came into my head that since we need two variants of this, one mirrored, and each variant has perfect rotational symmetry to the opposite diagonal corner, that I could bake the pulley and motor mounts into the one piece… requires evaluation for maintainability, though. I really want this thing to be as easy to service as possible.

While on the way to work this morning I was also evaluating the toolboard idea. A 4-wire connection is possible using CAN but requires an external transceiver (that I don’t want to dedicate the space for, given that this is a very small/tight build in a small space already, the board is pretty big, and I’ve heard the setup is a nightmare). The toolboards do accept USB but a) that cannot supply enough power to the toolboard (going straight into host machine, no PD here) and b) I feel like using a regular USB cable would negatively impact resonance measurements. At the moment, my mind is on a hybrid approach - soldering up a thin silicone-sheathed wire pigtail to take care of the USB, and wiring up two beefier silicone-sheathed wires to take care of power (I need about 100W). To that end, I devised of a run of 16AWG from the PSU up to the XY staging plate, where it can then terminate at some two-pin connector, ideally panel-mounted on that plate, from the other side of which a short 20AWG run can be made to the toolboard - minimising vibration and minimising resistive losses (in theory).

I’ll continue to work on this corner piece and start on the motor mounts and belt tensioners in parallel. Don’t be surprised if this part disappears or is substantially changed - it’s real early doors at this point.

Note to self: When it comes to the belt-to-linear-guideway mounts/clamps/adapters, leave oval holes - don’t let the two motors on each axis fight each other by being fractions of a step out of sync.

2 Likes

Original extra Z axis supports from the box frame have been removed in order to free up said corners for development/iteration.


1 Like

Some visual mockups of the arrangement:



I think this should work, though I’m a little concerned the attachment of the lower set of belts to their respective linear guideways will require excessively tall/long parts to actually transfer the driving force through, potentially yielding some deflection-related issues in printing, under the high accelerations. Nothing we can’t engineer around, I don’t think.

1 Like

Pondering some fucky extra pulley setup for the problem mentioned at the bottom of my last post…


I don’t really like this, part of doing things the way I am is to avoid this kind of needless belt spaghetti… but it’s an option, a thought…

1 Like

The above firmly aside for one moment, I think I’ll be going ahead and integrating the motor mounts into the corner pieces, as the motors will be able to be unscrewed from the motor mounts with ease, though I will still keep the modular approach for the tensioners, as they are a bit more complex. I’ll probably create a new subassembly in the CAD document just for the tensioner.

1 Like

As a German mechatronics technician I will say: kudos, you picked a really nice project with a selection of parts of which basically each will give you some issue along the way. I think you can out-design their issues enough to get a decent enough printer though. Cool project! Hope to see more updates :slightly_smiling_face:

@Chertiii
image
:wink:

1 Like

hahah, well… as advertised :rofl:

1 Like

OK, some progress today.
I have integrated the motor mounts into the corner pieces, as promised:

Also removed an extraneous bolt hole that would have been redundant, and recessed the inside of where it was for the head of the bolt underneath the mount that causes that bolt location to be redundant:


(no, I won’t be modelling the hole and counterbore for that bigger bolt in the frame… until it bugs me enough)

The whole assembly looks like this, now:

There is work to do on the corner mounts yet. This includes, but is not limited to:

  • Tapped holes in the top surfaces for mounting the XY “staging plate”
  • Tapped holes in the side parts for mounting the belt tensioners
  • Minimising Z axis space outside of that which the motors require, once the belt tensioners are finalised
  • Finishing touches and styling
  • DFM (should not be a separate step really, but shut up)

I did also start on the tensioners today. These are really difficult and require a lot of thought. My concept places an idler pulley at one end of a class 1 lever, with an adjustment screw and a compression spring return at the opposite extent. In order to balance the forces acting on the tensioner from the belt itself, and to avoid the idler pulley from ever falling off of its shaft, I wanted to constrain the pulley at either end. Hence, I devised two clevices with a half-shaft each side:





Some features of note of the clevice are annotated as follows:
1: Boss over which the return spring fits, not allowing the spring to leave the assembly
2: Radius for the adjustment screw to press against, hopefully letting the screw keep at least a couple points of contact over the range of rotation of the tensioning arm (could consider fitting something more compliant to the end of the screw here)
3: The Pivot (Duh)

There are a few (potential) problems with this current approach:

  • The spring might not like deflecting sideways throughout the rotation of the tensioning arm as much as it might be by the little “hook” it will sit on. Solution to this is to tweak the size of the hook, at the risk of the spring potentially disengaging from the assembly
  • The assembly might end up too tall in Z
  • These parts are TINY (and 3D, and complex), and if I can, I would like for them to be machined rather than additively manufactured (metal either way). DFM is going to be intense, or the parts are going to be very very expensive, or both…
  • I haven’t yet figured out a way to keep the two clevices (currently, one simply a mirror of the other, in order for the spring “hook” and adjustment screw face to reside on the same side) attached together. Considering that there are now two separate parts due to the mirroring operation, I might look into using a screw or two (one side having clearance holes (and maybe counterbores), and the other side having tapped holes) - but the current design does not have enough space for such things

It’s early doors, anyhow. I’m not satisfied at all - I may continue to develop using the current design, redesign the clevices entirely, or jump ship to a completely different approach, depending on how development goes. I’d be interested to hear people’s thoughts.


There’ll be no progress throughout next week, as I will be on holiday, away from my workstation (or any PC, for that matter) - though I’ll still of course be thinking about the project, and may update this topic if ideas strike me (and of course, if they don’t, I won’t).

That’s all so far :smiling_face:

3 Likes

Quick thought from my walk to work today: Moving the adjustment section of the lever arm by 90° such that the clevice resembles a bell-crank linkage, and hence such that the adjustment screw and return spring are coaxial to Z, could massively reduce the Z height of the assembly.

1 Like

Really like how you are into problem solving. The CAD work is excellent (noob perspective). Entertaining.

What program do you use? Fiddling with FreeCAD, and variants, for a few years and I still haven’t figured out weather to use it as a parametric system or more like Sketchup but with a spreadsheet.

Dealing with the Topological Naming Problem is still a mystery. Can’t fathom the sophisticated parts you are designing. Congrats.

1 Like

@lincolna-gaundo I’m using Onshape, the favourite of mine so far (have used SketchUp, Fusion 360, and have a professional cert in Solidworks) :grin:
In my eyes, Onshape is the best. Especially compared to Solidworks, it’s a lot more open-ended with the methods - Solidworks very much feels like “you will design in the way we want you to” whereas Onshape leaves you free to develop your own workflows as you please. As such, I approach different projects with different philosophies, and decide whether or not to go full-bore parametric-everything on a case-by-case basis. :slight_smile:
Not having used FreeCAD myself, I can’t make any comments in its direction, though the few screenshots and screencaps I’ve seen give me a dated impression of the interface. I have just skimmed FreeCAD’s own documentation WRT “Topological Naming Problem” and yeah Onshape doesn’t behave in this way at all (through not giving each face a unique name, a selection is just “Face of (part)” and not “Face(N) of (part)”). I would recommend giving it a shot if you can (it’s free for hobbyists).
(Oh, and thanks for the compliment :slight_smile: I’m no engineer but I try my best)

3 Likes

Your mastery is evident. Thanks for sharing.

1 Like

I have been thinking about trying onshape I been stuck in fusion for a long time but recently a non technically literate friend asked me about onshape. But now that I am facing some issues running it in Linux it might be worth the switch.

1 Like

Looking at the first CAD renderings of the motion system I heartily agree!

Good luck, looks like more fun than just rebuilding an Ender.

1 Like

OK, back on the project. Been mucking about with this clevice.

I’ve decided that instead of taking the adjustment arm directly 90 degrees out of the pivot, it’ll have some offset in Z, as you see in the screenshot - this will allow me to have the return spring in the same Z range as the arm takes up, saving that Z height that would have been wasted by the return spring being situated below the pivot.
This extra length of arm will be useful for screwing the two halves of the clevice-pulley-clevice subassembly together, as well.
Not final by any means yet, I’m trying my best to wrangle and massage this into something machinable, and of course I need to add the contact points for the return spring and the adjustment screw at the distal end of the arm.
Once I’m pretty much there, I’ll start work on the housings that these things are gonna sit in.

Note to self: consider Z displacement downward of this bit as the pivot rotates:

(horizontal offset needed to avoid very unmachinable features on the inner join, arm cannot be touching/part of the pulley holder section:

2 Likes

Had some time today (and the motivation!) to dig back in and make some progress.



I am happy with the general form of these clevices now, the way they attach together, machinability, etc.
That said, I have had to mount these upside-down compared to how I originally envisaged, in order for the driver and idler pulleys to end up lined up correctly - this has resulted in the arm part of the clevice being not quite appropriately shaped for the application anymore, leaving too little room for the return spring (and the adjustment screw contact point and return spring attachment point being flipped from where they should be):

… hence I’ll have to reshape them a bit, but that won’t be too tricky.

As you can see, I did loosely start on the housing for the tensioner, though, again as visible, it remains primitive until I have the clevice more or less final:


Hopefully, the pivot of the clevice will float on a shoulder bolt bottomed out in the boss of this casement - I’m aiming for the tightness of said bolt to have no effect on the freedom of rotation of the pivot. It also remains to be seen how this concept will work when placed in its position on the other of the two axes.


I actually paused progress to wait to be home to take these CAD screenshots, so let’s move on to the other part I worked on today, the X-on-Y rail mount.
This is the part so far:



This fastens onto a Y-axis linear carriage, secures the X-axis cross gantry to it, and is the part responsible for taking mechanical power from the belt for the axis. I haven’t designed the bit of it that actually “reaches down” to the belt in order to do that yet, though that’s what those “wings” are the precursors to (I considered turning those into tapped bosses and having a separate piece attach, but the idea seemed troublesome). This piece’ll be metal 3D printed, so I have free reign over the geometry here. There will be one of these at each side of the X axis cross gantry, and the same will apply to mounting the Y-axis cross gantry on the X-axis linear carriages - though, since the rails cannot intersect, the Y cross gantry rail is physically higher in Z and may require a slightly different approach to the clamping section. This is visualised in the main FDM 3D-printed adapter piece that forms the basis of the toolhead:


That’s all the progress for now. Plenty midway, plenty to do, as you can see. Hopefully I can start to get some good momentum going - I enjoy working on the project immensely, though it’s such a gargantuan task that picking it back up even after only a couple days away from the project feels daunting.

Until the next!

3 Likes

OK holy shit do I have progress to share! Work’s been slow these last few days, so I’ve had a lot of time to knuckle down on the proj.
… where the heck do I even start?!
At the beginning, of course!
Strap in, this one is going to be long.


I flipped and reshaped the adjustment end of the clevice arm as mentioned, and started to lay out the casement:

This included a little nubbin in the bottom to locate the other side of the return spring on, with the other side having its thickness reduced to be able to accommodate the spring I was to use.
I also made a little cap to enclose the assembly:



HOWEVER!

It was at this point that I realised I’d reversed the function of the mechanism - to advance the adjustment screw would be to loosen belt tension, meaning that the return spring would be doing all of the work of actually applying tension. Plus, the little spring nubbin in the casement was effectively unmachinable.

This would not do.

Over the next few days, I devised of a linkage-based mechanism that allowed me to remain within the constraints of the assembly at large, while preserving the key operating principle of “tighten screw to increase tension”.
Here it is:


I won’t wax on about how it operates, you can see for yourselves. I did check with JLC to see if they were able to machine the tiny slot-pin-nut parts and it seemed OK.

While at it, I massaged the casement somewhat to get it to exactly fit in the space allocated for it in the assembly, ensuring alignment of the driving and driven pullies with the aid of a guide piece, and gave the subassembly all of its fasteners, including the main pivot shoulder bolt:









As is visible in the latter screenshots, I tweaked the geometry of the clevices somewhat to prevent coincidences with the casement under moderate deflection of the linkage.
This was freshened up a smidge with a couple of chamfers:


It was at this point I pondered my reasoning behind the pulleys being so far from the frame, and the answer was that I had simply mated the driving pulleys to the ends of the motor shafts and forgotten about it/assumed that was status quo.

Hence, I set about slimming down the assembly a little to try to reduce the effect of belt tension as leverage on the motor shaft, as that is sooomewhat of a concern - and I did manage to bring the whole thing in by 2.6mm. Not by as much as I would have liked, but it will help:

From here, I created the mounting holes in both the casement of the tensioner and the corner mounting piece:

and gave those fasteners too. Once I was happy with all of this, I created mirrors of the tensioner casement and its capping piece, in order to fit on the opposite rotation side of the assembly:

I don’t really like this reliance on mirroring, it feels messy and increases the chances of things going wrong a bit, but I couldn’t find another way - it would have been nigh-impossible to make the tensioner truly symmetrical.

This was then mated to the overall XY assembly, and I modified the mirrored corner piece to match it better (this being the lower of the two belt runs, the wide part at the corner of the frame did not exist this low and thus I had to create it):


(as is visible, I did slim down the useless opposite side of the corner block to make it sleeker)


The next thing to tackle on the Y axis was the bringing upward of the belt run to be easily connected to from the linear motion stage, and this began with placing a pulley roughly above the Y motor. I didn’t want to mount this on the X-axis’s tensioner, even though the position would have been ideal, in order to aid maintainability - so at first, I had the idler significantly offset, eating up a large portion of the available space. I eventually figured out a way to wrap a mount around the tensioner as part of the original corner piece, without issue:



(with my red circle in the top figure being the original location of the mounting hole)
This idler pulley is kept in place with another shoulder bolt, as it forms a handy shaft. I’ve allowed a bit of Z-axis float of the idler along the bolt to avoid overconstraining things, though I didn’t want it to be able to move too much, hence the little step:

You may observe I have left similar clearances between different parts of the assembly, including in a different way on this same feature, in order to reduce chances of overconstraint:



At this point I was able to focus my attention on the other half of this Y-axis belt run - bringing that higher level belt run back down to its tensioner. For this, I made a simple part with two idlers, once again mounted on shoulder bolts, that attach onto the back of the X axis motor with bolts that replace the originals used to secure the motor together:




It’s not particularly beautiful. I don’t know whether or not I feel like “beautifying” it, or even how. It’ll do for the time being.


I took 5 minutes to mock up belts to illustrate the belt paths:






Hopefully my rationale for doing the belt-weaving on the Y-axis begins to make sense now, or soon.


With this section of the assembly tentatively complete, I am now turning my attention to the XY linear motion stage, which will at some point incorporate the little adapter block I showed in my previous post - but there’s a lot of groundwork to go before integrating that.
I’ve just begun on the plate on which all of this stuff goes:


It’s nice to have something unifying the four corners of the assembly.
Here are a few screenshots of everything in context:



I currently have no idea where the Z belts and motors are going to go, but We’ll Figure It The Fuck Out :tm: - it’s very much secondary to getting this XY stuff right.


What’s next?

For the sake of conciseness, I’ll bullet point the next steps:

  • Create mounting pattern in the XY corner mounting blocks on which to mount the linear motion stage plate, transfer holes to plate
  • Lay out the XY fixed linear rails and also the XY cross gantry, integrating the toolhead in order to check exactly where on the plate the fixed rails need to be in order to grant the toolhead the maximum working area possible
  • Create the holes in the plate on which to mount these fixed rails
  • Make the X-Y cross gantry adapter and polish up the Y-X cross gantry adapter, assemble
  • Design and integrate belt clamping/power-take-off for both aforementioned adapters

… and we’ll see how we go from there.

I think I’ll try to make updates a bit more frequent, since they’ll be easier to digest and there’ll theoretically be lower chances of me making large mistakes, as hopefully y’all might catch one or two and set me straight (please, don’t hesitate! I wouldn’t mind the odd bit of feedback/ideas bouncing/reaming :grin:).
Any questions that aren’t direct feedback are also welcome!
Until the next…

3 Likes