X62 X62: Erster Eindruck (jetzt m/ Bildern)

Ah, super, danke :) Hilft mir schon viel weiter! Ich überlege, die beiden AVRs ins Basement zu stecken. RX/TX vom Digitizer müsste ja auf der Displayadapterplatine liegen. Für die Tasten + LEDs bin ich echt am überlegen, ob ich da nicht doch das I2C anzapfe. Dann bräuchte ich nur 5 Leitungen von der Adapterplatine anzuzapfen. GIbts da irgendwo eine Pinbelegung für? ;-) Notfalls müsste ich es wohl durchklingeln
 
SaxPad: Es gibt ein inoffizielles Board mit Broadwell-CPU für die x61er. Wenn man das einbaut hat man ein x62 ;) Natürlich eine höchst inoffizielle Bezeichnung.
 
Zuletzt bearbeitet:
Einfach den X61-Schaltplan runterladen und da die Belegung vom Displaystecker anschauen. Ich hatte auch erst überlegt wegen dem I²C decodieren aber auf dem X62-Board waren bei den I²C-Pins schon Leiterbahnen dran. Vermutlich haben sie erst vorgehabt, das Tablet auch zu unterstützten und sich aber später dagegen entschieden. Da ich jedenfalls nicht weiß, was an den jeweiligen Pins für UART und I²C am X62-Board anliegt war es mir so lieber, da ich auch Angst hatte, das Board zu schrotten.

Wenn du es hinbekommst, die Tastensignale und LEDs mit dem originalen Controller über I²C auszulesen und einzuspeisen dann sag unbedingt Bescheid. Ich würde das dann gerne auch entsprechend umbauen bei mir.

Der Atmega 48V wertet alle Tasten (bis auf Ein/Ausschalter) inklusive denen vom Steuerkreuz auf der Inverterplatine aus und steuert wie gesagt die blau unterstrichenen LEDs an. Außerdem wertet er den zweiten Hallsensor für die Erkennung vom Tabletmodus aus. Ein Reverse-Engineering-Ansatz wäre, einen Logicanalyzer ans I²C zu klemmen mit Protokolldecoder und alle Aktionen auszulösen, die zum jeweiligen An- und Abschalten von LEDs führen. Hat man den LED-Teil decodiert kann man die Tasten nacheinander drücken und die dazugehörige Übertragung entschlüsseln. Zum Schluss fehlt noch der Hallsensorstatus.

Danach muss man eine 32U4-Firmware schreiben (bzw. die tmk-Firmware anpassen wird vermutlich einfacher sein), die die Tastendrücke und den Hallsensorstatus via USB-HID-Gerät ans X62-Mainboard schickt. Für den LED-Status kann man eine entsprechende Anzahl an Pins als Input nehmen, diese mit den LED-Pins am Displaystecker verbinden und bei jeder Statusänderung (z. B als Pinchange-Interruptroutine implementiert) sendet der 32U4 via I²C den neuen LED-Status an den Atmega 48V im Displaydeckel.
 
Zuletzt bearbeitet:
Super, danke! Werde ich mir gleich mal zu Gemüte führen. Ich hab irgendwo son billigen 4 Kanal Logik-Analyser da, der allerdings eine recht begrenzte Speichertiefe hat, dafür die Software aber I2C direkt dekodieren kann. Ansonsten muss mein Speicheroszi herhalten :-D

Wenn es heute nur nicht DHL versaubeutelt hätte den Lüfter ins Postfach zu schmeißen :-(

Ergänzung: OK, i2c_clk ist Pin 53, i2c_data ist Pin 55. Das heißt, dass das Gerät im Deckel Slave ist. Pin 49 hat den Namen IIC_CTRLR_REQ - das klingt doch fast nach ner IRQ-Leitung.

Der Digitizer hängt auf Pins 41 (TXD) und 43 (RXD).

Die Thinklight ist übrigens auf Port 37 (Cathode) / 39 (Anode), und ist über einen normalen Transister geschaltet (lies: dürfte einiges wegstecken können), außerdem mit einem 200Ohm in Reihe. Klingt nach ner Idee :-D Diese Bauteile sind anscheinend bei Tablet-Mobos nicht bestückt...
 
Zuletzt bearbeitet:
Signale die im X61t nicht verwendet werden haben auch keine Leiterbahn auf der Platine, die im Tablet auf den Displaystecker aufgesteckt wird. Im Fall von den 5V vom Thinklight reicht es daher z. B. nicht aus, nur die fehlenden Bauelemente zu bestücken (bei X61-Boards), um die 5V bzw. die Thinklight-Signale bis in den Deckel zu bekommen.

Als Logicanalyzer kann ich das hier in Verbindung mit sigrok empfehlen. Damit hast du den ganzen Arbeitsspeicher von deinem PC zur Verfügung.
 
Zuletzt bearbeitet:
ok, meine Vermutung war schonmal richtig: IIC_CTRLR_REQ wird heruntergezogen, sobald eine Taste gedrückt wird. Anscheinend läuft auch regelmäßig ein I2C Kommando. Leider hab ich nur den Clock gesehen, nicht aber die Daten. Auch hatte ich nach dem Löten den lustigen Effekt, dass die Bluetooth-Leuchte dauerhaft halb an war, und nach dem BIOS-Passwort ein Thermal Error kam^^ Naja, hab ja noch genug von den Platinchen. Ich hatte beim Löten das Problem, dass meine Lötnadel zu schwach war. Nunja, am Montag hab ich Zugriff auf ne vernünftige Lötstation ;) Diese Platinchen gibt es übrigens auf ebay nachgeschmissen, ist also kein großer Verlust, wenn da mal eins kaputt geht.
 
Ich konnte die Schmach von heute Nacht nicht auf mir sitzen lassen... Wobei ich da schon einiges gelernt habe - war mein erstes Mal, wo ich an einem SMD-Connector direkt Pins gelötet habe. Das weiße Papier ist wichtig, da auf der Platine einige Leitungen vermutlich zu Debugzwecken nicht isoliert sind - vermutlich war das das Problem in der Nacht. Masse klaue ich mir derzeit von der Kühlerbefestigung.

Es tut :)
Adapter - noch nicht verklebt:
adapter_offen.jpg
Adapter - fixiert:
adapter_fertig.jpg

Aufbau - im Notebook:
aufbau.jpg

I2C - erstes Bild:
oszi1.jpg
I2C - zweites Bild:
oszi2.jpg
I2C - Kommandoübersicht:
oszi3_muster.jpg

Anscheinend werden da in einem bestimmten Muster Befehle abgeschickt. Die Screenshots wurden bei laufendem Notebook erstellt - ohne Akku. Wenn das Notebook aus ist (aber an Strom hängt) ist Ruhe. Beim Anschalten des Notebooks werden sofort 3 Kommandos direkt hintereinander abgeschickt, danach gehts nahtlos in diesen 4+2 Rhythmus. Wen ich die Feststelltaste drücke wird sofort ein Kommando geschickt, worüber wohl die LED aktiviert ist. Bei Tastendrücken am Tablet sehe ich auch 2 Kommandos (vermute "Tastenabfrage" und "IRQ-Leitung zurücksetzen".
Sieht also nicht allzu komplex aus :) Ich suche jetzt aber erstmal den Logikanalyser raus :)

1. Ergänzung:
Tastendrücke habe ich bereits herausbekommen :)
So sieht ein Signal aus:
tastendruck_bilddrehen.png
Man sieht sehr schön, dass erst die IRQ-Leitung heruntergezogen wird. Danach wird dem Gerät 0x10 0x25 geschrieben - was wohl sowas wie "Wähle das Register aus" bedeutet. Danach wird vom Notebook vom Gerät 0x10 gelesen - da kommen 2 Bytes an - in diesem Beispiel 0x08 0x08. Direkt nach dem 1. Byte wird dann auch wieder die IRQ-Leitung losgelassen.

Der kleine Knopf hat 0x00 0x09, Bilddrehen hat 0x08 0x08, Escape 0x04 0x08, Toolbox 0x01 0x08.
Enter ist 0x02 0x08, links 0x20 0x08, rechts 0x10 0x08, oben 0x80 0x08, unten 0x40 0x08.
Wenn die Taste losgelassen wird kommt 0x00 0x08.

Kling also nach einem einfachen Bitfeld. Der kleine Knopf passt nicht mehr in ein 8 Bit großes Bitfeld, also wurde es ins 2. Byte verschoben :)

Wenn ich das Notebook zu klappe kommt ein 0x00 0x0A, beim aufmachen wieder das bekannte 0x00 0x08.
Das drehen selbst produziert keinen IRQ, wenn ich nach dem Drehen im Tabletmodus zuklappe kommt ein 0x00 0x0C.

Damit wäre die Richtung Displayeinheit -> Notebook alles abgehandelt, oder?

2. Ergänzung
Startsequenz:
Die 3 Befehle sehen folgendermaßen aus:
anschalten.png

Es wird nur zum Gerät 0x10 gesendet.

Das erste ist ein Schreiben mit den beiden Werten 0x81 0xCF Klingt nach Initialisierung bzw. Reset. EDIT: Ist die Initialisierung der LEDs.

25 ms später wird das bekannte 0x25 geschrieben und direkt danach gelesen. Wie beim Tastenlesen. da kommt ein 0x00 0x00(!) zurück. Gleichzeitig wird die IRQ-Leitung losgelassen. Ist wohl eine Initialisierung des IRQ-Betriebes.

ca. 12 ms später wird die IRQ-Leitung heruntergezogen. Dann kommt wieder das bekannte Muster - 0x25 schreiben. Beim direkt darauffolgenden Lesen kommt dann auch wieder das gewohnte 0x00 0x08 zurück.

3, Ergänzung
Die regelmäßigen Signale:
Hinweis: Leider komme ich da mit meinem Logikanalyser an die Grenzen der Speichertiefe. Ich versuche die zeitliche Reihenfolge durch wiederholtes Sampeln und manuelle Aneinanderreihung hinzubekommen.

Da wird anscheinend nur das Gerät 0x4D angesprochen, und zwar immer ein Byte schreiben und direkt danach ein Byte lesen.


t=0000ms: 0x03 -> 0x3D (1x gesehen) (das gleiche wie das Letzte in der Liste)

t=0651ms: 0x02 -> 0x31 (2x gesehen); 0x30 (1x gesehen)
t=0788ms: 0x07 -> 0x30 (4x gesehen)

t=1636ms: 0x04 -> 0x2A (3x gesehen)
t=1704ms: 0x01 -> 0x40 (3x gesehen)
t=1835ms: 0x04 -> 0x2A (1x gesehen)
t=1971ms: 0x04 -> 0x2A (1x gesehen)
t=2284ms: 0x03 -> 0x3D (1x gesehen)

Korrespondiert gut zum 2+5 Muster, was ich im Oszi gesehen habe, auch die Zeitabstände (700ms Pause -> 2 Befehle -> knappe Sek Pause -> 5 Befehle) passen. Sogar dass der 1. und 2. Befehl im 5er-Block näher beisammen sind passt.

Was die Werte bedeuten? Keine Ahnung - ich wüsste auf Anhieb nicht, was man außer den Tasten von der Displayeinheit lesen müsste... ist auch ein anderes Device. Bis auf den einen Wert ist es scheinbar auch immer gleich. Gesampelt habe ich, während der Rechner im Grub war.

4. Ergänzung:
LEDs.
Habe mit den Tastatur-LEDs angefangen.

Die LEDs werden ebenfalls an das Gerät 0x10 gesendet, und zwar jeweils mit 0x81 <Byte>.

Im Grundzustand ist nur Bluetooth, Gerät an und AC aktiv
Caps-Lock tockelt zwischen 0xEE und 0xFE.
Num-Lock tockelt zwischen 0xDE und 0xFE.

LEDs sind also an, wenn das entsprechende Bit NICHT gesetzt ist. Ist wieder ein Bitfeld (wenn Caps und Num-Lock aktiv sind kommt ein 0xCE raus).

Bleiben also noch 2x Bat (rot/grün) AC und Standby. Gut, da muss ich mir erstmal Mut holen ;-)

5. Ergänzung:
Wenn (nur) die Batterie (dauerhaft grün) drin ist habe ich 0xF7, wenn Akku und AC leuchten 0xF6. Passt mit dem Ergebnis zusammen, das ich bei nur AC 0xFE hatte.

Das heißt dass das vordere Nibble für die Lock-Leds und das hintere für die Batterie+AC-LED zuständig ist.

Wenn ich in den Standby gehe (mit Akku + AC) toggelt es zwischen 0xF6 und 0xF4 hin und her.

Übersicht:

0x10: Caps-Lock
0x20: Num-Lock

0x01: AC
0x02: Standby
0x04: Batterie (Orange) - MUTMASSUNG!!!
0x08: Batterie (Grün)

Hiermit wäre das Reverse Engineering für den Umbau soweit ich sehen kann komplett. Das 0x10 Gerät ist für die LEDs + Tasten zuständig. Was das 0x4D Gerät macht weiß ich nicht, irgendwie klingt das nach Speicher oder Sensor? Der nächste Schritt meinerseits ist es, die bearbeitete Platine auf das x62 Mobo zu setzen und eigene Kommandos zu senden.

6. Ergänzung:

Die Kombination x62 mobo + Led/Tastenkontroller funktioniert :) Ich habe mit meinem Logikanalyser einfach die beiden Signale für Numlock an/aus abgespielt.

Aufbau:
aufbau_x62.jpg
Beweisvideo: https://mifritscher.de/austausch/x62/capslock_x62.MOV (kam so von meinem Fotoapparat)

das x62 Mobo scheint auf dem I2C Bus nichts zu machen, zumindest konnte ich keine Aktivitäten feststellen, auch wenn ich die *-Lock Tasten gedrückt habe. Zum Glück sind die Pullups aber vorhanden.

So, jetzt kommt der geradezu langweilige Teil: Die AVR-Firmware anpassen :) Zum Glück kann der AVR ja von Haus aus i2c, und zufälligerweise hab ich damit sogar schon rumgespielt :-D Aber nicht mehr heute ;-)
 
Zuletzt bearbeitet:
Erstmal: Geil!

Ich glaube, ich muss mir das doch auch mal anschauen. Der µC steuert nämlich auch noch Pins von der Wacom-Matte an. Da wüsste ich gerne mal, was der genau macht. Vielleicht ist das auch das 0x4D-Gerät, also dass die Befehle, die mit dem Wacom-Zeug zu tun haben, darüber laufen.
 
Zuletzt bearbeitet:
Nachdem wir/ich dummerweise die falschen Boards(Lüfter) bestellt haben... geht nun voraussichtlich nochmal eine Bestellung raus. Braucht noch jemand etwas? el & wile evtl. noch ein Bastelset? ;)
 
Joar, 40mm Lüfter einzubauen war wirklich aussichtslos, selbst mit viel Zureden mit Dremmel und Co. Waren zum Schluss zwar nur noch 1-2 mm, aber das Risiko war mir dann doch zu groß. Das Problem waren noch nichtmal so sehr die Rippen, sondern die Heatpipe selbst. Ich habe dann zwar beim Lüfter (also beim sich drehenden Teil ne Aussparung rausgefräßt, hat aber nicht ausereicht :-(

- - - Beitrag zusammengeführt - - -

Wer USB 2.0 im Deckel braucht (z.B. für ne Webcam und dessen USB-Hub einen hohen Quarz hat: http://www.ebay.de/itm/282338604481 ;-) würde ich "auf den Bauch herum" festkleben und die Pins mit einem kurzen Stück Draht verbinden. Bei 12 MHz kann man sowas noch machen ;)

P.S. Kann man die Beitrag zusammenführen Funktion entweder so gestalten, dass sie nur max. 12h gilt, oder man sie manuell im Einzelfall deaktivieren kann? Die ist echt nervig, wenn man Posts zu völlig unterschiedlichen Subthemen schreibt, auch weil so die Mail-Notifikation nicht tut. Da ist die Gefahr, dass was übersehen, schlicht zu groß (man schaut sich schon geschriebene Posts ja recht selten an).
 
Zuletzt bearbeitet:
Weiß jemand, ob es noch X61 Barebones gibt/ wieder geben wird? Also Notebook mit Mainboard (ohne RAM, Akku und HDD) für 750$. Und wie geht der deutsche Zoll mit der Kiste um? Nicht das er es als Fälschung oder ähnliches betitelt.

Was könnte jemand, der kein X61 mit SXGA+ Display hat, alternativ machen? Wie ich gelesen habe, ist das Display schwer zu bekommen. Wenn ich ein gebrauchtes X61, ein Display (keine Ahnung wo dieses kaufen könnte) und ein Mainboard kaufe, dann könnte ich auch direkt die fertige Kiste für 750$ kaufen. Der Preis wäre am Ende ähnlich. Oder habe ich hier einen Denkfehler?
 
Mal so ne Frage am Rande; Jacky meinte, dass der die Heatpipes einfach an die Metallplatten lötet. Gibt es eine Möglichkeit, dass "daheim" zu machen? Ich denke da spontan an einen Heißluftföhn... Hat da jemand zufällig schon Erfahrung? Auch wie robust die Heatpipes bzgl. Hitze sind?
 
Hat da jemand zufällig schon Erfahrung? Auch wie robust die Heatpipes bzgl. Hitze sind?
Das Löten geht da recht gut mit Heißluft (ca. 430°). Das Zerlegen damit geht fast zu gut, die Heatpipe leitet die Hitze an alle Lötverbindungen - da kann gleichzeitig mehr auseinanderfallen als man erwartet.
Der Heatpipe an meinem s Lüfter hat das nichts ausgemacht.
 
Wow, ihr seid schon echt verrueckt. Nicht schlecht, mit dem I2C auslesen. Leute wollen UMBEDINGT ein X62t haben, eh?

Ich suche schon seid laengerem ein 12.1" 4:3 Capacitive Touch Film den man auf ein normales SXGA+ (non-tablet) auflegen koennte, weil ich da gerne Finger-touch haette (resistive ist mir heutzutage zu doof).
Damit hab ich soweit nicht sehr viel Erfolg, weil die immer so einen breiten Rahmen haben und damit nicht in den Deckel passen. Resistive gibt's ja mit (fast) keinem Rahmen, aber capacitive anscheinend nicht....
Haette jemand da eine Idee? Sonst viel Spass mit der Tablet-anpassung!

R
 
Tja - ich pflege da zu entgegnen "Ja, ich bin verrückt - und stolz darauf" :p

Hmm, welche Folien hattest du bisher so gefunden?

Edit: die 12 Zoll Variante von https://www.alibaba.com/product-detail/projected-pcap-capacitive-12-1-inch_60582401572.html gibts leider nicht mehr :-(
https://www.alibaba.com/product-detail/12-1-inch-USB-multi-touch_60327978050.html sieht eventuell brauchbar aus
https://www.alibaba.com/product-detail/12-1-inch-Capacitive-touch-screen_60289033666.html ebenso

Resistiv wäre z.B. https://www.alibaba.com/product-detail/12-1-inch-4-3-5_798959608.html <- hätte ich persönlich kein Problem (mir reicht sogar single touch)
 
Zuletzt bearbeitet:
"Ja, ich bin verrückt - und stolz darauf" :p

Natuerlich, so sind wir doch alle hier :)

Das beste was ich bisher gesehen habe ist von http://www.xktouch.com, da ist aber der Rahmen zu gross und ich weiss nicht ob man den irgendwie abscheinden kann.
Oft ist bei capacitive touch ja immer eine Glasscheibe dabei, was nicht gut ist. Ausprobiert habe ich noch keine, weil mir im Moment extrem die Mittel fuer Experimente fehlen...

EDIT (Antwort auf deine Links):
Das zweite ist der von xktouch; da hab ich das Dateblatt bekommen und der Rahmen ist zu breit.
Das dritte ist von GreenTouch und da ist eine Glasscheibe bei, ich hab schon mehrere Firmen angeschrieben.

Ja, resistive ist einfach. Das will ich aber nicht, also habe ich mich gar nicht erst damit beschaeftigt...
R
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben