Chinese penplotter at 55€ aka `CNC V3 shield toys DIY LY drawbot pen lettering corexy XY-plotter drawing robot machine for writing`
Few weeks ago I decided that I wanted to buy a pen plotter.
I’ve been following on twitter the work from @makio64, @florianzumbrunn, @mattdesl, @Julien_Espagnon and more…and I always been fascinated by those pen plotter.
One of the most popular choice seems to be AxiDraw V3. I was almost tempted to buy it…but just before doing it, I found a much cheaper clone on Aliexpress.
So I just gave it a go.
Few people asked me information and whether it’s worth it. I’ll just share here my experience:
I ended up buying from this seller: https://www.aliexpress.com/item/33003296007.html which claims “European duty-free Poland warehouse”. (Make sure to select Poland)
Payed € 85,99 total (with shipping+tax) and received it in less then a week ( the parcel shipped from Milan, not Poland 😲)
The plotter arrives in a DIY kit. No manual or assembly instruction were sent. Tried to contact seller but had no luck (A bot replied to contact him on WhatsApp on chinese number, which I tried, but no luck 😅)
After a lot of time spent on internet I found this manual. Some steps aren’t super clear and some pieces aren’t exactly like in my kit, but overall I made it.
Some parts are 3D printed, other are “metal-wood like” (probably laser printed?), other appears to be reused part from windows frame alloy.
The screws/bolts/nuts are in small plastic bags with handmade pen label (labels are very small, took me a while to figure it out!). I didn’t ended up using all pieces. I guess they are re-using those generic bags for other products or DYI kits…who knows 🤔
Once completed, It looks like this:
The electrical part is composed of:
- Arduino UNO (well, a clone)
- CNC Shield V3
- 2x Stepper motor SL42STH34–1334A
- 2x Pololu stepper driver A4988
After few try, I understood that the Arduino was running GRBL v0.9i, which is a firmware standard for CNC machine, so I tried to send command via the open source Universal Gcode Sender. It worked, but not really.
I couldn’t move the plotter on one axis, moving X was moving the Y at the same time and vice-versa.
After some time I understood the problem.
The machine is using a CoreXY kinematics system, where there is just one belt to move the two axis. So the two motor needs to work together with a specific math equation. It seems a common standard in 3D printer as well.
(I assume the Arduino shipped with a wrong firmware)
Investigating a bit, GRBL supports CoreXY. To enable it you have to manually re-compile and upload the firmware on the Arduino, changing the
You can't perform that action at this time. You signed in with another tab or window. You signed out in another tab or…
Info here how to compile it.
It went better, but still I had issues where one motor seemed to be “stronger” then the other, turns out the voltage on the stepper driver needs to be calibrated.
I used this guide: https://e3d-online.dozuki.com/Guide/VREF+adjustment+A4988/92
Now, to detect the correct VREF value to set, there is some nerdy math table and logic behind (https://www.pololu.com/file/0J450/A4988.pdf), but I just went with 0.6. YOLO.
I could finally move X and Y independently.
Next step I had to make the servo pen working, to do that I had to modify GRBL code source to add servo support. A friend of mine came to rescue, making this repo: https://github.com/lavolpecheprogramma/grbl-1-1h-servo
Last but not least, I had to change GLBR settings, more info here: https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration
Here’s the final setting I achieved after many test:
By now, I had everything working, I could move the plotter left/right/up/down and move the servo UP and DOWN.
Creating stuff with code
To “print something” you need to send G-code, a very simple numerical control language.
There are several ways to convert “vectorial” stuff to G-Code.
- Use a good pen (for technical/architecture drawing), i’m currently using Artline 0.3mm
- Make sure the pen is stable
- Use a good pen
- And make sure the pen is stable
- Most important, make sure the pen is stable
I gave a try printing 3D stuff, generated with Blender. I tried a tons of option, finally the best pipeline I found is:
- Use Blender freestyle rendering pipeline
- Use this python add-on to export SVG from Freestyle https://github.com/folkertdev/freestyle-svg-exporter
- Load SVG in Illustrator and use https://diegomonzon.com/illustrator-to-g-code-panel to export g-code
Adding hard switch
Being a cheap plotter, it’s missing hard switch, which are little “buttons” on the axis limit, that allows to:
- Homing (basically a fancy name to return at a consistent 0,0 each time, without manually moving)
- Prevent the plotter from going when the rod is over
With some euro, you can buy some hard switches and mount them:
After re-using an old USB cable, some hot glue and welding this is the result:
After one week of usage I have to say that I’m impressed by the precision and the results given the price tag.
The process to make everything works wasn’t immediate, but I guess that’s part of the learning process when building your own CNC/plotter.
Thanks to my friend Alberto for some help during this adventure :)