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

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: 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

- 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

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

Step 4: 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

- 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

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

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

- 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

Easily found on Amazon or Alibaba,

Step 10: Programming

The fun part !

Ardiono Code :

Microcontroller Contest

Participated in the
Microcontroller Contest

Tech Contest

Participated in the
Tech Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    35 Discussions


    Question 1 year ago

    Hi I need some more guidance for creating this project? Do you have more photos ont he quality of the pictures on coffee? Please send me an internal wiring diagram of the device along with the code of the program at


    1 year ago


    can i replace canon ip7250 with canon ip3600 for this project?and too

    Please send me an internal wiring diagram of the device along with the code of the program, Many thanks


    1 year ago


    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


    2 years ago

    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.


    2 years ago

    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?

    1 reply

    3 years ago

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


    3 years ago

    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?


    4 years ago

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


    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-


    2 replies

    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,

    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


    4 years ago on Introduction

    Good idea

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


    4 years ago

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

    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.

    1 reply