[Projekt] Think Pi, eine ARM-Platine im Thinkpad X31

santa clause

Enthusiast
Thread Starter
Mitglied seit
03.11.2007
Beiträge
546
Ort
Ostfriesland :)
Vorwort:
Bis heute bin ich mobil mit meinem Smartphone unterwegs. Wenn ich dann mal länger bei meiner Familie bin, greife ich dann oft mit dem Smartphone (5,5") auf meinen Homeserver per ssh zu. Da ich aber relativ große Daumenflächen habe, gestaltet sich das Tippen darauf ohnehin schwierig und es ist auch nervig, dass die Hälfte des Screens für die Bildschirmtastatur drauf geht und für die Shell so nur noch wenig Platz für Textzeilen bleibt. Ich hab mich daher schon lange nach Bluetooth-Tastaturen umgesehen, die die Fläche einer ~10" Netbook-Tastatur aufweisen sollten, aber auch dessen vollständiges Layout besitzen. Leider bin ich nie fündig geworden. Die Alternative war für mich ein Subnotebook.

Dazu kam, dass ich schon immer ein ThinkPad haben wollte, da die Dinger einfach unglaublich stabil gebaut sind. Flüssigkeiten werden Beispielsweise in der Tastaturwanne gesammelt oder auf der Unterseite des Notebooks durch Löcher wieder ausgeleitet und können so keine elektronischen Bauteile beschädigen. Einige Thinkpads verfügen auch über einen Ultrabay genannten CD-/DVD-Laufwerksschacht, in den alternativ eine Festplatte oder ein Zusatzakku eingeschoben werden kann. Sie bieten so individuelle Anpassungen des Notebooks an die Bedürfnisse seines Nutzers – genial! Darüber hinaus haben die Teile auch viele Wartungsklappen, um Einzelkomponenten gut erreichen zu können. Außerdem gibt es viele Ersatzteile im Umlauf, und das einfache und zeitlose Design spricht mich genau an (...man merkt schon, ich finde die Dinger echt gut). Problematisch ist aber, dass Lenovo die Thinkpad-Sparte übernommen hat und für Business-Geräte natürlich auch entsprechende Preise aufgerufen werden. Ältere Modelle sind dafür oft dicker und schwerer und erreichen im Akkubetrieb nicht die Laufzeit aktueller Modelle (10h+). Auch haben sie zwar einiges an Mehrleistung, die ich persönlich aber nicht benötige, weil ich höchstens ein bisschen surfe oder eben per ssh-Sessions an meinem Server rumspiele.
Wie bereits angemerkt, hat IBM seine Laptopsparte 2005 dann an den chinesischen Fertiger Lenovo abgetreten, welcher die Thinkpads nach und nach verändert hat. Dabei ging der Trend zu Displays im Breitbildformat (16:10 und später 16:9) über (was bei gleicher Bildschirmdiagonale weniger Fläche für Konsolenfenster und anderes bedeutet), das klassische und bunte IBM-Logo verschwand und die legendären Tastaturen verloren ihre Wanne und mussten flacheren Tastaturen im „chiclet“-Design weichen…
Positiv muss man aber auch erwähnen, dass die Display-Auflösung mit der Übernahme seitens Lenovos massiv gestiegen ist. Trotzdem: Die Konkurrenz hat inzwischen aufgeholt. So sind Notebooks von Dell inzwischen auch weit verbreitet. Aktuell startet ein Lenovo-Mitarbeiter Umfragen und arbeitet mit seinem Team an einem Retro-Thinkpad. Vielleicht kehren sie in Zukunft ja wieder zu den Wurzeln zurück...
Jedenfalls wollte ich eigentlich nur ein älteres Modell und wollte es an meine Ansprüche anpassen.

Die Vorstellungen, die es zu erreichen galt, waren folgende:
- Größe von 12 bis 14 Zoll
- Akkulaufzeit >10h
- möglichst leicht & kompakt
- möglichst günstig
- Geschwindigkeit fast egal

Da ich schon Erfahrungen mit dem Raspberry Pi & Raspberry Pi 2 als Mediaplayer sammeln konnte, lag wegen Kosten, Stromverbrauch und geringen Ansprüchen an die Performance der Einsatz einer ARM-Plattform nahe. Ich entschloss mich also ein Projekt zu starten und Gehäuse eines Thinkpads, dessen Tastatur mit TrackPoint und eine ARM-Entwicklerplatine zu kombinieren. Ich testete Raspbian Wheezy ( ein angepasstes Debian 7) auf dem RPi, welches zwar nicht mehr aktuell war, aber doch die Performance im Desktopbetrieb ungefähr demonstrieren sollte.
Die Performance ließ teilweise dann doch etwas zu wünschen übrig und Iceweazel (=Firefox, der Standardbrowser) stürzte oft ab. Chromium wollte ebenso nicht stabil laufen und tat sich mit Hardwarebeschleunigung noch schwerer, sodass an Youtube-Videos gar nicht zu denken war. Als ich einen Adblocker installieren wollte, wurde ich auch noch mit dem Hinweis auf meine alte Version abgewiesen. Das Fazit war trotzdem positiv: während die Performance leicht unter meinen Erwartungen lag, brauchte der Pi immerhin nur
2-3 Watt laut Energiekostenmessgerät; später ergaben genaue Messungen ein Verbrauch von 1,1 Watt im Idle und mit USB-Tastatur und Maus bei Auslastung max. 2,3 Watt.



Der Strombedarf

Dies war ein guter Anhaltswert. Während gewöhnliche Notebooks meiner Recherche nach je nach Auslastung etwa 10-15W brauchen, kam ich mit einem Bruchteil davon aus. Ich habe noch eine Powerbank mit 10,4Ah übrig, die ich mir mal für einen Urlaub zugelegt hatte. Theoretisch(!) käme ich also mit einem Strombedarf von 0,5A 20 Stunden hin. Als ich mich näher informiert habe, stellte ich aber fest, dass die Angaben der Powerbank i.d.R. auf die 3,7V Zellspannung des Li-Ion Akkus bezogen sind. Demnach blieben mir bei einer theoretisch verlustfreien Umwandlung nur noch rund 7,7Ah bei 5V. Ich lies daher meinen alten Raspberry Pi mit WLAN-Stick (+0,5W) über die Powerbank laufen und kam auf eine Laufzeit von 15-16 Stunden, die Dimensionierung war also auf jeden Fall schon mal die richtige. Mit zusätzlichem Display würde ich bei angepeilten 10h Laufzeit aber wohl eine andere Powerbank benötigen.



Das Display

Ich informierte mich über die verschiedenen Standards bei Notebookdisplays.
Dabei gibt es im Wesentlichen vier, die von Bedeutung sind:

LVDS RGB/ Parallel
Hier werden die drei Grundfarben parallel über (i.d.R.) je 6 verschiedene Leitungen übertragen. Dies ist der älteste Standard.

LVDS 18Bit oder 24Bit
Hier werden mehrere Pixelinformationen zeitlich versetzt über mehrere Kanäle gesendet. Bei 18Bit nimmt man 3 Kanäle, bei 24Bit werden 4 verwendet. Bei Auflösungen über 1280x800 das doppelte davon, also 8 Kanäle für die Farben. Jeder Kanal wird über 2 Pins übertragen. Dieser Standard ist etwas moderner als der erstgenannte und war bis 2007 weit verbreitet.

eDP
Wie der Name vielleicht schon verrät, basiert der eDP-Standard auf dem Display-Port-Ausgang moderner GPUs. Dieser Standard ist laut Thinkwiki.de auch bei den neueren Modellreihen durch Lenovo eingeführt worden und stellt den aktuellen Stand der Technik dar.

SPI
Der Displayanschluss, der bei einigen ARM-Boards und wohl auch bei Smartphones benutzt wird. Es gibt aber nur sehr kleine Displays, die über diesen Standard verfügen. Außerdem ist die max. Auflösung (zumindest beim Raspberry PI) zu gering.


Wegen dem Grad der Verbreitung kam nur LVDS in Frage. Die gängigen ARM-Einplatinencomputer besitzen in erster Linie einen HDMI und Chinch- bzw. Composite-Anschluss. Nur wenige verfügen über die Möglichkeit ein LVDS-Display anzusteuern, welche oft auch noch ziemlich schlecht bis gar nicht dokumentiert ist. Da ich inzwischen ein X31 als Grundlage habe, tendiere ich dazu, den Banana Pi M2 zu bestellen, obwohl er GPU-seitig eine Katastrophe unter Linux ist. Alternativ könnte ich auch einen HDMI-LVDS-Adapter bestellen, aber ich habe nur den von Chalkboard-Electronics gefunden und die wollen 35$+20€ Porto. Dazu kämen dann auch noch mal 19% Umsatzsteuer.
Ich weiß, das es auch günstigere gibt, die sind aber größer und verbrauchen vermutlich auch wieder mehr Strom und mir ist jedes Watt kostbar.

Das Display des X31 hat leider, wie das aller alten X-Modelle nur 1024x768 Pixel, was nicht mehr zeitgemäß ist, bei der kleinen Fläche aber noch scharf sein sollte.
Eine Alternative wären die Modelle der T- oder R-Reihe gewesen, welche es mit 14“ Displays in 1400x1050er Auflösung gab. Die sind aber selten und sind auf eBay noch sehr gefragt. Hier im Forum hab ich es auch versucht, aber nicht wirklich gefunden was ich wollte. Letztlich hatte ich eben das Glück ein X31 mit scheinbar defekter Platine sehr günstig zu ergattern.
Natürlich mache ich mir auch hier sehr viele Gedanken um den Stromverbrauch, denn dieser sollte so gering sein, dass ich mit der vorhandenen USB-Powerbank auf 10 Stunden Laufzeit kommen würde. Ideal wäre also ein Display mit LED-Hintergrundbeleuchtung gewesen. Displays mit herkömmlicher CCFL-Hintergrundbeleuchtung benötigen ihrer Datenblätter nach so um 3-5 Watt. Ich überlegte das Display durch ein ~12.1" LED-Display zu ersetzen, es gibt aber nur passende 4:3-Displays mit CCFL. Nach weiterer Recherchen fand ich auf eBay einen geeigneten LED-Streifen, welcher aus China geliefert wird. Der erste hatte leider defekte LEDs, ich hab aber schon erste Tests anstellen können :) Das Geld bekomme ich zurück und kann den LED-Streifen behalten. Ein zweiter ist derzeit unterwegs. Immerhin konnte ich so schon ein paar Messungen anstellen. Dann habe ich eine Regression berechnet und kann einen Stromverbrauch von 2W bei 10 Volt Eingangsspannung am LED-Treiber erwarten. Bei 12V Eingangsspannung am LED-Treiber zieht das ganze schon 6,6 Watt und es kommen 9,4V am LED-Streifen an (es sind immer 3 LEDs in Reihe geschaltet und die Reihen dann parallel). Daher kann ich den LED-Streifen wohl leider nicht direkt antreiben, andererseits müsste ein kleiner Festspannungsregler ja schon reichen. Eigentlich wollte ich mir ja eine PWM-Steuerung selbst basteln. Derzeit sieht der also Plan vor, die 5V-USB-Spannung zu verdoppeln und damit den Treiber zu betreiben.



Die Entwicklungsplatine

Ich habe viel hin und her überlegt und bin mir immer noch nicht schlüssig. LVDS auf der Platine würde natürlich die Kosten für einen Adapter einsparen, leider haben die entsprechenden Boards dann keine GPU-Beschleunigung, weil diese PowerVR-GPUs besitzen und deren Hersteller sich einen Scheiß um Linux-Treiber kümmert. Die Alternative ist ein Raspberry Pi 2 mit Adapter, der aber schwer zu bekommen ist. Genügend GPIO Pins um die Tastatur später ansteuern zu können bieten alle Boards. Der Trackpoint selbst hat zum Glück ein PS/2 Interface, für das es schon Projekte gibt, an denen ich mich bedienen kann. Die Tastatur anzusteuern wird aber noch interessant...

Ich hab hier wegen der Übersichtlichkeit einfach mal ne Tabelle mit Word gebastelt:



Es gibt zwar Bestrebungen PowerVR-Treiber für Linux zu schreiben und es gibt auch die Idee, die Android-Treiber unter Linux lauffähig zu machen, was dann aber wieder Wayland vorraussetzt, aber das alles wird noch Jahre in Anspruch nehmen, wenn da überhaupt etwas draus wird...
Ich hätte also echt am liebsten nen kleinen Adapter wie den von Chalkboard-Electronics. Hab bei den Leuten vom Jenaer Lötlabor was gesehen, aber hab keine Ahnung, wie ich die erreichen soll. Naja, jetzt bin ich erstmal auf euer Feedback gespannt :d

so, das ist jetzt der aktuelle Stand des Projekts.
Eigentlich wollte ich euch schon eher daran teilhaben lassen und mir Hilfestellungen holen, aber ich war vor allem auch durch die Schule noch zu ausgelastet.

- - - Updated - - -

Mist, wie reserviere ich mir hier einen weiteren Post?
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Die mAh sind schon korrekt, das Umrechnen ist Unfug. Dass die sich auf die Akkuspannung beziehen ist auch im Laptop so.
Beaglebone (Black) angeschaut?
Spannungsquelle ist bei LEDs ohne Vorwiderstand Mist, da muss eine Stromquelle her. Festspannungsregler verheizt eh nur unnötig viel Strom, da kannst du alle sonstigen Stromsparmaßnahmen vergessen.
 
Hey, das ging ja schnell!
Dass es im Laptop so ist, ist ja klar. Da steht wenigstens auch die Spannung dabei. Bei diversen Powerbanks ist aber erstmal nur von 5V und xyz mAh die Rede, sodass man leicht in Versuchung kommt, das in direkten Zusammenhang zu stellen. Habs jetzt mal geändert und hoffe es ist klar, wie ich das meine.

Die LEDs würde ich ja mit 10V abzüglich des geschätzten 1V Voltagedrop des Reglers betreiben. Dann hätte ich etwa die 9V welche sie ja auch vertragen maximal anliegen und könnte das ganze mit einer PWM-Schaltung per Software noch weiter runter dimmen und mir so den LED-Treiber sparen. Bei angenommenen 2W Verbrauch würden ja nur 1/10, also 0,2W am Regler abfallen. Wenn ich so darüber nachdenke, könnte ich das auch mit einem Widerstand lösen, die Spannung nur auf 9,4V abfallen lassen und den Rest per PWM runter regeln. Ich warte aber derzeit noch auf den neuen LED-Streifen, damit ich messen kann, wie viel Verlust der Treiber überhaupt verursacht.

Den Beaglebone hab ich mir auch angesehen, aber er hat weniger RAM und wie es aussieht wohl auch nur einen Kern.
 
Zuletzt bearbeitet:
Ein 7809 (falls du den verwenden wolltest) braucht schon deutlich mehr als 10V, dementsprechend viel Spannungsabfall und Hitzeproduktion hast du an dem dann auch.
LEDs regelt man normalerweise über den Strom, einfach nur eine bestimmte Spannung berechnen funktioniert nicht, da kein ohmscher Verbraucher.
 
Hab mir da jetzt noch keinen genauen rausgesucht, sondern wollte mir einfach den Voltage-Drop zunutze machen. Aber wie du richtig bemerkt hast, versuche ich das Optimum zu erreichen. Wenn ich also mal annehme, dass der LED-Treiber keine Verluste hat, dann könnte ich einfach die 10V nehmen, welche sich aus 5V ja einfach generieren lassen sollten und den LED-Streifen mit Vorwiderstand zu betreiben. Darauf bin ich jetzt durch dich gekommen, danke dafür :d
Wenn man es genau berechnet, könnte ich ja einen Widerstand nehmen, an dem die überschüssigen 0,6 Volt, also 0,12 Watt (bei dann maximaler Helligkeit und wie gesagt, angenommen, dass der Treiber keine Verluste hat) in Wärme umgewandelt werden.
Du hast vermutlich recht und eine Regelung über den Strom wäre am besten, aber ich bin mir nicht sicher, ob der Aufwand dafür gerechtfertigt ist. Bisher habe ich LEDs immer über die Spannung geregelt.
Und wenn der LED-Treiber tatsächlich effizienter arbeiten sollte als ein kleiner Vorwiderstand, dann kann ich den ja immer noch nehmen.
Ich habe aber beim Dimmen durch den LED-Treiber unterschiedliche Ausgangsspannungen beim LED-Treiber gemessen, daher gehe ich davon aus, dass der die LEDs auch über die Spannung regelt und ~3,2V pro LED kommt ja auch etwa hin.

So genau habe ich mir da auch noch keine Gedanken darüber gemacht, da das Problem mit der LVDS-Schnittstelle und der GPU-Beschleunigung gerade noch größer ist.

Aber auf jeden Fall schonmal ein großes Danke für dein Feedback!
 
Zuletzt bearbeitet:
Naja, Strom und Spannung hängen natürlich immer zusammen. Aber wenn du schreibst, du hast einen LED-Treiber, dann hast du deine Stromquelle doch schon? Hast du ein Datenblatt von dem Ding?
An einem Vorwiderstand fällt natürlich immer eine Verlustleistung von RI^2 ab.
 
Achso, ja, beim LED-Streifen für die Hintergrundbeleuchtung war ein Treiber dabei. Ein Datenblatt gibt es leider nicht, aber ich werd morgen mal Fotos machen. Meinst du denn, dass der Vorwiderstand ineffizienter als der Treiber ist?
 
Hier die versprochenen Bilder:




sorry, hatte gedacht die Kompaktkamera wäre besser, die macht aber nur unscharfe Bilder. Hab daher mein Handy genommen.
 
Zuletzt bearbeitet:
Hey, das ist ja cool! Was muss ich machen um den mit 5V arbeiten zu lassen? Weil so wie die Platine jetzt aufgebaut ist, kommt da erst ab 7,5V ein ganz schwaches Licht, mit 9V gehts dann schon richtig ab. Weil dann könnte ich mir das doppelte Hochwandeln ja sparen!
Und ja, ich glaube eigentlich ist die Schaltung auf 12V ausgelegt, aber ich dachte es wäre leichter die Spannung am USB-Ausgang der Powerbank einfach zu verdoppeln.
 
Zuletzt bearbeitet:
Habe das Datenblatt nur überflogen, aber der Treiber selbst scheint direkt mit 5V zu laufen, ob der Rest der Schaltung darauf ausgelegt ist, keine Ahnung... Aber Probieren geht ja bekanntlich über Studieren ;)
 
Nein, die LEDs fangen erst ab 7,5V Eingangsspannung am Treiber an schwach zu leuchten.

Inzwischen hab ich die Powerbank mal auseinander genommen. Wie ich leider feststellen musste, hab ich im X31 aber gar nicht genug Platz für die Zellen mit ~18mm Durchmesser. Daher hab ich erstmal eine Xiaomi Powerbank mit 5000mAh geordert. Sollte sie nicht genug Ausdauer haben, schneide ich den Originalakku auf und verfrachte die Zellen dort rein. Dort wäre sogar Platz für 6 Zellen.

Zusätzlich hab ich jetzt noch ein weiteres LED-Kit mit 5-30V Eingangsspannung geordert. Hab mir zwar mehrere Schaltungen angesehen, aber meine Elektronikkenntnisse reichen derzeit leider noch nicht aus um die Schaltung so anzupassen, dass ich die alte Schaltung hätte nehmen können.

Nach etlichen Überlegungen wird das Herz wahrscheinlich aus einem Banana Pi M2 bestehen. Den bestelle ich aber erst, wenn ich das Display vorher nochmal getestet habe, weil irgendwie Dreck hinter dem Display gelandet ist. Ich werd mir mal ne Dose Druckluft besorgen und hoffen, dass das Display keine Macken bekommt.


Die meisten Schwierigkeiten macht mir trotzdem noch die Tastatur. Ich weiß nichtmal wie der Steckertyp heißt. Hat da von euch jemand ne Ahnung?



Achso, was vielleicht noch erwähnenswert wäre:
In diesem Artikel wird schön ausführlich über den Stromverbrauch und Einsparungsmöglichkeiten beim Raspberry Pi berichtet. Dass er über einen einfachen Linearregler verfügt, der die überschüssige Spannung einfach in Wärme umwandelt ist natürlich naheliegend, weil der Raspberry Pi ja nie direkt für den mobilen Einsatz gedacht war. Ihn zu ersetzen hat 20% Einsparung gebracht. Das ist auf jeden Fall noch eine Überlegung wert... (nachträglicher Zusatz: Das gilt nur beim Modell B der ersten Generation. Der Raspberry PI 2 hat bereits einen Schaltregler und verbraucht daher trotz seiner 4 Kerne weniger als sein Vorgänger)

Meine Güte, wie peinlich, ich hab zwei Buchsen fotografiert! :d
Hier das richtige Bild vom Mainboard:
 
Zuletzt bearbeitet:
Den Stecker haste doch auf dem defekten Board sitzen, den kannst doch weiter verwenden.
 
Ich bin mir nicht sicher ob das Board wirklich defekt ist und hätte daher lieber nen neuen. Eigentlich hast du aber Recht und ich sollte es einfach mal versuchen, denn so viel bekomme ich für das Board sowieso nicht mehr. Hat aber auch alles noch Zeit, da ich erst Post aus Fernost erwarte und den Stecker für das Display auch noch bestellen muss...

Okay, hab den Typ gefunden:
es ist kein AA01B sondern ein älterer JAE KX14 bzw. KX15 mit 40 Polen. Interessanterweise wurde der Stecker oft in der 50 Pin-Variante für optische Slim-Laufwerke benutzt. Ich könnte also theoretisch auch ein defektes Notebook nehmen und den Stecker ein wenig abschleifen oder mich noch weiter umsehen.
 
Zuletzt bearbeitet:
der ist leider zu langsam und Chalkboard Elec will auch viel Porto und hat wohl starke Qualitätsschwankungen
 
Zuletzt bearbeitet:
So, kleines Update: Der LED-Strip ist angekommen und lässt sich wunderbar mit 5V betreiben und via Poti regeln. Muss mir nur noch eins mit höherem Widerstand besorgen. Wenn ich dann einen guten Kompromiss aus Helligkeit und Stromaufnahme gefunden habe, nehme ich einfach einen Festwiderstand...
Warte jetzt noch auf den günstigen HDMI-LVDS-Adapter, den ich mir bestellt habe und schaue mal, was der inkl. Display so verbraucht und kann mich schon mal mit der LVDS-Schnittstelle vertraut machen :)

Der dunkle Bereich ist keine ungleichmäßige Ausleuchtung, sondern mein Schatten

Wie ich finde, ist die Helligkeit für nur 0,48W Verbrauch sehr gut!
 
Zuletzt bearbeitet:
Kleiner Tipp: Nicht alle haben die fette DSL Leitung, wäre besser wenn du die Bilder verkleinerst z.B 1920x1080, 1280x800 oder sowas ;).

Abo [X]
 
@SystemX
Du hast natürlich Recht. Eigentlich war ich selbst jahrelang mangels Alternativen von DSL Light 384 geplagt und achte immer darauf, Webinhalte möglichst klein zu gestalten. Ich dachte aber irgendwie, dass es inzwischen nicht mehr das Thema wäre und hatte gehofft, mit der hohen Auflösung und der verlustfreien Kompression eine bessere Bildqualität zu erzielen. Aber jetzt, da ich die Bilder nochmal komprimiert habe, stelle ich auch fest, dass der Unterschied den Speicher wirklich nicht wert ist und die Kamera immer noch den größeren Unterschied macht. Danke also für den Hinweis!

Was das Projekt betrifft:
Ich warte immer noch auf den HDMI-Adapter aus Fernost. Inzwischen habe ich noch die kleine (5Ah) Powerbank von Xiaomi hier, welche sich gleichzeitig benutzen und aufladen lässt, was ja vor allem für lange Zugfahrten wichtig ist. Die ist nämlich sehr flach und lässt sich erstmal leicht in das Gehäuse einbauen, bis ich endlich genaue Ergebnisse über den Verbrauch habe und mir den größeren Akku passend baue. Gerade das Displaypanel und den HDMI-LVDS-Adapter kann ich ja derzeit noch nicht messen.

Ich war aber nicht ganz untätig und habe mal ein bisschen im Netz nach WLAN-Sticks gestöbert:
Der kleine und oft empfohlene WLAN-Stick von Edimax scheint wohl den kleinsten Energiehunger zu haben (etwa 0,2W im Idle)
Ich habe noch zwei Sticks mit externer Antenne hier (150 und 300Mbit/s), die aber im Idle schon 0,5W wollen.

Ich habe mich auch noch einmal bei den Einplatinencomputern umgesehen und werde wohl einen ODROID-C1+ bestellen, weil er preislich und verbrauchstechnisch auf dem Niveau eines Raspberry PI 2 liegt, aber fast doppelt so viel Dampf unter der Haube hat. Das liegt wohl auch daran, dass der USB- und Ethernetchip des RPI mehr verbraucht als der eigentliche Broadcom SoC.
Für den ODROID gibt es sogar noch eMMC-Speicher, der von der Performance SSDs entspricht, er ist aber teurer als SSDs und lohnt sich daher nicht für mich (vielleicht mal als Aufrüstoption). Daher habe ich mir nun eine SanDisk Extreme 90MB/s Speicherkarte zusammen mit neuem Lötzubehör bestellt, damit ich mich bald schon an die Tastatur wagen kann.
Da der ODROID-C1+ über keinen analogen Audioausgang verfügt, werde ich mir noch eine USB-Soundkarte zulegen, die natürlich auch wieder die Effizienz meines Projekts senkt. Theoretisch wäre es ja auch denkbar, Soundkarte und WLAN-Stick per Transistor erst dann mit Strom zu versorgen, wenn sie benötigt werden. Aber das ist noch eine Überlegung für die Zukunft.
Daher warte ich noch ab, ob es letztendlich die 16Ah oder 10Ah Powerbank von Xiaomi wird, die als Akku fungieren soll.

Achso, was das neue Hintergrundlicht des Displays betrifft:
Bei 1W ist das Display nur ein kleines bisschen heller, also werde ich es vermutlich bei der Helligkeit belassen, die ich mit den anfänglich getesteten ~0,5W erreicht habe.
 
Zuletzt bearbeitet:
So, noch ein kleines Update:



Ich hab die Tastatur durchgemessen!
Man war das ne Arbeit, hat etwig gedauert :fresse:

Hätte nicht gedacht, dass der Stecker der Tastatur tatsächlich auf so vielen Pins belegt ist, ich werde wohl noch einen Controller programmieren und zwischenschalten müssen.
Nur hab ich davon keine Ahnung und muss mich da auch erstmal reinfuchsen :d

Das Lötzeug ist auch da, also werd ich morgen wahrscheinlich mal versuchen die alten Buchsen auszulöten.
 
Zuletzt bearbeitet:
So eine Arbeit, irre :d.
 
Soo, nun nach langer Zeit mal wieder ein Update:


ich hab es endlich geschafft, den Trackpoint über PS/2 zum Laufen zu bekommen. Den Trick hab ich vom Ersteller des JediPad Wikis: den RST-Pin über einen 2,2µF Elko an +5V und über einen 100kOhm Widerstand an GND.
Dazu hab ich mir die kleine Platine aufgebaut, ich muss nur noch ein Messer finden, mit dem ich vernünftig sägen kann.
Ich werde Maus und Tastatur wohl erstmal über einen PS/2-USB-Adapter laufen lassen, aber ich muss dessen Stromverbrauch noch messen.

Dann kann ich einfach den IC einer alten Tastatur nehmen und passe das Tastenlayout entsprechend an.

Das Problem ist nämlich, dass ich für die Tastatur ansonsten mehr Pins als vorhanden benötigen würde und vermutlich schneller Fehler hätte, wenn mehrere Tasten gleichzeitig gedrückt werden.

Was das ARM-Board betrifft, tendiere ich derzeit zum Raspberry Pi 2, weil die Softwareunterstützung einfach Gold wert ist. Andere Platinen brauchen zwar weniger Strom im Idle und sind deutlich schneller, aber dafür krankt es dann an fehlender Hardwarebeschleunigung. Ich lasse daher auch erstmal das Display drin und besorge mir einen HDMI-LVDS-Adapter.

Die Alternative wäre ein Odroid XU3 gewesen, für den ich mir dann das 12" 3:2 eDP-Display des Microsoft Surface Pro 3 besorgt hätte, aber der Preis ist dann insgesamt etwas höher und ich hätte ober- und unterhalb des Displays einen Spalt von je ~7mm. Das ist dann eher eine Überlegung für die Zukunft. Evtl. komme ich ja mal an ein Gehäuse der ersten Widescreen-Thinkpads.
 
Zuletzt bearbeitet:
Mal ein etwas anderes Projekt. Bin weiter auf deine Umsetzung gespannt.
 
So, ich habe die Platine der alten Tastatur mit einem alten Floppykabel verlötet. Zum Testen habe ich einfach testweise ein paar Kontakte aneinander gehalten und promt wurden einige Buchstaben und Zeichen ausgespuckt :) Leider kann ich den Stecker der Thinkpad-Tastatur aber nicht anlöten, da das Floppykabel einen Pinabstand von 1,27mm hat, der Abstand der Pins bei dem KX14/15 aber nur 0,8mm beträgt. Sobald ich mehr als drei Pins angelötet habe, wird der Platz einfach zu eng und es gibt Kurzschlüsse. Daher habe ich mir eine kleine Adapterplatine für ICs bestellt, auf die die Buchse dann aufgelötet werden soll. Da kann ich dann bequem (naja, ich muss die Platine dann auch auseinander sägen, weil der Abstand der beiden Pinreihen zu groß ist...) das Floppykabel anlöten und das ganze sollte auch etwas stabiler sein. Denn vom PS/2-Kabel hat sich jetzt schon zwei mal ein Pin gelöst...
Bei der ARM-Platine schwenke ich gerade mal wieder um und bestelle mir wohl doch den neuen ODROID C2 mit 64 Bit SoC. Ich habe ja bereits einen Raspberry PI 2 am Fernseher hängen. Sollte mich der C2 enttäuschen, dann kann kommt dort halt OpenELEC zum Einsatz und ich nehme den RPi. Preislich macht das ja keinen Unterschied.
Ich habe den LED-Streifen auch nochmal durchgemessen und komme irgendwie nur noch auf 0,25W, keine Ahnung wieso ich vorher mehr gemessen habe. Aber wenn ich unter 3,7W bleibe, könnte ich ja sogar die 5000mAh Powerbank nehmen und spare noch etwas Gewicht ein (Und muss mir natürlich nicht extra noch eine weitere Powerbank zulegen).

Hier nochmal die Matrix der Tastatur, leider sind zwei Felder doppelt belegt, da muss ich mich wohl bei den Pins verzählt haben. Ist aber nicht so wild, da ich das Mapping der Tasten ja sowieso durch Probieren verändern werde. Ich hoffe nur, dass der Zahlencode der Großbuchstaben erst im PC verändert wird und mir die Shift-Taste keinen Strich durch die Rechnung macht, aber das finde ich schon noch heraus.


Okay, da es Gerüchte gibt, dass bald ein Raspberry Pi 3 kommen soll, warte ich wohl besser noch etwas...
 
Zuletzt bearbeitet:
und nach langer langer Zeit mal wieder ein Update:

ich habe die Buchse für den Stecker der Tastatur auf der IC-Adapterplatine aufgelötet. Aus der Platine musste ich in der Mitte jedoch ein Stück entfernen, damit sie passte. Leider ist mir, nachdem ich das Projekt für einige Wochen ruhen lies, aufgefallen, dass in der Zwischenzeit eine Leiterbahn kaputt gegangen ist. Ich habe eine Seite daher etwas versetzt angelötet:


Nachdem ich dann zwei Tastaturcontroller probiert habe (ein Bild davon kennt ihr ja), die sich wegen ihrer Matrix jedoch als ungeeignet erwiesen, hab ich mich dann doch ein bisschen in den Bereich "Mikrocontroller" eingearbeitet.
Zum Glück gibt es da schon genug Leute, die ihre Tastaturen damit auf einen USB-Anschluss umgerüstet haben und an deren Projekte ich mich bedienen konnte :d
Hat mich trotzdem zwei Wochenenden gekostet, das ganze zum Laufen zu bekommen und vor allem die USB HID-Information so anzupassen, dass es funktioniert.

Ich habe die Matrix nochmal ein bisschen korrigiert und ergänzt und nochmal hochgeladen, falls sie mal wer braucht oder neugierig ist:


Was das LVDS-Problem betrifft, so habe ich mir jetzt doch den Adapter von Chalk-Elec bestellt. Ich bereue es aber, weil ich nicht damit gerechnet habe, dass nochmal Steuern + DHL-Gebühr anfallen. Eigentlich war mir der Adapter so ja schon zu teuer. Ich habe direkt den Spannungsregler durch einen effektiven DC-DC-Wandler ersetzt und den Stromverbrauch (inkl. Display) so um fast ein Drittel von 0,43 A auf 0,3 A gesenkt.

Der Odroid C2 ist schon bestellt und kommt wohl Ende des Monats. Hardkernel scheint auch an einem Port für Kernel 4.4 zu arbeiten. Jetzt muss ich aber ins Bett, morgen gibt's mehr und vor allem mal Bilder.

Edit:

Also, hier jetzt der Nachtrag:

Ich wollte die Tastatur eigentlich direkt über GPIOs anschließen und ein kleines Programm schreiben, aber leider habe ich keine Möglichkeit gefunden, eine Tastatur unter Linux zu emulieren, die mir sofort zugesagt hat. Das Dulcimer-Projekt von Schatenseite.at kannte ich aber schon vorher und habe es in Erwägung gezogen und schließlich auch umgesetzt. Dazu musste ich mir erst einmal einen kleinen Programmer basteln, um einen USB-Bootloader auf den ATMega32 zu laden. So sieht er aus:


Leider war der erste selbstgebastelte Stecker ziemlich blöd, weil der Mann im Conrad mir statt einer Pinleiste eine Leiste mit Buchsen mitgegeben hatte und der erste ATMega in Folge eines Übertragungsfehlers nicht mehr ansprechbar war :fresse:
Hier könnt ihr den alten experimentellen Aufbau sehen:


Schließlich und endlich habe ich mir dann einen neuen ATMega gekauft und den Programmer überarbeitet. Irgendwo werde ich schon noch mal einen HV Programmer in die Hände bekommen, mit dem ich den alten ATMega zurücksetzen kann...


Nunja, das Dulcimer-Projekt war eigentlich selbsterklärend, ich musste lediglich die Tastenbelegung umändern. Das funktionierte auch auf Anhieb. Problematisch waren lediglich die lauter-, leiser-, und Mute-Taste, weil die im USB-Protokoll weiter unten sind und ursprünglich nicht implementiert waren (schaut mal hier unter Punkt 7: Keyboard, ursprünglich ging es nur bis Code 0x65, ich habe die Tabelle in der Firmware für den ATMega dann bis 0x81 erweitert). Dann musste ich aber auch den USB-HID-Descriptor (der dem Computer beim Einstecken meldet, in welcher Reihenfolge wie viel und was gesendet wird und z.B. die Funktionen (Tasten) meldet, welche alle vorhanden sind) um die Lautstärketasten erweitern und hier gingen die Probleme richtig los. Denn mit den Codebytes die laut Spezifikation richtig wären, wollte das Ganze nicht und ich musste die Regeln brechen ;). Witzig finde ich auch, dass meine Linux-Installation gar nicht so viel auf den Descriptor gibt, während Windows sich da pingeliger anstellt. Falls sich wer dafür interessiert, der Code für sowas sieht so aus:
Code:
char PROGMEM usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] = {
    0x05, 0x01,   // USAGE_PAGE (Generic Desktop)
    0x09, 0x06,   // USAGE (Keyboard)
    0xa1, 0x01,   // COLLECTION (Application)
    0x05, 0x07,   //   USAGE_PAGE (Keyboard)
    0x19, 0xe0,   //   USAGE_MINIMUM (Keyboard LeftControl)
    0x29, 0xe7,   //   USAGE_MAXIMUM (Keyboard Right GUI)
    0x15, 0x00,   //   LOGICAL_MINIMUM (0)
    0x25, 0x01,   //   LOGICAL_MAXIMUM (1)
    0x75, 0x01,   //   REPORT_SIZE (1)
    0x95, 0x08,   //   REPORT_COUNT (8)
    0x81, 0x02,   //   INPUT (Data,Var,Abs)
    0x95, 0x01,   //   REPORT_COUNT (1)
    0x75, 0x08,   //   REPORT_SIZE (8)
    0x81, 0x03,   //   INPUT (Cnst,Var,Abs)
    0x95, 0x05,   //   REPORT_COUNT (5)
    0x75, 0x01,   //   REPORT_SIZE (1)
    0x05, 0x08,   //   USAGE_PAGE (LEDs)
    0x19, 0x01,   //   USAGE_MINIMUM (Num Lock)
    0x29, 0x05,   //   USAGE_MAXIMUM (Kana)
    0x91, 0x02,   //   OUTPUT (Data,Var,Abs)
    0x95, 0x01,   //   REPORT_COUNT (1)
    0x75, 0x03,   //   REPORT_SIZE (3)
    0x91, 0x03,   //   OUTPUT (Cnst,Var,Abs)
    0x95, 0x06,   //   REPORT_COUNT (6)
    0x75, 0x08,   //   REPORT_SIZE (8)
    0x15, 0x00,   //   LOGICAL_MINIMUM (0)
    0x25, 0x81,   //   LOGICAL_MAXIMUM (129)  <= (müsste eigentlich "0x26, 0x81, 0x00," sein!)
    0x05, 0x07,   //   USAGE_PAGE (Keyboard)
    0x19, 0x00,   //   USAGE_MINIMUM (Reserved (no event indicated))
    0x29, 0x81,   //   USAGE_MAXIMUM (Volume Down)
    0x81, 0x00,   //   INPUT (Data,Ary,Abs)
    0xc0          // END_COLLECTION
};

Der fertige Testaufbau sieht aktuell so aus:

Wenn ich wieder Lust habe, möchte ich die blaue IBM-Taste so umfunktionieren, dass ich damit den Browser starten kann.


Nun zu dem LVDS/HDMI-Adapter...
Wie bereits erwähnt, wird die Spannung von Haus aus durch einen Linearregler begrenzt. Der macht das, indem er die überschüssige Leistung einfach in Wärme umwandelt, was natürlich auf Kosten der Effizienz geschieht. Der DC-DC-Wandler ist aber größer und ich muss mir noch überlegen, wo ich den unterbringe. Hier seht ihr die beiden mal unten links im Bild im Vergleich:


Der Odroid braucht btw. so 0,35 A im Idle. Zusammen mit dem LVDS-Adapter und Display (inkl. LEDs) komme ich also auf ~0,75 A, was 3,75 W entspricht. Mit der kleinen 5 Ah Powerbank würde ich die 10 h also nicht schaffen. Aber ich habe die Hoffnung, dass sich beim Odroid mit einem anderen Governor noch was einsparen lässt. Ansonsten kann ich den Akku ja immer noch austauschen. Nunja, erstmal muss er kommen, dann kann ich sehen, wie es in der Praxis aussieht :)

Ich habe noch kurz überlegt alternativ zu einem Intel Compute Stick für 100€ zu greifen, der ja immerhin einen vollwertigen x86-Prozessor mit 4 Kernen mitbringt. Aber das würde sich bei meinem Panel mit 1024x768 irgendwie nicht lohnen. Eine andere Alternative wäre es gewesen, auf den großen Pine64 zu warten, denn der bietet einen MIPI DSI-Port. Dann hätte ich dieses Panel hier verbauen können, zumal es gar nicht so teuer ist. Aber ich hab keine Lust mehr weiter zu warten und weiß auch nicht, wie der Softwaresupport des Pin64 mal sein wird.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh