Here is Ms. Kitty enjoying my corexy sand table running a circular erase pattern at 1500 mm/sec with acceleration of 10k mm/sec^2.
The table is driven by two servomotors with a Duet2 WiFi controller.
I'm a dentist who likes to build 3D printers. I spend a lot of time at the Milwaukee Makerspace.
Here is Ms. Kitty enjoying my corexy sand table running a circular erase pattern at 1500 mm/sec with acceleration of 10k mm/sec^2.
The table is driven by two servomotors with a Duet2 WiFi controller.
You're essentially asking about the difference between a Kelvin and a Maxwell kinematic coupling.
The "rails" have to run parallel to the direction that the plate expands, relative to the chosen reference point. The reference point location relative to the adjustments is what makes it a Kelvin or Maxwell coupling.
If you choose the reference point to be the center of the bed, the "rails" should be aligned to point at the center of the bed at all three support points because the bed expands outward in all directions from there. That's the classic Maxwell coupling.
OTOH, if you choose one of the screws to be the reference point, say one of the two along the bottom edge, that point won't need rails- just a "hole" to sit in. The rails at the other point along the bottom edge will simply be parallel to the bottom edge (in your drawing) of the plate, and the third will just support the flat bottom of the plate and is allowed to slide in X and Y. You'll adjust the bottom edge point first to set the edge of the plate parallel to printer's X axis, and then set roll using the third point to set the plate parallel to printer's Y axis. This is a Kelvin mount.
The Kelvin mount's square angles are easier to set up accurately - most machine tools are square- than the odd angles that will result if you choose the reference to be any other point (as in a Maxwell mount), and you only need "rails" at one point, not all three.
If the rails are set square to each other (Kelvin style) and the lines they define are parallel to the X and Y axes of the printer, leveling the bed is super easy because a) you'll only need to adjust two leveling points and b) when you make the adjustments all tilting will be in the directions of the X and Y axes of the printer.
I used a Kelvin mount in my printer, with the reference being a point on one of the "ears" on the plate:
In the Maxwell mount, every leveling adjustment, tilts the bed in X and Y, so tramming isn't quite as simple. Also, every tramming adjustment moves the reference point vertically, so you have to adjust the Z=0 position once the bed is level. It's only a Maxwell mount if you accurately aim the rails at the reference point. Any error will cause the bed to tilt and move up and down a bit as it heats up.
With the Kelvin mount, the reference point doesn't move vertically when you tram the bed, and each adjustment (provided you adjust pitch first, then roll) only tilts the bed along one axis. That means that when you adjust roll, it doesn't affect the pitch adjustment.
Of course, if you use auto tramming and zeroing, difficulties in adjustment shouldn't matter...
I recently installed opto endstops in my corexy printer and ran some tests of their precision.
In the X and Y axes I ran two identical prints with the first homing normally at the start of the print and the second rehoming X and Y after each layer change. The result is that the prints are barely distinguishable under high magnification and are essentially identical without magnification, indicating that the precision of the optical endstops is very high. Here are two photos of the prints that contain the largest visible difference between them:
Why would anyone want to home a print at every layer change? MarkForged printers use that feature to automatically detect and stop layer-shifted prints. If you are printing expensive material such as PEEK, PEKK, Ultem, etc., you want the print to stop pretty quickly if there's a problem like layer shifting. I'm thinking about how to program a macro that will detect layer shifting in printers running Duet controllers.
I also tested the Z axis opto endstop. I mounted a digital gauge on the printer's frame with the probe contacting the bed, then homed the machine and zeroed the gauge. I moved the bed down random amounts and rehomed 10 times to see if the bed would return to the same position as indicated by the gauge. 8 out of 10 times it went to 0.00 mm and the other 2 times it went to 0.01 mm. The Z axis in my printer is configured for 16:1 ustepping, interpolation on, and 800 steps/mm.
Video here: Z axis homing precision test
The typical way to adjust the Z=0 position is to use a screw to bump a microswitch. The problem with that is when you're zeroing the Z axis you need to be able to make very small adjustments to the home position of the bed/extruder. If you use an M4x0.7 screw, one turn of the screw moves the home position by 700 um- that's more than 3 full 200 um print layers. If you need to move the home position 30 um, that's 1/23 of a turn - not too easy to do without overshooting.
I designed a differential screw adjuster to go with the optical endstop in the Z axis. It uses a M5x0.8 screw with the end 20 mm or so turned down to 4 mm and rethreaded with a M4x0.7 mm die. The result is an adjuster that moves the home position of the bed by 100 um for each full turn of the adjuster, making it very easy to make small adjustments.
While I was running the other tests I checked the adjuster, too. The result- about 100 um per turn of the adjuster, as expected.
Video: Differential screw Z=0 adjuster test
One of the best things about opto endstops is the cost. 3 for $10. They work fine with the 3.3V that the Duet supplies. They also don't seem to mind the 50C temperature inside my printer's enclosure when I'm printing ABS. These endstops have LEDs that light up when they are triggered, making the Z=0 position adjustment easy because you don't have to check the control panel of the printer - just turn the adjuster until the light comes on.
More here:
https://drmrehorst.blogspot.com/2020/03/a-new-z-axis-optical-endstop-design-for.html
https://drmrehorst.blogspot.com/2020/03/testing-ummds-xy-optical-endstops.html
https://drmrehorst.blogspot.com/2020/03/testing-ummds-new-z-axis-optical.html
I occasionally see people posting about using servomotors here. One thing you should know about them is that they can wipe out your controller board, power supply, and any other connected electronics if you are not very careful in their use. I was uncareful and learned this the hard way when I was building the Arrakis sand table.
I had slightly reduced the size of the corexy mechanism, but failed to update the travel limits in the config.g file. I then ran an old pattern file that was generated at the original, larger size on the new, smaller mechanism. I think all this happened before I had my morning coffee. The machine homed itself then took off at 1500 mm/sec and promptly slammed into the physical end of the Y axis, bringing the servomotors to an abrupt halt. That caused a voltage surge on the power supply line that destroyed the Duet2 WiFi controller board, the power supply, and some buck converters that were used to power LED strips.
Someone pointed me at an app note on the Gecko Drives web site that will protect from exactly this sort of problem (and mechanical failures like seized bearings, or someone/something (cats?) blocking the mechanism. This is the circuit:
I designed a PCB, ordered parts, and after waiting months for backordered connectors, decided not to wait any more. I built a couple boards and ran a test of the circuit prior to installing the servomotors in my 3D printer. The protection circuit appears to work as expected. The abruptly stopped motor generates a voltage spike that gets dissipated in the 33 Ohm 10W resistor and the spike is never seen by the power supply.
@MartinNYHC said in Belt tension:
Just finished my BLV mgn cube build and now need to fine tune all the stuff. I'm wondering what the right belt tension is. Are there any rules of thumb?
There are just two rules of thumb for corexy machine belt tension:
If the belts are too tight, you'll be putting a lot of force on the pulley and motor mounts, and if they are stacked belt type that stand up like a fence post, they are liable to flex inward. The mechanism may not move smoothly and may bind depending on the type of linear bearings and the design of the pulley mounts. If you see pulleys tilting inward, you're putting too much tension on the belts (or you need to redesign motor or pulley mounts).
If the belts are too loose they may slip on the drive pulleys - that's MUCH too loose. If they are so tight that the mechanism won't move smoothly, they are too tight. You want them to be somewhere between those extremes, and just about anywhere between those extremes will work fine.
Before you tension the belts, the X and Y axes should be square. When you tension the first belt, they X and Y axes will usually be pulled out of square an amount that will vary depending on the flexibility of the X axis assembly, the type of bearings and guide rails used, and the absolute tension applied.
When you tension the second belt, it will also increase tension on the first belt that you already tensioned, so when you tension the first belt, leave it a little looser than you feel is sufficient. Then, when you tension the second belt, the first one will tighten up. You are done adjusting tension when the X and Y axes are square and the belts are tight but not too tight. Usually, the belts will be close to equal tension when you're done, but getting the axes square is the final indicator, not equal belt tension.
If the belt tension varies as you move the extruder carriage around, the pulleys guiding the belts are not positioned correctly, and a major redesign is in order.
I put an LED and coin cell battery in the magnet holder, turned the table on its side, and ran a pattern. The result:
It took about 5 minutes with the speed at 2000, accel at 10k, and jerk at 12000.
This may be of interest to those who still use endstop switches to set Z=0 in their printer. I was using a lever/cam with a clicky microswitch to set the Z=0 position in my printer, but it developed a problem so I decided to work on a replacement. I changed to an opto endstop that has an LED that lights when the beam is broken. But that's not the interesting part. I made a differential screw driven adjuster for the flag that breaks the light beam. The differential screw moves the flag 100 um per rev so it is very easy to make small adjustments without over adjusting. The differential screw assembly mounts on the bed support that moves up and down and the opto endstop mounts of the printer's frame:
The screw was made by turning the end of an M5x0.8 screw down to 4 mm on a lathe and then threading it for M4x0.7. When you turn the screw 1 rev, it moves 0.8 mm up, while the M4 nut (and the flag) move up 0.1 mm. It has about 2mm of adjustment range, so you get it close by moving the opto endstop on the frame, and make fine adjustment with the screw.
More: https://drmrehorst.blogspot.com/2020/03/a-new-z-axis-optical-endstop-design-for.html
This post is going to touch on a lot of topics previously discussed. I'm slowly sorting through the extrusion tuning posts and keep running into mentions of setting the extruder acceleration/jerk high so that among other things, the extruder doesn't limit the XY motion speeds.
What are good numbers to start with/use for extruder acceleration and jerk assuming one is going to turn on and tweak nonlinear extrusion and pressure advance? How would you actually test it to determine the limits? The firmware controls the extruder based on XY motion so there's no direct manipulation of the extrusion, other than to insert M201 statements into the gcode file (would that work?). Maybe print a line at some moderate speed/acceleration (well below the mechanism's limits) at some specific acceleration for E, then do it again and again stepping up the E acceleration until the extruder motor starts skipping? Does the Duet report extruder motor skipping, or am I listening to the extruder to determine when it skips?
Has anyone put together a compendium that goes through a step by step process for tuning the extruder/printer that includes nonlinear extrusion and pressure advance? There seems to be an awful lot of interacting variables.
Right now I'm thinking the sequence would be something like this:
If you change nozzle size or heater block/heater, go back to step 4 and do it all again.
I put the sandbox back on the table and ran some tests aimed at finding the upper limits of speed and acceleration for drawing patterns in the sand. I failed ... to find the limits!
@Danny-Jay You haven't said how large the bed plates are, but 300 mm plates expand by about 0.5 mm when heated from 25 to 105C (ABS print temperature). The underlying support frame will not be as hot so it will expand much less. That's going to force something to flex, and that will move the bed plates in Z.
If you put each plate on a kinematic mount, and put the reference points at the center of the group, the plates will expand outward. The kinematic mounts will allow that expansion without forcing anything to flex. The spacing between the plates will remain almost exactly constant. You will need a hole in each plate at the reference adjuster and a short slot at the pitch adjuster aligned parallel to the X axis of the printer, and a screw that touches the bottom of each plate at the roll adjuster point. You'll also need springs to hold each plate down on the pitch and roll adjuster screws.
With this arrangement, heating one or two of the plates for a small print won't create any problems.
@Danny-Jay I used 60 tooth drive pulleys for the Z axis in my printer which yields 20 um per full step, and I slew the Z axis at 15 mm/sec (I think it could do 20). Using 30 tooth pulleys would take that to 10 um per full step and slow it down a little. My printer uses two belts to lift the Z axis and measurements show belt stretch is inconsequential. If you use 4 belts instead of two you can expect less stretch. I haven't tested the limits, but I suspect that motor, running at 80% of rated current, could lift 30-40 kg without problems.
I don't think using flexible stud mounts for the bed plates is a good idea. If the studs flex, the plates will move in Z. It would be more stable to put the plates on kinematic mounts. They will be able to expand without bending anything and maintain constant Z position regardless of temperature. If you put the reference adjuster positions all near the center of the 4 plates, the plates will be free to expand outward. I would use kinematic mounts even if you plan to use bed flatness compensation.
In the pages linked above there are some updates- be sure to check them out as some changes were made after the original blog posts.
@Danny-Jay said in Large 3D printer build! Hardware discussion and ideas:
brakes are an absolute necessity on this scale, the bed will crash down no matter what as soon as power is cut to the motors.
Have you considered using a belt lifted Z axis? I used a 30:1 worm gear reducer to stop bed movement when power to the z axis motor is cut. It's very simple- no brakes, no external motor drivers, and no fancy configuration are required. I run the motor at 1A (driven by the driver on the Duet 2 controller board) and it has no trouble lifting 7.5 kg (that's as far as I have tested it.). Running the motor closer to rated current will probably allow a very heavy load to be lifted. If you use 30 tooth pulleys you'll get 10 um movement per full step from the motor.
When power is cut, the bed doesn't move. It might jump a tiny bit when power is restored, but you should be able to resume prints with a minor z artifact at the point where power failed and was restored (assuming the print remained attached to the bed, and that you used a single motor to lift the bed).
@Arminas Printed motor mounts and pulley blocks have a tendency to flex when you tension the belts. That can cause the motor shafts and pulley axles to tilt a bit, and that can cause the belt to miss-track. I can't see what everything looks like, but as a general rule, don't stand pulleys up on posts, especially if the posts are in plastic. Also don't design motor and pulley mounts to look like they are made of bent steel sheet. I design them starting from a solid block and remove only enough material to allow assembly, tool, and belt access. Make sure pulley axles are supported at the top and bottom.
If the printer is large, the belt tension can cause the frame to flex, too, especially if it is made from small cross-section t-slot.
@claustro I'd check the drive pulleys to make sure they're firmly screwed to the motor shafts and then grab the hot-end and try to wiggle it. I should be pretty solid- if it wiggles easily that may be the source of the line pairs. It could be the way the hot end is attached to the extruder or the way the extruder is mounted on the carriage, or the carriage bearings on the X axis guide rail.
Under extrusion can be just slicer settings, or it could be you're trying to print too fast for the hot-end to keep up. What's the hot-end heater power rating?
The wavy perimeter lines could be a symptom of the underextrusion problem or could indicate some mechanical issue.
@claustro The top of the cube looks under-extruded. Notice the lines are in pairs with wider gaps between pairs than between the lines that make up the pairs. That indicates there is some backlash or other mechanical problem.
The side of the cube looks a little rough. That may be due to a dual drive extruder in which the drive gears don't mesh properly.
@bernardomattiucci Here's a company that makes good quality heaters- they sell via ebay, amazon, ali-express, etc.: https://www.keenovo.com/ They supply heaters with and without adhesive sheets. Get one without adhesive and use silicone to mount the heater on the plate.
Build-tak probably expands more than the aluminum when heated, and if the aluminum is thin it might cause it to bow if the build-tak is glued to the aluminum. A thicker aluminum plate would be less likely to have that problem. How are you attaching the 4mm plate to the thicker plate? Large prints stuck to the build-tak will shrink, even during printing, and may pull up the edges and corners of the 4mm sheet.
I would be very careful about operating the heater without it being pressed/glued into intimate contact with the aluminum plate. Any air between the heater and the aluminum may cause dangerously high temperatures to occur and burn up the heater.
@bernardomattiucci Is that 8mm plate cast tooling plate? Regular aluminum sheet is rolled/extruded and will not be flat like cast plate. What will hold the 4mm sheet on the 8mm plate?
Is the 4mm sheet aluminum or steel? If you're thinking of flexing the 4mm sheet to release prints, you may have problems if it is aluminum- the first time you try to flex it, it may just stay bent. 4mm steel may be too thick to flex much.
I use an 8mm cast tooling plate bed on a kinematic mount with a 750W heater and 0.7mm PEI sheet glued to it. ABS, PLA, TPU, and PETG (haven't tried anything else) stick. I release prints (usually) after the plate has cooled using a sharp scraper and a few drops of IPA dropped along the edge of the print. I've been using the same PEI sheet for about 6 years, regluing it every few years. When I did the most recent reglue I sealed the edges with silicone which may prevent having to reglue it again.
@bernardomattiucci This site will give an accurate estimate of heat-up time based on plate size and heater power: https://jscalc.io/calc/uS8JYjYISgIvzJ1x
While it seems wasteful to power the whole bed even for small prints, keep in mind that the bed runs at full power only until it heats up and then it starts turning on and off to maintain the set temperature. While it might run at 1200W for 10 minutes or so to get to print temperature, it probably only requires a few hundred watts to maintain that temperature. Slicers normally put prints at the center of the bed because it's the most evenly heated part of the bed where you can count on relative flatness and good print adhesion.
As @jens55 pointed out, if you heat a small part of the bed, the whole thing is going to warp. Make sure the bed is at print temperature before you probe and run mesh compensation.
@bernardomattiucci The plate acts as a heatsink for the heater. If you don't attach it well at every point - i.e. no big air bubbles - the heater is liable to burn up.
I agree with @droftarts on using thick tooling plate. It is rigid, flat, and distributes heat well. The extra thermal mass will take longer to heat and cool, but you won't have to worry about Z artifacts due to rapid bed temperature changes. Use PID, not bang-bang, to control the bed temperature.
The heater should be the same size as the plate if possible. If you use a small heater, the cooler edges of the plate won't expand as much as the hotter center and the bed may bow unacceptably when heated.
Mount the heater on the plate using high temperature silicone so it won't detach after repeated heating and cooling. Mount a thermal cutoff on the heater (not the plate) to protect against fire if the if the adhesive lets go and the heater falls away from the plate.
A bed that large will expand about 1 mm when heated from room temp to 100C. Using a kinematic mount will allow the bed to expand without forcing it, or the support structure, to flex.
X axis sag will look like the bed has a hump on the mesh map. Make sure the X axis is rigid over its span.