Arduino based all-in-one inkjet emulator for those that want just to use the scanner when the printer part failed
After some probing around the flex cables going to the cartridge carriage it was clear which of the pins are for the optical sensor.
Pins 15+16 on the bottom flex (look at the photo of the main board) are the optical sensor pins.
Output is the quadrature signal with the frequency of ~750Hz.
The end of the encoder strip seems to be sensed as the end of one the quadrature signals, with the next one ending ~10 cycles later.
Since I do this project on free time it is important that I could put it away without taking a lot of space. So decided to make the control panel smaller. And it should help out for people that has these printers with failed control panels (have seen a few of those).
Functions needed on a new panel:
1. Power-on button
2. Power LED (indicates possible errors)
3. Error LED (indicates possible errors)
The schematic is fairly straightforward. I used the components from the original control panel and put them on a small peace of veriboard.
Pin 1 - GND
Pin 2 - Power-On button
Pin 4 - Power LED
Pin 5 - Error LED
Pin 7 - Panel Sense? (does not work without this one).
Power-ON button connects ground to the main controller via 220 Ohm resistor. And Pin 7 should be connected to GND via 1K Ohm resistor. LEDs are controller via positive voltage. Pin 1 is the top one of the ribbon at the main controller board (other way around than the silkscreen on the PCB (noticed that too late)).
After some soldering and hot glue, it does work like treat.
Just a reminder that this is for Canon MP210, but the panel are pretty much the same on all cheap MP series printers of the same generation.
How it looks right now:
The first goal was to emulate the paper feed system.
The principle of it is fairly simple. It uses closed loop control. Main controller controls the motor driver and reads the data from quadrature encoder. This way the speed, direction and duration is controlled.
Apart from this, there are a few sensors for paper position, but all of those does not affect the startup of the device in any way and can be disconnected. In MP210 case what is needed is just to cut the ribbon cable that goes to those paper position sensors. Location of all the connection on the main control board is marked in the photo (in the main gallery of the project).
To emulate the quadrature encoder signal, Arduino UNO was used (mostly for availability). Since the printer uses DC motors, for speed control PWM signals are used. Measuring DC equivalent voltage going to the motor one can see that it has 3 levels: Fast Forward, Slow Backward, Fast Backward. To measure this with Arduino a voltage divider with a RC filter was used, since the drive voltage of the motor is ~30V.
Based on the direction and speed of the motor quadrature signal is generated and fed into the main printer controller. For this another voltage divider was used, since the quadrature encoder had ~3V voltage levels. The frequencies of the quadrature signals are as follows:
Fast Forward or Backwards ~3 kHz
Slow Backwards ~250 Hz
By the use of some really crude code the printer now starts up without the paper feed motor and related hardware.
Schematics for the circuit is very basic and shown in the picture. Paper feed quadrature encoder has a 4 wire ribon cable going to it. Two middle ones are signal wires, while the outside ones are 3V and ground. 3V wire is marked with a red stripe. In the uploaded code, pin 3 connects to the wire closer to the 3V wire. While pin 2 of the Arduino the other middle wire.