Infinite Y axis - how the heck would I build this?

  • Hi all - I've been tinkering with the design of a new (I think) style of machine where the Y axis can be significantly larger than the "body" of the machine.

    I've knocked up a video to show how the mechanisms would (conceptually) work.

    I'm pretty comfortable with physically building this, but I'm not sure where to even start with the electronics side of things.

    The challenge (as I see it) is in a conventional setup, you control a single motor to control the Y axis.

    With my setup, you'd need to control 3 motors (2 clamps and a 1 Y axis motor), AND have some logic that "resets" the Y axis every 200mm.

    Pseudocode for "reset" process would look something like this

    If(Total Y Axis Movement / 200 == Whole Number) Then {

    • Stop Y axis movement
    • Activate grip on stationary clamp.
    • Release grip on sliding clamp
    • Move Y axis slider back to it's "starting" position.
    • Activate grip on sliding clamp.
    • Release grip on stationary clamp

    Can it be done? If so what would be the best way to do this? Can I keep using "conventional" G-code commands (ie G1 Y3000 F3600) to control the Y axis and configure the Duet in some way that it knows to run the "reset" script every time a 200mm breakpoint is passed? Or do the smarts for this live in raw G-code?

    Thanks heaps in advance for any tips and advice 🙂

  • @tim For infinite Y axis, why not build a conveyor belt type bed? There are a few designs around such as these and I'm sure the Duet guys would come up with firmware support if it doesn't already exist. I'd have thought that would be easier to implement than your mechanism.

  • Thanks @deckingman - Agree the "belt" config would be vastly simpler (& would make a great addition to the Duet too!)

    In my case however, it wouldn't work 😞 The machine I'm trying to design is a CNC machine which would be cutting beams of wood. With a router bit flying around and exerting considerable force on the beams while cutting it, we need clamps to hold it all in place in addition to controlling movement.

    In the "actual" design we'd need two of the component I sketched, in front and behind the router bit, so it would be a bit more complex again.

    Reading into your answer however, is the general solution to this going to be "write custom firmware"?

  • Why not grip the beams firmly with rollers that are connected to steppers that can drive the log as the Y axis? The grippers could be strongly spring-loaded to provide ample force on logs of varying size.

  • @tim said in Infinite Y axis - how the heck would I build this?:

    Reading into your answer however, is the general solution to this going to be "write custom firmware"?

    There is another path, totally separate from custom firmware on the Duet. Think about using a Duet + one or more simple custom controllers. For example, an ESP32 has enough pins to drive two stepper drivers, program those drivers with SPI (meaning any Trinamic chip can be used), and still have a few other IO pins left over. And ESP32s can be scripted in "Arudino" or "PlatformIO" environments (my preference being the second, it has a mini-RTOS built in. ).

    I've done a couple of projects where such a controller "stands between" a Duet and something else that would otherwise be very difficult to build out of Duet function.

    Also, ESP32s are $5 each. Really. From amazon, four of them are $20. I'm sure if needed, they could be had for half that in larger quantities, etc.

    Anyway, ping me if you have questions about that approach. It has been quite successful, although a couple of things are still under Non-Disclosure, I can talk about specific pieces of them that would apply to what you are doing.

  • Thanks for all the input everyone 🙂

    @bot I like the idea of using spring mounded rollers - the challenge there would be ensuring they have enough grip. It's probably worth my exploring it however because if that works, the whole motion system would be much more "out of the box".

    @Danal Would love to hear more about how you've managed to offload more complex logic to other controllers. Will hit you up!

  • Thinking about it some more, you could add a lot of rollers, all individually (in opposing pairs) spring loaded, and all connected to one timing belt so that differences in thickness could be easily taken up and grip maintained. You could even use spiked rollers if something gentler doesn't do. This is a cool application! I'd love to see even a peak at the result when you are done.

  • @tim Ahh OK. Do it's not truly infinite Y axis - just very long. So here is another thought. Have the 3D CNC router mounted on a pair of rails that run parallel to the beam. Clamp the beam to something. Start with the router at one end of the beam, locked to the rails or lock the lead screw that moves it. Machine that part. Unlock the router, move along the rails, lock the router in the new position and repeat. Essentially moving the tool rather than the work piece, which might be easier. I'd agree with @Danal that a separate controller might be the best way to handle what is effectively another axis although it might be possible using macros (think tool changer).

Log in to reply