Dell MFP 1600n

Got this one from the owner with the hint „device is working, only toner is missing and there is no windows driver anymore“. It stood in a cellar for some years.

The 1600n is an ADF (multipage) scanner, a copier, a printer and a FAX device. It understands Postscript and PCL. It has a 100MBit/s LAN connector. Internally it has a166MHz (ARM-based) CPU and 32MB built in RAM. Firmware can be uploaded via USB and LAN. So it is an interesting device built 2005.

This printer is sold by Dell but designed and produced by Samsung. Samsung sells this printer with another name SCX-4920N.

Just from looking at it, the device looks good. So I take it with me and powered it on. No reaction.

My first idea was that this is due to a power supply fault, mostly caused by faulty power caps.  After I’ve got the service manual from Internet I was able to remove the power supply board from the bottom of the printer. The service manual says that the board must be reached from the top by removing nearly everything, but it is possible without any problem to remove the board from the bottom. Just about ten screws and some connectors.

All the device parts smelt of magic smoke.

The first problem was instantly visible. A big cap (1500uF 10V) was faulty. I replaced the cap. Examining the board shows seven 3K3 resistors in parallel which went very hot in the past, but measured ok.

One additional resistor at another place on the board (see images) also went hot but was also still ok. I supposed that this was just a follow up problem of the faulty cap and powered the device on.

The faulty cap (brown and ugly) and the resistors


R124 went also hot in the past, but looks still ok.


That was the remaining capacity from the 1500uF cap

And: tada, it booted up, made some good motor sounds and displayed that there was no toner and no paper. Good so far.

After first boot: Firmware versions

Next I hooked the device to my LAN. No connectivity. When I opened the device, I saw that the network card came out of its internal connector, maybe by brute force from the outside. I plugged it back into the connector and: LAN was working.

Checking the internal web server of the printer I saw that it had printed only ~29000 pages which is not much for a laser printer.

Controller board with network board on top (left)


So I decided to check the device further and ordered a toner cartridge. I found out that the printer part of the device is well working and fast. The scanner and copier were untested but I noticed before that the lamp never shined. Hm.

And when moving the Dell around, I heard some part tumbling inside. I found that it was a small but heavy inductance jumping around in the scanner case ;-(

So I removed the scanner part and opened it.

Cable flow for the ADF


Cable flow for display/control pad

I found that the CCFL inverter was mostly destroyed by heat coming from too much current. The PCB went very hot, the solder melt and the heavy inductivity fell out. The heat even more increased and the PCB became ash in parts.

Destroyed CCFL inverter. The transformer is still ok, but the other parts look bad. This cannot be repaired but must be replaced. It is an inverter for two lamps.



Solder side of CCFL inverter

Transistors are 2 x 2SD1857


Here the inductivity can be seen

And I found even more a problem. A small inductivity on the CCD PCB also went hot in the past. It measured ok and was not replaced.

The small inductivity with heavy signs of too much current…

The complete CCD/inverter/scanner unit. It seems to have part number 1000128-0005 and is maybe also used in Xerox C20/M20 laser MFPs and others (have not tested this)

The CCFL inverter is totally destroyed. Original is a COTEK 68200066-C000C4. Could not find that anywhere.So I decided to replace it with another CCFL inverter. I ordered several inverters (Pollin has them cheaply). Of course these replacements will not fit as they arrive in the scanner unit. But my idea was to find an inverter that works electronically well with the Dell 1600n and then etching a new PCB that fits exactly, reusing the parts from the new inverter.

Power supply to the CCFL inverter is 27.5V DC (usually inverters are made for 12V or 24V, so this is maybe wrong?). I checked the transformer which is ok and seems to work best at 114Khz.

Inverters arrived some days later. I used another COTEK inverter with 24V AC input. Reworking the PCB was not required. I had to clean all mirrors inside the CCD unit because they were blinded by the magic smoke that came from the PCB and its parts when it burned. After that I could make copies and scans. But there were new issues:

  • The burning PCB had melted the plastics of the CCD unit. During  a scan, the deformed unit collided with the cover and so the scan was not complete.
  • The copy function produced grey to black vertical lines for unknown reason. The mechanical problem that arises during scanning was not a problem here, because the CCD unit does move only a small part during copying without colliding with the cover.

Hm, the scanner/CCD unit is giving multiple problems…

This scanner/CCD part is named „ELA HOU-CCD MODULE“ numbered JC96-02759A. This unit is also used in the Samsung product SCX-4920 and other printers. So it is not hard to replace it as a complete part.

… to be continued

FAG Kugelfischer SV500

Hier ein paar Fotos von einem Geigerzähler SV500 der Firma FAG Kugelfischer. Diese Geräte wurden über viele Jahre in großer Zahl durch die Bundeswehr genutzt.

Das Gerät hat exzellente mechanische Qualität und ist insgesamt ohne Rücksicht auf die Kosten entworfen und gefertigt.

Für das SV500 gibt es unterschiedliche Zählrohre, die je nach Strahlungsart gewechselt werden können. Neben dem internen Zählrohr, das ebenfalls einfach getauscht werden kann, kann ein externes Zählrohr angeschlossen werden.  Dieses kann dann in die Nähe der zu untersuchenden Gegenstände gebracht werden.

Sowohl Nutzerhandbuch als auch „Service-Guide“ des SV500 sind im Internet verfügbar.

Das Gerät verwendet für die beiden hohen Bereiche (1000 rad/h und 50 rad/h) ein anderes Zählrohr. D.h. in dem Zählrohrbehälter sind zwei Zählrohre eingebaut, eines für starke Strahlung und eines für schwächere Strahlung.

Das Gerät zeigt mit dem Messinstrument eigentlich eine Impulsrate an. Die Impulsrate ist über die Zählrohreingenschaften in einen Strahlungsmeßwert umrechenbar. Ich habe durch Ausprobieren ermittelt, daß 1000 rad/h einer Zählrate von rund 130000 Impulsen/s entspricht, 1 mrad/h entspricht rund 8,69 Impulsen/s. Der Hersteller hat aus den ihm vorliegenden Informationen die Skala abgeleitet und das Gerät geeicht. Wenn ein anderes Zählrohr verwendet wird, stimmen die Werte auf der Skala natürlich nicht mehr. Hier muss man sich einen Korrekturfaktor selbst bestimmen.

Im folgenden einige Bilder des Geräts.

Batterie und Sondenbuchse.


Anzeige: Auszustand



Anzeige 0..5 rad/h

Anzeige 0..500 mrad/s


Anzeige: 0..50 mrad/h, kombiniert mit 0..2000 imp/min

Anzeige: 0..5 mrad/h, kombiniert mit 0..2000 imp/min

Im folgenden einige Bilder vom Innern des Geräts.

Die Walze hinter dem Messinstrument


Sicht auf Bereichsschalter (links unten)


Hauptplatine, beidseitig




Sondenbuchse Anschlüsse


Drei der 5 Ebenen des Bereichsschalters


Trimmer zum Kalibrieren des Gerätes (für 5, 50 und 1000 R/h)




Hauptplatine Bestückung


Warnsignal-Platine unter der Hauptplatine






Abgenommene Gehäuseunterschale


Gehäuseunterschale von außen. Sichtbar die Einschübe für internes Zählrohr und Batteriehalter.


Gehäuse von unten.


Oben Batteriefach, unten Sondenfach ohne Sonde.


Das Sondenkabel hat einen sehr ungewöhnlichen Stecker. Diesen habe ich entfernt und durch einen Standard-DIN-Stecker aus Vollmetall ersetzt. Für das Kabel gilt folgende Farbbelegung:

Kabelfarbe Bedeutung
Gelb Hochspannung 530 Volt
Braun Masse
Weiß Vcc (3V)
Grau Signal Sonde 1 (Niedrigenergetisch bis 5rad/h)
Grün Signal Sonde 2 (Hochenergetisch) (ab 50 rad/h)


Meine DIN-Stecker/Buchsenbelegung. Aufsicht auf Kontaktseite.

Das einzuspeisende Signal wird vom SV500 über einen Kondensator eingekoppelt, der Signaloffset spielt daher keine Rolle. Ich habe als Testsignal ein Rechtecksignal genommen. Dies wird vom Zähler ab ca. 84mV Vpp erkannt. Die folgenden Tests wurden mit 250mV Vpp Rechteck durchgeführt.

Ich habe für alle Bereiche die für die jeweiligen Strahlungswerte erforderliche Frequenz ermittelt. Ermittlung durch Ablesen der Skala und einstellen der Frequenz mit einem Funktionsgenerator. Die Werte sind also nur ungefähr.

Skala 1000 rad/h

Signal an Kabel ‚Grün‘

rad/h Frequenz am Geräteeingang [Hz]
1000 130.000
700 114.000
500 100.000
200 65.720
100 42700
70 33.610
50 26.540
40 22.500
30 17.700

Skala 50 rad/h

Signal an ‚Grün‘

rad/h Frequenz am Geräteeingang [Hz]
50 19.690
40 16.740
30 13.710
20 10.830
10 5.890
5 3.210
3 1.920

Skala 5 rad/h

Signal an Kabel ‚Grau‘

rad/h Frequenz am Geräteeingang [Hz]
5 14.360
2 9.090
1 5.850

Skala 500 mrad/h

Signal an ‚Grau‘

mrad/h Frequenz am Geräteeingang [Hz]
500 3.530
400 2.904
300 2.230
200 1.560
100 783

Skala 50 mrad/h

Signal an ‚Grau‘

mrad/h Frequenz am Geräteeingang [Hz]
50 373
30 237
20 170
10 87
5 49

Skala 5 mrad/h

Signal an ‚Grau‘

mrad/h Frequenz am Geräteeingang [Hz] Rechnerischer Wert aus imp/min berechnet
5 38
4 31
3 23,7 21,6
2 16,7 15
1 8,69 7,3
0,5 4,88

Der Hersteller hat für die 5mrad/h und die 50 mrad/h Skala zusätzlich die Impulse/min mitangegeben. Daraus kann man die notwendige Frequenz auch berechnen. Am Beispiel der 5mrad/h Skala habe ich einige der Werte mit den berechneten verglichen.

Verwendung alternativer Zählrohre am SV500

Die fabrikseitig verfügbaren Zählrohre sind für Gammastrahlung und Gamma/Beta-Strahlung geeignet.

Mit technischem Geschick lässt sich praktisch jedes übliche Zählrohr mit dem SV500 verwenden. Besonders interessant sind dabei hochempfindliche Sonden, die auch Alpha-Strahlen nachweisen können.

„Pancake-Sonden“ sind solche hochempfindlichen Sonden. Sie haben diesen Namen, weil sie nicht in Form eines schmalen Rohres, sondern als flache Scheibe (Pfannkuchen) gebaut werden. Dadurch ist die empfindliche Fläche ein Vielfaches größer als bei einem einfachen Zählrohr.
Das alleine würde aber nicht ausreichen, um Alpha-Strahlen nachzuweisen. Diese werden nämlich bereits durch das normale Glas bzw. Metall des Zählrohrkörpers blockiert. Das Fenster der Pancake-Sonde  besteht daher aus einem speziellen Material (Glimmer) und ist extrem dünn (rund zehn Mikrometer, also 0,01 mm).

Ich habe mir das SV500 ohne Sonde gekauft und dazu eine Pancake-Sonde SI-8B in der Ukraine bestellt. Dort gibt es noch unbenutzte Sonden aus den 80ern und 90ern aus Sowjetproduktion.

SI-8B, mit Blitz fotografiert. Sechs Drahtringe sind zu einer gemeinsamen Anode zusammengeschlossen.


Ohne Blitz fotografiert, sieht man interessante Farbeffekte, die die hauchdünne Glimmer-Oberfläche produziert



Unterseite der Sonde.

SI-8B Anschlussbelegung

Zwischen SV500 Sondenanschluss und dem Zählrohr braucht man eine kleine Adapterschaltung. Diese hat 2 Aufgaben:

  • Aufbereitung der korrekten Hochspannung aus dem 530V-Ausgang des SV500
  • Aufbereitung des Ausgangssignals der Sonde, so dass es vom SV500 genutzt werden kann.

Beispielhaft finden sich solche Adapterschaltungen schon im Service Handbuch des SV500. Eine alternative schöne Schaltung habe ich hier gefunden und nachgebaut.

BILD: Schaltung von

Dazu habe ich ein Platinenlayout im Format 57x42mm entworfen.

Platinenlayout Ätzvorlage. Platinenmaße 57x42mm.
Achtung: A und K des Zählrohrs sind im Aufdruck leider falsch, nämlich vertauscht!!!

Platinenlayout Bestückung


Die Adapterplatine. Sie ist deutlich kleiner als die Sonde und passt unterhalb der Sonde in das Sondengehäuse.

Die mechanisch empfindliche Sonde wird in ein handliches Gehäuse eingebaut. Dieses nimmt im dickeren Teil die Sonde und die Elektronik auf. Das dünnere Teil dient als Handgriff, an dessen Ende befindet sich die erwähnte Vollmetall DIN Buchse für das Verbindungskabel zum SV500.

Rohversion des Sondengehäuses. Die Sonde wird hier zum Testen mit einer Kunststoffscheibe abgedeckt. Später soll dieses durch ein grobes Metallgitter ersetzt werden.



to be continued



Wacom Tablet UD-1212-R mit Linux (OpenSuse 13.1)

Durch einen Zufall kam ich an ein altes Wacom Tablet, Typenbezeichnung UD-1212-R. Dieses Tablet hat eine Zeichenfläche von 12×12 Zoll.  Es ist auch als „Digitizer II“ bekannt.

Das Funktionsprinzip beruht auf der Analyse elektrischer Felder. Ein solches Feld wird an der Tabletoberfläche erzeugt. Ein spezieller Stift, in dem ein Schaltkreis eingebaut ist, „stört“  das erzeugte Feld. Die Lokation der Störung wird vom Tablet sehr genau festgestellt. Der Schaltkreis im Stift kommt ohne Batterien aus, er bezieht seine Energie aus dem elektrischen Feld über dem Tablet.

Das UD-1212-R ist uralte Hardware, die Datecodes auf der Controllerplatine weisen bei meinem Exemplar auf das Baujahr 1994 hin.

Das Tablet kam ohne Stift und Kabel zu mir.

Das Tablet sollte also 20 Jahre nach seiner Herstellung wieder angeschlossen werden…

Anschluss der Hardware

Stift: Den Stift (PL900 bzw. UD817e) kann man heute noch bei Wacom kaufen.

Kabel und elektrischer Anschluss: Das Tablet hat einen seriellen Anschluss. Entweder man schließt es an einen PC mit seriellen Anschluss an oder man nimmt ein Adapter-Kabel Seriell<->USB. Ich habe noch serielle Anschlüsse, daher habe ich das Tablet direkt via RS232 angeschlossen.

Das Kabel ist speziell. Es führt sowohl die RS232 Steuersignale als auch die Betriebsspannung (9-12V DC). Ich habe mir das Kabel wie folgt selbst gelötet, Informationen zum Kabel kann man sich aus diversen Foren im Internet zusammensuchen.

DB9 Konnektor (9 Pins). N.C. heißt „Not Connected“.

Pin Tablet
„Digitizer II“
Pin PC Kommentar
1 N.C. 1 N.C.
2 TxD 2 RxD
3 RxD 3 TxD
8 + VCC 9-12V 100mA

An Pin 7/8 ist also die Versorgungsspannung anzuschließen. Ab 6,5 V leuchtet bei mir die Betriebs-LED des Tablets.

Softwaremäßige Einbindung in Linux

Im Internet gibt es viel Information zu diesem Thema, allerdings wenig klärendes. Ich habe mir in zwei Tagen alle Informationen zusammengesucht.

Theorie of Operation
Das meiste hierzu war mir neu und stellt sicher nur einen winzigen Ausschnitt aller Möglichkeiten dar. Eventuell ist was ich schreibe auch nicht ganz richtig.

Ein heute nicht mehr (?) verfolgter Ansatz war es, Geräte innerhalb des X Servers anzubinden, indem der X Server eigene Treiber für diese Geräte enthielt.

Heute verwendet der X Server  Eingabegeräte, die im /dev/input/-Baum eingehängt sind. Vermutlich gibt es dort eine einheitliche Schnittstelle für alle Eingabegeräte, was den X Server von Besonderheiten deutlich entlasten würde.

Das Einhängen von Geräten in den /dev/input-Baum erfolgt entweder über udev, das zum Gerät passende Kernel-Module nachlädt oder „manuell“.

Man braucht also zum Anbinden eines Geräts zwei Dinge:

  • Ein Kernel-Modul, welches das Gerät unterstützt
  • Einen Mechanismus, der das Kernel-Modul bei Bedarf einbindet

Kernel-Modul: Von Wacom gab und gibt es zahlreiche Tablets, die neueren alle mit USB Anschluss. In meinem OpenSuse 13.1 ist standardmäßig schon ein Kernel Modul enthalten, allerdings unterstützt dieses nur neuere (USB-?)Geräte. Das vorhandene Modul wacom_w8001 nutzt also nichts.

Ein Kernel Modul für ältere, seriell angeschlossene Tablets gibt es hier:

Das dortige tar-File, welches die Sourcen des Treibers enthält, lässt sich ganz einfach mittels gcc übersetzen.

Einbindung des Kernel-Moduls mit inputattach: inputattach ist ein Programm, dass das passende Kernel-Modul an eine physikalische Schnittstelle anbindet und die Schnittstelle des Geräts in den /dev/input-Baum einbindet.

Mein Gerät hängt an /dev/ttyS0. Der Aufruf für inputattach it daher:

./inputattach –wacom_iv /dev/ttyS0 &

„wacom_iv“ ist hierbei der Gerätetyp. Diesen nimmt  inputattach her, um  eine  Informationsstruktur  für das angehängte Gerät  anzulegen, die  von udev (?) benutzt wird, um das passende Kernel-Modul zu laden.

inputattach ist Teil des „linuxconsole“ Projekts. Dieses muss heruntergeladen und von Source installiert werden. Dabei entsteht inputattach im Unterverzeichnis „utils“.
Allerdings muss hier vorher noch etwas getan werden. Der Support für die älteren Tablets (einige wenige Zeilen Code) fehlt in inputattach.c. Es gibt zwar zwei patch-Dateien (eine für inputattach.c und eine für serio-ids.h) die sind aber nicht ganz korrekt. Ich habe daher per Hand folgendes gemacht:

inputattach.c: In der Struktur input_types input_types folgende Zeilen eingefügt:
{ „–wacom_iv“,         „-wacom_iv“,    „Wacom protocol 4 tablet“,
B9600, CS8,
SERIO_WACOM_IV,         0x00,   0x00,   0,      NULL },

serio-ids.h: folgende Zeilen eingefügt:
# define SERIO_WACOM_IV         0x3f

Es muss darauf geachtet werden, dass der Wert für SERIO_WACOM_IV eindeutig ist.  Am besten den höchsten Wert+1 aus der serio-ids.h nehmen. Auch gegen /usr/include/linux/serio.h checken, auch dort darf keine Überdeckung vorliegen (Hinweis: der Original-Patch definiert für SERIO_WACOM_IV 0x3d. Dies kollidiert aber mit dem Define SERIO_TSC40 in /usr/include/linux/serio.h. Daher wird bei sturer Übernahm des Patchs der falsche Treiber (nämlich für TSC40 Tablets) geladen. In dmesg steht das falsche Tablet drin, und funktionieren tut gar nichts).

Wenn man nun ein passendes inputattach und ein Kernel-Modul hat, kann man sehen ob die Anbindung klappt:

% insmod ./wacom_serial.ko

% ./inputattach –wacom_iv /dev/ttyS0 &

Mit dmesg sieht man wenn alles gut geht in etwa so was:

[ 3161.508413] serio: Serial port ttyS0
[ 3161.540516] input (null): Wacom tablet: Digitizer II, version 1.2

[ 3161.540520] input (null): Max pressure: 127.
[ 3161.578164] input (null): Configuration string: ~RE203C800,000,00,1270,1270
[ 3161.600884] input: Wacom protocol 4 serial tablet as /devices/pnp0/00:0a/tty/ttyS0/serio8/input/input17

xsetwacom listet dann das Gerät auch aus:
% xsetwacom –list devices
Wacom protocol 4 serial tablet          id: 12  type: STYLUS

Die Einbindung in den /dev/input-Baum sieht man auch hier:
% cat /proc/bus/input/devices
I: Bus=0013 Vendor=003f Product=0000 Version=5544
N: Name=“Wacom protocol 4 serial tablet“
P: Phys=ttyS0/serio0/input0
S: Sysfs=/devices/pnp0/00:0a/tty/ttyS0/serio9/input/input17
U: Uniq=
H: Handlers=mouse1 event14
B: EV=b
B: KEY=c43 0 0 0 0 0
B: ABS=1000003

Schließlich kennt nun auch X sebst das Gerät:
% xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=10   [slave  pointer  (2)]
⎜   ↳ Wacom protocol 4 serial tablet            id=12   [slave  pointer  (2)]

⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Power Button                              id=6    [slave  keyboard (3)]
↳ Power Button                              id=7    [slave  keyboard (3)]
↳ Logitech USB Keyboard                     id=8    [slave  keyboard (3)]
↳ Logitech USB Keyboard                     id=9    [slave  keyboard (3)]
↳ Eee PC WMI hotkeys                        id=11   [slave  keyboard (3)]

Wenn man soweit ist, muss man nur noch dem X Server sagen, dass er das Gerät auch verwenden soll. In /etc/X11/xorg.conf.d/ muss eine passende Datei abgelegt werden. Bei OpenSuse ist eine solche Datei (50-wacom.conf) schon da und muss nur noch angepasst werden:
Section „InputClass“
Identifier „Wacom serial class“
MatchProduct „Wacom protocol 4 serial tablet“
MatchDevicePath „/dev/input/event*“
Driver „wacom“
Option „Type“ „stylus“
Option „DebugLevel“ „12“

andere, nicht benötigte Klassen kann man löschen. Wichtig ist, dass der Wert des Attributs MatchProduct übereinstimmt mit dem, was xinput list als Namen ausgibt. Über diesen Text matcht X das Gerät zu dieser InputClass.
Nach einem Neustart des Servers kann man nun den Cursor mit der Maus (wie vorher) und zusätzlich mit dem Tabletstift bewegen.

Ich habe auch folgende Datei nach /etc/udev/rules.d gespielt, weiss nicht ich mn die braucht:
cat /etc/udev/rules.d/70-serial-wacom.rules
ACTION==“add|change“, SUBSYSTEM==“pnp“, ENV{PRODUCT}==’13/3f/*‘, ENV{NAME}==“Wacom protocol IV serial tablet“,SYMLINK+=“input/wacom“,ENV{ID_INPUT}=“1″,ENV{ID_INPUT_TABLET}=“1″

Aspect Ratio einstellen
Mein Tablet hat ein Aspect Ratio von 1:1 (15240 x 15240 Pixel).
Meine beiden Bildschirme sind unter X mit 3200×1200 Pixeln verfügbar.
Wenn man nun einen sauberen Kreis auf dem Tablet zeichnet, kommt eine platte Ellipse auf dem Bildschirm heraus. Man muss das Seitenverhältnis passend umrechnen. X erlaubt dies auf unterschiedliche Weise.

Erst Infos sammeln:

dennis@dennis-pc:~> xsetwacom get „Wacom protocol 4 serial tablet“ all
Option „Area“ „0 0 15240 15240“
‚Button‘ requires exactly 1 value(s).
Option „ToolDebugLevel“ „12“
Option „TabletDebugLevel“ „0“
Option „Suppress“ „2“
Option „RawSample“ „4“
Option „PressureCurve“ „0 0 100 100“
Option „Mode“ „Absolute“
Option „TabletPCButton“ „off“
Option „Touch“ „off“
Option „Gesture“ „off“
Option „ZoomDistance“ „0“
Option „ScrollDistance“ „0“
Option „TapTime“ „250“
Property ‚Wacom Proximity Threshold‘ does not exist on device.
Option „Rotate“ „none“
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Wheel Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Property ‚Wacom Strip Buttons‘ does not exist on device.
Option „Threshold“ „27“
Option „ToolType“ „426“
Option „ToolSerial“ „1“
Option „ToolID“ „0“
Option „ToolSerialPrevious“ „0“
Option „BindToSerial“ „0“
Option „TabletID“ „0“

xinput  listet eine „Coordinate Transformation Matrix“ aus.Genau daas was ich suche 🙂

dennis@dennis-pc:~> xinput list-props „Wacom protocol 4 serial tablet“
Device ‚Wacom protocol 4 serial tablet‘:
Device Enabled (141):   1
Coordinate Transformation Matrix (143): 0.400000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

Device Accel Profile (266):     0
Device Accel Constant Deceleration (267):       1.000000
Device Accel Adaptive Deceleration (268):       1.000000
Device Accel Velocity Scaling (269):    10.000000
Device Node (262):      „/dev/input/event14“
Wacom Tablet Area (600):        0, 0, 15240, 15240
Wacom Rotation (601):   0
Wacom Pressurecurve (602):      0, 0, 100, 100
Wacom Serial IDs (603): 0, 0, 2, 1, 0
Wacom Serial ID binding (604):  0
Wacom Pressure Threshold (605): 27
Wacom Sample and Suppress (606):        2, 4
Wacom Enable Touch (607):       0
Wacom Hover Click (608):        1
Wacom Enable Touch Gesture (609):       0
Wacom Touch Gesture Parameters (610):   0, 0, 250
Wacom Tool Type (611):  „STYLUS“ (426)
Wacom Button Actions (612):     „Wacom button action 0“ (613), „Wacom button action 1“ (614), „Wacom button action 2“ (615), „None“ (0), „None“ (0), „None“ (0), „None“ (0), „Wacom button action 3“ (616), „Wacom button action 4“ (617)
Wacom button action 0 (613):    1572865
Wacom button action 1 (614):    1572866
Wacom button action 2 (615):    1572867
Wacom button action 3 (616):    1572872
Wacom button action 4 (617):    1572873
Device Product ID (261):        63, 0
Wacom Debug Levels (618):       12, 0

Infos zum Screen:

dennis@dennis-pc:~>  xrandr
Screen 0: minimum 8 x 8, current 3200 x 1200, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 connected 1600×1200+1600+0 (normal left inverted right x axis y axis) 408mm x 306mm
1600×1200      60.0*+
1280×1024      75.0     60.0
1280×960       60.0
1152×864       75.0
1024×768       75.0     70.1     60.0
800×600        75.0     72.2     60.3     56.2
640×480        75.0     72.8     59.9
DVI-I-1 connected primary 1600×1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
1600×1200      60.0*+
1280×1024      70.0     60.0
1024×768       85.0     75.0     60.0
800×600        85.1     75.0     60.3
640×480        85.0     75.0     60.0     59.9

Setzen einer Matrix, die den Tabletbereich auf  den Monitor-bereich 1200×1200 am linken Bildschirm setzt:

xinput set-prop „Wacom protocol 4 serial tablet“ –type=float „Coordinate Transformation Matrix“ 0.375 0 0 0 1 0 0 0 1

Erklärung: 1 0 0 0 1 0 0 0 1 ist die Matrix
001 . Dies ist die Identitätsmatrix. Damit wird der Tablet-Bereich auf den Gesamtbildschirm umgerechnet. Dies bringt eine starke Zerrung in horizontaler Richtung mit sich.

Ich möchte keinerlei Verzerrung beim Zeichnen. Dann darf der Tablet-Bereich nur auf einen Bereich gemappt werden, dessen Aspect Ratio auch 1:1 ist. Die maximale Ausdehung in Y-Richtung ist bedingt durch die Monitore 1200. Ich kann also einen Bereich 1200×1200 innerhalb meiner 3200×1200 definieren, in den das Tablet verzerrungsfrei gemappt wird. Der Skalierfaktor in X-Richtung ist 1200/3200 = 0.375.
Somit ergibt sich „meine“ Matrix zu:
0.375 0 0
0        1 0
0        0 1 .

und xinput wird so aufgerufen:
xinput set-prop „Wacom protocol 4 serial tablet“ –type=float „Coordinate Transformation Matrix“ 0.375 0 0 0 1 0 0 0 1

Wenn man wieder das volle Mapping haben will (mit Verzerrung):
xinput set-prop „Wacom protocol 4 serial tablet“ –type=float „Coordinate Transformation Matrix“ 1 0 0 0 1 0 0 0 1

Details und Diskussion siehe hier:

Nutzung mit Gimp

In Gimp kann man via Einstellungen weitere Eingabegeräte aktivieren. Als ich das für mein Tablet gemacht habe, konnte ich sofort zeichnen, auch mit unterschiedlicher Aufdruckstärke. Die Bedienung ist aber erstmal gewöhnungsbedürftig und vermutlich müssen zusätzliche InputClass-Optionen eingestellt werden, ich habe z.B-. zwei Bildschirme mit zusammen 3200×1200 Pixeln und ich kam mit dem Tablet zwar auf beide Bildschirme, aber nicht ganz bis in die rechte Ecke. Außerdem behinderten sich beide vorhandenen Cursoren gegenseitig, z.B. bei angedockten Dialogen.

Hier mein allererstes Bild, ca, 5 Minuten nachdem das Tablet erstmal lief hingezaubert :-)))

(Etwas infantil, ich gebs zu. Dem gingen allerdings drei Stunden Kernel-Modul Basteleien voran…)

Das Innenleben des Tablets

Chips on Board: W3007F, W5000F, W6001F

Riesige Abschirmung


Der Controller


Chips on Board: W3007F, W5000F, W6001F. Oben das EPROM 27C512 mit der Firmware. Neuester Datecode 29. Woche 1994.