Both sides previous revisionPrevious revisionNext revision | Previous revision |
projekte:cis:canon_mf4370dn [2016-06-15 02:07] – [Hypothesen] cracki | projekte:cis:canon_mf4370dn [2017-01-17 01:01] (current) – external edit 127.0.0.1 |
---|
* Barcode: Format ITF, Typ Text, Wert 57038164 | * Barcode: Format ITF, Typ Text, Wert 57038164 |
| |
===== Reversing ===== | ===== Pinout ===== |
| |
Pins gezaehlt von innen (links) nach aussen (rechts). | |
| |
==== bestätigt ==== | |
| |
* 1 GND = 10 GND | |
* davon abgesehen sind 1-5 und 6-12 getrennt | |
* insbesondere 5, trotz weiterer Abzweigung, scheint mit nix weiter zu interagieren | |
| |
Beleuchtung: | |
* 2 GND Rot, ~2.3V 50mA | |
* 3 GND Gruen, ~3.45V 50mA | |
* 4 GND Blau, ~3.45V 30mA | |
* 5 VCC (3.3V OK) | |
| |
Signale: | |
* 6 Clock | * 6 Clock |
* 7 Startpuls | * 7 Startpuls |
* 8 Vref | * 8 Vref |
* 11 DPI (low: 300, high: 600, default 600/pullup) | * 9 VCC (5V) |
| * 10 GND |
| * 11 DPI (low: 300, high: 600, pullup) |
* 12 Aout | * 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 ==== | ==== Messungen ==== |
| 4 | | | | <typo bg:#ffb2b2>0.00</typo> | | GND Blau | | | 4 | | | | <typo bg:#ffb2b2>0.00</typo> | | GND Blau | |
| 5 | | <typo bg:#ffb2d0>1.87</typo> | <typo bg:#b2ffcc>2.78</typo> | <typo bg:#b2fff3>2.95</typo> | <typo bg:#ffb2b2>0.00</typo> | VCC (Test: 3.35V 10mA) | | | 5 | | <typo bg:#ffb2d0>1.87</typo> | <typo bg:#b2ffcc>2.78</typo> | <typo bg:#b2fff3>2.95</typo> | <typo bg:#ffb2b2>0.00</typo> | 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: | Spannungen bei 1 mA: |
| |
^ + \ - ^ 6 ^ 7 ^ 8 ^ 9 ^ 10 ^ 11 ^ 12 ^ Beschreibung des Pins ^ | ^ + \ - ^ 6 ^ 7 ^ 8 ^ 9 ^ 10 ^ 11 ^ 12 ^ Aufgabe ^ Beschreibung ^ |
| 6 | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2deff>1.14</typo> | <typo bg:#c8b2ff>1.43</typo> | <typo bg:#b2ffc7>0.76</typo> | <typo bg:#b2ffff>1.00</typo> | <typo bg:#b2deff>1.14</typo> | <typo bg:#bdb2ff>1.38</typo> | Betrieb: floating | | | 6 | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2deff>1.14</typo> | <typo bg:#c8b2ff>1.43</typo> | <typo bg:#b2ffc7>0.76</typo> | <typo bg:#b2ffff>1.00</typo> | <typo bg:#b2deff>1.14</typo> | <typo bg:#bdb2ff>1.38</typo> | Clock | Betrieb: floating | |
| 7 | <typo bg:#b2deff>1.14</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#c8b2ff>1.43</typo> | <typo bg:#b2ffc7>0.76</typo> | <typo bg:#b2ffff>1.00</typo> | <typo bg:#b2deff>1.14</typo> | <typo bg:#bdb2ff>1.38</typo> | Betrieb: floating | | | 7 | <typo bg:#b2deff>1.14</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#c8b2ff>1.43</typo> | <typo bg:#b2ffc7>0.76</typo> | <typo bg:#b2ffff>1.00</typo> | <typo bg:#b2deff>1.14</typo> | <typo bg:#bdb2ff>1.38</typo> | Startpuls | Betrieb: floating | |
| 8 | <typo bg:#b2eeff>1.07</typo> | <typo bg:#b2eeff>1.07</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2ffb7>0.69</typo> | <typo bg:#b2fff5>0.96</typo> | <typo bg:#b2eeff>1.07</typo> | <typo bg:#b2fffa>0.98</typo> | betrieb: low, driftet langsam (Vref?) | | | 8 | <typo bg:#b2eeff>1.07</typo> | <typo bg:#b2eeff>1.07</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2ffb7>0.69</typo> | <typo bg:#b2fff5>0.96</typo> | <typo bg:#b2eeff>1.07</typo> | <typo bg:#b2fffa>0.98</typo> | Vref | betrieb: low, driftet langsam (Vref?) | |
| 9 | <typo bg:#b2ffc3>0.74</typo> | <typo bg:#b2ffc3>0.74</typo> | <typo bg:#b2eaff>1.09</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2ffb3>0.67</typo> | <typo bg:#b2ffc3>0.74</typo> | <typo bg:#b2f5ff>1.04</typo> | | | | 9 | <typo bg:#b2ffc3>0.74</typo> | <typo bg:#b2ffc3>0.74</typo> | <typo bg:#b2eaff>1.09</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2ffb3>0.67</typo> | <typo bg:#b2ffc3>0.74</typo> | <typo bg:#b2f5ff>1.04</typo> | VCC | | |
| 10 | <typo bg:#b2ffbe>0.72</typo> | <typo bg:#b2ffbe>0.72</typo> | <typo bg:#c6ffb2>0.58</typo> | <typo bg:#e8ffb2>0.43</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2ffbe>0.72</typo> | <typo bg:#ddffb2>0.48</typo> | GND, kupferne Masseflaeche, aufgeklebt | | | 10 | <typo bg:#b2ffbe>0.72</typo> | <typo bg:#b2ffbe>0.72</typo> | <typo bg:#c6ffb2>0.58</typo> | <typo bg:#e8ffb2>0.43</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#b2ffbe>0.72</typo> | <typo bg:#ddffb2>0.48</typo> | GND | kupferne Masseflaeche, aufgeklebt | |
| 11 | <typo bg:#b2dcff>1.15</typo> | <typo bg:#b2dcff>1.15</typo> | <typo bg:#cab2ff>1.44</typo> | <typo bg:#b2ffc5>0.75</typo> | <typo bg:#b2fcff>1.01</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#bfb2ff>1.39</typo> | Betrieb: high (3.3V) | | | 11 | <typo bg:#b2dcff>1.15</typo> | <typo bg:#b2dcff>1.15</typo> | <typo bg:#cab2ff>1.44</typo> | <typo bg:#b2ffc5>0.75</typo> | <typo bg:#b2fcff>1.01</typo> | <typo bg:#ffb2b2>0.00</typo> | <typo bg:#bfb2ff>1.39</typo> | DPI | Betrieb: high | |
| 12 | <typo bg:#b2ecff>1.08</typo> | <typo bg:#b2ecff>1.08</typo> | <typo bg:#b2fff5>0.96</typo> | <typo bg:#b2ffb3>0.67</typo> | <typo bg:#b2fff5>0.96</typo> | <typo bg:#b2ecff>1.08</typo> | <typo bg:#ffb2b2>0.00</typo> | Betrieb: floating low, scheint digitale Werte zu produzieren | | | 12 | <typo bg:#b2ecff>1.08</typo> | <typo bg:#b2ecff>1.08</typo> | <typo bg:#b2fff5>0.96</typo> | <typo bg:#b2ffb3>0.67</typo> | <typo bg:#b2fff5>0.96</typo> | <typo bg:#b2ecff>1.08</typo> | <typo bg:#ffb2b2>0.00</typo> | Aout | Betrieb: floating low, scheint digitale Werte zu produzieren | |
| |
| ===== Arduino Code ===== |
| |
| <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); |
| } |
| </code> |