Hacker News new | past | comments | ask | show | jobs | submit login
BrachioGraph – a cheap, simple pen plotter (brachiograph.readthedocs.io)
596 points by DanieleProcida on Oct 17, 2019 | hide | past | favorite | 104 comments



This documentation is very impressive. I like that the author included a link to "Why is the documentation structured this way?" [0].

0: https://www.divio.com/blog/documentation


That’s extremely well written!

I’ve been struggling to document an open source platform I’ve built with some friends and colleagues [1] and this is finally giving me hope!

[1] https://play.socialgorithm.org


Awesome to see pen plotter stuff posted here with more frequency. This project is pretty amazing in its frugality, kudos to the author. I have another pen plotter and I'd highly recommend pen plotting to anyone who's into generative art or anything similar, it's really fun to write a few lines of code to generate some visuals and then watch the plotter as your design is made into something tangible.

I'm working on a (free) app around making drawings on your computer, putting some effects on them, and sending them directly to a pen plotter. So far it only works with axidraw because that's the only one I have, but ultimately it's just sets of coordinates so it could be adapted for other plotters pretty easily. I'll post it here once it's in a decent state :)


FWIW, every 3D printer is also a pen plotter (just stick a pen to your print head!).

Here's my old faithful Printrbot plotting a dragon curve:

Fountain pen, timelapse: https://www.instagram.com/p/BlQHk43gwra/

Fountain pen, final image: https://www.instagram.com/p/BlJHawZgFi1/

Ballpoint, realtime: https://www.instagram.com/p/BlJ8dgmAaTA/


That's awesome! What print speed did you use? (your steppers sounded like it was very high) And do you slice 1st layer normally?


Thanks! I didn't use a slicer, went straight into G-code for that one (wrote a program that generates the G-code for the dragon curve: a sequence of G0 commands).

Don't remember what the feedrate was; with the pen attached tight, I could go pretty fast.


I built a plotter with my now old mindstorms kit, the old RCX brick :) (just built and programmed, design was from lego).


Daniele had it do my portrait at DjangoCon last month and it turned out pretty well despite the fact I'm so hairy! https://twitter.com/fwiles/status/1177018222987448321


did you have a belt across your face?


It looks like there's an artifact in a certain range of arm extension; the "belt" effect appears in [1] too. I just went from "this is cool but what would I do with it" to "I wanna make one and try to debug it."

https://brachiograph.readthedocs.io/en/latest/_images/brachi...


hahaha no


It looks like the robot adds 10 pounds.


Judging from the pic, I'd say "Hairy" is something this plotter does well.

It's a neat toy and a cool hack, but it's not useful for a lot except artistic sketches.


"not useful for a lot except artistic sketches" - what could be more useful than that?!


This looks like great fun, but I'd prefer to make something where the output is a little more precise.

Does anyone know of a DIY plotter that's a step up quality wise from this one? Or maybe a site or community that lists similar projects?


I love my evilmadscientist axidraw but honestly they are a bit pricey. There are several chinese knockoff kits to be found on alliexpress/banggood/etc that work very well. There are also a few interesting 3d printed projects to be found on thingiverse and in the greater maker community. I've built a midtbot, fun little project if bart has boards available (https://www.thingiverse.com/thing:2587684) and I've got the full BOM and have printed most of the parts for a modest sized d.i.d. plotter (https://www.thingiverse.com/thing:3789969).

Also don't discount polar style hanging plotters they can be tricky accuracy wise due to sway, which i've seen countered both by decreasing plotting speed and by working the potential sway into your design. Just a quick search turned up this https://www.hackster.io/fredrikstridsman/stringent-the-15-wa.... You can start small like that and then improve components along the way. Swapping the string for beaded cord or timing belt etc. They are patricularly interesting drawbots because if you want to plot a larger area you can just spread out the motors and add more string.


Fredriks design looks really interesting!

Vertical plotters are usually hard to install and calibrate but his looks like one you could slap on coworkers whiteboard and print something while he is on lunch break ;)


I've seen plotters made out of old CD drive parts.

https://www.youtube.com/watch?v=E3vuzb_KL5c


I haven't looked to far into this project, you might be able to gain a decent amount of stability with better materials like 3d printed plates instead of cardboard. (This is a place where CF filament actually makes sense, it's one of the most rigid printable plastics)


Or you could just laminate that cardboard with some fiberglass and epoxy, on both sides. A roll of 5cm x 3000 cm fiberglass woven cloth is $9 incl shipping on ebay. Buy some two component epoxy at the local hardware store, like 10 fl. oz. for $15.

Cut your cardboard and fiberglass to whatever size and shape you like. You're going to make a sandwich: fiberglass, cardboard, fiberglass. Wear disposable gloves. Cover your benchtop in two layers of cling film. Put your sandwich down, carefully rub epoxy into the top fiberglass, two layers shrink wrap on top, flip the thing over, rub epoxy into the second fiberglass, more cling film. Put it in press with some weight, leave overnight. If your cardboard has some thickness and good compressive strength, the strength of the resulting sandwich is probably such that you won't be able to break a 10 cm long stick with your bare hands.

3D printing is cool. But for random repairs around the house, or building strong flat things like this, epoxy and fiberglass is the bee's knees. We've built stand up paddle boards with this technique, just replacing the cardboard with XPS plates. No vacuum bagging required, really. (Of course it would give further strength and much improved aesthetics.)


Regarding the solidity of this technique, these days a lot of indoor climbing holds are made of fiberglass held together by epoxy, with a thin layer of textured plastic on the outside. These are generally called fiberglass volumes.

The material is so solid that a meter-wide hold is actually just an empty shell with a thickness of a few mm. This easily withstands a heavy dude jumping onto it sideways (in fact, that's what it's there for!)


I'm a huge fan of Peter Brown on youtube, I've been wanting to get into using epoxies for various projects, it's just that I live in a small apartment, I'm not sure where to start, and I know I'll need ventilation.

I'm biased towards 3D printing simply because I already have my own printer, so it's simply the fastest method for me (not including print time, but epoxies have to cure anyway).


Ventilation/offgassing is a fairly minor concern, especially for small projects where you don't get much heat release from the reaction, and you are not baking it. Your kitchen extractor fan is probably enough. You can try it out with a small test, say total amount of epoxy equal to 2 tablespoons, and see how that goes.

I would actually expect more of a ventilation requirement from your 3D printer! Here is one set of safety recommendations for working with ABS/PLA: https://www.safety.rochester.edu/ih/3Dprinters.html

But if you are really worried, go get a 3M 7502 mask with a 6001 organic vapor cartridge. These are cheap. That's what the manufacturer (West System) MSDS says to use in case of no ventilation.

Skin contact is a bigger concern. 1 in 5 develop dermatitis upon skin contact, and some get more severe allergic reactions. So wear good gloves, blue nitrile ones that fit well with decent thickness, not the cheap latex stuff.


If ventilation is challenging, use less epoxy at one time. Also there's nothing wrong with leaving the room and waiting for the vapors to clear out.


I'm currently waiting for parts for https://hackaday.com/2019/07/27/lack-of-space-is-no-longer-a...

Its creator is the developer behind the ESP-32 GRBL port.


Well, depending on your definition of "DIY" and "make"...

I have a Roland DXY-1100 from ~1990, an A3 flatbed design that is very precise. To make it go I had to build a weird serial adaptor and a weirder two-voltage DC power supply, so I count it as DIY! Because old plotters like this were originally designed for commercial use (design, architecture, engineering, etc.) they're often very well designed and well made, so still good despite their age.

Chiplotle (note the extra "l") is a handy Python library for controlling plotters like this.

Unfortunately I managed to short out my power supply and fry one of the voltage converters, so I need to remake the power supply and make an actual case for it so I don't do that again!

I also have a much bigger Roland plotter (not flatbed), but I haven't got that going yet.


i found one of the power supplies on ebay fairly easily. i’ve thought about replacing their voltage regulator stuff internally as well.


Can’t vouch for the quality but just searching for [diy plotter] yields plenty of results that look interesting.


I'd say the next step up would be something like the Morgan RepRap: https://reprap.org/wiki/RepRap_Morgan


More expensive servo motors will produce better results, but past a certain point, they would require more power than the Pi alone can supply.

The mechanical construction also introduces imprecision.


I bought a kit called the EleksDraw and found it for $140 shipped. It uses G Code and didn't take too long to put together maybe a couple of hours at a slow place.


From where did you buy this? Thanks!


I think Banggood


A more rigid frame and an X Y layout of the servos maybe an maybe a port of GINO-F


If you’re in to this kind of stuff, you might want to check out the hashtag #plotterwitter. Some really good stuff there.

https://twitter.com/hashtag/plottertwitter


Nice! I've been enjoying the work from skullcat recently: https://twitter.com/mrmrs_/status/1159339640459059200



Produces a wonderful artistic effect! Great project Daniele!


I love pen plotters. When I worked with CAD we still had them. It was so much fun seeing it slowly working on a technical drawing. Laser printers are obviously much better and faster but much less fun to watch.


Back in the day we used to use HP's biggest and badest Super A0 plotter for small print runs used to park it the computer room (to keep the temperature controlled) and let it run all nig


Oh yeah. When it would change colors it would run over to the pen holder and pick up a new color. That was fun to watch.


That reminds me of the create-a-card machine that was in Hallmark stores in the 90's!

I had forgotten about that. I remember watching in awe as it drew a Simpsons-themed card.


This is awesome! To the people that made this happen: Thank you so much!

I've been wanting something to demonstrate how the gap between hardware and software is fairly easy to bridge at this point- thank you for sharing something that demonstrates this well!



Thanks for all the interest and kind remarks this has received. I have updated the documentation substantially and included more photos in it.


And if you want a COTS replica with a bit more polish: https://www.line-us.com/


The line-us looks really good, the software also looks well put together.


Is it hackable?


It looks like people can code Scratch to control it...

https://www.line-us.com/scratch.html

... and there is also a programming tab that links to a github page with lots of example code in other languages.


Where can we buy a Pi and three servos for $14? That sounds darn fun.



So cool. Thanks!


Don't buy servos from Amazon though: you could get anything.

Spend a few more bucks at e.g. Digikey, eh?


A Raspberry Pi Zero is $5. SG90 servos are $1 on AliExpress. A separate power supply is recommended for the Raspberry Pi so that's what you can buy with the rest of the budget.


Be careful, a lot of SG90 servos are fakes. Below a certain price, they all appear to be counterfeit.

As far as I can tell, the real ones have four screws in the base, and "TowerPro" printed into the plastic on the top. The fakes have two screws, no brand name moulded into the plastic, and inevitably stop working quite swiftly.

https://brachiograph.readthedocs.io/en/latest/explanation/ha...


Awesome project! Newer SG90 are described as a digital servo: http://www.towerpro.com.tw/product/sg90-7/ Should the older analog version (or perhaps a different part entirely?) be used for brachiograph? There's a note in the docs about analog servos being more suitable for this application.


I just assumed they were all terrible, maybe I've just been getting counterfeits this whole time. I'll have to check.

Where do you normally order from to guarantee originals?


Would a counterfeit be a problem for this particular application? Dont they still work?


Half of them break just assembling whatever you are building.


It's a Pi Zero at least.


It's my understanding that higher quality plotters/3d printers/mills' accuracy and precision come from higher quality motors (e.g. stepper motors instead of servos). Will it be possible to someday just put cameras on the plotter which watch the current print and self-correct as needed? That's basically what our eyes do when we write/sculpt/carve.

Will cheap motors + cameras + software eventually meet or exceed the quality of expensive high precision motors/controllers?


Rigidity is a major factor--if you inspect one you'll notice that high speed and high repeatability machines (e.g. a 6-axis +/- 0.020mm repeatability manipulator) are made from rigid (often high-mass) components with robust joints.


I see. I wonder if my hypothesis is still valid, even given lower quality rigidity. Human arms aren't made of big heavy metal rods, yet we can still draw beautifully. Couldn't cameras and software compensate for cheap unstable draw arms?


Replace large "cheaper servos" with a human and a self correcting small servos and you sot of have this:

https://www.shapertools.com

Its very cool...


That's in interesting thought but instead of a camera what if it used an optical mouse sensor? Even cheap ones in $5 mice can do hiDPI now and track on most surfaces. Maybe it could slide on the paper next to the pen with a fixed offset telling the software exactly how far the pen has moved.


Optical sensors will drift over short timescales so you will never have a repeatable "zero" point. it would probably work for small organic shapes but anything more geometric would not turn out well.


> (e.g. stepper motors instead of servos)

Servos are more accurate than steppers.

See: https://en.wikipedia.org/wiki/Servomotor#Servomotors_vs._ste...



I believe cheap servos are inherently very discrete due to noise in the "potentiometers" used: it will not be possible to do precise positioning no matter how exact your timing pulses are. But thats just a guess. If its a noisy potetiometer/wiper but monotonic it should be possible to correct in software. If its non-monotonic and has reverses gradient it will be much harder or impossible I guess.


precision and accuracy don't come from motors. Mostly it comes from rigidity and squareness of the assembly, the smoothness of the rods, the quality of the bearings. The steppers I work with are not really accurate or precise, mainly they just average out errors as long as you're doing roughly the same number of moves in each direction.

Interestingly, servos mean different things. The servos used here are cheap crap (but work well enough) but in the Real World, servos are actually more like steppers that have feedback based on absolute or relative positioning.

I am also intriguided by the "can cameras be used for realtime feedback" but I don't think they have enough resolution to determine accurate sub-mm movements.


There are similar techniques used to self-correct 3D printing. You can actually license a system from NASA.[0]

[0]https://technology.nasa.gov/patent/MFS-TOPS-70


I can see this helping with low-force motion such as a pen-plotter but I think with things like 3-d cutting there just isn't a replacement for rigidity and high-power motors that can maintain a consistent cutting feed rate for a quality finish.


You can improve the precision by using visual feedback, but there are movements that are impossible to do if you don't have precise enough motors.


Something like the "Shaper Origin" ? but it's still not cheap


I remember a similar Mike Cook "Beeb Body-Building" article from Micro User. He used a similar layout and two potentiometers to build a "radius-arm digitiser".

A little bit of calibration and some trigonometry and you can work backwards from the pot positions to Cartesian X/Y co-ordinates.

A little bit more work and you can enter line points from a paper drawing into the rudimentary CAD systems which existed on the BBC Micro at that time.


Someone at my local makerspace made something like this, but for vertical surfaces.

https://github.com/brandonagr/gocupi


It's a shame the repository doesn't have any examples of the pictures it's drawn.

There are some on http://brandonagr.github.io/gocupi/


Yours produces significantly better drawings.

Sure, it uses more expensive step motors, but there are cheap versions of those too.


Nice stuff. Raspberry Pis are generally pretty terrible at running servo's though. Adding an intermediate Arduino would work wonders (I appreciate the complexity would jump significantly though)


Turns, out, it's actually very reliable in practice. I'm trying to work out at the moment just how far I can go with more powerful servos: https://raspberrypi.stackexchange.com/a/104662/42583. There are limits, but they seem to be greater than I expected, especially when the only power to the Raspberry Pi is provided by a MacBook.


we live in a world where a macbook can power a raspberry pi which powers servos.


Ooo! Combine this with a sand table, the arm draws in the sand w/ a stylus, and add a little vibration motor to "erase" the "screen".


Is there a video somewhere of this in action?




Wow, that's reminds me of Her (Spike Jonze)


This is amazing and I want to add something like this to my side project list right now.

But maybe it is a bit too extreme, i.e. using a ruler and glue won't save you that much money compared to using some better materials. But I guess that was the intention of the author, extreme frugality.


I am a complete n00b at this but very interested in making a CoreXY plotter. I get struct at how to get parts like linear guides and servos needed for this. What is the best way to educate oneself about this. Is there something like sparkfun how mechanical hardware. Thanks!


My goto while building a 3D printer is this:

https://hackaday.com/2018/08/03/classy-corexy-build-breaks-d...


If you like this and have some dough: https://axidraw.com

If you have less, google 4xidraw...


I like the layout of this site, what is being used to present the documentation on this site? Or is it a fully custom built site?


I think it's the standard https://readthedocs.org/ standard. It's definitely not custom. I've seen many projects with it.

Edit: Seems to be linked to the doc tool called Sphinx.


Really cool hardware, but I wish there were a bunch of more photos of plots on the page! I want to see the output.


I have never seen such a device, now I will tell the artists.


What is the best way to increase accuracy of such servo motor ?


You could get a lot more precise with stepper motors paired with a micro stepping drive. Since a stepper does not necessarily need feedback the software doesn't have to close a loop but spit out position and velocity commands. Integrated stepper chips exist on breakout boards which keeps the design simple as it will handle the complex microstepping current control. The entire design would not increase much in complexity at all and gain a massive amount of precision.


I wouldn't even bother trying.

Instead, look for inexpensive small bipolar stepper motors with a small angle per step, or invest in microstepping drivers.

A couple of these coupled to an Arduino GRBL CAD shield (cheap as well), with appropriate drivers, would be much more accurate. Use rigid aluminum extrusion for the arms, and only use a servo on the end to lift and place the pen on the paper.

At a certain point in complexity (and cost) you could go with a cartesian plotting system run with the same board, too.

If you don't want open-ended stepper control, adding on an encoder to the stepper isn't too difficult (probably the easiest and cheapest and long-lasting would be to get hall-effect encoder breakout boards and dual-shaft steppers, and mount the boards on brackets to the opposite end of the stepper, and mount the magnet on the shaft with a drop of super glue or epoxy).

You can do all of this easily for well under $100 USD.


Buy higher quality servos, use a sturdier material for the arms instead of cardboard.

Personally I like the fact that it's somewhat sloppy. The pictures have a distinct style.


Better motor control.

Timing: assuming rigidity of linear position is crappy, allow more time for it to bounce back.

Speed: ramp-up speed in one direction may be different from the opposite direction.

Position: accuracy of RC servos is almost not worth measuring, so many companies haven't. But you can hack it (via contact switch and something that juts out) to add a simple shaft rotation encoding and correct when needed.

Software correction: draw a grid of straight lines and adjust drift in software until it looks like a grid.


Also it's hard to defeat hysteresis in the system, both in the servo motors (they have significant dead bands) and the mechanical arrangement of the arm/pen.


harmonic gearbox


Had the chance to see it live once in Amsterdam thumbsup


I saw it in action, draws beautiful and unique pictures :-)


This is great! Thanks for sharing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: