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 config.h
file.
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.
I’m currently using a combo of canvas-sketch + gcode-file which allows to easily write canvas 2D, visualise on the browser, and easily obtain a g-code from it.
Few tips:
- 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
3D pipeline
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:
Conclusion
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 :)