Introduction: How to Turn Inkjet Printer to Print on Coffee

Picture of How to Turn Inkjet Printer to Print on Coffee

The aim of this project is to make latte printer, I used 1 printers and 1 scanner , it prints one line a time, all what I have done is hacking the sensors of the printer and I used Arduino Uno to send different values to printer's micro-controller created custom shield to control stepper motor and do other taskes ... ,simply I fooled the printer, make it print with no papers :)

Tools :

- Soldering equipment

- Oscilloscope , Multimeter

- Hardware tools : screw drivers , Scissor , pliers, small drill ...

Materials :

- Canon ip3600 inkjet printer,

- Edible ink for Canon ip3600

- Any old scanner

- Arduino Uno r3

- Stepper Motor Driver , EasyDriver

- 2* Relay 5 volt coils

- Voltage regulators : 9v , 5v

- Strip board & wires

- Meccano parts or any thing to make the printer body move on wheels and ability to adjust the height from the surface , Makeblock is good option too

- Drawer slides

- Double face, tapes and wires

Step 1: Disassembling the Printer

Picture of Disassembling the Printer

Remove all body plastic parts, but be careful it is a bit tricky you need to press some spots with a screw driver ,the parts will be removed easily without extra force , for sure you need to look for the screws first and remove them from the printer,

I did not take photos for that but this link give good tips, but you need to go further with removing parts util it becomes like the the photos above

Step 2: Adding a Printer Base With Wheels & Connect to Drawer Slides With Scanner

Picture of Adding a Printer Base With Wheels & Connect to Drawer Slides With Scanner

- I've used Meccano parts and 2 small toy car's wheels

- Connect printer base to drawer slides

- Connect drawer slides to scanner body

- Modifications needed on the beam to tie the beam to the timing built which is connected to the stepper motor

Step 3: Removing the Zone Beneath the Print Head

Picture of Removing the Zone Beneath the Print Head

Using the tools cut the plastic and remove the zone beneath the print head

Step 4: Making the Arduino Shield

Picture of Making the Arduino Shield

The shield board functions :

- Receiving values from printer motor encoder (direct wires to the arduino uno pins (2,3))

- Over riding IR printer sensors , the IR sensor which is responsible to detect the paper (in,out)

- Controlling the stepper motor (for multiline printing but it is not applicable, so you can ignore this part)

Step 5: Reading Values From Printer Motor Encoder

Picture of Reading Values From Printer Motor Encoder

- The goal of this step is to find the motor encoder values pattern that match the paper movement,

I did a lot of experiments to find out the encoder speed values with taking into account time delays.

- Solder two long wires (50 CM min) to the motor encoder (signal pin and GND), you may need to use the oscilloscope in this step to know where is the signal pin in case you are using another printer, the two wires are liked to ardiuno pins (2,3) as before step

Step 6: Overriding IR Encoders

Picture of Overriding IR Encoders

1 - Simply add a small piece of cotton to block the signal pertinently for the "paper detection sensor"

2- Cut PCB link using a screw driver

3- Solder two long wires (min 50 CM) to be linked to the relay on the shield

Step 7: Make Cover for Print Head Sensor

Picture of Make Cover for Print Head Sensor

The goal is to protect the sensor from light confusion, the printer will act wired if you don't do this

- I bend a piece of plastic from the removed parts using lighter heat

- Then fixed it with double face and tape

Step 8: Cartridge Door Closed and Paper Front Door Sensor Removed

Picture of Cartridge Door Closed and Paper Front Door Sensor Removed

- Small rubber to control the Ink Cartridge door

- Paper front door sensor removed with removing its cable

Step 9: Replace the Normal Ink With Edible Ink

Picture of Replace the Normal Ink With Edible Ink

Easily found on Amazon or Alibaba,

Step 10: Programming

The fun part !

Ardiono Code :


honarjam1 (author)2017-11-18


have a Good time

Please send me an internal wiring diagram of the device along with the code of the program, if you wish, so that if I ask God to use your device, I will be able to use it from your device.

Many thanks

moebim (author)2017-07-25

very very nice. excuse me what did you after upload this code on arduino, I mean in which software you write text and what did you next, would you please explain a little? thank you a lot.

AliG118 (author)2017-05-23

hi . I saw and enjoyed your cafee printer project.I like your project I run for myself But on the way I run you a few questions..

1- This circuit consists of MOSFET module for stepper motors as unbipular?

baffouri (author)AliG1182017-05-24

please refer to the photos

JonathanG168 (author)2016-12-20

love it

opendtg (author)2016-07-31

Very cool. For other epson models we have flatbed diy dtg free plans:

CésarN1 (author)2016-02-06

Very good!Excelent, but I think that it ist dificult to clean 100% the head of a used printer. What to do in order to avoid old ink in your kaffe?

myearwood (author)2015-09-22

Baffouri Would you please email me? mike dot yearwood @ gmail dot com.

jagdish rathore (author)2015-07-30


good job and very interesting .idea. i inspire with your idea . and make a different task. A. DTG( DIRECT PRINT ON GARMENT ) epson L130 printer modified for printing customize t shirt printing.but have problem with printer motor size it not make for carry tshirt and other heavy garment. then i see your printer motor encoder signal very impressive i thought i can use heavy stepper motor in my DTG printer and get same motor speed with encoder signal using ardiono borad.

i hack paper sensor and convert in laser light light +ldr for detect paper/garment

soo i need programing code only for ardiono board using stepper motor/encoder signal.....somebuddy help me????????????????

and very thxful to mr.belal for share that inovative idea.. god give hime more power

plz help help for programing code my dtg printer-


baffouri (author)jagdish rathore2015-08-02

Hi jagdish ,

Happy to know that you've made it , please explance more clearly what you need "programing code only for ardiono board using stepper motor/encoder signal", I've seen your vedio and the printer is printing multiline just fine,

jagdish rathore (author)baffouri2015-08-02

respected sir

very very thank;s for replay and think about me and watch my video.. at present i using 9 volt dc bushed moter (printer original motoer) as have in your canon printer. 9v motor size is small so it not able for proffisional work it heat/warm after 5-6 t shirt print. so i want use 12/24 volt heavy stepper motor. i need ardino code for using spteer motor.

stepper motor just follow printer original speed/movment/position

as you using encodor signa for control scaner tinny stepper motorl i wana same....

4.i dont want paper sensor control with will be free. because i using laser sensor due to my working facility.

in final i need ardino code without paper sensor option..and other wiring diagram for ardino+ stepper motor if possible in easy way

and verry verry thx again.

your indian student

robbret (author)2015-04-06

Good idea

Is it possible to provide us with a schema ( wire connections to the arduino) of the Arduino shield

ibenkos (author)2014-10-18

Smart idea! I really like this project. Thanks for shearig :)

giuliano.jordao (author)2014-09-25

Baffouri, great job man.... but i think that you may recharge your prints cartdridges with Aniline or liquid edible vegetable (food dye), using the same colors. and may you can consider to reduce the print page size to card size (9cm square), or less to fit only the size of the coffee mug.

May you can use one sugestion, try to create one kind of mug plate support that can moves when the printer heads stay fixed. In that plate (platform) you can put somekind of output of liquid waste.

baffouri (author)giuliano.jordao2014-09-29

good suggestions thanks I may try some of them

mohd.anini (author)2014-09-20

Well done! Impressive..

baffouri (author)mohd.anini2014-09-22

Thanks :)

dan3008 (author)2014-09-12

Got any pic's of a printed latte? thats all I really came here to see lol.

baffouri (author)dan30082014-09-12

yes see video

baffouri (author)baffouri2014-09-12

here we go :)

dan3008 (author)baffouri2014-09-12

Thats cool, thanks. I couldnt watch the video, on my linux laptop, and its browser doesn't do flash/silverlight getting rid of most online videos (including youtube)

Might have to attack my old inkjet just to do this :)

mohd.anini (author)dan30082014-09-20

Well, you might install Google Chrome :)

baffouri (author)dan30082014-09-12

awesome , can't wait to see the results ,

mycroftxxx (author)2014-09-16

Very nicely done. Once you get a little bored with the coffee-printing aspects of this, you might want to consider adapting it into an inkjet 3-D printer. There are designs out there that are based on the Z-corp prototype. The powder is a mixture of maltodextrin and plaster and the binder is dye (food coloring), ethanol, and water (vodka, if you cannot get pure ethanol to start from).

baffouri (author)mycroftxxx2014-09-17

Thanks , this sounds cool , do have some links?

fred27 (author)2014-09-12

This looks like a cool hack, but I'd also like to see some photos of the end result. I can't see any video using the Instructables Android app.

baffouri (author)fred272014-09-14

check the reply below, this is a direct link to the video :

malison jackson (author)2014-09-14

Clearly you are a mad man!

hal-darawsheh (author)2014-09-12

It's great to see your project on the first page, keep up bro.

baffouri (author)hal-darawsheh2014-09-12

Thanks :)

tomatoskins (author)2014-09-11

Well now that is just plain cool!

About This Instructable




More by baffouri:How to turn inkjet printer to print on Coffee
Add instructable to: