Introduction: 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

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