Introduction: PrintO-Bot

Picture of PrintO-Bot

PrintO-Bot is an inkjet printer on wheels. This robot can print on almost any flat surface- no matter what material it is made of. And it is made from a regular desktop inkjet printer!

Why did I make this? 'Cause I like printing on different materials to decorate my room. I don't want to be restricted to printing on papers and I can't pay for the costly industrial services that're usually needed to make such prints.

Step 1: Quick Intro to Inkjet Printer Mechanism

Picture of Quick Intro to Inkjet Printer Mechanism

First, let's familiarize ourselves to the printer parts that we'll be hacking/ modifying. My PrintO-Bot is made from a Canon Pixma iP2702. Most inkjet printers have similar parts and mechanism so you *might* be able to use a different one but you'll have to analyze my steps and change them according to your printer while following the logic I've used.

Following the order in which the labelled parts are used/ engaged after sending a print to the printer:

..the paper feeder holds the papers and pushes a paper inside the printer when a print is received.

..the paper moving motor is responsible for pulling the paper into the print area as well as for moving the paper forward after each print swath (stripe of print across the page that the print head can create at one go)

..the paper sensor checks if the paper has entered the print area and signals the printer if it has or not; the printer either starts printing or gives us an error depending on this paper sensor signal

..print head/ ink head holds the ink cartridges and moves over the paper, ejecting tiny ink droplets onto paper.

Step 2: Hacking Plan

Picture of Hacking Plan

Now that we've familiarized ourselves to the parts, here's the logical plan to convert the inkjet printer to PrintO-Bot:

1. Bring the ink head outside of the printer so that it now faces the material we want to print on

2. Put the printer on wheels so that it moves over the material while printing

Now we proceed to the actual hacks. You'll obviously need to open up the printer first. Take out the 2 outermost covers and then..

Step 3: Hack 1: Print Head Re-positioning

Picture of Hack 1: Print Head Re-positioning

Cut an ethernet cable and solder away the wires to connect the ink cartridge at one end and the cartridge housing on the other. It is easier to solder to the cartridge first and then to the housing.

Even better, instead of soldering the way I've done here (the cartridge & housing soldered on either ends), I'd recommend soldering different set of wires to both the cartridge and housing, and then soldering male/female connectors at the other ends of both so that the cartridge is easy to connect and disconnect. (Update: I re-soldered the wires this way. Last picture above shows how it looks now :) )

I've soldered only the black ink right now since it has lesser pins to solder than the color one.


1. Take the ink cartridge out. Make a sketch of the pads on it. Do the same for the pins inside the housing (they're obviously of same layout but just draw both of them).

2. Now use a digital multimeter to record the resistance between the first pad and any other pad which gives a finite resistance. Repeat so that you have a value of resistance between each pad with atleast one other. Do the same with the pins inside the housing. We're going to use these values to check if we have soldered all wires correctly.

3. Solder away! Use a lot of flux. Hot glue the wires after soldering every second/ third wire depending on how carefully you can solder. Once hot glued, verify if the resistance you had recorded for that pad/pin has stayed almost same (it will NOT be exactly same).

4. Be patient and take breaks in between. It takes a really long time the first time. Once all wires are properly soldered, secure the whole thing with more hot glue.

Step 4: Check the New Printhead

Picture of Check the New Printhead

Tape the cartridge onto a temporary holder/ thing and give the printer a one or two line thing to print on your favourite material! We still need to feed in a paper to make the printer print.

Also, make sure whatever you're printing is black and white (not grayscale).

Step 5: Hack 2: Bypassing the Paper Sensor

Picture of Hack 2: Bypassing the Paper Sensor

The printer uses an optical sensor as a paper sensor. A lever is offset from its position when the paper goes in and that causes the optical path in the sensor to complete. Here's a good explanation of an optical sensor. The sensor in this printer is almost same but the circuit connections are pretty different. Above is the modified version of that circuit. Picture 3 shows the sensor board. It has 3 pins that I've soldered to different colored wires for debugging: White wire pin: Chip select/power

Black wire pin: Ground

Blue wire pin: Sensor output

So, in normal working conditions, there is a fixed time interval between the feeding of paper and detection of paper by the sensor. If the paper is not detected within that interval, an error is generated by the printer and it stops printing. To simulate this exact signal exchange abiding specific time intervals, I built a small mechanism to detect the start of printing process. Explanation in the video

Using an oscilloscope, I could determine that the printer expects paper around 268 millisecond after it tries to push the paper in. So, I coded an arduino to detect the switch close, wait for 268 msec and then send a fake 'paper detected' signal:

const int mySwitch = 7;<br>const int fakeOutput = 8;

void setup(){
  pinMode(mySwitch, INPUT);
  pinMode(fakeOutput, OUTPUT);
  digitalWrite(fakeOutput, HIGH);
void loop(){
  if(digitalRead(mySwitch) == HIGH){
      digitalWrite(fakeOutput, LOW);
      digitalWrite(fakeOutput, HIGH);

This fake signal is given to the printer instead of sending the sensor output. So, break the sensor output wire as shown in picture 4 and connect Arduino's fakeOutput pin to this wire such that the fake signal goes to the printer. Make sure to connect the grounds of your Arduino & the sensor together.

Step 6: Hack 3: Making the Printer Move!

Picture of Hack 3: Making the Printer Move!

Take the signal going to the paper moving motor, step it down and give it to the wheels of the PrintO-Bot via an H-bridge: In the circuit diagram, the "PWM tapped.." is blue (or light colored) wire of the paper moving motor, while "Ground point.." is the black wire pin on the paper sensor (shown in previous step).

You'll have to experiment with the voltage given to the bot's motors- change the voltage to adjust the speed of PrintO-bot so that the print swaths align well enough to give an almost accurate print. (I'm making a more robust method to do this. I'll update it here)

I used high torque dc motors to drive my robot as it has to start and stop very precisely, while carrying itself. The motors, wheels and mounts were from Pololu sales. Since we've to mount all the wheels very accurately, it is a good idea to laser cut the base with the exact dimensions for all the components that'll be mounted on it.

Parts used:

Once that's done, I 3D printed the parts required to assemble the 4 wheeled chassis

Step 7: Build a New Sturdy Housing for the New Print Head

Picture of Build a New Sturdy Housing for the New Print Head

I made a 3D printed 'holder' for the now-outside-the-printer cartridge. I made it in 3 parts- starting from the bottom most one. That was made in Vectorworks and printed using the Makerbot Desktop

Step 8: Make It Work!

Now I have tonnes of stuff that can be used to decorate my room!


SugarCluster (author)2014-06-03

You can alternatively use thin wire(not stranded) and reusable jumper cables to make it easier than ethernet cable,as it's more pliable and thin.

sanni-t (author)SugarCluster2014-06-05

Yep, you're right

craftclarity (author)2014-06-04

This is quite an imaginative use of printer internals...I have an image in my mind to turn it loose on a huge floor-size piece of paper....!

treyes4 (author)2014-06-03

Cool build...would love to make one but hahahaha i think i will regret doing it. maybe someday in the future "thumbs up" :D

mopsiok (author)2014-06-03

Lol that's so awesome ^^. Thanks for posting this, I must try it!

unigamer (author)2014-06-03

That's a great hack! Next old pritner I get my hands on I won't cannabalise for parts but try this.

PalomaS4 (author)2017-02-20

onde eu compro os componentes?

RaviG28 (author)2016-11-27

I wanted to hack a canon printer to print on thick (30 to 40mm) materials. I wanted to do away with the ASF (automatic sheet feeder) and Paper Entry (PE) IR sensors and related mechanicals. Hence removed all those. But unfortunate I lost the timing I noted before ripping the printer. Hence googled for "Canon Paper Entry Sensor timing" and came across this instructible. Great one. Here are my comments:

1. Unable to search this from Key words "Canon printer" "printing on floor" "printer on wheels" did not show up this ible. Had to search google again to get back this link.

2. I think it is possible to move the "carriage slider" to print on the floor doing away with the difficult wiring/soldering part. You could do away with the ASF, the head cleaning unit etc. In that case you need to emulate the ASF and PE sensors.

Good Job. Thanks.

myearwood (author)2015-09-22

Hi Sanni-t. I want to discuss paying you to assist me with a similar project. mike dot yearwood at

TiaRiaa (author)2015-09-08

great job on this incredible work!!! love it

sanni-t (author)2014-06-05

Thanks everyone! Let me know if you're making your own PrintO-Bots and have any questions!

clarkj2 (author)sanni-t2015-06-07

why dont you use higher torque motor to replace paper loading motor and keep encoder?

Kinnishian (author)2014-08-12

So I'm coming back to this quality project, a bunch later, with some ideas:
I recently had a major stencil project fail, when I got to the laser cutting part and found out all the crazy curves on my part had jacked up the prices majorly.

It occurred to me, if I had made one of this printO-bots, I could have printed a ton of ink onto a large sheet of 5mil steel, and then used acid to etch away the parts I wanted cut out. I don't know how perfectly it would work, but would be a kickass application, and with a much higher quality stencil material (steel vs. PET)

muntaseralferagi (author)2014-07-31

Amazing idea

Dave55555 (author)2014-06-10

Help! I am stuck. Can you list all the parts you used? (especially specific part #'s from

I wanted to match your "ible" exactly, so I searched/found a used Canon PIXMA IP2702 and mounted it to my wooden base, but I am stuck at these 4 points:

1. Your specific two motors from part #?

2. Step-down signal using H-bridge?? (where can I learn what an H-bridge is?)

3. The metal dowel size/parts used for your new printer slider rod rail?

4. Is there a large/loose circuit board in the paper input?

Thank you for your help. I hope I can make this work!! Appreciatively, dave & daughters in austin, texas

ps: Your "ible" truly is great! Thanks for creating this...WOW!!!

sanni-t (author)Dave555552014-06-10


By the way, did you get ink cartridges with the printer? You need them you know.. If you did not, it's probably cheaper to just get a new printer

sanni-t (author)sanni-t2014-06-14

Just realized, I forgot to add the rod:

sanni-t (author)Dave555552014-06-10

Yay! Thanks for trying this out!

I have made some improvements to the circuit. Will update the new "signal step-down" circuit with explanation tonight. I'll add the pololu part numbers too.

Until then, here's a good tutorial on h-bridges/ dc motors:

phoe (author)2014-06-13

Awesome !

Kinnishian (author)2014-06-08

From what I understand, you used a calibrated voltage+time pulse to the DC motors to determine a given step per swipe of the printer head.

If that is the case, did you consider using a stepper motor or something like that to run the system instead? It has the benefit of staying constant over time, where the DC motor might slightly vary in calibration over time.

sanni-t (author)Kinnishian2014-06-09

So, the Canon printer's paper moving motor is a DC one. They've constructed a servo mechanism using the encoder's feedback. For me, it was a lot easier & faster to just take the same PWM signals going to Canon's motor, and give them to my motor's driver and adjust my motor's voltage to get the same linear displacement as that of the paper moving motor.

You're right, dc motors are not stable, but a dc motor with a feedback is just as precise as a stepper; and in this case, easier to use. My bot doesn't move precisely as it doesn't have a feedback yet. This is my first prototype- a quick and dirty version of my vision of printO-bot. So, the choices I made here are mostly because they are faster & cheaper to implement, not necessarily because they give the best results. Thanks for your inputs (Thanks everyone actually). This is exactly why I made this instructable- to put this idea out there that such a thing can be done and to see if and how you amazing makers would want to make it!

Kinnishian (author)sanni-t2014-06-09

Sweet! Thorough response there and decent reasoning. I find it very admirable that you retooled a lot of the existing mechanisms. In my experience it's not easy to pick apart the more complex consumer products when they are so thoroughly close-sourced and poorly documented.

DC motors with feedback are indeed bomb. Ye ol servo. If you want to get some relatively easy feedback I think pololu also has some rotary encoding bits and pieces, they added them sometime in the last six months.

Does the printer always move the same amount for each swipe of the head? If it does, I still suspect steppers might be cheaper/reliable/easy to retrofit, but if not then maybe continuing your route is better. Either-way it's 'better' if that's what you choose and prefer. The main thing is you do the project, and have it working.

sanni-t (author)Kinnishian2014-06-10

Nope, the motor doesn't move by same amount everytime..

Kinnishian (author)sanni-t2014-06-10

I see! I did not realize that. I assumed the print head had a fixed width per line.

sinzu (author)2014-06-10

nice !

Did you try to print something on your body ? This could be used to prototype your own tattoo and test the result on yourself before going on a professional tattoo salon.

Other question: is it possible to replace to two DC motors by a single one. This could guarantee that the printer can move straight forward.

sanni-t (author)sinzu2014-06-10

yep, it can work with one motor; you'll have to couple the other wheel via gears. But then your motor will have to be more powerful.

Since i'm giving the smae pwm signal to both the motors, and the motors are of the exact same kind, i haven't seen any misalignment between the wheels..

dimdiode (author)2014-06-08

I am hugely impressed. If I could but one of these online, I would. I have a very specific need, currently made using laser, at great cost. This would save me money, and would offer greater flexibility and range. Where can I get one??? Building one would be beyond my electronic capability, I am sad to confess. Well done - I really like it. Can you tell? :p

Poppy Ann (author)dimdiode2014-06-08

Time to start building your electronic experience, this is just a bit of soldering you could always look for a couple of printers of the same make/model and then remove the cartridge holder from one and use the second one to attach it to then just get a longer ribbon cable to connect them both together which would make it much easier to change cartridge also it may be possible to use the paper drive motors to move it on the floor? you only learn by trying and what would the cost be a couple of second hand printers and a bit of your time.

dimdiode (author)Poppy Ann2014-06-08

You are correct, of course. What you can't see is an array of 'easy-peasy' amplifier 'solder it yourself' kits sitting here, looking sad, because I have made a mess of them. I also have a cheap in-car amplifier I tried to fit to a speaker, to make a busking amp. I blew it up. A friend said I had too much power, or possibly too little. Where is a chap to look, if the answer could be either too big or too small. This whole electrical thing has had me baffled pretty much from day one. I have had circuit designs explained to me, and I am none the wiser. No-one can be expert in all things, so for me, the stuff which comes out of a battery, or the wall plug, shall remain voodoo. You aren't going to be able to teach this old dog any new tricks, I am afraid. Though I honestly appreciate your encouragement. You wouldn't want to see an old guy burn his house down, would you?? ;)

Poppy Ann (author)dimdiode2014-06-08

yes you are right no one can be master of all trades, i am ok with the electrical side of things or i should say i can follow a wiring diagram and build a circuit but when it comes to programing arduino i have to just copy other peoples code and modify it where i can, (which i am ashamed of as i use to be quite good at programming back in the 80's)

and as to burning down his house i had a little magic smoke yesterday when reprogramming a ESC for my quad copter i was not concentrating and connected the 12 volt supply where it required a 5 volt so that is a ESC that will not be used again.regards Poppy Ann.

dimdiode (author)Poppy Ann2014-06-08

My first programming was in Fortran, then Basic, then a few 'scripting' type proprietary things. Then nothing for years until programmed a TI59 calculator, then again nothing for years, then Javascript, CSS HTML and a bit of PHP, but all of that has ceased now, as well. My biggest problem, by far when soldering, is worrying about the temperature, then over-compensating and getting things too hot. I read about 'dry joints' and the solder not running into the proper place if the soldering items were too cool. So, of course, I now get things way too hot - yet I don't understand how. I hold the parts in a '3rd hand' and the solder in my left hand - apply the iron to the item, and wait, and wait and wait, and seemingly it isn't getting hot, because the solder isn't melting yet. Then the solder does melt, and after things cool I find the item has become really hot. I have ruined numerous phono and XLR plugs (I make up my own piezo pickups and plugs for my little drum,) and I do have a problem, sometimes, where a plastic XLR plug can end up with the pins out of place due to overheating. I am just not very good at soldering - but I will keep on trying. I would like a roaming print-head to print custom designs onto the wooden 'skins' of my little drum. It would be so much cheaper than laser, and much better than decal. I really like this idea a lot. I would need to output AI and PDF files from my mac.

Frank Strudel (author)dimdiode2014-06-10

As for your soldering issue, sounds like you might need to be a bit more generous with your pre-tinning of the soldering iron?

dimdiode (author)Frank Strudel2014-06-10

You make a good point, thank you. I feel now that I've talked with others, that I am probably not waiting long enough for the iron to get properly hot, and I am not taking care to clean the iron before starting. All these helpful hints will be put into practise next time. Thanks again.

Poppy Ann (author)dimdiode2014-06-09

hi again, i think it better if we moved this conversation to a private message so i will reply that way.

sanni-t (author)dimdiode2014-06-08


How much would you pay for it if it were available online?

dimdiode (author)sanni-t2014-06-08

That's hard to judge. Of course, it's possible to gout and buy an inkjet printer for £30, which is fine. So I guess the real 'product' I would look for would be the kit of extra parts. A better way to attach the relocated cartridges, the kit of wheels, a bunch of wires, clips and stuff. It would need to be reasonable - say in the region of another £30..... or so. But then, I don't know if that is viable. I would want it to be fairly foolproof, and 'plug & play' as much as possible.

sanni-t (author)dimdiode2014-06-09

A kit makes sense. Thanks for the suggestion!

dimdiode (author)sanni-t2014-06-09

Maybe crowd sourcing / Kickstarter would be a way to optimise or refine your design, design a kit of parts into package and offer the kit for sale. Like I say, if you could refine the build such that a simpleton could construct it, I think you'll sell plenty. Put waterproof inks in the thing and you have a tee-shirt printer for a fraction of the other alternatives, and many other ideas as well. I will watch developments with great interest, good luck.

eng_Andy (author)dimdiode2014-06-08

If you have a desperate need for a free-roaming printing robot, I would recommend checking out this miniature mobile inkjet printer.

Their campaign is over though, so see their website for updates - the kickstarter version came with no warranty.

I've actually been waiting to see someone make a DIY version of that idea since it went up, so I'm overjoyed with this.
I guessed sticking to cartesian axes would make such a hack a lot
easier, but as this author has shown, it can make for a quite cumbersome
tool (albeit slightly less than transporting a regular printer). Now we'll see
if someone can make an open-hardware version that combines the best of
both of these, maybe with some of the lessons learned in this inkjet too, and that guy's arduino shield.

Poppy Ann (author)2014-06-08

A great instructable many thanks could you not just remove the printer cartridge holder from the printer all together to make it a little easier and save you the problem of soldering the cartridge, if not i think it may have been a little easier to use a ribbon cable to do the connection, also you say use lots of flux to do the soldering , it may be easier for you to use solder paste in place of flux do a search for "Liquid Tin Solder Paste" on ebay :-

it makes soldering very small items much easier.

sanni-t (author)Poppy Ann2014-06-09

I wish it was possible to remove the cartridge holder..but it's not. The feedback from the print head's position is what makes the print head move. Doing anything to it will make the printer to stop working. And I could not figure out a way to transform the feedback to the new position :(

Yep, solder paste should work too

Penolopy Bulnick (author)2014-06-08

Gif :)

sanni-t (author)Penolopy Bulnick2014-06-09

Yay! Thanks!

siliconvalley (author)2014-06-09

Very excellent idea

And professional method of execution

Good job

NitroRustlerDriver (author)2014-06-08

Add a vacuum system to it so it will stick to walls. Then you could print posters straight onto the wall!

That's awesome!!

radicalmart (author)2014-06-08

A very good instructable. You could try putting different colour inks in the cartridge for a simple psycodelic effect. please excuse the spelling!

kondoruy (author)2014-06-08

Good job whit the hack, you might consider replacing (for some cases) the wheels for an rectangular box of T rail, and you will not only have better lateral stability (the example of "thank you") and in other cases, use the wheels in wavy materials.

LancasterPA (author)2014-06-08

Super imaginative. I assume your young from "Decorating my Room"... that's always left to the wife. I can't wait to see what you do in life, maybe designing limb attachments or other ways of moving man kind forward. Just great.

sanni-t (author)LancasterPA2014-06-08



About This Instructable




More by sanni-t:Tech-Magic: Home Automation Using Interactive Wand From Wizarding World of Harry PotterPrintO-Bot3D Zoetrope
Add instructable to: