In the past I had a lot of bad experience with those all-in-one inkjets, when all you wanted is to scan a document. If there is any problem with the printer hardware it will refuse to scan as well. This is the case for the biggest all-in-one inkjet manufacturers (HP, Canon etc.).
Having a semi failed Canon MP210, MP600R and MP530 decided to make something that would emulate the printers hardware (quadrature encoders) and cartridges (printhead). So that the main device controller would allow to use the scanning feature.
Main tasks.
1. Emulate paper feed system. DONE
2. Emulate carriage movement system.
3. Emulate Printhead or Cartridges (depending on the printer).
Components
1×
Arduino UNO
2×
100nF capacitor
For RC filters
4×
39k Ohm resistors
For motor control signal voltage dividers
14×
10k Ohm resistors
For 5V to ~3V voltage dividers
2×
1N4007 diodes
For DC motor kickback protection (NEEDED ONLY FOR TESTING)
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.
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.
Hi there! I am also interested to work with you all. Can you please have some time to share to work toward the project.