How to build a vertical plotter with LEGO MINDSTORMS EV3


Updated on:

In this article I’m sharing Building instructions for making a vertical plotter with a single retail kit of LEGO MINDSTORMS EV3! The plotter is hung by two threads to a wall or door. This vertical plotter MOC is built with only a single LEGO 31313 kit. I named my plotter after the famous Belgian painter James Ensor, who was famous for drawing masks. I programmed the robot to follow a path along a list of coordinates. This way it can draw circles, squares and even complete portraits.

What you need

Other than a base LEGO MINDSTORMS kit, you need some household materials. The model is built to fit exactly to a Sharpie pen. Different pens might not fit or be too loose. Next you need some dental floss. Preferably cheap unwaxed floss. For paper I bought a 50cm wide roll. Individual sheets are possible too, but they are way more expensive and harder to store. I also bought some ECO friendly masking tape to fix the paper to the door – which of course you also need. I used a door to hang the plotter so I was able to hang it with just a loop at the end of the dental floss. You might have to get creative if you don’t have such door.

For controlling the motors and making them turn towards every position I built an ev3-g project. I did a post about the math involved. It’s easier than you’d think. I’m planning to do another post to explain how that program works.

First, here’s a quick video of the plotter in action.

Building Instructions & EV3-G code

Generating coordinates

The hardest part of the project is actually generating coordinates for the plotter to go to. Here’s a little python script on that does just that. What I did is generate normalized coordinates. Normalized means that all values are between 0 and 1. So 0,0 is the top left corner of the plotting area and 1,1 is the bottom right corner. This way the coordinate files are independent of plotter surface size.

It would be perfectly possible to generate the coordinates without python, just in a browser with JavaScript, but my JS skills are not good enough for that. I would really appreciate it if some could help to convert my python script to JS.

Downloading the rtf files to the robot

With EV3-G plotting from a file is perfectly possible. The tricky bit is getting the coordinates on to the Ev3 Intelligent brick. Here are the steps you should take:

Step 1: Download the project to the brick. Don’t run it yet!
Step 2: Open the Memory browser with the tiny button in the bottom right.

Like this article? Help us make more!

Your support matters

We appreciate your support on Patreon and YouTube! Small things count.

Become a Patron

Don't miss a thing

Subscribe below to get an email when we publish a new article.

Share this with someone who needs to know

5 thoughts on “How to build a vertical plotter with LEGO MINDSTORMS EV3”

  1. Really cool project! Although I want to start, it seems like the building instructions are not in order and also the post itself seems incomplete.

  2. I do not understand the variable cm_to_angle_in_deg variable in the program. Can you help me understand it and how to calculate it, it has a default value of -158. Also where it says “horizontal distance from fixture” , fixture means from where it hangs like a nail right?


Leave a Reply

Item added to cart.
0 items - 0.00