Friday, December 6, 2013

Four Cable Drawing Machine

This is a cable driven drawing machine I constructed for the Telus Spark Science Centre in Calgary, Alberta.

Each of the four stepper motors is connected to a pulley and string. By winding in or letting out string on each corner the computer can position the draw head anywhere in three dimensional space, or at least within its work envelope of roughly 590x590x220mm.

The machine is controlled with LinuxCNC using a custom kinematics module and python script written by Kevin Loney. Its input files are standard g-code, the same format used for controlling a CNC mill, all the weird coordinate transformation math is handled by the kinematics wrapper.

More construction info and photos after the video,

By far the hardest thing on this build was getting the machine to to home fully automatically. For those new to motion control, I am using stepper motors, these are open loop which means that I can move them incrementally, but I have no idea where they actually are. To determine their current state, I have to move them to a known position, and call that home. This is fairly easy on a traditional CNC machine where each axis is independent and on guides, but quite painful when all four are tied together and made of string.

Many ideas were floated to solve this, from IR range finders, to vision based systems with openCV and a webcam. Finally for reliability I settled on simple switches.

From here though, there are two main problems, first, how do you trip a switch with a length of string, and second how do you keep everything taught and tangle free when you haven't got a clue where the drawhead is starting from.

The switches were the easy(er) part, the first attempt used a magnetic reed switch mounted over the fairleads (cable guides), and neodynium ring magnets mounted to the draw head.  Once the magnets got close to the switch it would trip and tada! That was the theory at least, in practice they would fail to trip half the time, the magnets would stick to any ferrous metals in a 6 inch radius, and that was just the start of the problems. I got around some of the issues by using larger magnets, and brass screws, but it was really unworkable.

The final solution was to build custom rocker switches around the fairleads. They were spring loaded so that as the head was drawn into them, they would fold back and trip a small lever switch. They still had to be strong enough to keep the cable in the same position and they had to be rigid enough to not accidentally trip under normal load. Good times.

Now, to get the drawhead to trip the switch I have to have slack from the opposite side. The first thing I tried was to just spool out cable on one motor as I spooled in on the other. For a two cable machine this technique works great, once you get two more cords in the mix, and a lack of space to use gravity to keep things taught, a lot of tangles result. The solution was a bit of a hack, but one I am rather proud of. Stepper motors have no direct mechanical connection between the shaft and the body of the motor (well, other than the bearings), its the magnetic field in the coils that causes the shaft to turn. This means that stepper motors can slip without damage if the force on the shaft exceeds the holding torque of the coils. Further, the stepper motor driver I am using allows the current going into the motor to be adjusted with a resistor which then adjusts the holding torque. Yup, that's right, the motors have a tug of war. One is stronger than the others so it just reels it in with some enthusiasm, everything stays taught and you are off to the races.

This video shows the switches getting hit, I need to upload another video showing the unholy chunking and shaking that happens during the tug of war phase.

The construction of this machine was a mixture of hand machining, carpentry and a bit of laser cutting for the towers and overwrap guides. The head is replaceable, for the early tests I had a larger head that could mount a pen and do some fairly accurate drawings, only issue was that in a more resistive material like sand it tended to flop around a lot.


BrandonAGr said...

Awesome project, I'm interested in how the software works and integrates with LinuxCNC, are there any other blog posts about the software?

Cecil Casey said...

So my question is did you calculate the motor control constants, or did you do trial and error adjustments to bring them into a state that they matched your physical build?

Anonymous said...

great project. How do you keep the string from getting out of the pulleys when they are not tightened ?

I often use pulleys and always fear than a loose string can jump out of the pulley.


Unknown said...
This comment has been removed by the author.
David Rector said...

I know a guy who built a sand drawing mechanism for a museum, but he used a typical robot arm under the table with a large magnet under the table to move the drawing implement (steel ball).

BTW, I saw your post that had the linear motion mechanism animation. I'm really glad to see that my Linkage program has been useful to people. I experimented with a mechanism similar to yours and could not make it have a straighter motion than what you got. Nice work on the drawing machine and on the linear motion mechanism.


Anonymous said...

Pawan Tyagi - i am satisfied to these blog information about the CNC machines, CNC machines is multipurpose usable to commercial uses. coil winding machines is a important machine to making all kinds of motor, transformer, electricity circuits and some other coils.

Alan McCoy said...

Good information about how CNC Machining works and its operations.

CNC Machining Services

Unknown said...

Interesting project dear.

altaria said...

Hello, fantastic job.
What kind of driver and control you are using for motors?
With the orthogonal movements, motors rotate at the same speed but in a circular or diagonal movements the speed varies.

Monilisa said...

Great post i read your article is superb . This is given good information , We are givening Surplace ensures an on time service post sale, with the interference of their possess technical or in association with manufacturers to resolve any troubles. If you want to know more Please Click Here

Unknown said...

Indian cutting tools is the world's leading supplier of thread cutting, thread rolling, threading tools, threading taps, thread cutting tools, cutting thread and thread rolling dies.
Address : D-189, Industrial Focal point, Patiala-147004, Punjab, INDIA
Contacts : +91-175-319-8222, +91-959-222-8222
Email :,
Website :,

CNC Router Bits

Unknown said...

Just saying thanks wouldn’t just be enough, for the fantastic fluency in your writing.
SJH Plant And Machinery Dealers

Unknown said...

Thanks for a great share man. This is the info I have been looking for mate.

nancy said...

Hello everybody, I just want to give this great testimony to the whole public about a great man who helped me out of a serious illness. I have had HSV-1 AND HSV-2 VIRUS for good 2 years now and I was almost going to the end of my life due to the illness. All I have in my mind is, let me just give up because life is not interesting for me any longer and i also pray that God should accept my soul when ever I’m gone luckily for me, my kid sister run to me that she found a doctor in the INTERNET who can cure HSV-1 AND HSV-2 VIRUS. She helped me out with everything, the man asked for my details so he can prepare herbal medicine for me. After he was done consulting on my details he told me how my medicine will be prepare, after he was done preparing my medicine he sent me my medication and after using it for 7 days i later started noticing something different in my blood so I went for my HSV-1 AND HSV-2 VIRUS test and I was tested Negative, I’m so happy that I can say I’m not patient of HSV-1 AND HSV-2 anymore. If you have HSV-1 AND HSV-2 or any sickness,HIV/AID,HPV,CANCER,HEPATITIS B DIABETICS ALS,PENIS ENLARGEMENT please for your safety, contact DR.OLUTA VIA email address ( or whats APP number +2349065326267