Skip to main content

Inkjet Printer to Manual Plotter- Plotting Lines Controlled by a Joystick!

This article is updated every week, with new ongoing developments in the project. 

If you like to open up old electronic appliances to see what's inside, and salvage a few useful components, this article is for you. In this article, we are going to learn about the basic idea involved in converting an inkjet printer into a plotter.

Project overview- There's next to no difference between the mechanism of movement in inkjet printer and a RC Car. So you don't need any prior experience in Arduino.

Here's what the project looks and works like, so far-

As every printer does not contain the exact same setup of components inside, we'll be talking about the general idea of what is to be done.

Things you will need-
1. An old inkjet printer (Obviously)
2. Arduino Uno
3. L293d Motor shield
4. Joystick Module
5. A push button and a 330 ohm resistor
6. 12V 2-Amp DC Power supply 
7. A 9g Servo motor
8. Ingenuity
9. Tenacity

I already had the last two, however you might want to order them from amazon if you don't have them😀

1. To start with, as you open the printer you will come across lots of parts that won't be needed for this project. What you need to look for is two modules- 
  • A carriage holding the cartridges, responsible for horizontal motion of the plotter.
  • The mechanism that advances the paper, (pulls it forward).
Rest isn't needed for the project.
The modules mentioned above (Top right)

Both of them simply consist of a motor and some mechanical structures facilitating the movement of the carriage.
Make sure you pull out all the ink pads present in the printer before dismantling deep!

2. The mechanism that pulls the paper in from the feeder allows the paper to only move in one direction (that's pretty much why you never see the paper moving reverse in the printer). So we will have to remove the entire paper feeding mechanism  and insert the paper manually from the rear.

3. Don't be afraid to cut out the unnecessary plastic, acting as an obstruction in your project, especially that part that will be holding the servo.
The cartridge holder can be easily pulled out, I realised this after a lot of attempts to cut it off.

4. Setup the the circuit, and upload the code as below-


Download and zoom for a better view

#include <AFMotor.h>
#include <Servo.h>
#define SERVO1_PWM 9
 int joyPin1 = A0;                 // slider variable connecetd to analog pin 0
 int joyPin2 = A1;                 // slider variable connecetd to analog pin 1
 int value1 = 0;                  // variable to read the value from the analog pin 0
 int value2 = 0;                  // variable to read the value from the analog pin 1
AF_DCMotor M1(1);
AF_DCMotor M2(2);
Servo servo_1;
 void setup() {


 void loop() {
  // reads the value of the variable resistor
  value1 = analogRead(joyPin1);
  // this small pause is needed between reading
  // analog pins, otherwise we get the same value twice
  // reads the value of the variable resistor
  value2 = analogRead(joyPin2);
else servo_1.write(110);
if (value1>600);
else if (value1<100);

if (value2>900);
else if (value2<500);

The above code is the basic code to control the movement of the carriage and the paper using the joystick.
Experiment all that you want to!

You can also write codes for drawing a perfect shapes like square or circles, at the press of a button. I will be uploading the codes for the same on this article soon.

To read further updates on the project subscribe to this blog to get notified at every new addition.


  1. Hi Siddharth,
    just wanna say hello and thank you for the inspiration.
    I have two cheap printers which are to expensive to 'refill' as long as you can buy new one in a price of new ink cardridges and till now I have no idea how to use them.
    I love the idea of salvaging old equipment, so I am looking forward to see Your next projects.

    1. Greetings Maciek!
      Thanks for the kind words.
      The cost of cartridges, was pretty much what inspired me, as well, to work on this project. I'm still at it, trying to add more functionality.

      Stay Creative ☺


Post a Comment

Popular posts from this blog

5 Effective Online Tools that will Spice up your Arduino Projects!

Arduino has made electronics projects easier than ever. The question now is- Can we make the process of building projects faster and more enjoyable? Let's have a look at some of the interesting softwares/online tools developed for the Maker Community to make tinkering more effective and documenting projects easier!

1. TinkerCad

TinkerCAD's recently created circuit simulator allows you to arrange your Arduino/Attiny circuits in an easy 'drag and drop' environment and test them virtually without having to make them. This can be really helpful, for testing projects that use components which you are yet to buy. And after all, who doesn't like tinkering?

Try out Tinkercad-Circuits here!

But that's not what Tinkercad is famous for. It offers an amazingly easy to use 3D design tool for Makers, once again in a simple 'Drag and Drop' interface! You can directly download the CAD file, once you're done designing. If you've ever thought of making your own uniqu…

TV Remote Controlled Servo Motor-Using Arduino!

We use our TV remotes to control the functions of the TV's, but when the TV is not in use, they're absolutely useless. Today, we are going to learn how to add more functionality to ordinary IR based remotes, in this one we shall see how to control servo motors. There are so many (SO MANY) different applications of this project that one can think of. Using the following tutorial, you can make one yourself!

1. Watch the video tutorial-

2. Things you will need-

Note that you may use a different IR receiver other than TSOP1738, if it isn't available. Usually you can find this on websites like amazon and ebay.
3. The circuit diagram!

4. The IR Remote Library
5. The Arduino Code- Just copy paste this code into your Arduino IDE

// Written by Siddharth Kothari, Enjoy your journey Exploring Arduino!#include <IRremote.h>#include <IRremoteInt.h>#include <Servo.h>intRECV_PIN=11;//IR receiver pinintgndIR=10;/…

NetBeans Java project- TIC TAC TOE (AI) - logic explained

This article covers the basic concept of how you can implement basic AI in you game, i.e allow the computer to compete with you, giving it equal chances of winning. It's worth a thought what makes the computer invincible in a human vs computer chess game?

A common notion is that programmers code for every single possibility in the game considering all permutations and combinations etc. However this is far from reality. We can instead make the computer go by the 'Human thought process ' for every move. Lets consider a simpler approach to the popular TIC-TAC-TOE game.

Try out TIC TAC TOE here. (500 Kb executable .jar file)

Coming to the TIC-TAC-TOE GAME. This project is a great exercise for beginners to get a hang of basic logic used in games and other applications.
The logic behind the computer's moves is simpler than you think. To begin with, lets see the logical flow of code before getting into the 'code'.
Here's how the code works-

After every move yo…