This is an old revision of the document!
Table of Contents
Canon MF4370dn
Canon MF4370dn | |
---|---|
Kontakt | cracki |
Ein Multifunktionsdrucker, der in der Karmanstr. 7 zur Entsorgung gelassen wurde. Wurde zerlegt und sortiert.
- Glasplatte neben dem E-Lab rechts
- Contact Image Sensor bei Cracki
- Motoren
- keine Encoder gefunden (war n Laserdrucker)
- haufenweise Lichtschranken
- FFC Flachbandkabel und Sockel (1.0mm)
- Platinen, u.a. eine mit Duzenden von Tastern
Beschriftungen
- 01 70315
- FK2-9569-000
- das ist die Typbezeichnung für den CIS
- 01 57038164 F
- Barcode: Format ITF, Typ Text, Wert 57038164
Pinout
- 6 Clock
- 7 Startpuls
- 8 Vref
- 9 VCC (5V)
- 10 GND
- 11 DPI (low: 300, high: 600, pullup)
- 12 Aout
- 2-4 V Ausgang, geht nie runter auf 0
- regelmäßige blinde Flecke, ca 0.5mm breit jeweils
- doppelt so viele blinde Flecke, wenn Spannung an DPI > VCC
Reversing
Pins gezaehlt von innen (links) nach aussen (rechts).
Bis auf GND sind 1-5 und 6-12 getrennt. Insbesondere 5, trotz weiterer Abzweigung, scheint mit nix weiter zu interagieren.
Messungen
Spannungen bei 10 mA und 3.4V:
+ \ - | 1 | 2 | 3 | 4 | 5 | Beschreibung des Pins |
---|---|---|---|---|---|---|
1 | 0.00 | GND | ||||
2 | 0.00 | GND Rot | ||||
3 | 0.00 | GND Grün | ||||
4 | 0.00 | GND Blau | ||||
5 | 1.87 | 2.78 | 2.95 | 0.00 | VCC (Test: 3.35V 10mA) |
auch:
- 2 GND Rot, ~2.3V 50mA
- 3 GND Gruen, ~3.45V 50mA
- 4 GND Blau, ~3.45V 30mA
bei ~4.5V Versorgung in die LEDs folgende Widerstände nach Erde:
- Rot: 220
- Grün: 50
- Blau: 100
Spannungen bei 1 mA:
+ \ - | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Aufgabe | Beschreibung |
---|---|---|---|---|---|---|---|---|---|
6 | 0.00 | 1.14 | 1.43 | 0.76 | 1.00 | 1.14 | 1.38 | Clock | Betrieb: floating |
7 | 1.14 | 0.00 | 1.43 | 0.76 | 1.00 | 1.14 | 1.38 | Startpuls | Betrieb: floating |
8 | 1.07 | 1.07 | 0.00 | 0.69 | 0.96 | 1.07 | 0.98 | Vref | betrieb: low, driftet langsam (Vref?) |
9 | 0.74 | 0.74 | 1.09 | 0.00 | 0.67 | 0.74 | 1.04 | VCC (3.3V) | |
10 | 0.72 | 0.72 | 0.58 | 0.43 | 0.00 | 0.72 | 0.48 | GND | kupferne Masseflaeche, aufgeklebt |
11 | 1.15 | 1.15 | 1.44 | 0.75 | 1.01 | 0.00 | 1.39 | DPI | Betrieb: high (3.3V) |
12 | 1.08 | 1.08 | 0.96 | 0.67 | 0.96 | 1.08 | 0.00 | Aout | Betrieb: floating low, scheint digitale Werte zu produzieren |
Arduino Code
#define START 2 #define CLOCK 3 #define DPIMODE 4 #define LEDR 5 #define LEDG 6 #define LEDB 7 bool dpimode = 1; uint16_t pixels = dpimode ? 5184 : 2592; uint32_t linetime = 4000; // us uint32_t sched = 0; uint8_t lightcolor = 0; void set_lighting(uint8_t active) { digitalWrite(LEDR, !(active & 0b001)); digitalWrite(LEDG, !(active & 0b010)); digitalWrite(LEDB, !(active & 0b100)); } void setup() { pinMode(START, OUTPUT); pinMode(CLOCK, OUTPUT); pinMode(DPIMODE, OUTPUT); pinMode(LEDR, OUTPUT); pinMode(LEDG, OUTPUT); pinMode(LEDB, OUTPUT); digitalWrite(DPIMODE, dpimode); sched = micros(); } void loop() { set_lighting(0); digitalWrite(START, HIGH); digitalWrite(CLOCK, HIGH); digitalWrite(CLOCK, LOW); digitalWrite(START, LOW); set_lighting(1 << lightcolor); for (uint16_t counter = 82 + pixels; counter-- > 0; ) { PORTD |= _BV(PORTD3); PORTD &= ~_BV(PORTD3); } lightcolor = (lightcolor+1) % 3; sched += linetime; int32_t dt = sched - micros(); while (dt > 0x4000) { delayMicroseconds(0x4000); dt -= 0x4000; } if (dt > 0) delayMicroseconds(dt); }