DIY Arduino Based Pen Plotter Using 28byj-48 Stepper Motor

by Aaqib Saad in Workshop > CNC

278 Views, 1 Favorites, 0 Comments

DIY Arduino Based Pen Plotter Using 28byj-48 Stepper Motor

DIY Arduino Based Pen Plotter
IMG_20250805_1423462.jpg
IMG_20250731_002243.jpg
IMG_20250808_212845.jpg
Cover Photo.jpg
IMG_20250801_181749.jpg
WhatsApp Image 2025-08-05 at 20.07.20_5c9fc3f6.jpg
IMG_20250808_213417.jpg

##Note: Use a desktop for a better view of the images


This is a Arduino based pen plotter using 28byj-48; 12v stepper motor and made out of pvc board. This plotter can draw any kind of vector image from simple text to sketch with impressive accuracy.


Special Section for Instructables' Happy Birthday Robot Contest! 🎉

While this Instructable mainly focuses on how I built my own DIY Pen Plotter from scratch, I’ve also added a Birthday Special Project section at the end where this machine creates custom birthday cards and portrait gifts.

It's a fun demonstration of how a simple DIY plotter can be used to make personalized, hand-drawn birthday creations automatically — perfect for unique gifts and celebrations!

So if you're here to learn how to build a pen plotter, keep reading! And don’t miss the final section where the plotter becomes a Birthday Gift Robot.

Supplies

Understanding Overall Process

Picture2.png

Our main task is to make x and y axis with smooth linear motion. Later we need to measure how much steps it takes to move each axis per mm and input this value along with some other variables in the software. And we are done making a CNC.


Sounds so easy right? But in reality we need to customize the software on our own because we are using non standard stepper motors and a servo instead of stepper motor for our z axis. In this tutorial I will try to explain all software intricacies step by step.

Making Y Axis

15 inch (4).png
IMG_20250616_110501.jpg
15 inch (5).png
IMG_20250617_230233.jpg
Picture3.jpg
IMG_20250528_214451.jpg
IMG-20250802-WA0006.jpg
IMG_20250622_101558.jpg
IMG-20250802-WA0007.jpg
Screenshot (819).png
WhatsApp Image 2025-08-04 at 23.28.03_e0828437.jpg
IMG-20250802-WA0005.jpg

First, we will make the Y and X axis. Then we will move to the software part.

I am using 8mm pvc board for this and to join them I used chloroform (see image reference). You can use super glue but super glue is fast drying and creates more permanent bond than chloroform.

It dosen't matter how you make your axis, make to it is sturdy and have a smooth motion without any wiggle.

small tip: select linear rod and bearing carefully. Purchase Grade A rod and sealed high quality bearing only.

Making X Axis

Picture2.jpg
WhatsApp Image 2025-08-02 at 14.09.08_b0df13fa.jpg
WhatsApp Image 2025-08-02 at 14.09.08_844f103d.jpg
IMG_20250628_202619.jpg
WhatsApp Image 2025-08-02 at 18.23.10_07df4f60.jpg

Same process goes for the x Axis. To attach the bearing I used super glue.

Making Print Head/ Z Axis

15 inch (7).png
WhatsApp Image 2025-08-02 at 14.24.03_f8c81823.jpg
WhatsApp Image 2025-08-02 at 14.24.03_9c1ea45c.jpg
IMG_20250727_143422.jpg
IMG_20250727_141128.jpg
IMG_20250727_141957.jpg
WhatsApp Image 2025-08-02 at 14.24.03_5f3a4791.jpg
WhatsApp Image 2025-08-02 at 14.32.57_8abd6404.jpg

I have harvested pen holder from plastic compass. Use a rubber band to create some pressure (make sure the elasticity is within the servo load capability) so the pen always stick to the paper. I have used dental floss with the servo as string to lift the pen.


The width of the print head is 6 cm. The linear rod I am using is not 100% parallel. So I used long bearings to minimize the bearing play.

Note: The size of the print head effects the print area significantly so try to make it as small as possible. Alternatively you can make x and y axis longer to increase print / plot area.

Final Assembly

IMG_20250702_182008.jpg
WhatsApp Image 2025-08-02 at 17.59.57_65b58160.jpg
WhatsApp Image 2025-08-02 at 17.59.56_7ef43614.jpg
WhatsApp Image 2025-08-02 at 17.59.57_cb293740.jpg
Picture1.jpg
IMG-20250802-WA0007.jpg

First we need to raise the X axis. Insert a pen into the print head and measure how much height is suitable. Too much height might decrease stability of the x axis. For my design 3 inch from the ground is good enough.

Now place the x axis over the Y axis like so you can get the maximum print area. Mark the position on a solid surface. I used 6mm acrylic sheet as a base and used double sided tape and glue stick to hold the position.

Wiring Diagram

circuit_image2.png
Picture3.png
Picture4.png
IMG_20250705_151419.jpg

Setup Process

DIY Pen Plotter GRBL Setup Process

Note: Before setting soft limits, first determine your step/mm ($101/$101), because this will affect distance traveled. I forgot to mention this in the video.

Click on this link to download all software. You will find 3 zip files. Download them all. More details are in the video.

Image Plotting

Image Plotting

Plotting Your Own Handwriting

Plotting your own handwriting

Birthday Celebration

Birthday celebration

So far, we have seen that this plotter can draw almost anything, with some limitations when it comes to highly contrasty photos. However, for birthday gift, we can make personalized gift cards, portraits, handwritten-style birthday wishes. This video is made for the contest, wishing Instructables the very best of luck on turning 20!


Thanks for watching. I tried to share every detail I know about this plotter. Best of luck with making this type of pen plotter.


Please, Checkout my other projects.


Happy Plotting