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!
@giostark I don't know of any bed kits that are kinematic, but it isn't too had to DIY.
Start with 3 point support for bed plate- two ball head screws (or acorn nuts), and one "normal" screw:
Put one of the ball heads in a chamfered hole in the plate- this will be the reference adjuster:
And put the other ball head in a chamfered slot. This will be the pitch adjuster. Don't worry, they don't have to be milled- the slot can be cut with a saw and then filed a little to make a smooth edge for the ball to sit in. The plate is going to expand less than 1 mm, so the slot doesn't need to be long.
The third screw, the roll adjuster- just contacts the smooth underside of the plate.
At each screw the plate is free to tilt when you're leveling the bed. At the slot the plate is free to expand in the direction away from the reference screw, and tilt as needed while leveling the bed.
At the roll screw the plate is free to expand in X and Y.
Springs hold the plate down on the support.
See: https://drmrehorst.blogspot.com/2017/07/ultra-megamax-dominator-3d-printer-bed.html
and https://drmrehorst.blogspot.com/2019/04/more-changes-to-ummds-z-axis.html
Once you understand the basic concept, you can create this type of mount in many different ways. The slot doesn't have to be milled into the plate- it can be two parallel metal bars that are screwed to the plate. You can also invert the mount and put the ball head screws in the plate and the hole and slot on the support.
Leveling is easy. Adjust pitch, then roll. Done. If the assembly is solid, you won't have to do it again.
@droftarts The stuff I used is double wall polycarbonate that is sold in the US mainly for greenhouses. I used 8mm thick stuff that slots right into the 8mm slots in the 4040 t-slot frame. The stuff cuts easily with a saw and you can seal the open ends with clear packing tape (sealing it improves the ability to insulate and keeps bugs from nesting inside the material). After cutting I blew out the saw crumbs with compressed air before sealing.
PC should be able to handle pretty high temperatures.
The double wall PC allows light in and out of the machine and yields some attractive optical effects...
I have a 500W heater in my printer, with a fan that blows over it to keep it from getting very hot. The Heater is switched by an SSR driven in bang-bang mode. The fan is a 220VAC unit that is wired to the same SSR, so when the heater is on, the fan is on. The heater and line voltage are 117VAC. The fan turns slowly and quietly as a result, and doesn't stir up the air inside the printer so much that it will cause ABS prints to warp.
For safety, there should be a TCO wired to cut line power to the heater if it gets too hot (I haven't installed one yet, but should). Mounting the TCO is the tricky part- it should probably be mounted directly above the heater so that if the fan dies, the rising hot air will trigger the TCO. Don't use a self resetting TCO- if there's a fault condition, you don't want it happening over and over.
@Adamfilip When I installed optical X and Y endstops on my printer I ran a test of the precision of those stops. I added some custom gcode to the slicer so that the machine would rehome X and Y at every layer change. This function can be used in some MarkForged printers to detect layer shifting (a lot of their filament is very expensive, so you'd want to stop a shifted print early). In the MarkForged printers, they count steps to the home position and if the number is off, stop the print because it has shifted.
The result of my test was that my optical endstops were very precise, but homing at every layer change adds a lot of extra time to a print- typically 10-20 sec per layer which adds up over hundreds of layers. Homing at every 10th layer would be more practical.
"Autorecovery from step loss" isn't really recovery because it doesn't fix the problem causing the step loss. It just starts the next layer at the proper position, but that layer may also shift.
@gnydick Machining in UMMD (the corexy printer) was limited to cleaning up the edges of the bed and making the hole and slot for the kinematic mount, milling and drilling the teflon blocks for the kinematic mount, cleaning up edges of the rectangular tubing and drilling holes accurately, and squaring and matching lengths of the 4040 t-slot so the frame would squarely bolt together. There were probably one or two other simple operations on other parts as well, but nothing difficult, even on a manual milling machine.
PID control is fine when you need tight temperature control and you have enough heater power to move the temperature quickly, neither of which is typical for a chamber heater. Just set it for bang-bang mode and it will work fine.
I took a slightly different approach to my corexy build. I wanted to design the XY stage to make it easy to align the Y axis guide rails, and that's easiest if they start in the same plane, so I built a 4040 square subframe, bolted on two pieces of cast tooling plate, and then the guide rails. This method ensures that the Y axis rails start in the same plane so I only had to align them in XY and not XYZ. Motor and pulley mounts are made from rectangular aluminum tubing, minimizing the machining required, and acting as heat sinks for the motors (but probably not important as the motors don't get hot anyway).
I used a belt lifted Z axis, about 700 mm long, with a 30:1 worm gear drive that doesn't move at all when Z motor power is cut. The bed assembly weighs about 3.5 kg and I have loaded the bed with 4 kg extra weight and the worm drive has no trouble lifting it.
The bed is a piece of 8mm cast tooling plate on a kinematic mount. The print surface is a piece of 0.7 mm PEI. The bed plate, heater, and PEI are all 300x300 but the plate has "ears" for the kinematic mount. I don't use mesh compensation because it isn't needed. The plate is flat and stays flat when heated, and the kinematic mount is stable. I only have to retram the bed if I take the Z axis apart- last time was over a year ago. It just works, every time, even after I transport the machine laying on its back in my car.
In many designs enclosure seems to be an afterthought and becomes difficult, especially when the XY stage is sitting on top of the frame. I used to print a lot of ABS so I designed the frame to allow easy enclosure by making it large enough that the XY stage can fit inside the printer's frame. Adding PC or plywood panels to the sides of the frame can increase rigidity, but I used double walled PC sheet commonly used to make greenhouses. It fits in the t-slot, provides thermal insulation, and allows light in and out of the printer but does nothing to improve rigidity of the frame. Front doors are polycarbonate sheet, the larger one held onto the frame by magnetic tape. I also installed white and UV lighting.
In a corexy machine, most of the wiring connects to the printer at the XY stage, so I put the electronics at the top to minimize cable lengths and to make it easy to access the electronics without having to crawl on the floor or turn the printer over.
It's not hard to understand why it makes noise. You're switching a large current through the traces/wires in the bed. That sets up a magnetic field. That field interacts with the field created by the magnets that hold the bed plate down. Instant speaker.
At low PWM frequency or bang-bang mode, it will click audibly each time the bed heater switches on or off. At higher frequencies it will start to sing.
MOSFETs have very high off resistance and very low on resistance, but gate capacitance and drive current limit the speed of the transition between on and off. If you try to drive it at too high a frequency, the MOSFET experiences that transition for a greater % of the time and the MOSFET heats up. If you try to go too high in frequency, it may never switch all the way off or all the way on and you'll burn up the MOSFET.
If you want it to be silent, remove the magnets...
Layer synchronized time lapse print on UMMD.
I used a cell phone camera running Open Camera, triggered by a bluetooth button. At each layer change, custom gcode moves the extruder to X=0 (center of the X axis), then Y axis moves to the back of the machine which pushes the bluetooth button. Images are uploaded to Google Photos, and I use IrfanView to bulk crop to desired size and ImageJ to turn image sequence into video. Details here.
@TRATOON The Hemera is a dual drive gear extruder- this might be of some help: https://www.youtube.com/watch?v=32dTLRNIYmw
Have you checked to make sure everything is bolted together solidly, and that belts are "tight but not too tight"? Look for any mechanical wobble, etc., and fix it.
@tylersuard The fuse works on the peak current, not the average. It doesn't matter if you set the PWM to 50%, the peak current drawn by the heater remains at over 7A. Fuses are safety devices. The 5A fuse is intended to protect both the switch/socket and the connected circuit. It's not a good idea to simply replace the fuse with one rated for higher current. If you want to maintain the safety of the whole circuit, you should replace the power switch/connector/fuse device with one rated well above the current that your device is actually going to use.