VFD Display mit PT6312

IMG_20141126_075117Nachdem ich nun lange Zeit ein VFD Display inklusive PT6312 Controller in meiner Bastelkiste zu liegen hatte und mir auch schon zwei DC-DC Wandler für die Heiz und Kathodenspannung besorgt hatte, habe ich endlich die Zeit gefunden das mal zu testen.

Ein VFD Display anzusteuern ist ein lang gehegter Kindheitstraum von mir.

Ich habe früher schon mit Begeisterung, Elektronische Geräte auseinander genommen und teilweise wieder zusammen gebaut. Da sind mir natürlich die verschiedensten Displays unter gekommen. LED-Anzeigen, meist von ausgedienten Radioweckern und LCD anzeigen aus Uhren oder alten Taschenrechnern.

Das alles ließ sich auch meist mit einfachen Mitteln zum Leuchten zu bringen, da diese zum größten Teil ohne Controller aus kamen und es sich um 7-Segment Anzeigen handelte.

Dabei faszinierten mich am meisten die VFD Displays, zum Einen weil ich die nie zum dauerhaften Leuchten gebracht habe, zum Anderen kann man hier die Bestandteile sehen und die sehen einfach hoch kompliziert aus.

Damals gab es leider noch kein Internet in dem man sich Informationen beschaffen konnte und Bücher lesen ist auch nicht mein Ding.

 

Ich habe die Spannungsversorgung nach einer Anleitung aus dem Mikrocontroller Forum mit einem SIM1-0524, SIM1-0503 und eine Z-Diode zusammen gebaut.

Das Multimeter zeigte mit auch die erhofften Spannungen an VEE: -25,5V / F1: -20,1V / F2: -23,5V .

Nun ging es an die Ansteuerung des PT6312 über SPI. Das Ganze ist über ein Software SPI und einem ATMega32 realisiert. Leider zeigte das Display nicht die erwünschten Zeichen an. Ich habe dann zwei Abende mit Fehlersuche verbracht. Zuerst habe ich die Spannungsversorgung geprüft, geändert und getestet. Dann habe ich mir nochmal den Quellcode angeschaut. Tja, das erste mal einen Software SPI benutzt und nicht auf die BitOrder geachtet. Das konnte ich dann schnell ändern und siehe da, es geht.

Nun habe ich ein Funktionierendes VFD Display.

MSP430 InfoA (Calibrationdata) lost

Nachdem ich angefangen habe einen MSP430F2616 über BSL zu programmieren, habe ich zwischendurch ausversehen das Kalibrierungsregister Info A gelöscht. Zum Glück hatte ich einen Dump. Aber wie es der Zufall so will, habe ich beim dumpen auch noch die falsche Länge angegeben, was also dazu führte, dass ich die letzten beiden Register nicht hatte. Das waren ausgerechnet auch noch die für den 1MHz Takt.

Nachdem ich versucht habe, die letzten beiden Register durch errechnen, auslesen und vergleichen von anderen MSPs zu rekonstruieren, habe ich mich dann doch auf die Suche im Internet gemacht.

Nach einer Weile bin ich dann auf einen Artikel im TI Forum gestoßen, dieser Verwies dann auf das Paket „slac163“ (MSP430F21x2 Code Examples) und die darin enthaltene Datei „msp430x21x2_dco_flashcal.c“.

Das Programm ist recht simpel aufgebaut und erlaubt es zumindest die CPU Takt Kalibrierungsregister neu zu errechnen, alles was man dazu benötigt ist ein 32kHz Uhrenquarz, welcher an XIN und XOUT angeschlossen wird.

Da man solch ein Uhrenquarz so ziemlich in jedem Gerät findet, war das kein Problem.

Nach dem man das Programm geladen und gestartet hat, würde das Programm eine an P1.0 angeschlossene LED einschalten, sobald die Kalibrierungsdaten für 1MHz, 8MHz, 12MHz und 16 MHz wieder in das Kalibrierungsregister geschrieben wurden.

Da ich aber keine LED an diesem Port hatte, habe ich einfach ein paar Sekunden gewartet. Danach konnte ich das Info A Register auslesen und dort waren alle Takt Daten wieder vorhanden.

Jetzt konnte ich die Sicherung wieder vervollständigen und das Register komplett wiederherstellen.

Eine Interessante Möglichkeit bietet dies zudem, man kann noch anderen Takt Frequenzen kalibrieren lassen. Optimal sind welche, die sich durch 4096Hz teilen lassen.

Ich habe in einem Beitrag gelesen, dass es je nach Chip möglich ist diesen bis auf 19-20MHz zu Takten. Der wird dann aber bestimmt sehr instabil.

 

Zur Sicherheit habe ich nun das komplette Info A Register mit in das Programm integriert, sodass dieses auch beim BSL Flash wieder gesetzt wird.

 

Jetzt noch zur Frage, warum BSL?, weil ich kein MSP-FET für den JTAG habe und der Chip kein Spy-Bi-Wire hat, welches ich über ein Launchpad benutzen könnte.

Tolino Shine 1.3 Root

Pinbelegung

Pinbelegung

Leider ist momentan keine Möglichkeit bekannt den Tolino Shine mit aktueller Software zu Rooten, ohne das Gehäuse zu öffnen.

Mit ein bisschen Technischem Verständnis und ein wenig Fingerspitzengefühl kann man Root realisieren ohne das Gerät ganz auseinander zu bauen.

Benötigt wird hierfür ein 3,3V UART zu Seriell Wandler, FTDI, MAX3232 oder ähnliches. Ein starker Fingernagel oder ein Gitarrenplektrum (Tipp von Vaske). Die Plattform-Tools aus dem Google Android Developer Toolkit. Und die SU Binary aus dem ALLESebook.de Tolino Shine Root Kit.

Zunächst öffnet man das Gehäuse und Schließt die Console an, wie in meinem Artikel Analyse des Tolino Shine beschrieben.

Nun öffnet man ein Terminal Programm (Putty) und verbindet sich mit der seriellen Schnittstelle und der Geschwindigkeit 115200 Mode 8n1.

Danach muss der eingeschaltet werden, im Sleep Modus wird das ganze System tatsächlich in den Ruhezustand versetzt und es passiert Garnichts.

Es kann sein, dass man die Kabelverbindung ein bisschen justieren muss, bis es geht.

Nach dem drücken der Enter Taste, sollte man einen Prompt bekommen und mit dem Befehl id sieht man auch gleich, dass man schon root ist.

bash-3.2# id
uid=0(root) gid=1007(log)

Jetzt startet man den ADB wie folgt.

bash-3.2# start adbd
warning: 'adbd' uses 32-bit capabilities (legacy support in use)
enabling adb

Schließt man das Gerät nun über USB an den PC, wird man feststellen, dass ein neues Device hinzugekommen ist, in der Regel wird er dafür keinen Treiber finden, da die ADB Device ID vom Tolino Shine dem Treiber unbekannt ist.

Nun muss man noch die Datei android_winusb.inf aus dem Android ADB USB Driver editieren und die folgende Zeile in den beiden Abschnitten [Google.NTx86] und [Google.NTamd64] einfügen.

%CompositeAdbInterface%     = USB_Install, USB\VID_1F85&PID_1689&MI_01

Der Treiber kann nun für das neue Device ausgewählt und installiert werden.

Jetzt muss man nur noch dem adb client die USB ID übermitteln. Dazu muss die Datei %USERPROFILE%\.android\adb_usb.ini angelegt oder editiert werden, mit dem Inhalt 0x1f85 .

Der Befehl auf dem PC adb devices sollte nun den Tolio auflisten.

D:\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
2041****        device

Die SU Binary kann man bequem über den Explorer auf den Tolino kopieren, danach die Freigabe wieder deaktivieren.

Installation der SU Binary wie folgt über die serielle Console:

bash-3.2# mount -o rw,remount /dev/block/mmcblk0p2 /system
bash-3.2# ln /system/bin/busybox /system/bin/cp
bash-3.2# ln /system/bin/busybox /system/bin/vi
bash-3.2# cp /sdcard/su /system/xbin/su
bash-3.2# ln -s /system/xbin/su /system/bin/su
bash-3.2# chmod 6755 /system/xbin/su

Zeile 1: System Partition schreibbar mounten
Zeile 2: cp Kommando aktivieren
Zeile 3: vi Kommando aktivieren
Zeile 4: su Binary kopieren
Zeile 5: Symlink der su Binary anlegen
Zeile 6: Berechtigung der su Binary anpassen

Jetzt kann man über den PC die funktion der SU Binary testen:

D:\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>adb shell
$ su
su
# id
id
uid=0(root) gid=0(root) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet)

Damit nun der ADB bei einem Neustart des Tolino wieder mit gestartet wird, kann man in der Datei /system/bin/hw_check.sh den Befehl start adbd einfügen.

Höchstwahrscheinlich ist die ganze Prozedur nicht Updatesicher, da bei einem Update des Tolio die gesamte System Partition überschrieben wird. Mich persönlich stört das nicht, da ich meinen Tolino nicht ins WLan eingebunden habe und die Bücher nur über USB ablege.

Anker® 25W 5V / 5A 5-Port USB Ladegerät

2013-12-05-450

Anker Ladegerät

Das Ladegerät kam in einer kleinen und handlichen Verpackung, welche an Apple-Geräte erinnerte. Kein unnötiger Müll oder Platzverschwendung, was ich sehr positiv finde.

Im angeschlossenen Zustand brummt bzw. pfeift das Produkt. Dies hört allerdings auf, wenn Geräte zum Laden angeschlossen werden. Daher ist ein ständig mit Strom verbundenes Ladegerät nicht zu empfehlen – es sei denn man lädt seine Telefone, Tablets, eReader, etc ununterbrochen 😉

Die Beschriftung der Ports ist hilfreich (iPad – Samsung Tab – iPad – iPhone – Android), wenn man weiß wie viel Ampere das zu ladende Gerät benötigt, denn die Ports werden mit unterschiedlichen Stromstärken versorgt. Verwirrend kann es sein, wenn andere Produkte geladen werden sollen wie z. B. ein eReader, iPod, externe Akku;

Als kleiner Hinweis: Auf der Rückseite des Ladegeräts stehen die unterschiedlichen Amperezahlen nochmals als Unterstützung. Es sei jedoch gesagt, dass das Ladegerät nicht mehr als 5 Ampere auf einmal liefern kann.

Alles in allem bin ich mit dem Ladegerät zufrieden und vergebe 4 Sterne – 5 sind es aufgrund des Brummens nicht geworden.

Analyse des Tolino Shine

Nachdem der Tolino Shine bei uns zu Hause eingetrudelt ist, habe ich mich damit ein wenig beschäftigt.

Im Internet habe ich auch gleich ein paar Informationen gefunden, bezüglich root etc., leider ist das rooten ohne das Gerät zu öffnen seit dem Update 1.2 nicht mehr möglich, zumindest bis jetzt.

Wenn man doch dazu kommt und das Gerät öffnet, findet man dort, netter weise eine Micro SD die in einem Sockel Steckt, was natürlich das Verwandeln zu einem Ziegelstein nahezu unmöglich macht.

Nachdem ich ein paar Bilder eines geöffneten Shine angeschaut hatte und die Position der Seriellen Console gesehen habe, dachte ich mir, da müsste man doch ran kommen ohne das Gerät ganz aus einander zu bauen.

Mit einem starken Daumennagel konnte ich den Tolino, ohne das Gehäuse zu beschädigen, an der Seite öffnen. Bingo da lässt sich mit einer kleinen Kabelbrücke ran kommen.

Serielle Console

Serielle Console

Nun denn habe ich meinen 3,3V Seriell Wandler ausgepackt und ein Stück Flachbandkabel mit dem Rastermaß von 2,54mm, die Litze besteht aus jeweils einem Draht, sodass das ganze schön formstabil bleibt.

Die Enden habe ich ca. 2mm ab-isoliert und 45° nach unten gebogen. Länger als 2mm dürfen die Enden nicht sein, da es sonst nicht zwischen Platine und Display passt.

Adapterkabel

Adapterkabel

Ein bisschen fummelig stellte sich dann das richtige Platzieren der Kabelbrücke heraus, danach tat dann das Gehäuse sein Übriges um das Kabel in Position zu halten.

Alles in allem war ich in 5 Minuten damit fertig und hatte die Root Console des Tolino vor mir.

Anschluss

Anschluss

Der Rest war Fleißarbeit, einfach start adbd eingeben und schon startete der ADB. Dann noch schnell die su Binary installieren.

Schon konnte man das ganze wieder entfernen und das Gehäuse zu machen. Keine Schramme, kein Garnichts, sieht aus wie neu.

So konnte ich dann auf dem Tolino mit der Version 1.3.0 alle schönen Apps (Launcher, Button, …) wieder installieren und das alles ohne das Gerät auseinander bauen zu müssen.

Man sollte sich dann noch in einem der Startskripte eine ADB Backdoor einbauen, damit dieser auch nach einem Neustart wieder da ist.

Ach ja, bevor ich irgendetwas gemacht habe, habe ich mir erst mal die eingebaute SD Karte per dd auf eine Externe gesichert (Sicher ist sicher!).

Brita Meter Batterie wechsel

Wenn das Brita Meter irgendwann nichts mehr anzeigt, ist es Zeit die Batterie zu wechseln.

Im ersten Moment denkt man, ok einfach öffnen, Batterie tauschen, zu machen und wieder ein schalten.

Soweit so gut.

Leider stellte sich heraus, das sich das Brita Meter etwas zickig hat nach dem Einschalten. Nachdem das Teil wieder mit Wasser in Berührung gekommen war, stellte sich leider kein erhofftes Tropf-bild ein. Die Anzeige fror ein oder fing an zu flackern.

Nach einigen Tests, habe ich dann herausgefunden, dass sich das Gerät erst initialisieren muss.

Das bedeutet, nach dem Batteriewechsel, das Gerät einschalten, aber den Knopf weiter gedrückt halten. Nach ca. 10-15 Sekunden des wilden rum blinken, schaltet sich das Display wieder aus.

Danach kann das Brita Meter wieder in üblicher Weise in Betrieb genommen werden, und siehe da es geht wieder.

IMG_007

Leer

IMG_0008

Öffnen

IMG_0009

Innen

IMG_0010

Klammer

IMG_0011

Fehler

Trainz KIND:Fixedtrack Turnout Attachment Points

If you create the default mesh for a turnout/junction with the attachment points, you need to ensure that you have at minimum 3 attachment points for each track.

If not you can run into serious problems, for example the junction is broken or the track spline looks not like it should.

In the following picture you can see what’s happen with my junction asset.

(left) junction damaged due wrong angle, (middle) straight track is not straight, (right) the right turnout is now an left turnout

(left) junction damaged due wrong angle, (middle) straight track is not straight, (right) the right turnout is now an left turnout

The direction (angle) of the Y axle is really important. The angle of attachment points within the track is irrelevant. The Y axle of end attachment points must point in the direction where the track will continue. This is also very important for the junction attachment point, because this is the end of the straight track. If this is not correct, the junction will look like some of them above.

Trainz KIND:Track height

In Trainz the rolling stock will follow the base track spline at a height of 300mm so be sure that the top of the Rail is at 0.3 Blender Units.

If you create Fixedtrack Assets, then top of the Rail should be the Z value of the Track Attachment Point plus 0.3 Units.

Video of 750mm Trainz FixedTrack Turnout

Currently I don’t know why the HTML5 Videos don’t work on my page, so here is the link to Video File:

Trainz FixedTrack Turnout Movie

Trainz 750mm Projekt

Ich habe in den letzten Tagen verschiedene Trainz Content Objekte fertig bekommen.

Das ganze Thema habe ich Trainz 750mm Projekt getauft, da ich hauptsächlich Objekte für 750mm Gleis erstelle.

Warum neue 750mm Objekte und nicht 760mm wie Standard in Trainz ist; ganz einfach, zum einen hat das existierende Material nicht meinen Anforderungen entsprochen (Qualität, Aufbau…), es existieren glaube ich keine reinen 750mm Objekte, und wenn ich schon mal Content Objekte designe, dann kann ich das gleich in der Spurweite machen, die ich auch in der Strecke verwende die ich Stück für Stück erstelle.

Der erste Meilenstein war ein einfaches Track Objekt mit 5 LOD Stufen. Das ganze ging doch recht flott über die Bühne, sodass ich das gleich noch für 1435mm kopiert habe.

750mm Track

750mm Track

1435mm Track

1435mm Track

Nachdem das geschafft war, kam der bisher schwierigste Teil: wir bauen uns eine Weiche.

Mit dem zweiten Meilenstein (Weiche) hatte ich arge Probleme. Nachdem dann die ersten Hürden, wie richtige Animation und Funktion endlich behoben waren, stellten mich noch die LOD Stufen ein wenig auf die Probe. Aber das war dann glücklicherweise auch irgendwann geschafft und die Stellhebel waren dann nur noch ein Klacks.

Weiche (Turnout)

Weiche (Turnout)

Ich habe eigendlich auch ein Video von der Animation, aber irgendwie klappt das einbetten hier nicht. Wenn ich es irgendwann hinbekommen habe, dann poste ich es noch.

Die ganzen Probleme die ich hatte bei der Erstellung der Objekte werde ich dann in einzelnen Posts nochmal genauer erläutern.

Die Weichen lassen sich leider nur im Trainz 12 SP1 Surveyor platzieren oder ändern. In der Deutschen Version gibt es leider noch kein Service Pack 1 und ohne dem, gehen die FixedTrack Objekte beim anfassen immer kaputt. Ich habe mir dann die Original Englische Version besorgt und da klappt alles.

Bei der Weiche handelt es sich um eine 750mm Weiche mit Stahlschwellen, einem Radius von 100m und einer Neigung von 1:6,5 .

Im Meilenstein 3 habe ich dann über die Möglichkeit eines Dreischienengleises nachgedacht und das Trainz Wiki eingehend nach einer Lösung durchforstet und was soll ich sagen, ich bin fündig geworden.

Voraussetzung ist auch wieder Trainz 12 SP1 also Trainz Build 3.7.

Ich habe dann angefangen damit rum zu experimentieren und erst mal ein einfaches Track Objekt erstellt. Für die genaue Erklärung werde ich separate Posts erstellen.

Was ihr seht, ist ein einfaches Dreischienengleis einmal Gerendert, im Surveyor und im Game.

Render 2 Way Track

Render 2 Way Track

Surveyor 2 Way Track

Surveyor 2 Way Track

Game 2 Way Track

Game 2 Way Track

Um das Dreischienengleis zu vervollständigen, werde ich als 4. Meilenstein verschiedene Weichen dafür erstellen.

Alles in allem bin ich schon sehr weit gekommen.

So, das wars erst mal.