BrachioGraph: the artistic, inaccurate and very cheap pen plotter
January 24, 2021 6:15 AM   Subscribe

BrachioGraph: build one in an hour or so, make wiggly portraits for days afterwards. Built-in software too slow? Render and preview on
posted by scruss (38 comments total) 32 users marked this as a favorite
A BrachioGraph can be built in an hour or so without any special skills.

...solder together a wiring loom from some strands of ribbon cable as shown below

posted by leotrotsky at 6:53 AM on January 24 [13 favorites]

That said, seems like it would make a nice auto pen. Anyone looking to automate thank you notes, or send a lot of signed letters to congresspeople?
posted by leotrotsky at 7:01 AM on January 24

I'm pretty sure I have everything I need to make this and I've a grandkid to mind tomorrow. We're going to have fun. Thank you for this.
posted by night_train at 7:24 AM on January 24 [3 favorites]

...solder together a wiring loom from some strands of ribbon cable as shown below

I used a tiny breadboard and some jumper wires. The only hot thing I used was a hot glue gun to stick the various bits together.
posted by scruss at 7:27 AM on January 24 [2 favorites]

OK this is a pretty cool project, so please don't get me wrong.

BUT people pretending they built something in 20% of the time at 25% of the cost is one of my pet peeves. You need three servos? OK, the servos alone will cost you at least 10 euros... except you ordered a digital one by mistake, and had to order another one. Then you broke or lost one of the tiny plastic servo arms, and found out it's actually cheaper to buy a whole new servo than to replace it. And if you have a source for a Raspberry Pi that won't break your budget before you even start, I'd be interested. And as for time, an hour? Really? Nobody human will even be able to gather all the tools and parts they need in an hour. Maybe (maybe!) you built the 4th or 5th one (the one you did just to take pictures) in an hour, but I don't even believe that. And that's OK! Just tell us what you actually spent (I'd guess about 60-70 euros), and how long it actually took you (I'd guess a solid weekend). Otherwise, everybody who builds this thing will be slightly less happy with it because A) it cost more, B) it took longer, and C) their (proverbial and gender-neutral) dick is now demonstrably smaller than yours.
posted by kleinsteradikaleminderheit at 7:31 AM on January 24 [17 favorites]

...and how do you connect the breadboard to the Pi? This isn’t obvious to most of us.
posted by leotrotsky at 7:33 AM on January 24

Best of the web!
posted by dmh at 7:54 AM on January 24

And why isn't there any bread on the breadboard?! Where's the raspberry pie?! At least you have to eat a couple popsicles.
posted by aniola at 9:04 AM on January 24 [10 favorites]

Yeah! This doesn't even take into account the electrical costs used by the soldering iron, lights, and computer while working on this! Or the time spent waiting after ordering parts! Or the cost of the pencil! Not even the time spent deciding what to draw! This is completely misleading and I demand a full disclosure of ALL expenses and ALL project time, audited by a neutral third party, notarized and published in a paper of record.
posted by ardgedee at 10:24 AM on January 24 [4 favorites]


I have a few relays from a robotics project that I never got around to I can use them to never get around to finishing this project!
posted by not_that_epiphanius at 11:03 AM on January 24

I love pen plotters! #PlotterTwitter is one of my favorite twitters. Some of my favorite artists are Andrew Heumann and Sean Puckett but there are so many, I'd wallpaper my house if I could.

Other good pen plotters:
Polargraphs are fun
Mini XY plotters are good too

posted by q*ben at 11:18 AM on January 24 [6 favorites]

Also forgot to mention, the hardest part of a pen plotter is not building the plotter it's writing good vector generating software. is a gift.

Also forgot to mention! Have Adobe Illustrator? Have a 3d printer? Then you have a pen plotter if you use this plugin. By Diego Monzon, who is an amazing plotter artist in his own right.
posted by q*ben at 11:24 AM on January 24 [4 favorites]

Tough crowd. Did youse guys miss the snark memo?

And as for time, an hour?

Yup, about that. Took me another hour or so to walk through calibration. It cost me, including tax, $47 (🇨🇦) not including glue, pencil, paper or tape. That's ~€30, or USD 37. Included some economies of scale: bought 10 servos for a project last year, had spares; the Raspberry Pi Zero W is a USD 5 one bought a couple of years ago in the entirely unfair Micro Center in the USA. The power supply and cable are from an old phone. The peg was nicked from the washing line bag. The dollar store provided the clipboard base and a (surprisingly good) 16 GB µSD card for a total of $8, inc tax. A $20 DX order brought me more jumpers and mini-breadboards than I'll need in this lifetime.

The cheapest other plotter I've made was roughly $300 in parts, 3 days of 3d printing bits plus a week of building and tuning. The BrachioGraph is a bad plotter from a technical point of view, but its faults are quite charming.
posted by scruss at 12:05 PM on January 24 [3 favorites]

Have a 3d printer? Then you have a pen plotter

Yeah I've been pretty happy with the 3d-printer-to-plotter conversion method. The results aren't as clean as a real plotter would produce, but in my mind the whole appeal of a plotter vs. just inkjet printing a digital image is that you do get the imperfections.

If you have a printer with one of the big block motors for the extruder then it's relatively easy to print out a pen mount that attaches to it. Writing your own g-code generator is also a fun exercise: g-code is a relatively simple text format, so it's not as intimidating to generate as you might think (although you do have to have your finger on the 3d printer stop/power switch when you're testing because breaking something is a real concern if you have a pen mounted to it).
posted by Pyry at 1:35 PM on January 24 [1 favorite]

Yeah, It will take me at least an hour to find the glue gun and I'm sure a saw some glue sticks in a drawer somewhere a few months ago. I think there are some ice lollies in the bottom of the freezer so i'm ok for the sticks. I know where the servos are, I used them to make a little drum machine with an Arduino a few years ago. Setting up the Pi may take some time. I've done a few PI projects but my Linux skills are basic and I rely a lot on Stack Exchange for the simplest things, so I'll allow a day for that. If I can get the pen to make any kind of a mark on a piece of paper in the next week I'll be so happy.
posted by night_train at 1:39 PM on January 24 [1 favorite]

I have noodled-around with some rPi stuff over the years (networked thingies) and more recently a bit of Arduino (macro keyboard, some blinkenlights). Never done servos or motors - I was always curious on how the "actual control signal" worked for Regular Servos. Never quite curious-enough to dive in to Actually Trying To Learn About It - but, y'know, generally curious.

Now, without even building one, reading over the documentation for how to set up and fine tune one of these lovely brachiograph inventions has filled in that knowledge-gap for me in a highly pleasing manner.

Thank you, scruss, for this FPP that has pleased me with both ideas and knowledge. Now if you'll excuse me, I'm off to shop for servos - because "a robot-sketched picture in a small frame" seems like a great custom-gift idea to have in my back pocket.
posted by BuxtonTheRed at 2:04 PM on January 24 [1 favorite]

Mod note: For serious folks, maybe try to appreciate what the post is offering without complaining/snarking that it doesn't work for you personally? It's fine to not like a post or the way a post is delivered, but please do it as part of the ongoing conversation. Oh, there is no ongoing conversation yet? Maybe wait for one before you start in with your complaints.
posted by jessamyn (staff) at 3:07 PM on January 24 [11 favorites]

Now if you'll excuse me, I'm off to shop for servos

There are quite a few servo-based plotters: the Tiny CNC, the commercial Line-us and Bart Dring's DrawBot Badge are just a few. Servos are really not ideal for plotters as they only turn through a little under 180°. If you're using the cheap Tower servos recommended in the build guideline, get several. They're cheap and some just don't work. There are lots of clones of Tower servos, and some are really bad. I used the slightly more expensive metal-geared MG90S servo because I had lots of spares and I could only find two of the SG90s.

Video of my one running (self-link, yes, I know): Muhammad Ali. I spent roughly twice as long on the silly logo label for the plotter than building the whole thing.
posted by scruss at 4:55 PM on January 24

These are so cute.

What's great about pen plotters in general is that by and large you can put any stick-like object into one and have it move about in a programmed way, and thus affect something else. There's folks who use watercolour brushes, others who use hunks of wax. Pour paint on canvas and use a stick in a plotter to swirl it around.

The Cricut craft cutting machines are just plotters with a blade-on-a-stick (and many of them have pen attachments too). So if you have more money than time and want to get into the hobby, you could get one of those. Or the more modern AxiDraw machine which has excellent support.

Go even further with a sturdier machine and you can stick a high powered laser on there and do laser cutting, or put a small motor with a chuck and do PC board trace cutting, or routing out signs, or full on 3D engraving. It's a robot! It makes art!

It's a lot of fun, and there's a lot of really thoughtful and helpful people on #plottertwitter. Join us, with our robot drawing machines!
posted by seanmpuckett at 5:13 PM on January 24 [3 favorites]

Oh man I love this so much. I should really put one together. It's such a shockingly simple and charmingly wonky execution of what has traditionally been a relatively expensive field of plotting/CNC machinery. I love the klugey expressiveness it seems capable of, in a vary analog-noise sort of way.
posted by cortex at 5:17 PM on January 24

(I own a Cricut, which is primarily a craft-oriented paper/textile cutter but can also take a pen and work as a fairly slow plotter. Even that machine is a huge step forward in terms of consumer availability of CNC plotting functionality compared to twenty years ago; I'm both lucky and sad not to have taken an interest in plotting earlier in my life when it was a somewhat more mysterious topic but also a less accessible and more expensive one. But a Cricut will cost you a couple hundred bucks, and this thing is a fraction of that AND weird to boot.)
posted by cortex at 5:19 PM on January 24

leotrotsky: “...and how do you connect the breadboard to the Pi? This isn’t obvious to most of us.”
I would use a Pi Cobbler from Adafruit for prototyping, and a PermaProto version when I was sure I was ready to solder it up.
posted by ob1quixote at 5:34 PM on January 24 [1 favorite]

Hi, fellow #plottertwitter people!

The two-stepper mechanism used here is super cute and simple, although the work envelope is quite small as a result of the linkage. My "one hour" project a few years ago was building a polargraph out of junk found at the local hackerspace. The nice thing about polargraphs is that they can be as large as you have space for: my first fit on a normal whiteboard and eventually expanded into a 7m x 3m wall installation. The original janky version was turned into a interactive portrait drawing machine for a NYC Resistor Interactive Art show, which was lots of fun to have people pose while it (slowly) drew their single-line portraits using code from Kyle McDonald's "Blind Self Portrait" art device.

Bill of materials for a polargraph is similar in cost to the BrachioGraph: two steppers, a stepper driver from a broken 3D printer, and some string, plus some perl code hacking to turn the XY vectors into gcode that mapped to the polargraph coordinate system. The 3D printed tool holder couldn't lift the pen, although if it moved fast enough the pen would skip on the whiteboard and that was sufficient.

If you spend the hour (or more...) building the BrachioGraph and decide that you want something less wiggly, the AxiDraw from EMSL is the modern plotter that almost everyone is using. It is open source and uses an Inkscape plugin or Python library, so you don't need any commercial software to drive it.

(And, another self link, if you want to turn your 3D models into 2D line art suitable for plotting, is a single-serving website that I wrote to do that. It even has an anaglyph mode so that you can turn your 3D into 2D and back into red-blue 3D)
posted by autopilot at 11:43 AM on January 25 [3 favorites]

It looks like I have most of these things at home already (I'll need to buy one more servo) and that this is the sort of thing that my kids would get a kick of. This will be a good project for next weekend.
posted by any portmanteau in a storm at 1:13 PM on January 25 [1 favorite]

Arrgh OK, I feel bad now - I did not make it clear enough that this is quite obviously awesome. I let my pet peeve take over because, face it, a righteous pet peeve is fun. And also, I wasn't exactly 100% wrong.

BUT yes! I have all those things at home! And next chance I get, I will build this with my nephews. There's no chance in hell we'll do it in an hour, but who gives a fuck.
posted by kleinsteradikaleminderheit at 6:42 AM on January 26 [1 favorite]

a polargraph out of junk found at the local hackerspace

Oh to have a hackerspace with junk bins containing anything other than actively useless kipple!

Polargraphs are neat. A friend made a lovely installation that drew landscapes on the inside of a gallery window over the period of a day so you could see them from the street. Another acquaintance sells and supports perhaps the only commercial version, the Makelangelo. It's inevitable that I build a polargraph at some point (I have all the bits for sure) but I fear I'll engineer one from scratch because none of the ones I've seen so far are just right.
posted by scruss at 6:48 AM on January 26

Scribit also just released a pretty slick looking polargraph with an automated eraser.
posted by q*ben at 8:44 PM on January 27

So I built this with my daughter this afternoon. Honestly the build takes next to no time, like maybe 15 minutes. Of course now I'm in the process of calibrating it which is taking a bit of time because I only vaguely know what I'm supposed to be doing. If you know what you're doing I could bet you could be up and fully running in half an hour.
posted by any portmanteau in a storm at 3:34 PM on January 30 [2 favorites]

The video on his site goes over connecting the pi to the breadboard to the plotter. Just pause the video at the diagram and once you start wiring it you'll know what's going on pretty quickly.
posted by any portmanteau in a storm at 3:40 PM on January 30

I'm not as adept as 'any portmanteau' but I have been spending quite a few very enjoyable hours messing with this. I can now get it to draw a reasonable approximation of a square but I'm struggling to understand the section on Advanced Calibration. My attempts so far result in the servos trying to tear the machine apart. I'll keep at it until I discover whatever stupid mistake I'm making and then I might move on to the pantograph.
posted by night_train at 12:25 PM on January 31

Right after we built it we connected it to the pi and tried the test drawings. It drew something but we didn't know what it was supposed to be as there wasn't an SVG for the test drawings. It was still neat that we press enter on the keyboard and all of a sudden the arm starts to do stuff (we may be impressed easily). So then I spent an evening trying to get the software to convert from an image to JSON and SVG file to work. It needed some other package to work, opencv, that failed on the install for some unknown reason. Finally the following morning I had the brainwave that I was running things in Python2 instead of Python3 and then everything worked.

I converted the Africa sample image and drew it out and then tried with a happy face I downloaded. Those were the drawings I linked to. The happy face is supposed to be a circle but as you can see it is more like an egg. The only calibrating I did was to adjust the position of the arms for a 90 degree bend so that I could input the values for the centre of each servo. I'm not entirely sure I did it correctly but the result was close enough.

My daughter took a picture of one of our cats but there weren't enough defined lines so when we generated the SVG we knew it wouldn't look good. The SVG is really useful because then you know what the drawing is "supposed" to look like. We skipped the advanced calibration because we're happy with the good enough. For us it works more as a proof of concept that wow, we can make simple robots and control them from the pi, than anything else.

Our initial test drawings used a pencil and they weren't very good because it was hard to see the lines. Switching to markers made them much more visible but then we had to be more careful with the marker position too. I also ended up extending the wires because the ones I initially used meant I had to move the pi and breadboard really close to the arm otherwise it couldn't move. For a better build it makes sense to have some guide on the clothespin so that you know how far down the tip of your pencil or marker should be without having to eyeball it and hope you got it right. We tried to do a Pikachu that was unrecognizable partly because the tip was on the paper the whole time.
posted by any portmanteau in a storm at 11:52 AM on February 1 [1 favorite]

As far as costs are concerned, I had the pi already as I use it as a media player. I ended up buying a breadboard as part of an electronics kit which also included additional wires, LEDs, buttons, and various other components. I saw that step about making a "wiring loom" and I thought a breadboard would be both easier and more useful in general. My wife is teaching electricity right now and she was asking for some stuff anyway so it was a justifiable outlay. I did have two servos that came with an Adafruit circuit playground that my kids got as a gift but I needed to get one more anyway so I just ordered a pack of 5. So on top of the pi I ended up spending about $50 on other stuff.

They'll all get used for other one-off projects for sure (ie stuff we make, think is the coolest thing for a day, and then promptly forget about) so I'm not put out by the expense. Like between when the electronics kit came in and the weekend I made a small circuit where you push the button to turn on the LEDs just to familiarize myself with it all (it's been a very long time since grade 10 science) and even something like that, or touching an LED to a button battery is fun for my kids right now.
posted by any portmanteau in a storm at 12:08 PM on February 1 [2 favorites]

I've been using a biro. My grand daughter was fascinated watching the pen move. I'm working on a couple of scripts that automate things a bit more so that she can create drawings in MyPaint, convert them to JSON and plot them. I'm finding the conversion a little hit and miss so more experimentation is needed.
posted by night_train at 1:27 PM on February 1

I kind of wish that the Brachiograph software were finished: like the linedraw routines were broken out as a separate program to do image → vector, that there was a standalone plot program, perhaps even some docs/code for controlling plotter movement directly.

BrachioGraph Utils looks like an interesting way of going from vector to Brachiograph, though
posted by scruss at 8:51 AM on February 2

night_train if you get the scripts working please post them here. Removing me from the equation will likely mean my kids can play around with it a lot more.
posted by any portmanteau in a storm at 11:59 AM on February 2

Here you go.

from linedraw import *
import subprocess
ImageName = input("Enter name of image file ")
image_to_json(ImageName, draw_contours=2, draw_hatch=0)
pic = subprocess.Popen(["gpicview", "images/" + ImageName + ".svg"],1)

The image should be in the /home/pi/BrachioGraph/images

If you're happy with the svg file run the draw program. You'll probably need to modify the values in the bg variable. I copied this bit from

from brachiograph import BrachioGraph

bg = BrachioGraph(
# the lengths of the arms
# the drawing area
bounds=(-6, 4, 6, 12),
# relationship between servo angles and pulse-widths
# pulse-widths for pen up/down

ImageName = input("Enter name of image to draw ")
bg.plot_file("images/" + ImageName + ".json")

Both of these programs are run from the BrachioGraph directory. Also sudo pigpiod
needs to have been run. This works on my freshly setup Pi. I hope it works for you.
posted by night_train at 10:31 AM on February 3 [1 favorite]

Thanks! My daughter and I had already planned to fool around with the BrachioGraph a bit more over the weekend and if I can get her to be able to run the whole process then she and her brother'll be able to have it draw things whenever they want.
posted by any portmanteau in a storm at 1:10 PM on February 3

« Older As ye deal with my contemners so with you my grace...   |   The Future Encyclopedia of Luddism Newer »

This thread has been archived and is closed to new comments