Twitch draws

twitch draws

Twitch draws is a drawing machine completely controlled by the chat.

Its an experiment in collaborative art.

be a part of it !



To control the machine simply type one or multiple directions followed by the distance.

example: up 45  right 50

This will create a line that goes diagonally up and to the right.

following directions are possible: 

up ##     down ##     left ##     right ##

Only two numbers after the direction will be read, so the maximum distance is 99.

if you enter both an "up"-command and a "down"- command the down distance will be subtracted from the up distance.

If you want to move the machine without drawing a line simply add the word "move" to the beginning of your comment.


about twitch draws

the drawing machine

I had this idea for a big drawing machine that can be controlled with twitch comments, problem was, that i had neither much time nor money, so it had to be cheap and as simple as possible. This was the first time i built a machine of this complexity and I probably made every mistake you can when building such a pen plotter but I learned a lot along the way. Here is how i built it.
since I knew the drawing machine will be controlled by comments to produce abstract drawings i could get away with many shortcuts that would not be feasable for a machine that is supposed to produce precise drawings.

For the rails i got these 15mm u-shaped aluminum profiles that i got for two euros and i decided to build the machine around them.

I decided on a T-frame design instead of the common H-frame design since it meant that the machine needs one less motor, usually you wouldnt do this, since the frame is alot less rigid if the y axis is supported on only one side.

The parts for the machine were designed in fusion 360 and 3d printed on my Anet a8. you can find links to the files in the video description. I tried to design the parts in such a way that they would use the least amount of material while still being strong enough to hold the machine together. In order for them to print flawlessly on my cheap 3d printer they dont have any big overhangs or require support material.

The x axis has an endplate on either side, one with the motor the other with a belt tensioner for the GT2 belt.

The carriage of the y axis rolls along the rails on regular 22mm roller skating ball bearings. I tried to come up with my own way of mounting them, as you can see, what i came up with is far from ideal. In combination with the relatively flexible rails it creates alot of play and wobble which would be unnacceptable in a regular cnc machine. but again, I dont worry about it too much in this project.

the y axis rails are mounted below the carriage and the motor and have an endplate with a belt tensioner on the other side as well.

the small carriage uses smaller 16mm ball bearings and has a small servo motor that controls the pen position.
In order for the machine to not destroy itself if it tries to go outside of its range i fitted limit switches on both ends of the x and y axis. the aluminum profiles made it easy to route the cables without getting in the way of the carriage.

the machine is controlled by an arduino uno running a version of GRBL 0.9.

It uses two tb6560s to drive both of the stepper motors. Remember that you should never disconnect wires from a stepper driver when it is powered otherwise you might damage it irrepairably and this is what happens:

There are cheaper ways to control stepper motors with an arduino and grbl like a clone of the protoneer cnc shield that costs 10$ on aliexpress and comes with an arduino uno clone, but I didnt know that at the time.

wiring the endstops was tricky, these simply connect an arduino pin to ground when triggered and this makes them very vulnerable to electrical interference from the stepper motor cables and motors.
you should use shielded cables and dont run them directly next to the stepper motor wires in order to prevent them from triggering every time one of the motors moves. more info on that in the buildlog on

to test the machine I used the universal gcode sender, a simple program that sends movement commands as gcode to grbl on the arduino.
Usually you can only use stepper motors with grbl so in order to use the servo to push the pen up and down I connected it to the PWM output on pin 11 that is usually used to control the spindle speed.
this also means that the pen goes up and down not by a movement command in the z axis, but with an m3 command.
If you want to draw regular gcode with it you would simply need to exchange the g1 zmoves for m3 moves of the right angle.

the code

more info coming soon