3D Konstruktion mit OpenSCAD – Verschieben und Kombinieren

In diesem Teil geht es um das bewegen, Drehen und Kombinieren von Objekten .

Zuerst erzeugen wir wieder einen Würfel. Das solltet ihr inzwischen können.

Der Würfel ist ja mit einer Ecke im Nullpunkt des Koordinatensystems platziert.  Wenn wir den Würfel aber an einer anderen Stelle benötigen, müssen wir ihn verschieben. Der dafür benötigte Befehl heißt „translate“. Er wird vor das zu verschiebende Objekt geschrieben und benötigt, genau wie ein Kubus drei Werte, je für X Y und Z Richtung. Das sieht also beispielsweise so aus:

translate([5,0,0])cube(10);

Das Ergebnis ist dann

ein um 5 mm entlang der X- Achse verschobener Würfel mit 10 mm Kantenlänge. So lange wie wir nur ein einziges Objekt haben, spielt es eigentlich keine Rolle, wo das Objekt platziert ist. Das ändert sich aber schlagartig, wenn man mehr als ein Objekt benötigt.

Wir erzeugen nun einen Würfel mit 10 mm Kantenlänge und eine Kugel mit 10 mm Durchmesser. Das sollte kein Problem sein, haben wir beides schon gemacht.  Um das aktuelle Problem besonders zu verdeutlichen, platzieren wir den Würfel Zentriert, also mit center=true als Parameter.

cube(10,true);
sphere(d=10, $fn=300);

Das Ergebnis ist zum einen erstaunlich, zum anderen aber auch nachvollziehbar:

Wir sehen nur den Würfel, von der Kugel fehlt jede Spur. Denkt man mal kurz darüber nach, ist schnell klar, die Kugel ist deswegen nicht zu sehen, weil sie vollständig im Inneren des Würfels liegt.

Hier kommt jetzt der translate Befehl zum Zuge. Wir bewegen die Kugel einfach um 10 mm entlang der Z Achse:

cube(10,true);
translate([0,0,10])sphere(d=10, $fn=300);

und schon taucht sie wie von Zauberhand auf und thront auf dem Würfel.

Man muss die Kugel natürlich nicht genau auf den Würfel setzen. Man kann sie darüber oder daneben platzieren oder auch partiell im Würfel versenken. Natürlich kann man auch den Würfel auf die Kugel setzen, wenn man möchte. Zur Verdeutlichung heben wir die Kugel mal nur um 5 mm an:

cube(10,true);
translate([0,0,5])sphere(d=10, $fn=300);

Das liefert dann dieses Ergebnis:

Und schon haben wir einen Buzzer konstruiert.

Bei einer Kugel spielt die Orientierung im Raum ja keine Rolle, bei einem Kubus aber durchaus. Um Objekte zu rotieren (englisch rotate) kommt, welch Wunder, der Befehl rotate zum Einsatz.  Die Syntax ist praktisch identisch zu translate, nur das man bei rotate eben die Rotation in° angibt

rotate([45,45,45])cube(10);

Ergibt:

Man kann sehen, das ich die Kugel aus kommentiert habe (also die Zeile mit // eingeleitet habe). Somit wird sie ignoriert und ich kann sie im nächsten Schritt schnell wieder einbauen, ohne alles neu tippen zu müssen…

Nun binden wir die Kugel wieder ein und platzieren sie genau auf die eine Ecke des Würfels. dafür braucht man ein wenig Geometrie- Kenntnisse aus der Schule. Schon mal was von PI gehört? Klar, da war doch was… Irgendwas mit Kreis und 3,14.. Also versuchen wir das einfach mal:

rotate([45,45,45])cube(10);
translate([-3.14,-3.14,-3.14])sphere(d=10, $fn=300);

Erstaunlicherweise kommt dabei das raus:

ich gebe ja zu, ich habe es vorher ausprobiert und deswegen die 10 mm Durchmesser gewählt. Bei 20 mm Durchmesser hätte ich -6,28 nehmen müssen, usw… Eine kurze Formel dafür wäre (d/10) * 3,14

So könnte man das Objekt aber nicht drucken, da sich Würfel und Kugel nur in einem einzigen winzigen Punkt berühren. Man müsste entweder die Verbindung durch zusätzliche Objekte, z.B. einen Zylinder verstärken oder man „versenkt“ die Kugel teilweise im Würfel:

rotate([45,45,45])cube(10);
translate([-2.5,-2.5,-2.5])sphere(d=10, $fn=300);

Mit folgendem Ergebnis:

Nun ist die Verbindung zwischen Kugel und Würfel erheblich stabiler.

Eine weitere Operation muss ich noch behandeln, bevor wir tatsächlich anfangen können, etwas „Produktives“ zu machen. Stellen wir uns mal vor, wir möchten gerne Löcher in der Grundplatte unserer Servo- Halterung haben, um sie leicht anschrauben zu können.

Also konstruieren wir zunächst die Grundplatte selbst. Sie soll in diesem Beispiel 65 mm lang und 30 mm breit sein, sowie 3 mm dick. Die Maße habe ich für ein Modelcraft RS-2 Servo, welche es vor Jahren mal bei Conrad im Angebot für 2€ das Stück gab, ausgewählt. Dazu benötigen wir was? Natürlich einen Kubus mit [65,30,3] als Parameter.

cube([65,30,3]);

Da unsere Platte nun über das Sichtfeld hinaus ragt, können bzw. müssen wir die Ansicht verschieben oder verkleinern. Das macht man mit der Maus. Je nach dem, ob man rechts oder links geklickt hält, verändert sich die Position und/oder Perspektive. Mit dem Mausrad kann man hinein oder hinaus zoomen.

Viele der Knöpfe unterhalb der 3D Ansicht dienen dazu, die Position bzw. Perspektive zu verändern.  Wenn ihr euch dabei völlig verheddert, keine Sorge. Dafür gibt es einen „Panik- Knopf“ und zwar den Kreis mit dem Pfeil drin, der sechste Knopf von links. Wenn ihr da drauf klickt, wird die Ansicht wieder auf Normal eingestellt…

Ich habe in diesem Fall eine Ansicht ziemlich von Oben gewählt, weil uns das gleich beim Erzeugen der Löcher hilft.

Das ist also unsere Grundplatte. Nun müssen wir Löcher hinein bohren. Natürlich virtuell in 3D und nicht später real am fertig gedruckten Objekt (was theoretisch auch funktionieren würde).

Dazu verwenden wir nun Zylinder, die wir von der Grundplatte abziehen werden. Der Zylinder soll 3,2 mm Durchmesser haben damit 3 mm Schrauben problemlos durchpassen. Und er muss etwas höher sein, als die eigentliche Grundplatte, damit die Öffnung auch tatsächlich vollständig wird.

cylinder(h=5, d=3.2, $fn = 300);

Das fügen wir nun unserem „Programm“ hinzu.

Diesen Zylinder werden wir später von der Grundplatte abziehen. Zunächst muss er aber erst mal an die richtige Stelle verschoben werden. In Z Richtung verschieben wir ihn um -1, damit er auch sicher komplett durch die Grundplatte ragt. Deswegen haben wir ihn ja 5 mm hoch und nicht 3 mm hoch gemacht. In X und Y Richtung verschieben wir ihn um 4 mm, also

translate([4,4,-1])cylinder(h=5, d=3.2, $fn = 300);

Nun ist der Zylinder richtig platziert:

Erinnert ein ganz klein wenig an Lego, oder? Jetzt müssen wir den Zylinder „nur“ noch von der Grundplatte abziehen.

Dafür gibt es den Befehl „difference“. Da wir es hier mit einer Boolschen Operation zu tun haben, ist die Syntax etwas komplizierter als bei den bisherigen Beispielen.

Der difference Befehl muss vor den Objekten stehen, die voneinander abgezogen werden sollen. Außerdem müssen diese Objekte mit geschweiften Klammern eingefasst werden. Das erste Objekt ist das, von dem das andere  Objekt abgezogen wird. Da differnece keine eigenen Parameter hat, bleiben die () leer. Das Ganze sieht dann so aus:

difference() {
cube([65,30,3]);
translate([4,4,-1])cylinder(h=5, d=3.2, $fn = 300);
}

Und als Ergebnis erhalten wir das:

Somit haben wir eine Grundplatte mit einem schönen Schraubenloch darin.

Wir wollen aber nicht nur eine Schraube verwenden, sondern in jeder Ecke eine. Also erzeugen wir nicht nur einen Zylinder, sondern vier. Das kann man blitzschnell mit Kopieren und (dreimal) Einfügen erledigen. Danach muss man nur noch die Koordinaten entsprechend anpassen. Das erste „Loch“ hatte jeweils 4 mm Abstand vom Nullpunkt. Das zweite Loch hat in Y Richtung 30 – 4 = 26 mm Abstand. 30 mm ist unsere Grundplatte breit. 4 mm soll der Abstand des Loches sein, also 30 -4 = 26 ist der Wert für die Verschiebung. In X Richtung muss die Verschiebung 65 -4 = 61 betragen. Das vierte Loch bekommt 61 und 26 mm Verschiebung…

difference() {
cube([65,30,3]);
translate([4,4,-1])cylinder(h=5, d=3.2, $fn = 300);
translate([4,26,-1])cylinder(h=5, d=3.2, $fn = 300);
translate([61,4,-1])cylinder(h=5, d=3.2, $fn = 300);
translate([61,26,-1])cylinder(h=5, d=3.2, $fn = 300);
}

Voila, unsere Grundplatte ist fertig:

Das ganze ist jetzt schon eine etwas komplexere Operation gewesen. Aber man gewöhnt sich da ganz schnell dran, finde ich.

Hiermit sind die Basics abgearbeitet und wir können im nächsten Teil ernsthaft anfangen, unseren Halter zu konstruieren. Das erfolgt dann im nächsten Abschnitt…

ZurückWeiter

 

3D Konstruktion mit OpenSCAD – Einfache Objekte

Im dritten Teil werden wir verschiedene Grundkörper erzeugen und verändern.

Den Würfel haben wir ja mit dem Befehl „cube“ erzeugt. Cube kann aber mehr als Würfel erzeugen. Dazu müssen wir statt der Kantenlänge eben drei Werte, Länge, Breite und Höhe angeben…

cube([10,10,10]);

Die eckigen Klammern gruppieren zusammengehörende Werte. Sie dürfen auch nicht fehlen, da sonst ebenfalls nichts mehr geht. Die Werte oben ergeben einen Würfel mit 10 mm Kantenlänge. Das hatten wir doch schon… Ja, aber nun können wir statt einem Würfel einen Kubus mit unterschiedlichen Kantenlängen erzeugen. Dazu müssen wir nur einen oder mehrere der Werte in der eckigen Klammer verändern. Also z.B.

cube([20,10,10]);

Das ergibt einen Kubus von 20 x 10 x 10 mm Abmessungen.

Durch verschiedene Werte kann man ganz unterschiedliche Objekte erzeugen, ganz wie man sie braucht. Spielt mal ein wenig mit unterschiedlichen Werten herum, um eine Gefühl dafür zu bekommen. Falls ihr eine genauere Größenangabe als 1 mm benötigt, könnt ihr auch Nachkommastellen angeben. Allerdings darf dafür kein Komma, sondern wie im Angelsächsischen Raum üblich, muss ein Punkt verwendet werden.

cube([20,15,0.5]);

Sonst würde es ja ein Durcheinander mit den verschiedenen Achsen geben, die ja durch Kommata getrennt werden. Obige Werte ergeben eine Art Platte mit 0,5 mm Dicke und 20 x 15 mm Abmessungen.

Es gibt noch einige andere Grundkörper, die wir uns nun anschauen wollen. Andere Grundkörper benötigen natürlich auch andere Parameter als ein Kubus, der mit Länge, Breite und Höhe vollständig  beschrieben ist.

Das nächste Objekt was wir uns anschauen wollen, ist eine Kugel (englisch Sphere). Die benötigt  entweder den Durchmesser oder den Radius, um vollständig beschrieben zu sein. In OpenSCAD kann man beides verwenden, also r = 5 oder d = 10 liefert dasselbe Ergebnis.  Der genaue Befehl lautet also

sphere(d = 10);

und ergibt folgendes:

Was zum einen auffällt, ist das die Kugel mit dem Mittelpunkt auf dem Nullpunkt des Koordinatensystems liegt, wohingegen der Würfel mit eine Ecke auf dem Nullpunkt positioniert wurde.  Beim Würfel (und Zylinder) kann man das umstellen, sofern gewünscht. Dazu muss man hinter den Werten für die Abmessungen mit einem Komma getrennt „true“ oder „center = true“ einfügen.

Doch zurück zur Kugel. Wenn wir uns die Vorschau genauer anschauen, so sieht das eher wie eine 1970er Jahre Diskokugel aus als eine schöne glatte Kugel. Das liegt daran, das alle 3D Programme intern mit Dreiecken rechnen. Daraus lässt sich mit dem geringsten Aufwand fast jede Form erzeugen. Nur alles, was wirklich rund ist, erfordert extrem kleine und extrem viele „Dreiecke“, bis wir das als „echte“ Rundung akzeptieren können. Da das aber viel Rechenaufwand viel Zeit und viel Speicherplatz bedeutet, kann man die „Glattheit“ der Rundungen selbst festlegen. Je glatter das Objekt wird, desto mehr Dreiecke sind nötig. Bei einer Kugel gibt es deswegen zusätzliche Parameter, um die Oberfläche im Detail zu beeinflussen. Wir verwenden der Einfachheit halber vorrangig nur die „Auflösung“, welche mit $fn = xxx festgelegt wird. Also

sphere(d = 10, $fn = 300);

ergibt dann das:

So sieht die Kugel schon eher nach Kugel aus. Um mal eine Vorstellung vom Rechenaufwand zu bekommen. Die „Diskokugel“ hat 18 tausendstel Sekunden für die Vorschau benötigt, die glattere Version immerhin schon 133 Tausendstel, also fast 8 mal so lange.  Je größer der Wert für $fn, desto glatter wird die Kugel, desto länger dauert das Rendern und desto größer wird die STL Datei. Aus Erfahrung heraus weiß ich, das Werte zwischen 100 und 300 gute Ergebnisse bei vertretbarem Aufwand bedeuten.

Neben Kugel und Kubus gibt es in OpenSCAD noch zwei weitere Grundkörper, Zylinder (englisch cylinder) und  Polyeder (Englisch polyhedron). Ein Polyeder kann wirklich jede beliebige Form annehmen und ist der universellste Grundkörper überhaupt. Leider ist er deswegen auch extrem kompliziert. Bisher hatte ich es noch nie nötig, mich damit zu beschäftigen. Womit wir uns hier aber unbedingt noch beschäftigen müssen, ist der Zylinder. Ein ebenfalls sehr nützlicher und vielseitiger Grundkörper.

Beim Zylinder benötigt man den Durchmesser (d) oder Radius (r), wie bei der Kugel. Zusätzlich muss man aber auch die Höhe (h) angeben:

cylinder(h=10, d=10);

Ergibt dann das:

Genau wie bei der Kugel können wir mit $fn die Seiten glätten.

cylinder(h=10, d=10, $fn = 300);

ergibt

Der Zylinder kann aber noch viel mehr. Man kann auch zwei verschiedene Radien bzw. Durchmesser angeben.

cylinder(h=10, d1=10, d2=0, $fn=300);

Damit bekommt man einen Kegel:

Man kann für d2 auch Werte größer als 0 verwenden,

cylinder(h=10, d1=10, d2=5, $fn=300);

das ergibt

Im Falle des Zylinders kann man mit der Glattheit $fn aber auch ganz andere Effekte erzielen, Wählen wir spaßeshalber mal 4 als Wert für $fn:

cylinder(h=10, d1=20, d2=0, $fn=4);

und schon haben wir…

eine Pyramide.

Das soll es mit den Grundkörpern gewesen sein. Ihr habt hoffentlich eine Einblick bekommen, was es alles so gibt. Im nächsten Kapitel werden wir die Körper verschieben und modifizieren lernen.

ZurückWeiter

3D Konstruktion mit OpenSCAD – Die Grundlagen

Hier geht es um die Grundlagen, um das GUI und die ersten einfachen Objekte.

Ich gehe davon aus, das OpenSCAD bereits installiert worden ist.  Also starten wir das Programm einfach mal:

Links ist der schon erwähnte Editor zu finden, in dem wir später unsere Modelle kreieren. Rechts ist oben die Vorschau unserer Konstruktion und darunter ein oder zwei Boxen, die Informationen anzeigen. Zum einen die Konsole, in der alle Ausgaben von OpenSCAD anzeigt und eventuell (kann man ein- und ausschalten) eine Fehlerbox, in der explizit Fehler aufgelistet werden. Mir reicht die Ausgabe in der Konsole, weswegen ich die Fehlerbox in der Regel ausblende. Das geht oben im Menü unter „Fenster“.

Oberhalb des Editors und unterhalb der 3D Ansicht gibt es je eine Menüleiste mit verschiedenen Knöpfen. Die werde ich dann erklären, wenn wir sie brauchen. Nun können wir beginnen, unser Objekt zu konstruieren. Aber halt, bevor wir anfangen, noch ein kleiner Exkurs zum Thema „Kommentare“. Ein Kommentar ist etwas, das es in jeder Programmier- oder Skript- Sprache gibt. Allerdings macht ein Kommentar absolut gar nichts. Alle Kommentare werden in allen Sprachen vollständig ignoriert. Also wozu gibt es sie überhaupt? Nun, das ist ganz einfach zu erklären. Kommentare dienen dazu, den Code leichter lesbar und für andere Leute verständlicher zu machen. Auf diese Art kann man also bestimmte Abschnitte mit einer Art „Überschrift“ versehen oder auch z.B. Copyright- Notizen im Code verewigen. Außerdem kann man so bestimmte Bereiche vorübergehend deaktivieren, wenn man am Testen ist…  Kommentare werden bei OpenSCAD mit // eingeleitet.  Alles, was in einer Zeile nach einem Doppelslash // steht, wird einfach ignoriert.

Wir geben also eine Überschrift in den Editor ein:

// OpenSCAD Tutorial

und drücken anschließend die Enter Taste.  Nun gibt es eine zweite Zeile, was man an der 2 erkennen kann.

Jetzt werden wir  endlich unseren ersten Körper erzeugen. Machen wir z.B. mal einen Würfel mit exakt 10 mm Kantelänge. Das geht so:

cube(10);

cube ist der Befehl zum erzeugen eines Kubus. In den Klammern stehen die Maße und das Semikolon schließt den Befehl ab. Darauf muss man achten, denn wenn auch nur ein Semikolon am Ende fehlt (wird viel zu gerne vergessen, kann ich euch sagen), funktioniert gar nichts mehr.

Man kann sofort sehen, das unterschiedliche Farben für den Text verwendet werden. Das nennt sich „Syntax- Hervorhebung“ und ist ein elementarer Bestandteil eine guten Editors. Auf diese Art kann man sofort sehen, um was es sich bei dem Code handelt. Türkis ist ein Kommentar, Blau ein Befehl und Rot ein Wert. Andere Editoren verwenden andere Farben, aber der Effekt ist stets derselbe. Man kann die einzelnen Teile leichter auseinander halten, was ungemein hilfreich ist.

Damit haben wir unseren Würfel erzeugt. Aber wir sehen noch gar nichts in der Vorschau. Dazu müssen wir die Vorschau aktualisieren. Das geschieht nicht automatisch, um nicht ständig Fehlermeldungen zu bekommen, während man noch am Tippen ist. Um das zu machen, muss man nur auf den „Vorschau“ Knopf klicken.  Den gibt es sowohl oberhalb des Editors als auch unterhalb der 3D Ansicht. Es ist der Knopf mit dem >> und dem gestrichelten Würfel drauf, der Knopf ganz links unter der 3D Ansicht. Wenn euch die Funktion eines Knopfes nicht klar ist, einfach mal die Maus darüber fahren und einen Moment warten. Dann bekommt man eine kurze Erklärung. Falls es euch lieber ist, die Vorschau lässt sich auch durch die Taste F5 ausführen. Egal wie ausgelöst, der Effekt ist immer derselbe. Wir sehen endlich unser erstes Objekt.

Wir sehen nun in der 3D Ansicht eine Würfel mit exakt 10 mm Kantenlänge.

Apropos STL Export. Wenn wir wollen, können wir den Würfel jetzt schon als STL exportieren und ausdrucken. Vor dem Export muss das Objekt aber noch gerendert werden, denn die Vorschau ist nur eine grobe Skizze, nicht aber das fertige Objekt. Das geht mit dem Knopf direkt rechts neben dem Vorschau Knopf in beiden Menüleisten oder mit F6. Bei komplexen Objekten kann das durchaus mal eine Weile dauern, hier geht es aber genau so schnell wie die Vorschau. Auf meinem, nicht sehr starken PC dauert das Rendern genau 4/100 Sekunden…

Das Rendern ist erledigt und wir exportieren spaßeshalber den Würfel mal als STL Datei, wie man sie zum Drucken benötigt.

Dazu klicken wir auf den Export Knopf. Das ist der, auf dem STL steht und der sich in der Menüzeile über dem Editor direkt rechts neben dem Rendern Knopf befindet. Nun können wir einen Namen und den Speicherort für unsere STL Datei festlegen. Ich habe die Datei unter „Würfel_10“ abgespeichert. Diese STL Datei können wir direkt in unser Slicer Programm (ist immer beim 3D Drucker dabei)  einlesen. Bei meinem Elegoo Mars ist das Programm Chitubox dabei. Bei eurem Drucker könnte auch ein ganz anderes Programm dabei sein. Die Aufgaben dieser Programme sind aber eigentlich immer dieselben.

Das war es dann auch schon. Wir haben ein 3D Objekt erstellt, welches man direkt ausdrucken oder zu einem Dienstleister senden kann.

Eigentlich könnten wir jetzt aufhören, oder?  Spaß beiseite, das war erst der Anfang. Aber zumindest haben wir den kompletten Prozess einmal durchgespielt…

In der Zeit, die ich brauche, um in FreeCAD die passende Workbench auszuwählen, habe ich in OpenSCAD den Würfel schon im 3D Drucker…

Das zu lesen dauert 1000 mal länger als es zu machen, von daher…

Im nächsten Teil geht es dann um das verändern der verschiedenen Grundkörper.

ZurückWeiter

3D Konstruktion mit OpenSCAD – Einführung

Heute möchte ich euch einen kleinen Schnupperkurs in 3D Konstruktion mit dem Open Source Tool OpenSCAD geben. Ich bin selbst auch noch keine Leuchte, aber vielleicht ist gerade das ein Vorteil. Für jemand, der tagtäglich mit einem Programm arbeitet ist es oft sehr schwer, Probleme zu sehen, die ein Einsteiger vielleicht haben könnte. Da ich selbst noch Einsteiger bin, stolpere ich bestimmt über alle denkbaren und auch einige undenkbare Fallstricke…

Es gibt sehr viele Tools, um 3D Objekte am PC zu konstruieren. Von fast schon „kindertauglichen“ Geschichten wie Tinkercad bis hin zu Hochprofessionellen Tools wie AutoCAD oder Solidworks. Darunter sind auch einige, die man, zumindest als Privatperson, kostenlos nutzen kann. Das trifft z.B. auf FreeCAD oder Fusion 360 zu, Auch OpenSCAD gehört als OpenSource Software natürlich zu den kostenlosen Programmen. Im Gegensatz etwa zu Fusion 360 darf man OpenSCAD auch im professionellen Umfeld kostenlos verwenden, wenn man mag.

Was unterscheidet OpenSCAD von dem wesentlich bekannteren FreeCAD? Nun, in FreeCAD hat man ein aufwändiges GUI in dem man auf unzähligen „Workbenches“ unglaublich viele komplizierte Sachen machen kann. Die meisten anderen Tools, auch die Professionellen, sind da ganz ähnlich gestrickt.

OpenSCAD ist einfach anders und dadurch zumindest für mich viel einfacher und leichter zu verstehen. In OpenSCAD gibt es zwar auch ein GUI, das dient aber vorrangig dazu die eigene Arbeit ansehen zu können. Das eigentliche Konstruieren geschieht in einem Text Editor. Ein entsprechender Editor ist eingebaut. Man kann aber auch extern, z.B. mit Notepad++ arbeiten. Mir hat der interne Editor bisher immer gereicht. Auch hier erschafft man sein Modell aus Grundkörpern, die skaliert, verschoben, addiert, subtrahiert,…. werden. Das Grundprinzip ist in vielen derartigen Programmen ganz ähnlich. Allerdings werden die Manipulationen an den Körpern in der GUI und nicht in Formeln durchgeführt. Mir behagt das klare Tippen von exakten Positionen und Abmessungen einfach mehr, als etwa ein Körper mit der Maus so zu verändern, wie ich ihn benötige. OpenSCAD ist so eine Art Programmieren, aber mit wenigen, leicht zu verstehenden Befehlen und Funktionen.

Da man wie in „richtigen“ Programmiersprachen auch mit Variablen arbeiten kann, hat OpenSCAD ein Alleinstellungsmerkmal, die freie Parametrierbarkeit. Nicht umsonst sind nahezu alle parametrierbaren Designs auf Thingiverse mit OpenSCAD hergestellt worden. Was bedeutet diese freie Paramtrierbarkeit nun genau?. Dazu werden wir in unserem ersten Beispiel eines Servo- Halters für verschiedene RC Servos  noch mal genauer anschauen. Für jetzt so viel… Man legt am Anfang einige Variablen fest und weist ihnen Werte zu. Sagen wir mal:

$l = 7;

Wenn wir nun irgendwo in unserem „Programm“ nun $l (für Länge) einfügen wird hier immer der Wert 7 genutzt, wie wir es festgelegt haben. Durch dieses Definieren am Anfang kann man nur durch anpassen dieses einen Wertes das Objekt in ganz unterschiedlichen Größen und Formen erstellen.

Im Baubericht über meine Drehscheibe habe ich ein Adapter für den Stepper Motor vorgestellt. Dieser Adapter ist ebenfalls parametrierbar, um ihn an unterschiedliche Höhen und Durchmesser anpassen zu können, ohne jedes Mal das ganze Teil neu konstruieren zu müssen.

Da ich sonst in AutoIt programmiere und hier alle Variablen ein $ vorangestellt haben müssen, habe ich mir auch in OpenSCAD angewöhnt, eine Variable mit dem vorangestellten $ zu kennzeichnen. Das ist bei OpenSCAD nicht nötig. Man kann hier die Variablen völlig frei benennen, ganz nach eigenem Geschmack. Also eben auch mit einem voran gestellten $…  Das erhöht die Übersicht, zumindest für mich…

Für unser erstes Übungsobjekt, einen Halter für RC Servos zum Weichen schalten, Tore öffnen, Signale stellen usw… ist die Parametrierbarkeit schon fast zwingend. Schließlich gibt es Dutzende von verschiedenen Größen für RC Servos. Und selten kommt man mit nur einer Größe aus. Wenn wir nun von vorne herein ein Auge darauf haben, müssen wir nur noch, wenn uns eine neue Servo- Größe unter kommt, die Abmessungen in den Anfang unseres Designs übertragen und der Halter sollte sofort wieder passen.

Doch bevor wir unseren Servo Halter konstruieren, müssen wir einige ganz elementare Basics lernen. Das lässt sich leider nicht vermeiden. Auf der nächsten Seite stelle ich zuerst die GUI von OpenSCAD vor und zeige den Umgang mit Grundkörpern.

Weiter

Android TV Box als Hardware für die Roco Z21 App

Heute möchte ich mal etwas „artfremd“ werden. Ich beschäftige mich hier mit etwas, das im Streaming Media Bereich bekannt ist und auch dafür entwickelt wurde.  Der Modellbahn- Bezug ergibt sich über die App zur Steuerung der Roco/Fleischmann Z21 Digitalzentrale. Wozu eine Digitalzentrale, wenn ich doch mit RC Funkfernsteuerung und Akku fahre? Na ja, zum einen werden die Weichen per DCC gesteuert und zum Anderen gibt es Nachschub- Probleme bei den Empfängern. Deswegen werde ich wohl noch eine ganze Weile „zweigleisig“ also mit RC und DCC parallel fahren müssen.

(Bildquelle: z21.eu – Das Bild lässt sich anklicken um auf die Hersteller Seite zu gelangen.)

Deswegen zuerst einen kleinen Exkurs um die Z21 vorzustellen. Bei der Z21 handelt es sich um eine moderne Digitalzentrale, vorrangig für das international genormte DCC Protokoll. Es ist aber auch möglich, das alte Märklin Format „Motorola“ zu verwenden. Selectrix oder MFX werden nicht unterstützt. Eigentlich ist die Z21 nicht eine Zentrale, sondern eine Familie von Zentralen. Aktuell gibt es die Z21, die Z21 XL und die z21 Start. Die Z21 und Z21 XL unterscheiden sich nur durch den eingebauten Booster. Die Z21 hat genau wie die z21 Start einen 3Ampere Booster, die Z21 XL einen 6 Ampere Booster, womit sie vor allem für große Spurweiten von Interesse ist. Daneben gab es mal die z21 (ohne „Start“). Die Zentralen mit kleinem „Z“ sind die Einsteiger- Zentralen und auch in Startsets der Marken Roco und Fleischmann enthalten. Sie unterscheiden sich zuerst mal durch die Farbe (die „Z“ sind schwarz, die „z“ sind weiß)  im Preis und bei den Anschlussmöglichkeiten. Da der Unterschied zwischen der z21 und der Z21 für sehr Viele im Alltag nicht sonderlich störend ist, haben auf Grund des doch heftigen Preis- Unterschieds zu viele Leute zu der „kleinen“ z21 gegriffen. Deswegen wurde die abgespeckte z21 Start als Nachfolger auf den Markt gebracht. Die Hardware der beiden z21 Varianten unterscheidet sich überhaupt nicht. Bei der z21 Start ist nur die Software künstlich „verkrüppelt“ worden. Das kann man durch den Kauf eines „Freischaltcodes“, der gut 30€ kostet aber wieder rückgängig machen. Wenn man die z21 wirklich verwenden und sich nicht auf einen „besseren Multimaus- Verstärker“ beschränken lassen will, ist das Freischalten zwingend notwendig…

So weit nichts neues. Was die Z21 Familie aber besonders macht, ist das konsequente Einbinden von moderner Technik in die Modellbahn. Dazu kommuniziert die Z21 über das heimische Netzwerk bzw über ein extra für die Modellbahn aufgebautes Netzwerk mit Hilfe des mitgelieferten Billig- WLan Routers der Firma TP-Link. So gibt es Apps für Android und iOS, um darüber die ganze Anlage zu steuern, vorhandene Multimäuse zu aktualisieren uvm. Durch die Apps, die vorbildlich kostenlos bereitgestellt werden, kann jedes Smartphone in nullkommanix zu einem Drahtlos Handregler werden. Gäste können so mit ihrem eigenen Smartphone Loks und auch Weichen etc per WLan steuern und kontrollieren…  Dazu wird ein Z21 Protokoll genannter Standard verwendet, der inzwischen auch von anderen Herstellern genutzt wird. Neben kommerziellen Zentralen wie etwa der Digikeijs DR 5000 sei hier besonders das Projekt von Philipp Gahtow erwähnt, die auf einer Arduino basierten Eigenbau- Hardware aufbaut. Diese Aufzählung erhebt weder den Anspruch, vollständig zu sein, noch ist sie eine Qualitätsaussage.

Da ich vor einiger Zeit eine bereits freigeschaltete, gebrauchte aber voll funktionsfähige z21 Start für sehr kleines Geld (keine 20€) in einem großen Modellbahn- Laden gekauft habe, besteht für mich aktuell kein Bedarf an einer anderen Lösung. Sonst hätte ich vermutlich mal genauer nach der Eigenbau- Zentrale von Phillip geschaut. Schaut man sich die Preise für die z21 Start bei Ebay an und rechnet den notwendigen Freischaltcode mit ein, muss man sehr aufpassen, nicht zu viel zu bezahlen. Die DR 5000 ist erheblich besser als die z21 Start und ist ab ca 150€ neu zu bekommen. Eine z21 Start sollte also inklusive Freischaltung keinesfalls mehr als etwa 100€ bis maximal 120€ kosten. Sonst lohnt es sich nicht mehr und man fährt mit der DR 5000 eindeutig besser. Ob auch der Roco- WLan Router dabei ist oder nicht, spielt keine wirkliche Rolle. Die allermeisten Leute haben sowieso schon WLan zu Hause und falls nicht, findet sich im Bekanntenkreis immer jemand, der noch einen alten Router herum liegen hat. Mit meinen 19,90€ habe ich auf jeden Fall ein richtiges Schnäppchen gemacht.

Ein kleiner Tipp noch am Rande. die „kleine“ z21 bietet keine Möglichkeit, die Gleisspannung einzustellen. Da das Verhältnis von Eingangs- zu Ausgangsspannung immer gleich ist (Die Ausgangsspannung ist 1 Volt niedriger als die Eingangsspannung), kann man diesen Nachteil leicht durch eine andere Stromquelle für die z21 ausgleichen. Das mitgelieferte Stecker- Schaltnetzteil ist ohnehin zu schwach, um die möglichen 3 Ampere Fahrstrom überhaupt leisten zu können. Bei Roco/Fleischmann gibt es stärkere Netzteile, allerdings nicht einstellbar und (wie üblich) zu „Mondpreisen“. Die z21 ist (genau wie die Z21) nicht wählerisch, wenn es um die Stromversorgung geht. Sie kann mit 12 – 24 Volt Gleichstrom betrieben werden. So lässt sich also die Gleisspannung von 11 bis 23 Volt regulieren. Das sollte (außer vielleicht für die Busch H0f Feldbahn) eigentlich immer reichen. Wenn man sich nun ein „Universal Notebook Netzteil“ anschafft, welches eine einstellbare Spannung und mindestens 4 Ampere Leistung hat, kann man damit die z21 in diesem Bereich voll auf das Niveau der Z21 hieven, ohne viel Geld ausgeben zu müssen. Verwendet man externe Booster, so muss man natürlich dafür sorgen, das alle Booster mit derselben Spannung betrieben werden, wie die z21. Ich selbst habe mir dieses Netzteil zu meiner z21 besorgt, um das schwache Stecker- Netzteil zu  ersetzen:

(Bildquelle: Amazon.de – Das Bild lässt sich anklicken um auf die Produkt Seite zu gelangen.)

Der Stecker für die z21 muss außen 5,5 mm und innen 2,1 mm Durchmesser haben. Das ist ein genormtes Maß, welches z.B. von Dell, HP oder IBM für ihre Notebooks verwendet wird. Das abgebildete Netzteil hat einen passenden Adapter dabei. Somit steht der Nutzung als Stromversorgung für die z21 nichts mehr im Weg. Man kann die Spannung in Stufen auf 12, 15, 16, 18, 19, 20 und 24 Volt einstellen, deckt also den gesamten Spannungsbereich der z21 ab. Die Stufen entsprechen gängigen Spannungen bei Notebooks, von daher ist die Stufung nicht ganz linear, was aber nicht schlimm ist. Von 12 bis 19 Volt kann es bis zu 4,5 Ampere Strom liefern, bei 20 und 24 Volt dann bis zu 4 Ampere, was immer noch deutlich mehr ist als 3 Ampere, die der Booster maximal benötigt.

Also kann ich mit meiner z21 sowohl die Weichen usw digital schalten und auch  mit meinen alten Multimäusen die noch nicht auf Funk umgerüsteten DCC Loks steuern.  Zum Steuern von Loks lässt sich ja wie erwähnt die Z21 App für Android/iOS verwenden. Ein Lok- Fahrpult lässt sich prima auf einem Smartphone Display realisieren. Ich bin generell aber kein Freund der Touch- Steuerung für Loks. Da ist mir ein „Oldschool“ Drehknopf doch deutlich lieber. Deswegen bleibe ich wohl „auf ewig“ den Multimäusen treu. Aber zum Schalten der Weichen, zum Erstellen des Gleisbild- Stellwerks da ist ein Display wirklich super.

Allerdings ist mir ein Smartphone Display dafür zu klein. So geht es vielen Kollegen ebenfalls.  Die meisten verwenden dann ein größeres Tablet. So weit so „normal“. Wer aber noch größere Displays haben will, bekommt schnell Probleme. Größere Geräte sind selten mit den mobilen Betriebssystemen ausgerüstet, für die die Z21 App vorgesehen ist. Ein Weg diese Einschränkung zu umgehen ist die Verwendung eines Android Emulators für Windows oder Linux bzw eines iOS Emulators für Mac. Das benötigt den Einsatz eines „ausgewachsenen“ Computers, da etwas in der Art eines Raspberry Pi nicht leistungsstark genug für den Android Emulator ist. Diese Lösung ist vor allem dann von Interesse, wenn man neben der Z21 App auch noch ein „klassisches“ Steuerprogramm wie iTrain oder TrainController nutzen möchte.

Möchte man aber nicht unbedingt einen „full- size“ PC nur für den Betrieb einer Android App verwenden, kommen nun die im Titel erwähnten Android TV Boxen zum Zug.

Zunächst mal, was ist das eigentlich, eine Android TV Box? Eine Android TV Box ist im Prinzip ein Mini- Computer, gar nicht unähnlich dem bekannten Raspberry Pi. Allerdings richten sich die TV Boxen nicht an Bastler und Computer- Nerds, sondern an „jedermann“. Deswegen gibt es sie auch nur komplett fertig im Gehäuse mit Netzteil und Fernbedienung. Ausgelegt sind die Boxen dazu, um die Smart Funktionen von TV Geräten zu erweitern bzw zu ergänzen. Mit diesen Boxen kann man Youtube Videos, Amazon Prime oder Netflix oder sowas auf dem großen TV anschauen, man kann surfen, spielen eigentlich alles außer Telefonieren machen, was man mit einem Smartphone auch machen kann. Meistens wird auch die Multimedia- Software Kodi auf diesen Geräten installiert. Man kann damit aber auch arbeiten, z.B. mit Office Anwendungen, die es ebenfalls als Android App gibt. Und man kann darauf die Z21 App installieren und ausführen.

Im inneren bestehen diese Boxen aus Hardware von Mittelklasse Tablets oder Smartphones, nur eben ohne Display.  Die Boxen gibt es von unzähligen Herstellern, bekannten oder unbekannten, großen oder kleinen. Allen gemeinsam ist, das sie in China gebaut werden. Außerdem sind alle Boxen relativ preiswert, sehr sparsam im Stromverbrauch (ca 2-3 Watt im Betrieb) und völlig Lautlos, da sie stets ohne Lüfter auskommen. Obendrein sind sie in aller Regel auch sehr kompakt. Eine durchschnittliche Box ist nicht viel größer als 10 x 10 cm bei weniger als 2 cm Dicke… Preislich bewegen sie sich zwischen gut 20€ und gut 300€. Die billigsten Geräte sind normalerweise mit veralteter Hard- und Software (Android Version) ausgestattet, die teuersten haben viele Features, die für ihren eigentlichen Zweck interessant, für den Betrieb der Z21 App aber irrelevant sind. Die teuersten Geräte sind von bekannten Herstellern wie z.B. die Nvidia Shield für 219€.

(Bildquelle: nvidia.com – Das Bild lässt sich anklicken um auf die Hersteller Seite zu gelangen.)

Ein außergewöhnlich gutes Gerät, aber nur für die Z21 App dann doch übertrieben. Sofern man die Shield aber auch für den eigentlichen Zweck als Multimedia Gerät nutzen möchte, dann ist sie auf jeden Fall einen genaueren Blick wert. Die Shield ist deutlich größer als „normale“ Boxen, so ca 20 x 15 cm

Eine spezielle Form der TV Boxen, die aber sehr bekannt ist, ist der FireTv Stick von Amazon.

(Bildquelle: Amazon.de – Das Bild lässt sich anklicken um auf die Hersteller Seite zu gelangen.)

Den FireTV Stick erwähne ich hier nur, weil er sehr bekannt ist. Für unsere Zwecke ist er aber nahezu ungeeignet. Zum Einen hat er den Google Playstore nicht ab Werk installiert. Das nachzuholen macht viel Arbeit und erfordert Fachwissen.  Ohne den Playstore wird es schwer bis unmöglich, die Z21 App zu installieren. Außerdem hat der FireTv Stick keinerlei Anschlüsse, weder USB noch LAN. Man kann ihn also nur per WLan verwenden. Generell halte ich von den Sticks (die es auch von anderen Herstellern gibt) nichts. Zu unflexibel und zu oft mit thermischen Problemen behaftet, da das Gehäuse zu klein ist, um für ausreichende Kühlung der Chips zu sorgen… Außerdem sind sie für die gebotene Leistung im Vergleich nicht gerade billig.

Und dazwischen tummeln sich Tausende von „herkömmlichen“ TV Boxen aller Preisklassen und Formen.  Neben den „offensichtlichen“ Ausstattungs- Unterschieden wie Größe des Speichers und Anzahl sowie Geschwindigkeit der Anschlüsse gibt es vor allem bei den verwendeten Chips große Unterschiede. All diese Boxen, wie auch praktisch jedes Handy, jedes Tablet sowie die meisten Notebooks basieren auf einem integrierten Chip, in dem alles notwendige untergebracht ist. So etwas nennt man SoC (System on a Chip, zu Deutsch etwa System in einem Chip). Ein SoC beinhaltet neben dem eigentlichen Prozessor (CPU) auch die Grafik (GPU) sowie die Ein- und Ausgänge und den Speicher- Controller. also alles, was ein Computer an „Intelligenz“ benötigt. Genau wie bei den PC (Intel vs AMD) gibt es auch hier verschiedene Hersteller für diese Chips. Bei den TV Boxen sind vorrangig SoC von drei Herstellern im Einsatz. Rockchip, Allwinner und AMLogic. Es gibt auch noch andere Hersteller, die aber nur selten in solchen TV Boxen verwendet werden.  Ich persönlich habe mit Abstand die besten Erfahrungen mit AMLogic Systemen gemacht, weswegen ich natürlich auch Geräte mit einem SoC dieses Herstellers nutze und empfehle. Irgendwie mit dem Hersteller verbunden bin ich nicht. Ich bekomme nichts für diese Empfehlung. Sie entspringt allen meinen Erfahrungen.

Aktuell (September 2020) sind vor allem zwei SoC von AML im Einsatz. Der S922x ist der „High- End“ SoC, der nur in Geräten über 100€ zu finden ist und der S905x3 für alle „normalen“ Ansprüche. Alle anderen SoC sind entweder abgespeckte und/oder veraltete Versionen. Deswegen ist es wichtig, auf die „3“ im Namen „S905x3“ zu achten, denn es gibt auch S905x2 und S905x Soc, die deutlich älter und zumindest teilweise deutlich schwächer sind, ohne tatsächlich spürbar weniger zu kosten.  Ich selbst habe vorrangig je eine Box mit einem S912 (der Vorgänger des S922x) sowie einem S905x2 (der Vorgänger des S905x3) SoC im Einsatz. Sie arbeiten hier seit 1 bzw 3 Jahren völlig problemlos.  Auf dem Bild ist meine „Wohnzimmer Box“ zu sehen.  Die 2€ Münze dient zum Größenvergleich, den Staub ignoriert man am besten… Man sieht hinten rechts das Netzwerk (Lan) Kabel, in der Mitte den HDMI Anschluss und links den Anschluss fürs Steckernetzteil. Auf der linken Seite steckt der USB Empfänger für die Mini- Tastatur mit Touchpad, die ich an der Box angeschlossen habe. Vorne ist das Display mit Uhrzeit und Status- LED zu erkennen.

Die ältere (von 2018) S912 Box habe ich im Schlafzimmer, wo auch meine Anlage (ent)steht. Die neuere S905x2 Box (von Anfang 2020) wird aktuell im Wohnzimmer eingesetzt. Ich liebäugle aber damit sie eventuell durch eine Shield zu ersetzen, wodurch die S905x2 Box im Wohnzimmer obsolet würde und die deutlich ältere und nur mit 2 GB RAM ausgerüstete S912 Box im Schlafzimmer verdrängen würde…

Generell sollte man die Box per Kabel- LAN anschließen, denn WLan ist immer bei weitem unzuverlässiger und langsamer als kabelgebundenes Lan. Hat nichts mit der Box sondern mit der WLan Technologie zu tun. Da die z21 sowieso per Kabel angeschlossen werden muss und die Box meist nicht all zu weit von der z21 entfernt steht, bietet es sich ja auch an. Dabei gibt es selbst heute noch Boxen, die nur 100MBit Lan unterstützen. Zum Betrieb der z21 sollte das zwar locker ausreichen, aber für den eigentlichen Einsatzzweck der Box (Media- Streaming), ist das fast immer zu langsam. Da es aber nicht mehr kostet, eine Box mit Gigabit LAN zu kaufen, sollte man halt schauen, ob die Box das hat.
Dann ist natürlich die Ausstattung mit RAM und Flash Speicher von Bedeutung. Aktuell verlangt die Z21 App 2 GB RAM. Man sollte aber lieber das Doppelte, also 4 GB RAM wählen, um auf Nummer sicher zu sein. 4GB sind heute Standard, das stellt also kein Problem dar. Zum Speichern von App benötigen wir eigentlich nicht so viel Platz, da ist die Z21 App genügsam. Aber auch hier sollte man nicht zu knapp gehen. 32 Gbyte ist das Minimum, was ich akzeptieren würde. 64 GB ist aber kaum teurer und man hat länger keine Platzprobleme. Deswegen würde ich zu einer Box mit 64 GB raten.

Ob die Box Bluetooth hat oder nicht, ist nicht sonderlich wichtig. Nur wenn die USB Anschlüsse knapp sind, kann es Sinn machen, eine Tastatur/Maus Kombi per Bluetooth statt per USB Empfänger anzuschließen. Auch wenn eine Fernbedienung immer zum Lieferumfang dazu gehört, ist damit nur eine rudimentäre Steuerung möglich. Deswegen sind eine Tastatur und Maus, eventuell auch eine Mini- Tastatur mit eingebautem Touchpad, wie man es von Laptops kennt, eigentlich unverzichtbares Zubehör, das man anschaffen muss. Damit kann man die Box fast genau so bedienen, wie einen herkömmlichen PC oder Laptop.

Man muss außerdem darauf achten, das der zu verwendende Monitor (oder TV) zwingend einen HDMI Anschluss haben muss. Ältere VGA Monitore kann man an so eine Box nicht anschließen, da sie generell keinen VGA Ausgang haben.

Eine Sache gibt es noch zu beachten. Diese Boxen bekommen eigentlich nie Software Updates.  Man sollte also auf eine möglichst aktuelle Android Version achten, damit die Box nicht zu schnell veraltet ist. Ich würde Stand heute nicht unter Android 9 gehen, nach Möglichkeit ein Android 10 Gerät anschaffen.

Die Form und das Design der Box sind eigentlich völlig egal. Hier kann man ganz nach dem eigenen Geschmack gehen. Es gibt sie in Schwarz oder Bunt, Eckig oder Rund, mit oder ohne Display für die Uhrzeit, usw. Auch Designs mit glühenden Alien Augen oder mit Zacken und Dornen gibt es. Man kann auch einfach das Gerät mit dem niedrigsten Preis auswählen, das alle Features hat, die man sich vorstellt.

Im zweiten Teil werde ich dann das Einrichten der Z21 App auf (m)einer Box im Schlafzimmer zeigen und erklären… Dazu später mehr.

Treiber für PL2303 Adapter installieren

Hier möchte ich euch dabei helfen die sehr gängigen und weit verbreiteten USB-Serial Adapter mit einem PL2303 Chip zum Funktionieren zu bekommen. Auch wenn diese Chips weit verbreitet sind, sind doch bei Windows 10 keine passenden Treiber dabei. Das liegt daran, dass der ursprüngliche Hersteller dieses Chips die Produktion schon lange eingestellt hat und heute ausschließlich (vermutlich nicht lizenzierte) Nachbauten im Handel zu finden sind. Solche Nachbauten bekommt man nicht nur auf eBay, sondern überall zu kaufen, auch bei „seriösen“ Anbietern wie Conrad, Reichelt usw… Das Problem ist also allgegenwärtig. Adapter mit diesen Chips werden inzwischen in den aktuellen Treibern generell geblockt, obwohl die Treiber und Chips eigentlich tadellos funktionieren würden.

Abhilfe bringt die Installation älterer Treiber, die diese Blockade noch nicht beinhalten. Als ich selbst dieses Problem hatte, habe ich im Netz nach einer Lösung gesucht und sie letztendlich auf dieser Webseite gefunden:

Fake PL2303 – how to install on Windows 8.1

Die Anleitung dort ist für Windows 8.1, funktioniert aber exakt genau so auch unter Windows 10 oder auch unter Windows 7. Dort gibt es auch die Treiber zu laden, die ebenfalls mit Windows 7 – 10 funktionieren. Im unteren Drittel der Seite auf den Link „IO-Cable_PL-2303_Drivers-Generic_Windows_PL2303_Prolific“ klicken, dann wird der Treiber herunter geladen. Für alle, die des Englischen nicht so mächtig sind, hier noch mal eine Schritt für Schritt Anleitung auf Deutsch:.

Zuerst lädt man die Treber von der oben verlinkten Webseite. Dann installiert man ihn erst mal einfach so. Im heruntergeladenem Archiv ist eine .exe Datei enthalten. Diese einfach ausführen und den Anweisungen folgen. Das sollte eigentlich so weit noch jeder hin bekommen. Nun den Adapter an den PC anschließen. Dabei werden „natürlich“ automatisch die aktuellen Treiber installiert, die keine Funktionalität bieten. Wir müssen also die unpassenden aktuellen Treiber durch die älteren aber funktionierenden Treber ersetzen. Dazu müssen wir den Geräte- Manager von Windows öffnen. Bei Windows 10 geht das am einfachsten in dem man mit der rechten Maustaste auf den Startknopf drückt.

Ist der Geräte- Manager gestartet wird einen in etwa so ein Bild geboten:

Unter Anschlüsse (COM & LPT) taucht ein „Prolific USB to Serial Comm Port“ auf. Der tatsächliche Com Port (bei mir COM 7) hängt vom eigenen Computer ab. Die Nummer dahinter spielt aber keine Rolle. Wir müssen sie nur kennen, um später den richtigen COM Port im DT-Programmer auswählen zu können. Leider ist unser COM Port aber mit einem gelben Dreieck „verziert“. Macht man nun einen Doppelklick auf den Eintrag, dann erscheint ein weiteres Fenster. Hier kann man die nicht wirklich aussagekräftige Fehlermeldung lesen. Dieser Fehler ist die Folge des vorsätzlichen Blockens der PL2303 Chips und nicht wirklich ein Fehler. Um diesen Fehler nun zu beseitigen, klicken wir auf den Reiter „Treiber“.

Nun auf „Treiber Aktualisieren“ klicken und es erscheint noch ein Fenster.

Hier klicken wir auf „Auf dem Computer nach Treibersoftware suchen“.

Nun auf „Aus einer Liste verfügbarer Treiber auf meinem Computer auswählen“ klicken und anschließend auf „Weiter“.

Nun sollte in der Liste „Kompatible Hardware anzeigen“ mindestens 2 Einträge stehen. Der aktuelle Treiber hat hier die Version 3.8.28.0. Der Treiber blockiert aber unseren Adapter. Deswegen wählen wir die Version 3.3.2.105 aus, obwohl sie schon viele Jahre auf dem Buckel hat. Das ist der Treiber, den wir vorher von der oben verlinkten Webseite geladen und installiert haben. Sollte wieder Erwarten die Version 3.3.2.105 nicht in der Liste erscheinen, dann muss man die Treiber- Installation noch einmal ausführen…

Normalerweise verwendet Windows automatisch den aktuellsten Treiber. Das ist im Allgemeinen ja auch sehr sinnvoll. Nur in unserem Fall funktioniert das halt nicht wie gewünscht. Nachdem wir den „alten“ Treiber ausgewählt haben, einfach auf „Weiter“ klicken. Nach kurzer Zeit sollte dann dieses Fenster erscheinen.

Nun können wir auf „Schließen“ klicken und die Treiber- Installation sollte erfolgreich erledigt sein. Jetzt sollte das gelbe Dreieck im Geräte- Manager verschwunden sein und unser Adapter und somit unser Prog4 tadellos funktionieren.

Ein kleiner Hinweis noch. Sollte der Prog4 nicht einwandfrei funktionieren, dann steckt man den Adapter am besten direkt an den PC und nicht an einen USB Hub. Danach wird es höchstwahrscheinlich so sein, dass man die oben beschriebene Prozedur ab dem Öffnen des Geräte-Managers wiederholen muss, da der Adapter nun einen anderen COM Port erzeugen wird.  So habe ich auch die Screenshots für diesen Artikel erzeugt, in dem ich den Adapter einfach an einen anderen USB Port angesteckt habe.

Software zum Programmieren von DT RC-Empfängern

Hallo.

Diese Seiten wurden auf Deutsch geschrieben und werden automatisch mit Google Translate übersetzt. Ich bitte die nicht fehlerfreie Übersetzung zu entschuldigen. Als Service für internationale Besucher steht diese Seite auch manuell übersetzt in Englisch zur Verfügung.

English page for DT-Programmer software

Ich möchte euch hier ein Programm vorstellen, das ich zur Zeit entwickle. Es dient dazu, DelTang Empfänger mit Hilfe des Prog4 Programmers komfortabel am PC zu programmieren. Neben einem Windows PC benötigt man natürlich einen Prog4 (ca 20€) und zusätzlich ein Seriell auf USB Kabel (ca 2-20€) um den Prog4 mit dem PC zu verbinden. Und natürlich das Programm „DT-Programmer“, welches man von hier laden kann.  Zum Download des Programms einfach den Link am Ende des Beitrags  anklicken. Dort ist immer die neueste Version des Programms zu finden.

Nach dem Download das Zip- Archiv öffnen und die darin enthaltene Datei ausführen. Mit Hilfe eines gewöhnlichen Installationsprogramm  wird DT-Programmer auf dem PC installiert. Das sollte eigentlich jeder hin bekommen.

Nachdem man DT-Programmer installiert hat sollte man zunächst den Prog4 mit dem PC verbinden. Unter Umständen müssen dazu Treiber für das Seriell auf USB Kabel installiert werden. Das ist deswegen notwendig, da diese Kabel eine zusätzliche COM Schnittstelle auf dem PC erzeugen. Diese COM Schnittstelle muss im DT-Programmer ausgewählt werden. Sie wird aber nur dann angezeigt, wenn sie auch existiert. Und das ist eben nur der Fall, wenn das Kabel eingesteckt ist. Obendrein muss der zu programmierende Empfänger zunächst einmal an den Prog4 gebunden werden, genau so, wie es sonst auch mit dem Sender erfolgt. Dazu hat der Prog4 seitlich einen „Bind- Button“. Eigentlich sollen sich die Empfänger merken, das sie (auch) an den Prog4 gebunden sind. Allerdings ist es bei mir wiederholt vorgekommen, dass die Empfänger sich das eben nicht gemerkt haben und ich sie somit vor dem eigentlichen Programmieren neu an den Prog4 binden musste.

Nun können wir das Programm starten. Es erscheint zunächst auf Englisch.

Zum Umstellen auf Deutsch und für weitere Einstellungen rufen wir im Menü oben den Punkt „Configuration“ auf. Dann öffnet sich ein neues Fenster, in dem wir ein paar Einstellungen vornehmen müssen.

Neben der Sprache wird vor allem noch der COM Port, an dem der Prog4 angeschlossen ist, eingestellt. Je nach Version des Prog4 muss noch die passende Baudrate ausgewählt werden. die aktuellen V2 benötigen 9600 Baud, die alten V1 115200 Baud. Nun auf „Save“ klicken. Jetzt kommt ein Hinweis auf Englisch, dass der DT-Programmer neu gestartet werden muss, um die Änderungen zu übernehmen. Bestätigen und DT-Programmer neu starten, dann sollte er auf Deutsch erscheinen, sofern man die Sprache umgestellt hat.

Das Fenster ist bei jedem Punkt ganz ähnlich aufgebaut. Der rechte Teil ist immer identisch. Hier stellt man die Verbindung zum Prog4 her. Das muss man machen, bevor man irgendwas programmieren kann. Wenn die Verbindung erfolgt ist, ändert sich das Symbol oben und wechselt die Farbe von Rot nach Grün. Man kann die Verbindung auch wieder trennen. Beim Beenden des DT-Programmers wird die Verbindung aber ohnehin getrennt, so das man den COM Port nicht versehentlich geöffnet lassen kann.

In der Zeile darunter kann man eine Sequenz zum Programmieren manuell absenden. Das ist besonders nützlich für Optionen, die noch nicht im DT-Programmer implementiert sind.

Mit dem Knopf darunter kann man die Verbindung zum Prog4 testen. Bei Erfolg erscheint im Feld darunter die Versionsnummer des Prog4. Dieses Feld zeigt alle Antworten vom Prog4 an, die während einer Programmier- Sitzung eingehen.

Der linke Bereich ändert sich, je nach dem, welchen Bereich man in der Navigation ausgewählt hat. In der oberen Reihe wählt man die Firmware Version des zu programmierenden Empfängers aus. Leider gibt es keine Möglichkeit dieses aus dem Empfänger auszulesen und somit automatisch zu machen. Aber die Firmware ist auf jedem Empfänger handschriftlich vermerkt.

Die vielen Knöpfe darunter bringen uns nun zu den eigentlichen Einstellungen, die wir in den Empfänger schreiben wollen. In der Regel gibt es unten einen Knopf „Schreiben“, mit dem die jeweils ausgewählte Option mit den eingestellten Parametern in den Empfänger geschrieben werden. Die allermeisten DelTang Empfänger können immer nur einen Befehl zur Zeit empfangen. Deswegen muss man jeden Schritt einzeln abschicken.  Aus dem gleichen Grund kann man auch nur jeweils eine einzige Option auswählen. Das ist eigentlich bei allen  Punkten so, bis auf den Punkt „Zurücksetzen“. Hier sind völlig unterschiedliche Optionen zusammen gefasst. Deswegen gibt es hier mehrere Knöpfe um Befehle abzuschicken. So sieht es bei V611 aus:

Mit dem Knopf „Zurücksetzen“ setzt man den Empfänger auf den Werkszustand zurück, aber ohne die Variante zu ändern. Das geschieht ohne weitere Sicherheitsabfrage, also Vorsicht. Außerdem kann man mit einem Mausklick die Variante des Empfängers umstellen. Sehr praktisch, wenn die benötigte Variante gerade nicht lieferbar war oder man eine falsche Variante bekommen hat. Dazu ist der Knopf „Variante Wechseln“ vorgesehen.

Im mittleren Teil kann man bei V611 das Binde- Verhalten ändern. Bei V610 ist das unter „Sonstiges“ zu finden, da es in der Firmware ebenfalls unter „Others“ integriert ist. Das Ändern des Binde- Verhaltens sollte sollte allerdings eher selten von Interesse sein, da in den allermeisten Fällen die automatische Bindung funktioniert.

Ab Version 1.0.3.2 des DT-Programmer gibt es ein neues Feature, ein Programmierungs- Protokoll. Damit behält man den Überblick darüber, was man in welchem Empfänger eingestellt hat. Bei DCC kann man die Decoder ja auslesen, da wäre sowas nicht notwendig. Aber hier kann man nur schreiben.  Mit der neuen Option wird dieser Nachteil kompensiert.

Man vergibt in der rechten oberen Region einen Namen für die Protokoll- Datei, gleich über dem „Verbinden“ Knopf. Der Name kann frei gewählt werden. Allerdings ist es sinnvoll, einen aussagekräftigen Namen wie z.B. „Typ des Modells und des Empfängers“ zu verwenden.  Wurde kein Namen eingetragen, verwendet DT-Programmer default den Namen „protocol.txt“.

Beim ersten Programmier- Schritt wird die Protokoll- Datei erzeugt, sofern sie noch nicht existiert. Alle weiteren  Schritte werden dann ans Ende des Protokolls angehängt. Die Protokolle werden in einem Unterordner des Programm- Ordners namens „RX“ angelegt. Es sind einfache Text- Dateien, die mit Notepad oder jedem anderen Text- Editor oder – Betrachter angezeigt werden können. Außerdem kann man das Protokollieren auch ganz unterbinden. Zum Beispiel wenn man Empfänger für andere Leute programmiert oder so… Einmal erzeugt, werden alle weiteren Schritte ans Ende des Protokolls angehängt. Dazu muss man aber natürlich denselben Namen weiter verwenden. Man kann auch zwischen verschiedenen Protokollen wechseln, in dem man einfach einen neuen Namen ins Eingabefeld einträgt. Gibt man hier später wieder einen Namen ein, der schon mal vergeben wurde, zu dem also bereits eine Protokoll- Datei existiert, wird die vorhandene Datei weiter verwendet.

Zur Zeit kann man die Protokolle nur per Explorer oder ähnlichem verwalten, also ansehen, ausdrucken oder löschen. Später bekommt DT-Programmer auch noch einen Protokoll- Manager eingebaut. Das wird aber noch dauern. Bis es soweit ist, kann man die Protokolle leicht mit Windows- Bordmitteln (Explorer und Notepad) verwalten…

Damit müsste man nun klar kommen. Falls nicht, bin ich ja nicht aus der Welt und in mehreren Foren im Internet unterwegs.

Aktuell werden die Firmware Versionen V110, V510, V511, V520 und V610 (vollständig) sowie V611 bis auf Menü 12 und 13 unterstützt.

690 Downloads