Well so, I fell into a very deep rabbit hole. The world of pen plotters… A year in, I finally have some good results. After several prototypes of Gondola plotters (V-plotters) and regular tabletop plotters. I’ve homed in on a set of designs, hardware, electronics, and algorithms to think I can make a small difference in that world. I still need to iterate a little but I’m hoping to release each plotter as a DYI projects in 2020. Maybe I’ll even sell my making them for others. Of course there will be integrations with Mandalagaba because that just makes sense.
Now there are several such plotters one can buy or build for a wide range of prices. And they all have a very shitty software stack. This is where I believe I can make the biggest difference.
As with building houses, it’s enormously relieving to finally see into the real world a model you’ve been immersed in, CADing it for a year.
![](https://ben.akrin.com/wp-content/uploads/2019/12/plotter.png)
![](https://ben.akrin.com/wp-content/uploads/2019/12/IMG_3015_2__1_.jpg)
I’ll skip talking about the long series of challenges I ran into building this. It’s really, really nice to see a long plot finished to perfection knowing that finally, nothing is wrong. I’ve learned a lot along the way.
There’s a bazillion pen plotters on Thingiverse, I’ve used some of them as stepping stones until I was ready to finally make my own top to bottom. As I said, software is where I think I can make the biggest difference. I’m a Raspberry Pi aficionado, and this opens the door to a sophisticated software stack (web servers, HTML canvasses, format conversion, penstroke optimization, live link with Mandalagaba). I found not a single plotter using a Pi, in fact I found very few projects of anything using stepper motors with a Pi. I had to do some serious trail blazing to step a motor reliably.
Here is for example a pen stroke optimization algorithm I developed to speed up plotting.
The base, drawing penstrokes as they come. “Empty” travel going from one penstroke to the next without the pen drawing: ~36437 (relative pixels).![](https://ben.akrin.com/wp-content/uploads/2019/11/Npwf5i_no_optimization-1.gif)
The next penstrokes is the closest. Empty travel ~15820, 0.43 compression ratio.![](https://ben.akrin.com/wp-content/uploads/2019/12/Npwf5i_closest_penstroke.gif)
The next penstrokes is the closest, but consider its beginning as well as its end, draw the penstroke reversed if it was the end which was closest. Empty travel ~12467, 0.34 compression ratio. ![](https://ben.akrin.com/wp-content/uploads/2019/12/Npwf5i_closest_penstroke_with_reverse.gif)
Now for the eye candy 🙂![](https://ben.akrin.com/wp-content/uploads/2019/12/reinder-bezier-truchet-tiles.gif)
I could watch this for hours, and I did.![](https://ben.akrin.com/wp-content/uploads/2019/12/reinder-bezier-truchet-tiles_closeup.gif)
Of course the efficacy of this algorithm depends heavily on the model to be drawn. I found that anything coming from Mandalagaba tends to benefit enormously, especially tessellations. And it makes sense, for every penstroke drawn, the repetitions occur throughout the canvas and they show up in that order even if you drew in a very localized area. The example above comes from the most excellent turtletoy.net.
More to come very soon on the great world of plotters…