Four Cable Drawing Machine Pulls Our Strings


[David] has created a four cable drawing machine for the Telus Spark Science Centre in Canada. Hackaday has featured [David’s] unconventional drawing contraptions before, specifically his center pivot pen plotter. The drawing machine is a new take on a drawbot, and could be considered to be close cousins with [Dan’s] SkyCam. The premise is simple: A stepper motor with a reel of string is placed at each corner of a square. The strings for all four motors come together at a center weight. When all four strings are taut, the weight is lifted off the drawing surface. When a bit of slack is added into the strings, gravity pulls the weight down to touch the sand.

It’s at this point that a simple premise becomes a complex implementation. Moving the weight in one direction is a matter of reeling out string on one motor, and reeling in string on the other. But what about the two “un driven” strings? They have to be slack enough to allow movement in the driven direction, but not so slack that the weight can dig in and tumble on the sand, causing a tangle. To handle some of these questions, [David] called on [Kevin] to write some software. [Kevin] created a custom kinematics module for LinuxCNC to control the drawing machine. The drawing machine runs on Gerber Code, similar to a CNC. Simply feed the machine Cartesian coordinates, and [Kevin’s] module converts to steps.

The hardest part of the building the machine was creating a homing system. Be it a CNC, 3D printer, or a four cable drawing machine, any stepper motor based system has to have a home position. Stepper motors are open loop systems. They are very precise to move, but there is no way to tell where they are at any given moment in time. The most often used method is to get to a known “home” position and use software to keep track of steps. [David’s] problem was getting to the home position in the first place. If he doesn’t know where the weight is, he can’t reel out too much string or he’ll wind up with a tangled mess. His solution was actually pretty simple. He commands one motor to reel in and tells the others not to move. The moving motor is stronger than the holding torque of the other motors, which allows it to pull the weight up until it hits a switch on the pulling motor’s mount. This type of “tug of war” makes all sorts of noise, and requires a stoutly built machine. The results speak for themselves though – [David’s] machine looks great!

22 thoughts on “Four Cable Drawing Machine Pulls Our Strings

  1. Looks like the four wires are attached to the corners of the weight. It might be somewhat more accurate if they were all connected to one point on the top, so that the weight always remains vertical.

    1. I just noticed this but thought that the weight could then wobble on it’s top center mounting and you’d lose a lot of precision.

      Doing it the way it is being done here you could finesse some additional movement into the weight to add little “twiddly” movements to it while its x-y coordinates are being held steady.

      Great post and great comments all making me think a little on a snowy Sunday which isn’t a bad thing.

        1. This 4-wire robot is great. I have a 3-wire one that used Jpa’s for inspiration that’s sized to do large minecraft blocks:

          You can improve the alignment by using 2 wires on each corner to give parallel linkages like on a standard delta, but I was surprised to find that the kinematics for the 4-motor robot is not much worse than the 3-motor. I was going to go for ultrasonic pings for echolocation of the head to determine initial position.

  2. Whoever edited or submitted this should probably learn that the ‘gerber’ format for pcb manufacture and gcode are not the same. As per the summary, this machine runs on a custoom plugin for linuxCNC that implements the kinematics for this setup. On the input side it still takes normal gcode (.nc or .gnc files).
    Gcode is the common language for CNC machines.

  3. This is what I wanted to do to add CNC to an old pattern torch. They have a horizontal arm with two free joints, like a SCARA robot but without motors. What moves it is an adjustable speed gear motor with a knurled, magnetic shaft directly above the torch (gas or plasma).

    A steel pattern is held above the arm for the magnetic shaft to roll around. The pattern has to be 1/2 the shaft diameter smaller all around than the part being cut. Sharp outside corners can’t be cut due to the way it rolls around and a too sharp inside corner can get the shaft stuck. Another problem with a too sharp outside corner is the magnet can come unstuck from the pattern which will have the torch drifting across the metal stock. Not a good thing.

    To add CNC would be simple. Build a frame to support a stepper motor at each corner. From each motor extend a cable with a ring on the end to slip over the magnetic drive shaft. With the right mathematical function the motors can wind their cables in and out while keeping them all free of slack.

    It’s that last bit which was the stumper. Nobody had bothered to do the software yet. It should be simpler than this sand drawer because the pattern torch only moves in a 2D plane so there’s no Z axis to futz with.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.