I was going to build a different ZenXY, but development stalled

So, I’ll put out some of the design parameters, and see what people think.

Okay, first off, most of this is in some embarrasingly bad CAD drawings so far, so I won’t have much in the way of pictures, unless I decide to complete it. Since a new ZenXY is in development, I’ll probably just go with that.

First off, the idea was to make a sand table that would address some of the issues that I have with my current ZenXY. Keeping it cheap is a design goal, but cheap is relative, because of stuff that I already have that I can throw at it. Some of this may not really qualify as cheap…

So some of the issues that I wanted to resolve:

Fully constrain the axes. The current design is a little loose on the Y axis, and the X axis depends on no movement at all in the bearing holder bolts. If the Y axis chatters, the bolts holding my X axis have driven their threads into the printed plastic, creating slop in that axis. This then compounds into more chatter in the Y and it’s a downward spiral from there. I want to be less dependent on single ended bolts as a part of this.

Provide for fine adjustment of the magnet, and allow for a stack of thinner magnets. Well, this is because what I could get in 1/2" round magnets were 1/8" thick discs, and not a “rod” The shipping from the source listed is prohibitive, and I could get the discs locally. In my current build, the discs are heat-shrink wrapped together, which works, but the top one isn’t constrained on the upper surface, and has managed to pop out of the tube once. I have to drop the center shuttle to put it back in which is a lot of work.

Reduce the possibilities for the endstop switches to go awry. I currently do not have a functioning X stop switch, because the block managed to get under it again, and pop the lever off of the microswitch. This makes the table unusable if I need to send a home command. This is one of the trickiest parts of the design for me, and one that I haven’t got a satisfactory answer to. I do have an answer, but it’s … not ideal.

So to start, I changed the orientation of the motors. The motor shaft is vertical, with the motors projecting upwards past the mount surface towards the top. Pancake motors might fit without needing the extra height, but I designed for this to project into the table volume. I’m using the Ikea LACK coffee table as a basis, which allows me about 50mm that I can go into the table bottom before I have any visible effect on the top surface. Since I’m designing for 48mm motors, and the end is 10mm below the mounting surface, there’s plenty of room to spare. This does make the mount a little larger than I might otherwise like, but for the table and the glass size I use, there is no conflict.

The belt runs along the inside of the tube, and through the middle of the tube for the unattached side. This eliminates what I saw as the primary opportunity for chatter in the original ZenXY design. (Ryan came to a similar conclusion for his new design, I think.) It also makes for one less place that little fingers can get into it.

For the trucks… Fully constraining it to the rail took me a long time to decide on what I was going to do. I have some small bearings (10mm OD, 3MM axle) that I thought I might use which would allow a fully captured rail. Another component that I wanted to have was to allow a little float on one rail, to account for slight bending in the tube used which also seemed to cause some problems with my current table The result was monstrous. So, I decided to simplify. I started looking at linear bearings, like the ones used with 8mm rod in 3D printers. It seems that the Chinese LMxUU bearings are being pushed out by Delrin bearings. Hmm. Hey, I have a CNC router, can I buy Delrin in sheet form? Well, yes, I can, but it’s expensive. UMHW is a little cheaper, but nothing in stock. HDPE? The price for that isn’t bad on Amazon, but it’s usability? Well, someone on CNCzone was asking about it, and while the response was that Delrin is really what you want for any load, HDPE will certainly do the job. Then they go completely off topic. Anyway, I think that the HDPE will certainly handle the very light load that a sand table will put on it, given that the bearings themselves will be the vast majority of the load. I redesigned the trucks to hold a couple of key shaped chunks of HDPE, screwed in place on the X=0 size, but left able to float a couple of mm on the X=MAX side. This allows for a slight bend in the rails not to take the whole machine off track.

Okay, so if there is some drift in the X axis, this also affects belt tension, right? I also needed to figure out a way to get the belts past each other in the Y=MAX side, since both rails are operating on the same plane, and the belt needs to go from the inside track to the outside track while the one going the other way needs to do the same. I decided to make a spring-loaded contraption to pull the belts out of the way of each other, and allow them to float just a little on the springs. (Also, if I ever need to pull the shuttle down, it will be nice not to have to unstring the belts.)

Undecided if I want to put a half twist in the belts going through the tubes. This would allow the smooth side to be in contact with the idler pulleys at the end, which is a plus for noise control, so I’m giving it serious consideration. It probably makes no difference to the part design.

The shuttle will use the same HDPE bearing “keys” and I will probably still allow one side to float, though I certainly hope it won’t need to. The magnet will be encased in a sleeve, so that I can use a stack of disc magnets. The bottom will be threaded for a 5/8" bolt. I will 3D print the 5/8" bolt (And finish the threads with a tap and die) so that it’s a non-magnetic solution. This means that I should be able to remove and replace the magnet without dropping the shuttle, and adjusting the gap from magnet to table will be a simple job.

Because of the HDPE “key” bearings, I will be able to pull the tubes up to about 1/4" from the table bottom surface.
HDPE Bearing
I might shorten the key a bit from here, but this is the idea. Cut these from the 3/4" HDPE sheet and run them over 1/2" pipe (5/8" OD)

1 Like

I love doing this kind of stuff. I like to imagine what kind of thing can fix it, but I almost never end up finishing the projects.

The zen 2 (or whatever it is called) should fix a bunch of stuff. This is only the second version. Also Ryan has had the table this whole time, so my guess is he has been thinking about it a lot.

I still think I will make a polar mechanism at some point, just for fun. Not sure when though.

1 Like

Let me just fill you in on where I am currently at. and I hope to try out this new fangled open source thing so maybe you can just use my CAD and modify it.


I was just coming to ask about this. My last issue…more in the other thread.

Well I have made fully constrained endstops, but plan on using sensorless homing and quiet TMC’s on my personal next build.



I have small poly wheels to keep steel on steel noise down and easier tensioning. 15mm.

There should be zero drift when fully constrained. I am cranking on the new version and I can’t even get it to rack. The belts are still a pain as you need to thread the entire thing at once, but it makes for easy tension balancing.

I used a full twist, smooth side only. Minimal unique hardware part count (so far M5 screw and nuts, pulleys, idlers, wheel).

1 Like

I have no doubts whatsoever that your CAD is far superior to mine.

One of the reasons that I’m allowing for some motion is part of what I discovered with my current Zen table. One of the Y rails is bent ever so slightly, probably happened while it was still a 20’ length. Or it happened in the car, or I might have stepped on it when it was in the basement. I don’t know for sure, but the distance between the Y rails varies by about .75mm in the center verses the edges. Probably a source of the other problems that my build had, and also most certainly my fault and not yours. But I thought that I could allow for that to happen by allowing the bearings on the one side to float a little. The only requirement then is that any bend be put on the X=MAX side, and that it be rotated so that the bend does not alter the height of the shuttle. Any bend in the other rail, and well… Gotta live with it. Still best if this never happens. I will HOPE for zero drift with the fully constrained rails, but allow for some real-world imperfections in the materials. I’ve been working based on some plumbing 1/2" copper pipe left over from fixing a leak in my water meter a couple years ago, which I think is straight, but I’m not sure that it’s really straight.

I’m taking a break from active design, mostly because I want to see yours (so that I can see my own work for the amateur hour production that it is, most likely) now that I know it’s coming soon. I have some work done based on the 1" steel tube that I made my first table from.

Endstops are my bugaboo. For the Y axis, it’s easy Leave the switch near the motor. For the X axis… Well, my Y rails are copper. (Maybe steel) Well, that’s a conductor, and a good one. I have a bunch of Chinese motor brushes that are meant to carry current to or from a copper surface. These are very low resistance, and don’t seem to make a lot of noise when pulled over the copper tube at reasonable speeds. Also very easy to leave ways for the brushes in the trucks. This could let the limit switch ride with the shuttle, or sit on the X=MIN truck. Probably the truck, riding on the shuttle would require 2 sets of brushes.

Edit: My original idea was lasers and photoresistors. I even bought some, but it turns out that if I do that, I need another arduino just to act as limit switch, and there’s the possibility of the photoresistor getting confused with other light.

As far as the back side goes, several old CoreXY printer setups, the belts were twisted a full 360° long the back so that they could pass by each other in the same plane. Sometimes this worked well, sometimes… Less well. A little contact smooth side to smooth side would be okay for a long time, but I really don’t want to allow that. I also wanted to have that tension adjustment, because it really is a pain to re-string the belt if I need to pull a corner down for any reason. I can’t leave the belt tensioned, because it’s too difficult to get the corner back in the same exact place when the belt is pulling on it. (It is possible with enough clamps.) Having a screw/spring tensioner on that side makes the problem go away for all 4 corners. It does mean that I have to be able to release the belt clamp on the shuttle to correct racking, but that’s not difficult, and I kind of designed that way anyhow.

Well different yes, probably overcomplicated, but I doubt it is superior. The thing with these designs is because I can do it in CAD means sometimes I overcomplicate it. Simple is almost always better. I can CAD up a super complicated bracket to have the neighbor walk home and a piece of scrap aluminum and drill two holes in it…

With this new one, you can leave the center rails not clamped as hard to allow for some movement…but in CoreXY any moment is pretty severely compounded. Each axis have 4X belt length so as an example 1mm skew could cause 4mm less tension…or something along those lines. I feel like this fully constrained version is kinda easier to not have that happen. If it is bowed rails it can bend them, if it was “sloppy” installation this time it is different. I am going to suggest people fully assemble it, then screw it down. That way you can screw in one rail and use the gantry to position the other one.

I have them basically the same as before just got rid of the belt mounted block and used a screw. This could be funky and I am worried about homing when the Y is basically at 0 already the screw head might not clear if people try to use an offset. But I still feel sensorless is ideal here.

Using a rail is worrisome if the machine is not fully enclosed, one static hand touch and you fry your board, or at least that pin.

Well optical end stops are probably the absolute best idea here, they can be used from two directions so the Y will not interfere.

I have the tensioner on the gantry but it only has ~5mm of room so you have to get it right. It is not too bad I did it after it was installed laying on my back not being able to see it.

The worst part of this new design is the belting and people will complain. The starting point (fixed belt mount is extremely fiddly but I found a way to make it easier, then you have to route the entire thing as you build it since it goes through the tubes and that first mount is difficult you will need to take it out of the table if things need to get replaced. No doing one part at a time.

I would send you some parts to check out, but things might still change a bit today. I hope to have something for you to look at tonight or tomorrow.

1 Like

Good point, I forgot to say, but I use zener diodes to ground for stuff that might get touched… Like the touch plate on my router, because I will be milling plastic on it, and that’s almost a surefire way to generate static electricity. It does occur to me that I ought to earth the rails for the machine, too. Still, I want to make one of these for a friend of mine who has small children, and this is probably not a good idea in that respect. I’ll try coming up with a mount for the optical stops.

I like the idea of assembly first. Actually, the more I think about it, the more I like it. That wasn’t possible before. I ended up cutting a pair of braces for assembly that snapped onto the rails at both ends, and then I broke them off after it was screwed down.

I’ve been trying to gather hardware to build/beta your version. The poly wheels are something of an uncertainty.

I found these POM wheels on Amazon which seem similar to what you described.

I’m kind of low on the 16T pulleys and idlers. I’ve been using the larger 20T ones, which seem much less expensive and easier to find for myself. Once more, I’m not looking to fit a specific footprint…

I’ve also been looking at various control boards. I know you were talking about sensorless homing, not sure which boards that might be. I know my Duet supports it, but still seems kind of overkill…

Yeah, I was messing with the sensorless homing last night. Didn’t get it right, but I am also not completely assembled. I needed that motivation to fix the endstops and understand the sensorless a bit better. I was trying to rig up my ramps with 2209 but it was taking to long and I couldn’t flash it for some reason so I just dropped a skr pro on it to test. If I can find the right settings I will pursue it but from what I can tell sensorless is a delicate dance of settings. I am also not super excited about stressing the machine like that every time it homes, it has to pull hard enough to nearly or actually skip a step. On a corexy that seems pretty brutal. Switches are a better choice I think.

I think I have it figured out without losing much if any workspace. I will print and reassemble it this afternoon.

@mordiev had some tips for my corexy. It still doesn’t work perfectly and it scares the crap out of me when it does it. It has more trouble when it is very close to the stops already.

There is definitely a few good reasons to skip it though, and not many reasons to keep it.

But I was having similar troubles with the first version of the endstops too. The ramp on the gt2 was a bit fiddly to get eight and things like the home bump in the other direction affected it too.


There’s a bit of info on sensorless homing in the Duet forums. I don’t use it, because it’s annoying.

The base of it works on stall detection, so you need to set up the drivers so that they will stall when you hit the motion limits, but of course NOT stall in the course of normal movement. It’s a balancing act in setting motor current. The Duet sets motor current in software by gcode, so you set that at the start of your homing files (Also gcode files), then bump it back up afterwards. I don’t know how the SKR does it, but I would assume it’s similar. I know that there are aa few printers using the Duet that are set up for sensorless homing, including some CoreXY designs, but everyone agrees that it’s picky, and not as consistent as might be hoped for in a 3D printer. You certainly can’t count on it to resume printing if you need to home the printer again.

So… Yes, it needs to pull hard enough to skip a step, so that the driver stalls, and it can detect that stall. That’s why (on the Duet) the first thing you do is to drop the driver current so that it’s not pulling nearly so hard, probably drop the current to something that isn’t really usable normally. Some people also drop the acceleration limits so that you don’t get a false stall when you’re trying to get things moving.

Yes, personally, I much prefer switches. I will most likely modify or otherwise set up optical limit switches.

Speaking of which… Going through boxes in the garage, I found something that I think has some possibilities for putting switches on the trucks without needing wires. I have a box of “door shooters” which were an automotive product sold… I don’t remember how long ago. A long time, the cardboard is all yellowed, pretty sure I bought these in the 90s. Anyway, they’re a matched set of contacts that you set up so that they connect when the car door is closed, so that your aftermarket power locks, or speakers, or whatever get power whent he door is closed, and you don’t need to run extra wires (Or any wires at all, if your car didn’t normally have electrical anything in the doors.) Anyway, they’re actually pretty simple in principle. The contacts are slightly spring loaded, so they make contact slightly before everything is closed, and don’t interfere with the movement of the door (Or, in this case, the truck.) It is allowed to move to its position with the circuit open. I think that the idea could be modified to work at very low cost. Probably only requiring a couple of contact plates and cheap springs.

So if I’m right, when you issue the home command, the X stop would read as open (triggered) until the Y was at home. When the Y homes, then the X stop would read closed (untriggered) until the X homes as well. If the X is already homed when the Y homes, then it would continue to read triggered until the firmware moves it away for the second home pass.

I’m sure that I’m overcomplicating things. I think that the best result will most likely be to simply configure the optical endstops and call it a day. Fewer moving parts = better.


Yeah… I have gotten Sensorless homing to work. It was easier to tune with a Duet board because you just need to change config files instead of flashing firmware for each test cycle. But I don’t plan to ever use sensorless homing again. It takes too long to setup and it isn’t as accurate anyway. Plus room temperature can screw up all your fragile tuning settings. (Cold motors need to hit harder to trigger a stall than hot ones.) So yeah. I am done with it. I will use endstops from now on.


I’m using optical endstops, both mounted at one end of the Y axis, one on the left motor mount and the other on the right motor mount. They are arranged so that X can only be homed only when Y is at the home position, so I have the home.g file (reprap firmware on Duet WiFi) set up to always home Y first then X whenever a G28 instruction is encountered without specifying axes. Just to be on the safe side, I have also set up the homex.g file to home Y first then X, just in case some dope (me) puts a G28 X command into a pattern file.

1 Like

I need to try optical endstops. It seems nice to be able to print a tiny little bar to trigger it.

The biggest thing that convinced me that optical endstops are the way to go for this was @vicious1 's video for the Zen XY redesign, where the loudest thing by far was the clicking of the limit switches every time the table reached Y=0. I’ll be retrofitting optical stops to the new Zen, as well as incorporating them into my design.

Retrofits are a bit annoying, since the mounts aren’t really made for them. Now that I have parts in hand though, I can start work on the mount… As soon as I find my bag of optical endstops.

1 Like

Maybe we can find some nearly drop in stand in’s. I would love to get rid of the click and the bad homing if you home twice. Optical’s will not do that as it is a slot and you can come in from two directions.