This is an old revision of the document!


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
  • 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
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
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);
}
Navigation



You are not allowed to add pages