Recherchen zu einem DIY electric Surfboard

Am Anfang eines jeden Projektes steht eine ordentliche Recherche. 😀 Während meines aktuellen Ostseeurlaubes kam die Inspiration, ein elektrisches Surfbord zu bauen. Es muss doch richtig cool sein, auf einer „ewigen Welle“ über das Wasser zu surfen. Außerdem (hoffe ich), dass man mit e Surfboards auf fast allen Gewässern fahren darf. Ich habe gehört, dass man „nur“ einen Sportbootführerschein benötigt um eSurfboards fahren zu dürfen. Bei e Longboards ist das Fahrvergnügen in Deutschland ja ziemlich eingeschränkt (nur auf Privatgelände). Fertige e Surfboards fangen bei 4.000 EUR an und gehen gerne auch über 10.000 EUR. Das ist m.E. viel zu teuer. So viel schwieriger als ein eLongboard kann doch der Bau eines eSurfboards gar nicht sein. 😀

Aber Spaß beiseite. Das ein electric Surfbord ein ganz anderer „Schnack“ ist, wurde mir bei meinen Recherchen sehr schnell klar. Die Jungs bei „Endless-Sphere“ haben sich den Wolf diskutiert von 3d gedruckten Jet Antrieben über gebrauchte Jetski Antriebe bis hin zu Schiffsschrauben (geht m.E. gar nicht). Und einige sind mitten in der Diskussion wieder ausgestiegen und haben ihr Projekt fallen gelassen. Hier der gesamte Thread:

https://endless-sphere.com/forums/viewtopic.php?f=39&t=41960&start=150

Alleine die Frage, welchen Antrieb man nutzt und wie man Motor und Elektronik wasserdicht im Surfboard unterbringt ist für einen maritimen Neuling schon eine nicht triviale. Klar ist für mich aber, dass nur ein „Jet Antrieb“ für mein Surfboard in Frage kommt. Freiliegende Schiffsschrauben haben an einem Surfbrett nichts verloren. Ich habe eine Ewigkeit nach passenden Jet Antrieben gesucht, bis ich dann auf die Firma MHZ gestoßen bin, die extrem vielversprechende Komponenten anbietet. Die Motoren und Speedcontroller scheinen dabei absolut High End zu sein und sind leider dementsprechend teuer. Zwei der etwas kleineren Jets lassen sich evtl. mit Hobbyking Elektronik betreiben. Das könnte erheblich Geld sparen und trotzdem knapp 12.000 Watt Leistung auf’s Wasser bringen (soll bis 35 km/h Speed auf dem Wasser reichen). Schneller wollte ich eigentlich erst mal auch gar nicht werden. 😀

https:///www.mhz-watercraft.com

Sehr gut geeigneter Jet Antrieb für Surfboards im Set mit dem passenden Motor:
https://www.mhz-watercraft.com/jets/497/jet-64-fuer-elektrosurfboards-max.-12-kw?c=109

High Performance ESC (leider sau teuer):
https://www.mhz-watercraft.com/zubehoer/512/mgm-tmm-40063-3-x2-series-pro-esc-500a-fuer-jet-64-jet-80?c=113

Etwas kleinere Variante des 64er Jets, wenn man davon zwei nimmt, dann kann man die Dimensionen der Motoren und Speedcontroller vielleicht auf „Hobbyking Niveau“ halten und erheblich Geld sparen:
https://www.mhz-watercraft.com/jets/496/jet-58-booster-fuer-elektro-surfbrett-max.-6-kw?c=109

Leistungsstarker Schiffsmotor von Hobbyking mit Wasserkühlung, die sich ggfs. mit den etwas kleineren Jets kombinieren lassen:
https://hobbyking.com/de_de/turnigy-aquastar-t20-3t-730kv-1280kv-water-cooled-brushless-motor.html?countrycode=DE&gclid=COHD1YiM0tUCFU08GwodyZsMLQ

Dieser Hobbyking ESC müsste zu dem Motor passen (ebenfalls wassergekühlt):
https://hobbyking.com/de_de/turnigy-aquastar-240a-water-cooled-esc.html

Mir ist noch unklar, ob ich für die Kopplung des Jets mit dem Motor (Kraftübertragung) noch mehr brauche als nur eine dieser Kupplungen (Antriebswelle, Kugellager, etc.). Ich vermute, dass ich damit hinkomme, weil ich davon ausgehe, dass der Jet Antrieb in das Board integriert wird und die Antriebswelle des Jets damit quasi schon im „trockenen Innenraum“ des Boards ist.
https://www.mhz-watercraft.com/zubehoer/526/elastische-kupplung-fuer-jet-58-jet-64?c=111
Das könnte eine gute Alternative sein…
http://www.mayr.com/de/produkte/wellenkupplungen/roba-es
Hier noch elastische Kupplungen aus dem Schiffsmodellbau. Vielleicht eine Alternative zu den Kupplungen von MHZ, um andere Motoren mit dem Jet verbinden zu können.
http://gundert.de/epages/756a8de5-bbe2-4d27-b2c7-3373f4710844.sf/de_DE/?ObjectPath=/Shops/756a8de5-bbe2-4d27-b2c7-3373f4710844/Products/4098

Ich habe erschreckend wenig Ahnung vom Schiffsmodellbau und stehe wie der Ochs vorm Berg vor dem Problem, wie man eine Antriebswelle wasserdicht durch die Außenwand eines Surfbretts bekommt (falls das bei einem Jet Antrieb überhaupt erforderlich ist). Da helfen Websites, die sich dem Thema Schiffsmodellbau gewidmet haben. Die Bereiche rund um die Antriebstechnik sind spannend. Im Forum von „Schiffsmodell.net“ habe ich übrigens den entscheidenden Hinweise auf die Firma MHZ gefunden.

Allerlei Wissenswertes zum Thema Schiffsmodellbau:
1.) http://www.modellskipper.de
2.) http://www.schiffsmodell.net/index.php?/forums/topic/15059-surfboard-mit-antrieb/

Wasserdichte Antriebswellen mit M5 Schraube für den Propeller, falls die Kupplung von oben für die Kraftübertragung nicht ausreicht. Ob die Wellen mit 5mm aber stark genug sind, weiß ich (noch) nicht:
1.) http://www.vogel-modellsport.de/Schiffswelle-M5-kugelgelagert-lg-290mm-RABOESCH-rb301-08.htm?SessionId=&a=article&ProdNr=9-rb301-08
2.) https://shop.strato.de/epages/61433551.sf/de_DE/?ObjectPath=/Shops/61433551/Products/ra30110
3.) http://www.modellbau-peters.de/schiffsmodelle/schiffsmodelle-zubehoer/wellen

3D druckbare Jet Antriebe, wahrscheinlich nicht für diesen Zweck brauchbar, weil für kleinere Modelle konzipiert. Würde aber erheblich Geld sparen, wenn man sie auf die richtige Größe skaliert in ABS druckt und eine geeignete Schraube einsetzt:
1.) https://www.thingiverse.com/thing:2217927
2.) https://www.thingiverse.com/thing:153579

Ein eventuell geeignetes Surfbrett, da gibt es aber bestimmt noch bessere, habe ich bisher kaum recherchiert (eigentlich verrückt :-D):
https://www.ebay-kleinanzeigen.de/s-anzeige/surfbrett-f2-vega/694858629-211-3069

Ich habe noch eine Weile nach einer fertigen, wasserdichten Funkfernsteuerung gesucht und nichts brauchbares gefunden, das man von der Stange kaufen kann. Allerdings gibt es etliche Tipps im Internet, wie man Elektronische Komponenten wasserdicht bekommt, so wie dieses Video hier. Das Zeug, dass sie dort verwenden muss ich mal ausprobieren.

Corrosion-X Heavy Duty: http://amzn.to/1t0bZKl
Corrosion-X Aerosol: http://amzn.to/13FBcTK
Corrosion-X: http://amzn.to/1HEisRN
Turbo Coat: http://amzn.to/1zj8ErV
Und noch ein weiterführender Artikel zum Thema Waterproofing:
http://www.flitetest.com/articles/wat…

Hier noch ein Video von einem Drohnenpiloten, der seine Elektronik für Flüge im Winter wasserdicht gemacht hat. Er hat dazu eine Art flüssiges Silikon verwendet.

https://rover.ebay.com/rover/1/711-53…
Here is the product that I bought: http://amzn.to/2iVkf3j

Und noch ein in Deutschland erhältliches Mittel, das Oberflächen gummiert. Vielleicht etwas um ein Kunststoffgehäuse abzudichten:
https://www.amazon.de/Plasti-Dip-61001003-Flüssiggummi-schwarz/dp/B003A67LGW/ref=pd_sbs_21_3?_encoding=UTF8&psc=1&refRID=WXNW284VXYCA7SEH0XBT

Und noch ein Wundermittel, mit dem man Gehäuse abdichten kann. Es nennt sich Hylomar…

https://www.amazon.de/80ml-Tube-Hylomar-Dichtmasse/dp/B005QDH77K/ref=sr_1_1?ie=UTF8&qid=1502782134&sr=8-1&keywords=hylomar
… und noch ein anderes, ähnliches Dichtmittel (Curil)…
https://www.cwmeyer.de/tradepro/shop/artikel/docs/TM_DE_LI211-246948.pdf
https://www.amazon.de/Curil-Dichtmasse-Dichtmittel-Getriebe-Dichtung/dp/B004E0I6KS

Außerdem gibt es auch wasserdichte Schalter und USB Buchsen. Wichtig, damit man die Funke ein- und ausschalten und den Akku per USB aufladen kann.
http://engelking.de/produkte

Und hier noch der Thread von BadWolf, wie man aus einer GT2B Funke eine kompakte Handfernsteuerung für Longboards (und in wasserdichter Form) für Surfboards baut.
https://endless-sphere.com/forums/viewtopic.php?f=35&t=71922

Ich gehe mal davon aus, dass man mit diesen Techniken, in Kombination mit einem überarbeiteten Gehäuse aus dem 3d Drucker, eine ausreichend wasserdichte Fernsteuerung bauen kann.

Und zuletzt ein großes Schiffsmodell von Hobbyking. Könnte interessant sein, wenn es um die Befestigung von Motoren, Wellen etc. geht (im Sinne einer Vorlage):
https://hobbyking.com/en_us/osprey-brushless-v-hull-r-c-boat-1075mm-hull-w-motor-hardware.html

Wie Ihr seht habe ich ein paar erste Anknüpfungspunkte gefunden, bin aber noch sehr weit von einem fertigen Konzept entfernt. Ein paar Sachverhalte habe ich dabei noch nicht einmal gestreift, z.B. ob ich die Akkus besonders „einpacken“ muss, bzw. wie ich die Hohlräume im Board schaffe und sie wasserdicht versiegeln kann. Ich freue mich über Hinweise und Tipps von Euch, falls Ihr schon praktische Erfahrungen mit so etwas habt. Nutzt dazu gerne die Kommentarfunktion oder schickt mir eine Mail.

Diesen Artikel werde ich in den nächsten Wochen noch erweitern, wenn ich auf neue Aspekte stoße bzw. ein durchgängiges Konzept entwickele. Schaut also gerne ab und zu mal vorbei.

 

 

Projekt 5: DIY Punktschweißgerät für den Akkubau.

In den letzten Wochen hatte ich leider kaum Zeit etwas zu schreiben. Trotzdem habe ich mich neben dem 3D Druck noch in das Thema Akkubau eingearbeitet, weil ich für meine eLongboards und andere Projekte von LiPos weg wollte und gerne Akkus in beliebigen Formen und Kapazitäten selbst bauen wollte. Bevor man aber über selbst gebaute Akkus überhaupt nachdenkt, muss man sich über ein Punktschweißgerät Gedanken machen. Warum? Weil klassisches Löten mit einem Lötkolben nicht funktionieren würde. Denn erstens wären die Lötpunkte nicht haltbar genug und zweitens würden die hohen Temperaturen die Zellen des Akkus schädigen.

Wenn man dann eBay, Amazon und Co. durchforstet, stößt man auf durchaus günstige Punktschweißgeräte aus China um die 100 EUR. Die meisten haben allerdings einen Haken. Sie arbeiten mit Hochspannungstransformatoren, die die meisten „standard“ Sicherungen in deutschen Haushalten überfordert. Das würde bei der Benutzung dazu führen, dass regelmäßig eine Sicherung raus fliegt. Ein deutlich teureres Schweißgerät wollte ich mir aber für gelegentliche Akkubasteleien nicht kaufen. Also ging an einem Eigenbau mal wieder kein Weg vorbei.

Wenn man im Netz nach „DIY Spotweldern“ oder eben Punktschweißgeräten sucht, dann stößt man auf zwei grundsätzliche Philosophien. Bei der einen werden Hochspannungsnetzteile aus alten Mikrowellen umfunktioniert. Bei der anderen umgeht man die Hochspannung aus einem Netzteil mit dem Einsatz eines „fetten“ Kondensators. Da ich keine alte Mikrowelle zur Hand hatte und auch keine Lust hatte, mit einem Netzteil zu hantieren, habe ich mich für die Variante mit dem Kondensator entschieden.

Auch bei den Kondensator-Bauweisen stößt man wieder auf zwei Lager. Die einen schalten den Strom aus dem Kondensator über eine Mosfet Schaltung. Das ist eine sehr elegante Art, hohe Ströme über mehrere Hochleistungshalbleiter elektronisch zu schalten. Ich war schon drauf und dran mir die passenden Mosfets zu bestellen, da stieß ich auf einen absolut minimalistischen Entwurf, der den Strom aus dem Kondensator nicht „digital“ mit Mosfets, sondern „analog“ mit einem massiven und archaisch anmutenden Kupferschalter schaltet. Der ganze Spaß sollte unter 100 EUR kosten und tatsächlich funktionieren. Außerdem sind keine Halbleiter in der Schaltung, die irgendwann den Geist aufgeben können. Mein Interesse war geweckt und die Entscheidung für das Layout gefallen. 😀

Sicherheitshinweis!
Bevor Ihr jetzt aber darüber nachdenkt, das Schweißgerät nachzubauen, nehmt bitte den folgenden Hinweis zur Kenntnis. Diese Schaltung arbeitet mit sehr hohen Strömen. Alleine der Ladestrom, mit dem der Kondensator zwischen zwei Punktschweißungen geladen wird, liegt bei ca. 15 Ampere. Beim eigentlichen Punktschweißen wird der Kondensator kurzgeschlossen. Es fließt kurzzeitig ein sehr hoher Strom, der das Nickelband mit einer LiIon Zelle verschweißt. Wenn Ihr keine Grundkenntnisse in Sachen Elektronik habt, dann sucht Euch bitte jemanden, der weiß an welcher Seite der Lötkolben heiß wird und der Euch hilft. Die Gefahr sich im schlimmsten Fall einen erheblichen Stromschlag einzufangen ist ohne Erfahrung einfach zu hoch. Auch bei unsachgemäßer Verwendung des Schweißgerätes kann es zu Stromschlägen kommen. Gleiches gilt für die mit diesem Gerät herzustellenden Akkus. Ein 10s5p Akku kann (je nach verwendeten Zellen) leicht Ströme mit 100 Ampere und mehr abgeben. Ein Stromschlag durch einen fast fertigen Akku kann verheerende Folgen haben.

Der Kondensator
Jetzt aber zum Aufbau der Schaltung. Das Herzstück ist ein großzügig dimensionierter Kondensator. Ich habe mir einen 2F Kondensator von Xentrix bei eBay besorgt.

Bildschirmfoto 2017-08-09 um 01.40.02

Diese Kondensatoren werden üblicherweise im Car Hifi Bereich eingesetzt und versorgen die Endstufe für den Bass im Sinne eines „Puffers“ oder „Zwischenspeichers“ mit hohen Strömen, die eine Autobatterie per direkter Stromabgabe ziemlich überfordern würden. Die Kapazität von Kondensatoren wird in Farrad (=F) gemessen. Ein 2F Kondensator ist eine ziemliche „Wumme“. In den meiste Artikeln wird bezweifelt, dass diese Car Hifi Kondensatoren wirklich 2F haben. Die Werte werden in der Car Hifi Szene wohl auch gerne sehr großzügig ausgelegt. Ob er tatsächlich an die 2F heran kommt, oder „nur“ 1,5 F hat ist am Ende aber auch egal. Fakt ist, dass er ausreicht. Ich habe es ausprobiert. 😉

Die Stromzufuhr
Die nächste Frage ist, wie der o.g. Kondensator aufgeladen wird. Sicherlich wollt Ihr nicht beliebig lange warten, bis die nächsten Schweißpunkte gesetzt werden können. Das heißt, dass der Ladestrom so hoch sein muss, dass es ziemlich schnell geht. Ich wollte zwischen zwei Schweißvorgängen nicht länger als 4 bis 5 Sekunden warten. Viel schneller kann ich keine Schweißpunkte setzen. Viele nutzen als Stromquelle für ein Punktschweißgerät eine Autobatterie und als Lastwiderstände zwei parallel geschaltete H4 Halogenlampen. Das funktioniert auch, war aber nicht das, was ich mir vorgestellt habe. Erstens muss man eine Autobatterie nach ner Weile selbst wieder laden, zweitens hatte ich gerade keine rumliegen und drittens sind mir die Halogenlampen als Lastwiderstände suspekt. Ich wollte als Stromquelle das Festspannungsnetzteil meines Akkuladegerätes verwenden und mit „richtigen“ Widerständen arbeiten. Mein Netzteil kann maximal 23 Ampere bei 17 Volt Spannung abgeben. Damit sollte sich schon was anfangen lassen. Bevor ich aber zum konkreten Aufbau meiner Schaltung komme, kommt erst etwas Theorie, damit Ihr auch eigene Schaltungen mit anderen Stromquellen oder Kondensatoren entwickeln könnt.

Die Ladezeitdauer eines Kondensators ist vom vorgeschalteten Widerstand und der Kapazität des Kondensators abhängig. Die Ladezeit folgt dem natürlichen Logarithmus der Zahl e und wird mit dem großen T (sprich Tau) bezeichnet. Nach 1 Tau Ladezeit ist ein Kondensator zu 63% geladen. Nach 5T ist er zu 99,3 % geladen. Er wird nie ganz voll geladen sein, denn mit zunehmender Ladung wird der Innenwiderstand des Kondensators immer größer und der Ladestrom nimmt im selben Maß ab. Nach 5 Tau (und mit 99,3 % Ladung) ist er für unsere Zwecke aber ausreichend geladen. 😉

Bei einem Lastwiderstand von 1 Ohm und einer Kapazität von 2F ist ein Tau 2 Sekunden lang. (T=R*C = 1 Ohm * 2F = 2 sec). Wenn wir 5 Tau für eine 99,3% Ladung brauchen, dann müssen wir für 5 Tau * 2 sec = 10 Sekunden warten, bis der Kondensator ausreichend geladen ist. Das ist rechnerisch länger als ich es eigentlich wollte. In der Praxis wird der Kondensator bei einem Schweißvorgang aber nicht vollständig entladen. Bei einer Restspannung von 1 bis 2 Volt verkürzt sich der Ladevorgang für die nächste Schweißung auf 4 bis 5 Sekunden. Das kann man auch ausrechnen, den Rechenweg dazu erspare ich Euch aber an dieser Stelle. Außerdem hat der Kondensator auch keine 2F, sondern liegt, wie oben beschrieben, sehr wahrscheinlich etwas darunter. Auch das verkürzt den Ladevorgang, weil ein Tau bei 1 Ohm dann etwas kürzer ist als die errechneten 2 Sekunden. Fakt ist, dass mein Kondensator zwischen zwei Schweißvorgängen deutlich weniger Zeit benötigt als die o.g. 10 Sekunden um ausreichend geladen zu sein. Um die Ladezeit weiter zu verkürzen hätte ich auch noch einen weiteren Widerstand verwenden können um mit einem Gesamtwiderstand von 0,8 Ohm zu arbeiten. Mein Netzteil hätte das auf jeden Fall hergegeben.

Bei Lastwiderstand mit 1 Ohm muss ein 15 Volt Netzteil 15 Ampere Strom zur Ladung des Kondensators abgeben. (I = U / R = 15V / 1 Ohm = 15 A). Das entspricht einer Leistung von 225 Watt (P = U * I = 15V * 15 A = 225 W). Diese Leistung muss auch der Lastwiderstand bei jeder Ladung aushalten. Ich habe deshalb vier 4 Ohm Aluminiumdrahtwiderstände mit je 100 Watt maximaler Leistungsaufnahme parallel geschaltet. Der Gesamtwiderstand bei gleich großen, parallel geschalteten Widerständen errechnet sich nach der Formel R(ges) = R / n = 4 Ohm / 4 Widerstände = 1 Ohm Gesamtwiderstand. Dabei fließt dann über jeden Widerstand der gleiche Strom i.H.v. 3,75 Ampere.

4Ohm_Widerstand

Damit habe ich maximal 400 Watt Leistungsaufnahme und ausreichend Reserve für die oben berechneten 250 Watt Ladestrom. Trotzdem werden die Widerstände nach ein paar Ladevorgängen ordentlich heiß. Solche oder vergleichbare Widerstände findet Ihr bei eBay, Amazon und Co. zu erschwinglichen Preisen, in der Regel mit Artikelstandorten irgendwo in China. Von deutschen Händlern könnt Ihr sie natürlich auch bekommen, dann bezahlt ihr aber für einen Widerstand schon so viel, wie für 6 aus China.

Der fünfte Widerstand, den Ihr auf dem Foto erkennen könnt ist übrigens zu kontrollierten Entladung des Kondensators gedacht. In der Regel wird es so sein, dass Ihr am Ende einer Punktschweiß-Session den Kondensator entladen wollt und dabei nicht unbedingt einen weiteren Schweißpunkt setzen möchtet. Dazu könnt Ihr dann das Netzteil ausschalten und den Kondensator über den 5. Widerstand entladen. Dazu haltet Ihr entweder die Elektroden an die beiden Pole des Widerstandes und betätigt den Kupferschalter, oder Ihr baut einen Kippschalter ein, mit dem Ihr die Entladung per Direktverbindung mit dem Kondensator vornehmt. Wenn Ihr Euch für einen Kippschalter entscheidet, dann achtet darauf einen ausreichend „großen“ zu verwenden. 4 Ampere sollte er schon vertragen können.

Der Kupferschalter
Der Kupferschalter ist schon einigermaßen brachial. 😉 Er muss sehr hohe Ströme schalten können, ohne selbst dabei zusammenzuschweißen. Ihr benötigt dazu eine massive Kupferflachstange mit 20 mm x 3 mm Querschnitt und einer Länge von 0,5 m. Mit etwas Glück findet Ihr sie noch hier bei eBay. Bevor Ihr die jetzt bestellt, schaut bitte weiter unten noch nach den Kupferstäben für die Elektroden. Die gibt es beim selben Händler, das spart Versandkosten. 😉

Ich habe von der Flachstange ein etwa 10 cm langes Stück abgesägt und am Ende, sozusagen als Schaltkontakt, auf eine Holzleiste geschraubt. Den Rest der Flachstange, den eigentlichen Schalter, habe ich am Ende an einem Scharnier aus dem Baumarkt auf der Grundplatte befestigt. Dadurch habe ich einen massiven Kupfer-Fußschalter, wenn ich das Schweißgerät auf den Boden stelle. Damit der Flachstab nach einer Betätigung auch wieder in die Ursprungsposition zurückkehrt und der Schalter sich „öffnet“, habe ich noch eine Metallfeder (ebenfalls aus der Eisenwarenabteilung im Baumarkt) darunter befestigt. Zur besseren Führung habe ich noch eine einfache Schelle benutzt, die das „Pedal“ in Querrichtung fixiert. Da Kupfer ein sehr weiches Material ist, biegt es sich bei der Betätigung des Schalters mit dem Fuß leicht durch. Das führt dazu, dass die Kontaktfläche zwischen dem Flachstab und dem quer liegenden Kontakt auf der Gegenseite sich durch die Biegung verringern würde. Damit das nicht passiert, habe ich noch ein Aluprofil oben auf die Kupferflachstange geschraubt. Das Ende (da wo der Fuß den „Schalter“ berührt) habe ich noch mit Isoband isoliert. Sicher ist sicher. 😉

IMG_6646

Die Elektroden und Kabel
Um den Strom auf das Nickelband bzw. die Zellen zu übertragen, benötigt Ihr sogenannte Elektroden. Das sind in unserem Fall zwei Rundstäbe aus Kupfer mit einem Durchmesser von 5mm und einer Länge von 25 cm. Die gibt es beim selben Händler, wie die Flachstange, nämlich hier. Damit es ordentliche Schweißpunkte gibt, müsst Ihr jeweils ein Ende der Elektroden noch „spitz“ feilen. Die Kontaktfläche der Stäbe wäre sonst zu groß und ein präzises Setzen der Schweißpunkte unmöglich.

Natürlich müssen die Elektroden mit dem Kondensator verbunden werden. Dafür könnt Ihr bei den Strömen keinen Klingeldraht verwenden, sondern ihr benötigt ein vernünftiges Kabel mit einem Querschnitt von 20mm². Ich habe dazu ein relativ günstiges „Aluminiummischkabel“ verwendet, das vollkommen ausreichend ist. Auch das gibt es hier beim online Auktionshaus. Um das Kabel mit dem Kondensator, als auch mit den Kupferflachstangen (bzw. dem Schalter) zu verbinden habe ich vier dieser massiven Ringschuhe benutzt. Die gibt es hier.
Bildschirmfoto 2017-08-08 um 23.57.23

Sie haben den Vorteil, dass man das fette Stromkabel sehr einfach mit einer Imbusschraube fixieren kann und nicht löten muss. Es gibt auch günstigere Kabelschuhe, bei denen man dann allerdings zu Lötkolben oder Gasbrenner greifen muss um das Kabel fest mit ihnen zu verbinden.

Für die Verdrahtung der Widerstände mit dem Netzteil und dem Kondensator habe ich ein handelsübliches Feuchtraumstromkabel aus der Elektroabteilung im Baumarkt ausgeschlachtet. Einfach die graue Isolation entfernen. Die drei Kupferadern, die dann zum Vorschein kommen könnt Ihr problemlos verwenden. Je Widerstand sind es ja nur die o.g. 3 bis 4 Ampere.

Die Schaltung
Meinen Aufbau habt Ihr ja bereits weiter oben bei der Erklärung des Schalters auf dem Foto gesehen. Als Basis habe ich ein dickes Holzbrett benutzt, dass ich in meinem Keller gefunden habe (ehem. Regelboden).

Und so sieht der ziemlich übersichtliche Schaltplan aus:

Folie1Den Entladewiderstand habe ich vereinfacht so in die Schaltskizze integriert, dass Ihr ihn direkt mit den Elektroden berührt und den Fußschalter betätigt, wenn Ihr den Kondensator ohne Schweißvorgang entladen möchtet. Es geht wie oben bereits beschrieben natürlich auch eleganter mit einem zusätzlichen Schalter und Direktanschluss an den Kondensator.

Im nächsten Artikel erkläre ich Euch dann, wie ich mit diesem Punktschweißgerät meinen ersten 10s5p Akku mit 36V und 15 Ah für mein Longboard zusammengeschweißt habe. Es hat wirklich gut funktioniert. Und die Schweißpunkte halten bis jetzt ohne Probleme und das, obwohl ein Longboard Akku auch schon mal mechanische Belastungen ertragen muss (z.B. bei Fahrten über unebene/ holperige Straßen).

Ich wünsche Euch viel Spaß beim Nachbau und viel Erfolg bei Euren eigenen Akkuprojekten.

 

 

Mein neuer 3d Drucker

Wenn man sich mit Mikrocontrollern, Elektrolongboards oder sonstigen Basteleien beschäftigt, kommt man unweigerlich früher oder später zu der Frage, ob man sich einen 3d Drucker anschaffen möchte, oder nicht. Ende 2016 war ich an diesem Punkt angelangt und spielte mit dem Gedanken, mir so ein Teil anzuschaffen. Besuche bei Thingiverse und bei einigen YouTube Kanälen (z.B. dem von James Bruton) hatten den Wunsch nach so einem Teil in mir entfacht.

Wenn man sich dann aber dafür interessiert, welchen Drucker man sich konkret anschaffen sollte, dann stößt man auf zahlreiche Artikel in denen zu lesen ist, dass der 3d Druck an sich ziemlich tricky ist, ein Anfänger erst mal haufenweise Ausschuss produziert und frustrierende Pannen, wie verstopfte Druckdüsen, schwächelnde Extruder oder schlicht falsch gewählte Druckeinstellungen einem den letzten Nerv rauben. Und was soll ich sagen? Alles was in diesen Artikeln steht entspricht komplett der Realität. Auf beinahe alle Phänomene stößt man früher oder später in der Praxis, aber davon darf und sollte man sich nicht entmutigen lassen. Denn die Möglichkeiten, die sich mit einem 3d Drucker und der richtigen Software bieten sind es allemal wert.  Zu meinen persönlichen Lösungen der o.g. Probleme schreibe ich später noch, damit Ihr Euch die Suche in etlichen Foren (und den ganzen Ärger) sparen könnt.

Bei meinen Recherchen nach „meinem“ Drucker wurde mir schnell klar, dass ich keinen „fertigen“ Drucker kaufen, sondern einen Bausatz haben wollte. Die Vorteile lagen für mich auf der Hand. Zum einen sind Bausätze günstiger als vergleichbare Fertiggeräte. Zum anderen bieten sie die Möglichkeit während des Zusammenbaus eine Menge über die Funktionsweise des 3d Druckers zu lernen. Sollte bei meinem Drucker irgendwann mal etwas kaputt gehen, oder eine Komponente gegen ein neueres (besseres) Teil ausgetauscht werden müssen, dann ist das bei meinem Eigenbau kein Problem. Schließlich habe ich die komplette Kiste ja mal eigenhändig zusammengesetzt. Und den Bastelspaß und das gute Gefühl, den eigenen Drucker selbst gebaut zu haben, gibt’s gratis dazu.

Egal welchen Test ich mir ansah, unter den Top 3 Modellen in Sachen Druckqualität, Druckgeschwindigkeit und Preis- Leistungsverhältnis war immer ein Ultimaker. Die Firma Ultimaker ist ein niederländisches Unternehmen, dass die Entwicklung seiner Drucker als Open Source Projekt begann und sich bis heute eine Menge dieser Open Source Mentalität bewahrt hat. Auch die Druckersoftware „Cura“, mit der STL (3d) Dateien für den Ausdruck vorbereitet werden (= Slicing) schneidet in allen Tests gut ab. Offenbar gibt es auch hier große Unterschiede zwischen den Herstellern. Es gibt außerdem eine sehr starke Nutzercommunity, die selbst Weiterentwicklungen anstößt und sich gegenseitig bei Problemen hilft. All das und die Tatsache, dass ich mit dem Kauf eines Ultimakers ein europäisches Unternehmen unterstütze, machten mir die Entscheidung leicht. Ich erwarb noch vor Weihnachten einen Ultimaker Original Plus (UMO+) Bausatz, den es für rund 1.000 EUR zu kaufen gibt. Das Plus (bzw. „+“) im Namen ist dabei ein wichtiges Detail. Es gibt nämlich auch noch den älteren Utlimaker Original (ohne Plus), der kein beheizbares Druckbett hat und damit nicht zum Drucken von ABS geeignet ist. Der UMO+ hat außerdem eine weiter entwickelte Steuerelektronik, die exakt der des „größeren Bruders“, nämlich des Ultimaker 2 entspricht.

Sowohl der Ultimaker Original Plus, als auch der Ultimaker Original werden nur als Bausätze angeboten. Während die „Fertigdrucker“ Gehäuse aus Aluminium und Kunststoff haben, bestehen die Gehäuse der Bausätze aus Holzteilen, die per Laser erstaunlich genau aus Holzplatten geschnitten werden. Die Einzelteile muss man nach dem Auspacken wie ein neues Puzzle aus den Holzplatten herausdrücken, bevor man sie zusammenbauen kann. Das ist ziemlich einfach. Der Vorteil von Holz ist der, dass man es sehr gut selbst verarbeiten kann und dass es deutlich energieeffizienter als Aluminium ist. Man tut mit so einem Bausatz also auch noch etwas für die Umwelt. 😉

Ein vermeintlicher Nachteil des Bausatzes ist aber die „Sperrholzoptik“, die der Drucker unweigerlich hat, wenn man das Holz nicht lackiert. Naiv wie ich war wollte ich, dass mein Drucker optisch „chic“ ist und machte mich an die Lackierarbeit. So viel schon vorab, es ist problemlos möglich das Holz zu lackieren. Die Teile büßen auch ihre Passgenauigkeit nicht ein. Man muß jedes Holzteil aber erst einmal mit feinem Schleifpapier (200er und 400er Körnung) abschleifen, mit Holzgrundierung aus der Sprühdose (gibt es im Baumarkt) einsprühen und nach dem Trocknen nochmal abschleifen. Nur so werden die Teile richtig glatt und sind dann für die eigentliche Lackierung vorbereitet. Als Finish kann man dann einen beliebigen Lack nehmen. Ich habe mich für einen Lack auf Wasserbasis aus der Sprühdose  entschieden. Einen hellen Lack zu wählen hilft dabei, dass die Lasergravuren mit den Bezeichnungen der Teile optimal lesbar bleiben. Das vereinfacht den weiteren Zusammenbau des Druckers, denn auf wirklich jedem Teil gibt es eine Lasergravur, die das jeweilige Teil eindeutig kennzeichnet. Ob das mit z.B. schwarzer Farbe auch so gut geklappt hätte weiß ich nicht.

Die Lackierung ist einigermaßen aufwendig. Man muss jedes Einzelteil vor dem Zusammenbau behandeln. Das verzögert den Zusammenbau erheblich. Ohne Lackierung hätte ich den Drucker wahrscheinlich an einem Wochenende zusammengebaut. Mit den Lackierarbeiten habe ich ca. 3 Wochen (immer wenn ich Zeit hatte) gebraucht. Denn zwischen den Lackierungen musste ja immer wieder geschliffen werden und die Teile brauchen dann auch Zeit um zu trocknen. Wer es kaum erwarten kann den Drucker auszuprobieren und ein gewisses Maß an Geduld nicht aufbringen kann, der sollte die Finger von der Lackierung lassen. Im Ergebnis wird man dann aber mit einem, wie ich finde, sehr chicen 3d Drucker belohnt. Wenn man nur flüchtig hinsieht erkennt man nicht, dass mein Ultimaker aus Holz ist. Ich war schon ein wenig stolz auf mein Unikat, als ich endlich fertig war. (s.u.) 😉

Ultimaker.png

In meiner naiven Vorstellung habe ich gedacht, dass der Drucker in der Wohnung genutzt wird und es deshalb doch ganz cool wäre, wenn er einigermaßen ansehnlich ist. Hätte ich gewusst, dass der Geräuschpegel nervt, ein Druck i.d.R. stundenlang dauert und dass das Filament (vor allem ABS) beim Druck den Geruch von geschmolzenem Plastik verströmt, dann hätte ich mir die Lackierarbeiten wahrscheinlich gespart. Denn tatsächlich habe ich den Drucker ziemlich schnell aus der Wohnung ausquartiert, damit ich rund um die Uhr drucken kann, ohne dass der Geräuschpegel und der Geruch meine Familie in den Wahnsinn treibt. Das m.E. einzig wirksame Mittel gegen das sogenannte „Warping“ (= Verziehen) von ABS Drucken ist außerdem die komplette Thermoisolation des Druckraumes. Ich habe das über eine Verkleidung aus Hartschaumplatten gelöst, in die ich den Drucker komplett „einpacke“, um die Temperaturunterschiede im Druckraum so gering wie möglich zu halten. Inzwischen steht der Drucker also dort wo ihn niemand sieht bzw. hört oder riecht, noch dazu unter einer Vollverkleidung aus Hartschaumplatten. Das könnte er genauso gut in Sperrholzoptik, aber dazu später mehr. 😀

Der Zusammenbau des Druckers ist mit der Online Anleitung sehr gut machbar. Wer sich vor einem eventuellen Kauf schon mal einen Eindruck verschaffen möchte, der kann schon einen Blick auf die Montageanleitung werfen, die allerdings nur in englischer Sprache online verfügbar ist. Es gibt zudem einige YouTube Videos, in denen weitere Details erklärt werden. Eigentlich kann man nicht viel falsch machen, wenn man die Anleitung genau befolgt. Alle Teile sind fein säuberlich verpackt und gut gekennzeichnet. Vor jedem Bauabschnitt werden in der Anleitung alle für den Abschnitt erforderlichen Teile aufgeführt. Nur bei den Schrittmotoren muss man gut aufpassen. Ich habe z.B. trotz Anleitung den Schrittmotor für den Feeder (bzw. Extruder) mit dem für die Y-Achse verwechselt. Sie sehen fast identisch aus. Der Motor für den Vorschub (=Feeder) hat einen auf einer Seite abgeflachten Schaft, die X- und Y-Motoren haben einen komplett runden Schaft. Sie unterscheiden sich auch durch eine etwas andere Nummer auf dem Aufkleber.

Wenn der Ultimaker Original Plus aber eine Schwachstelle hat, dann ist das m.E. der Extruder (bzw. Feeder), der dafür sorgt, dass das Filament über den sogenannten „Bowdenschlauch“ durch die heiße Druckdüse (= Nozzle) geschoben wird. Im Originalzustand ist dieser Feeder eine relativ sperrige Konstruktion aus Holz, ein paar Metallschrauben und dem seitlich befestigten Schrittmotor.

Originalfeeder.png

Das Funktionsprinzip ist einfach. Der Schrittmotor dreht über eine Übersetzung (aus Holzzahnrädern) eine Antriebswelle aus Metall, die eine raue Oberfläche hat, ähnlich einer Feile. Über diese sich drehende, raue Antriebswelle läuft der Filamentfaden des Druckers, der über eine Anpressrolle aus Plastik an die o.g. raue Antriebswelle gedrückt wird. Der Anpressdruck der Plastikrolle wird über einen Federmechanismus mit einer Schraube eingestellt. Die raue Oberfläche der Antriebswelle „greift“ dann in das Filament und schiebt es zur Druckdüse durch den so genanten Bowdenschlauch (engl. Bowdentube). Dabei muß je nach Filament und gewählter Düsentemperatur ziemlich viel Kraft vom Feeder auf das Filament übertragen werden. Dadurch, dass der Originalfeeder nur auf einer Seite (dort wo die Antriebswelle sitzt) für Vorschub sorgt und damit versucht die komplette Kraft einseitig auf das Filament zu übertragen, kam es bei meinem Drucker öfter dazu, dass er sich „festfrisst“. Er reibt dann mit seiner rauen Welle eine Kerbe in das Filament, was dazu führt, dass es nicht mehr weiter transportiert wird (sog. „Grinding“). Wenn das mitten in einem Druckvorgang passiert, dann bemerkt man das nicht immer sofort. Unter Umständen läuft der Drucker dann längere Zeit leer. Das heißt, dass kein „frisches“ Filament mehr in die heiße Druckdüse befördert wird. Das noch in der Düse befindliche Filament ist dann über diesen längeren Zeitraum den hohen Temperaturen in der Düse ausgesetzt (i.d.R. > 200° Celsius) und verändert nach einer Weile seine chemische Zusammensetzung (verschmort). Es bilden sich Partikel, die die hauchfeine Druckdüse verstopfen und der Feeder muss noch mehr Kraft aufbringen, um das Material durch die verstopfte Düse zu drücken. Dass der 3d Druck bei dem das passiert ruiniert ist, ist zudem ärgerlich. Es bildet sich eine Art „Teufelskreis“ über einen zu schwachen Felder und eine verstopfte Druckdüse, die einem den letzten Nerv rauben kann, wenn man zum ersten mal damit zu tun hat. Die ersten Drucke haben bei mir noch recht gut funktioniert, doch irgendwann baute sich der o.g. „Teufelskreis“ auf und ich fing an mehr Ausschuss, als brauchbare Teile zu drucken. Die Lösung war in meinem Fall dann eine gründliche Reinigung der Druckdüse (dazu muss der komplette Druckkopf zerlegt werden) und die Montage eines neuen Feeders.

Natürlich kann man sich einen neuen Feeder auch ausdrucken. Es gibt zahlreiche Designs bei Thingiverse und Co. Alle Designs hatten aber ein sehr ähnliches Funktionsprinzip, wie der „Originalfeeder“ mit eben nur einer Antriebswelle. Nach meinen Fehldrucken hatte ich jedoch keine Lust mehr auf Experimente. Ich wollte eine zuverlässige Lösung, damit ich keinen Ausschuss mehr produziere. Bei meiner Suche im Netz stieß ich schließlich auf die Firma Bondtech in Schweden. Bondtech Extruder nutzen keinen „einseitigen“ Antrieb, wie die „standard“ Ultimaker Feeder, sondern „greifen“ das Filment mit zwei Antriebsrollen und können damit viel mehr Kraft übertragen. Und tatsächlich, seit ich auf diesen Feeder umgestiegen bin, hatte ich keine Fehldrucke mehr wegen „Underextrusion“ oder eines festgefressenen Feeders (= Grindig). Leider ist das Wunderding mit 135,- EUR nicht ganz billig. Ich habe aber keinen Cent davon bereut. Der Einbau geht ganz einfach. Die passende Halterung für den Ultimaker könnt Ihr entweder gleich mit bestellen, oder ihr druckt sie Euch selbst aus. Die einzige, kleine Herausforderung ist die, dass man die Schrittanzahl (eSteps) für den Schrittmotor des Bondtech Extruders in der Druckerfirmware anpassen muss. Der Motor des Originalfeeders hat nämlich andere (viel höhere) Werte. Wenn man die Einstellung nicht anpassen würde, dann würde der Bondtech Feeder viel zu viel Filament befördern. Die sogenannte „Overextrusion“ wäre das Ergebnis.  Das kann man aber über ein kurzes „G-Code“ Script einfach erledigen. Einfach in einen Texteditor die folgenden zwei Zeilen eintippen:

M92 E492.45
M500

Die Datei nennt man z.B. „Estepset.gcode“, kopiert sie auf die SD Karte des Druckers und wählt sie über den Controller des Druckes zum Ausdruck aus. Anstatt etwas auszudrucken speichert der Drucker dann den veränderten e-Step Wert für den Schrittmotor des Feeders in seine Firmware. Außerdem muss man in Cura unter „Geräteeinstellungen“ im Feld „G-Code starten“ noch einen Eintrag vornehmen.

M907 E1000 ;set feeder current to 1000mA

Bildschirmfoto 2017-04-17 um 23.40.23

Damit wird der Strom für den Schrittmotor des Feeders auf 1 Ampere begrenzt. Das verhindert, dass der Motor überhitzt. Cura überträgt diese Einstellung dann in jede Druckdatei, die Ihr ab da produziert und zum Drucker schickt. Damit ist der neue Feeder dann auch schon komplett einsatzfähig. Und so sieht das Wunderding aus…

Bondtech.png

Ich werde in der nächsten Zeit noch weitere Artikel zum Thema 3d Druck hier veröffentlichen. Darin erkläre ich Euch, wie ich das „Warping“ Problem bei ABS Ausdrucken für mich gelöst habe. Hier hilft m.E. nur eine sehr gute Wärmedämmung des Druckraumes.

Eine nette Erweiterung des Druckers bietet außerdem die Software OctoPrint, die man auf einem Raspberry Pi 3 installieren kann und damit seinen Drucker u.a. per Webcam und Browser überwachen kann. Auch müssen neue Druckdateien dann nicht mehr per SD Karte zum Drucker „getragen“ werden, sondern können per WLAN zum Drucker geschickt und direkt gestartet werden. Das ist vor allem dann praktisch, wenn der Drucker im Keller (oder sonst wo) steht und man den Druckraum wegen der Wärmeisolation bei ABS Drucken nicht mehr von außen sehen kann. Aber dazu später mehr.

Notizen zur STM32 Programmierung

Nachfolgend ein paar persönliche Notizen von mir zu Dingen, die ich mir (noch) schlecht merken kann und die ich nicht jedes mal neu irgendwo im Netz recherchieren möchte. Vielleicht ist das eine oder andere auch hilfreich für Euch. 😉 Dies ist ein lebendes Dokument, da ich mich aktuell in die Programmierung von Mikrocontrollern mit ARM Chips einarbeite.

Frage 1: Wie legt man ein neues Projekt mit CubeMX und Eclipse an?

Ist leider ziemlich fummelig, aber zum Glück möglich. Für die Schritte 3 bis 8, die nichts anderes sind als lästiges hin- und herkopieren von Dateien, habe ich für meinen Mikrocontroller und meine Projektpfade eine Makrolösung über den Automator in Mac OS X (El Capitan) konfiguriert, die diese Arbeit sekundenschnell erledigt.

  1. Schritt in Eclipse (Eclipse Projekt erzeugen):
    Neues „Hallo World ARM Cortex-M C/C++ Projekt“ erstellen und einen Projektnamen vergeben.Als Prozessor für das STM32F4 Board den Cortex M4 Prozessor auswählen. Der Rest kann so bleiben.Die Ordnerstruktur bis auf eine Änderung so lassen wie sie ist. Als „Vendor CMSIS name“ anstelle „Default“den Namen „stm32f4xx“ vergeben.

    Am Ende den Toolchainpfad angeben, falls noch nicht geschehen und auf „finish“ klicken. Eclipse erstellt dann die Projektordnerstruktur im Workspace Verzeichnis.

  2. Schritt in CubeMX (Cube MX Projekt erzeugen):
    Neues Projekt anlegen und Peripherien, usw. konfigurieren. Wichtig ist, vor dem Generieren des Codes unter „Project/ Settings“ im Feld „Toolchain/ IDE“ den Eintrag „Other Toolchains (GPDSC)“ auszuwählen (s.u.), sonst lässt sich das Projekt nicht in Eclipse übertragen. Cube_Project_SettingsDanach das Cube Projekt abspeichern (am besten unter dem selben Namen, wie in Eclipse, ggfs. mit dem Zusatz „Cube“) bzw. den Code und die Projektverzeichnisstruktur erzeugen lassen. Jetzt haben wir eine zweite Projektverzeichnisstruktur unter CubeMX erzeugt, die wir aber nicht direkt in Eclipse importieren können. Zunächst sind einige manuelle Anpassungen erforderlich, damit das Projekt in Eclipse weiter bearbeitet werden kann. Dazu müssen vor allem einige Dateien aus den „Cube Projektverzeichnissen“ in die „Eclipse Projektverzeichnisse“ kopiert werden.
  3. Schritt im Finder:Im Unterverzeichnis „src“ im Eclipse Projektordner die Dateien „_write.c“ und „Timer.c“ und die „main.c“ löschen. Die Entsprechungen finden sich im Cube Unterordner „src“ und sind die drei Dateien „main.c“, „stm32f4xx_hal_msp.c“ und „stm32f4xx_it.c“. Alle drei Dateien müssen in den „src“ Ordner des Eclipse Projektverzeichnisses kopiert werden.
  4. Schritt im Finder (Dateien aus dem Cube Projekt in das Eclipse Projekt kopieren):Im Unterverzeichnis „include“ die Datei „Timer.h“ löschen. Dafür die drei Dateien „mxconstants.h“, „stm32f4xx_hal_conf.h“ und stm32f4xx_it.h“ aus dem Cube Unterordner „Inc“ kopieren.
  5. Schritt im Finder (Dateien aus dem Cube Projekt in das Eclipse Projekt kopieren):Im Unterverzeichnis „System“ des Eclipse Projektordners befindet sich je ein „stm32f4xx“ Ordner in den Unterordnern „System/include“ und „System/src“ für die Bibliotheksdateien. Diese Ordner sind bis auf je eine readme Datei (die jeweils gelöscht werden kann) leer und müssen mit Dateien aus dem „Cube Projektordner“ gefüllt werden.Für die Inhalte für den „System/include“ Ordners werden die kompletten Inhalte des Ordners „../Drivers/STM32F4xx_HAL_Driver/Inc“ aus dem Cube Projektordner kopiert. Für die Inhalte des „System/src“ Ordners entsprechend die Inhalte des Cube Unterordners „../Drivers/STM32F4xx_HAL_Driver/Src“.
  6. Schritt im Finder (Dateien aus dem Cube Projekt in das Eclipse Projekt kopieren):Im Unterordner „../System/scr/cmsis“ des Eclipse Projektordners befinden sich die Dateien „system_stm32f4xx.c“ und „Vektors_stm32f4xx.c“. Beide Dateien werden gelöscht und durch die folgenden Dateien aus dem Cube Projektordner ersetzt. Der erste Pfad lautet „../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c“. Der zweite ist „../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s“. Die „.s“ Endung der zweiten Datei sollte noch in „.S“ (also einen Großbuchstaben) ersetzt werden. Eclipse erkennt sie sonst möglicherweise nicht.
  7. Schritt im Finder (Dateien aus dem Cube Projekt in das Eclipse Projekt kopieren):Im Unterordner „../System/include/cmsis/“ des Eclipse Projektordners die beiden untersten Dateien (stm32f4xx.h und system_stm32f4xx.h) löschen und durch entsprechende Dateien aus dem Cube Projektordner ersetzen. Der Pfad ist „../Drivers/CMSIS/Device/ST/STM32F4xx/Include/“. Zusätzlich zur Datei „stm32f4xx.h“ habe ich noch die Datei „stm32f407xx.h“ kopiert, also insgesamt 3 Dateien.Danach müssen noch alle Dateien aus dem Cube Unterordner „../Drivers/CMSIS/Include/“ in den Eclipse Projekt Unterordner  „../System/include/cmsis/“ kopiert werden. Dateien, die dort schon vorhanden sind, müssen durch die „neuen“ Dateien aus dem Cube Projektordner ersetzt werden.
  8. Schritt im Finder (Bibliotheksordner aufräumen)Im Eclipse Projekt Unterordner  „System/src/stm32f4xx“ alle Dateien löschen, die am Ende den Ausdruck „Template“ im Dateinamen haben.
  9. Schritt in Eclipse (Eclipse Projekt „Refreshen“ und Flashspeicherbereich anpassen):Zuerst mit der rechten Maustaste auf das Projektverzeichnis in Eclipse klicken. In dem dann erscheinenden Kontextmenü „Refresh“ auswählen. Die Ordner und Dateien, die wir vorher im Finder verändert haben werden dann in die IDE übernommen bzw. sichtbar. Danach die Datei „ldscripts/mem.ld“ in Eclipse anpassen. Dort in Zeile 16 die Adresse des Flash Speichers auf 0x08000000 verändern (ist vorher 0x00000000).
  10. Schritt in Eclipse (Preprozessor Settings für das Projekt anpassen):Rechtsklick auf das Projekt, dann „Properties“ auswählen und bei den Preprozessoreinstellungen für den „Cross ARM C Compiler“ den Eintrag „STM32F407xx“ hinzufügen.Preprozessor_Settings
  11. Schritt in Eclipse (Pfadangabe für Bibliothek Includes ergänzen)Wieder Rechtsklick auf das Projekt in Eclipse und das Verzeichnis der STM32f4xx Bibliothek in den Pfadangaben der Include Verzeichnisse ergänzen. Dann verschwinden auch alle Fehlermeldungen des Editors bei dem Code bzw. den Funktionen, die aus diesen Bibliotheken kommen.Paths_Symbols

 

Frage 2: Welche Dateien werden verändert, wenn man die Konfiguration eines bestehenden Projektes bei CubeMX verändert?

Bei Anpassungen unter CubeMX müssen nur wenige Dateien ausgetauscht werden. Es muss nicht alles, was bei Anlage eines neuen Projektes kopiert werden muss wieder kopiert werden.

Die zu kopierenden Dateien (jeweils 3 Dateien) liegen in dem CubeMX Projektordner in den Unterordnern „src“ und „inc“. Diese 6 Dateien müssen in das „src“ und „Include“ Verzeichnis des eigentlichen Eclipse Projektordners kopiert werden. Vorsicht bei der „main.c“ Datei, denn der Usercode muss manuell von der alten „main.c“ in die neue übertragen werden.

ARM Discovery Board STM32F4 unter MAC OS X bzw. El Capitan programmieren

Da der Speedcontroller aus meinen Longboard Projekten auf einem ARM Microchip basiert, begann ich mich für die Programmierung der ARM Chipfamilie zu interessieren. Schon nach ersten Recherchen im Netz wurde mir klar, dass Controllerborads mit ARM Chips deutlich mehr leisten können als z.B. ein Arduino, die Programmierung dieser Mikrocontroller aber dafür auch deutlich mehr ins Eingemachte geht als bei Arduino oder Raspberry und Co. Das beginnt schon bei der Zusammenstellung der erforderlichen Softwaretools um überhaupt mit der Programmierung beginnen zu können. In dem nachfolgenden Artikel gebe ich Euch einen Überblick darüber, welche Software Komponenten Ihr benötigt und wie Ihr sie auf einem Mac installieren könnt. Vieles davon ist auch (mit ein paar Anpassungen) auf Linux oder Windows übertragbar.

Bevor man ein Discovery Board (z.B. STM32F407) oder Nucleo Board mit ARM Chip programmieren kann, müssen einige Vorbereitungen getroffen werden, die sich je nach Betriebssystem Eures Rechners unterscheiden. Meine Entwicklungsumgebung soll unter MAC OS X El Capitan laufen. Grundsätzlich werden aber alle Elemente auch unter Linux oder Windows benötigt. Nur die Installationsschritte und teilweise die Bezugsquellen unterscheiden sich ein wenig. Alle von mir im weiteren beschriebenen Komponenten sind Open Source und damit frei und kostenlos verwendbar.

Die Arbeit an diesem Artikel ist noch nicht abgeschlossen. Ich überlege auch, eine kleine Artikelserie zur Programmierung von Mikrocontrollern mit ARM Chips zu schreiben. Wenn Euch das interessiert, oder Ihr Fragen zu diesem Artikel habt, dann schreibt gerne in die Kommentare.

Quellen:
https://abboudscorner.wordpress.com
YouTube Microcontroller Tutorial von Ultr@FX

Folgende Softwarekomponenten sind erforderlich:

  1. HomebrewHombrew ist ein Package Manager für Mac OS X, der mit „apt-get“ unter UBUNTU Linux vergleichbar ist. Wir benötigen ihn um die sogenannte ARM Toolchain unter OS X zu installieren. Unter http://brew.sh könnt Ihr alle Details nachlesen.
    Einige der nachfolgenden  Installationsschritte müssen im Terminal im Kommandozeilenmodus vorgenommen werden. Startet das Terminal indem Ihr die cmd + space Tasten drückt und danach „Terminal“ eingebt. Anschließend tippt folgendes Kommando in das sich öffnende Terminal Fenster ein (Ihr könnt es natürlich auch über cmd + „c“ und cmd + „v“ in das Terminal Fenster kopieren):

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    Nachdem Ihr „Enter“ betätigt habt, installiert sich der Paketmanager automatisch.

  2. Die ARM ToolchainDie GNU ARM-Toolchain ist eine Sammlung von Compilern und zum Übersetzen von Programmen für ARM-basierte Mikrocontroller. Sie wird benötigt um den in „C“ programmierten Programmcode in den für den Mikrocontroller lesbaren „Maschinencode“ zu übersetzen. Das ist es übrigens, was Compiler im Allgemeinen machen. Sie übersetzen Programmcode aus einer Programmiersprache in den Maschinencode, den die Hardware, auf der das Programm später laufen soll, versteht.

    Nachdem Homebrew läuft, kann die ARM Toolchain nun sehr einfach installiert werden. Gebt einfach die folgenden Kommandozeilen in das Terminal Fenster ein.

    brew tap PX4/homebrew-px4
    brew update
    brew install gcc-arm-none-eabi

    Umzug prüfen, ob die Installation erfolgreich war, tippt folgendes ein.

    arm-none-eabi-gcc --version

    Folgender Output sollte erscheinen.

    Bildschirmfoto 2016-07-11 um 21.18.13

    Homebrew installiert die ARM Toolchain übrigens in eine Art verstecktes Verzeichnis, das man im Finder nicht direkt direkt sehen kann. Der Pfad lautet: „/usr/local/Cellar/gcc-arm-none-eabi/20140805/bin/“

    Wenn Ihr es dennoch im Finder aufrufen möchtet dann geht das, wenn man in der Finder Menüleiste „Gehe zu“ auswählt und dann auf „Gehe zum Ordner…“ klickt. In das dann erscheinende Fenster gebt Ihr einfach den Pfad „/usr/local“ ein. Dann springt der Finder in den entsprechenden Verzeichnisknoten und Ihr könnt Euch, wie gewohnt, weiter durch die Verzeichnishierarchie klicken.

    Der Pfad zur Toolchain wird später noch mal wichtig, wenn wir sie in die grafische Programmierumgebung „Eclipse“ einbinden. Ich empfehle Euch die komplette Verzeichnisstruktur ab „gcc-arm-note-eabi“ an eine einfacher zu erreichende Stelle zu verschieben (z.B. in einen neuen Ordner in Eurem Userverzeichnis). Sonst wird es später schwierig, die Toolchain in Eclipse einzubinden.

  3. Der DebuggerEinen Debugger benötigt man um bei der Programmierung Fehler in seinem Programmcode aufspüren zu können. Da wir mit Eclipse als integrierter Entwicklungsumgebung (=IDE) arbeiten möchten, benötigen wir einen Debugger, der zu Eclipse passt und der in der Lage ist ein C oder C++ Programm zu debuggen, das für einen ARM Mikrocontroller geschrieben wird. Eine sehr gute, leicht zu installierende und kostenlose Variante ist das „GNU ARM Eclipse OpenOCD“ Toolset. Weitere Informationen dazu, sowie den Downloadlink und Installationshinweise findet Ihr unter http://gnuarmeclipse.github.io/openocd/.
  4. Die Entwicklungs- bzw. Programmierumgebung Eclipse CDTGrundsätzlich könnten wie den Programmcode in einem beliebigen Texteditor schreiben, ihn kompilieren lassen und ihn dann auf den Mikrocontroller hochladen um ihn dort ausführen zu lassen. Das Schreiben des Programmcodes in einem Texteditor ohne z.B. ein vernünftiges Debugging zu haben ist aber sehr unpraktisch und umständlich.

    Deshalb gibt es sogenannte IDEs, also integrierte Entwicklungsumgebungen mit zahlreichen Funktionen, die einem Programmierer das Leben deutlich einfacher machen für alle gängigen Programmiersprachen. Eine sehr bekannte und universell einsetzbare IDE ist Eclipse, die z.B. in der Java Programmierung sehr weit verbreitet ist und mit Eclipse CDT auch eine sehr brauchbare C und C++ Variante bietet. Nachlesen und downloaden könnt Ihr alles unter https://eclipse.org/cdt/. Eclipse läuft übrigens auf allen gängigen Betriebssystemen.

  5. Die Konfiguration von Eclipse und die Einrichtung erster ProjekteWir haben jetzt alle grundsätzlich erforderlichen Komponenten installiert und vorbereitet. Da Eclipse aber eine sehr universelle Entwicklungsumgebung ist, müssen jetzt noch einige Einstellungen in Eclipse vorgenommen werden, damit ein Programmcode ordentlich debugged, kompiliert und auf den Mikrocontroller hochgeladen werden kann.

    Ich werde dazu später noch einen ausführlicheren Artikel schreiben. Bei meinen Recherchen zum Thema ARM Mikrocontroller bin ich aber auf eine sehr hilfreiche Tutorialreihe bei YouTube gestoßen, die ich selbst auch schon komplett durchgearbeitet habe. Nico (alias Ultra@FX) erklärt in dieser Reihe alles von den absoluten Basics der C Programmierung, bis zur Einrichtung von Eclipse und gibt eine ausführliche Einführung in die STM32 Mikrocontrollerwelt über kleinere Lernprojekte.

    Die beiden Folgen in denen er die Konfiguration von Eclipse erklärt findet Ihr hier und hier. Sie bauen zwar auf Linux auf, die Einrichtung in Eclipse ist aber für alle Betriebssysteme gleich und daher auch einfach auf Windows und Mac OS übertragbar. Ich empfehle Euch grundsächlich Nico’s komplettes Tutorial durchzuarbeiten um die Grundlagen der Mikrocontrollerprogrammierung zu verstehen.

  6. CubeMXCubeMX ist ein Softwaretool von ST, mit dem Ihr die Programmierung der Clock und der Register für die Input- und Output Register des ARM Chips bzw. des Mikrocontrollers deutlich komfortabler vornehmen könnt, als wenn Ihr es „zu Fuß“, nur mit der ST Library macht. CubeMX kann direkt in Eclipse eingebunden werden und bringt eine grafische Benutzeroberfläche mit, die die o.g. Programmiervorbereitungen deutlich vereinfachen. Ich empfehle aber, die ersten Schritte ohne CubeMX zu machen und ihn erst zu nutzen, wenn Ihr die Grundzüge der Mikrocontrollerprogrammierung verstanden habt.

Projekt 4: DIY eLongboard 2.0 (Upgrade)

Ich habe ja bereits eine Weile mit dem Gedanken gespielt, mein eLongboard auf eine zweimotorige Variante umzubauen. Nachdem ich dann noch im letzten Dezember meinen VESC geschrottet hatte und das Board (bzw. Deck) auch schon ein wenig gelitten hatte war klar, dass der Winter für ein komplettes „Makeover“ und die Umstellung auf ein „Dual Diagonal Motor Setup“ genutzt wird. Das „2.0“ aus der Artikelüberschrift kann also wörtlich genommen werden. 😉

Bevor ich auf die Details der eigentlichen Überarbeitung eingehe, verliere ich zunächst ein paar Worte zu den (neuen) Komponenten. Im Wesentlichen sind das die Motoren und zwei neue Speedcontroller (natürlich wieder  VESCs). Alle anderen Teile hatte ich schon von meinem ursprünglichen Setup. Die Details dazu könnt Ihr in meinem ersten DIY eLongboad Artikel nachlesen. Dort findet Ihr außerdem Hinweise zur Berechnung von Motorleistung, Batteriespannung, Übersetzung und Geschwindigkeit, als auch alle anderen Basics für den Einstieg. Für unerfahrene eLongboard Konstrukteure empfehle ich unbedingt zunächst die Lektüre des ersten DIY eLongboad Artikels.

Die Motoren

Nachdem ich beim letzten mal auf einen Flugmodellmotor von Hobbyking zurückgegriffen hatte, habe ich mich diesmal für zwei professionellere Exemplare entschieden. Der Hobbyking Motor war eigentlich gar nicht so schlecht. Er hatte aber dennoch einen gravierenden Nachteil. Hauptnachteil der Hobbykingmotoren ist die mangelnde Befestigungsmöglichkeit des Antriebszahnrades auf der Motorwelle. Um das Zahnrad auf der „glatten“ Stahlwelle zu befestigen muss man entweder ein Loch in selbige bohren oder eine „Rille“ hineinfräsen. Wenn man das nicht macht, dann lockert sich alle paar Kilometer die kleine Madenschraube des Antriebszahnrades und der Motor „dreht leer“. Dann wird regelmäßig ein nerviger Stopp zum Nachziehen der Schraube fällig, die davon irgendwann natürlich total ausleiert.

Die professionelleren Motoren haben diese „Rille“ bereits in die Welle eingearbeitet. In diese Vertiefung wird dann ein kleiner Magnet eingesetzt, der perfekt in eine Aussparung des Zahnrades passt und ein Durchdrehen sehr wirkungsvoll verhindert. Außerdem haben bei diesen Motoren die Anschlusskabel für den Speedcontroller einen dickeren Querschnitt.

Nach meiner Recherche habe ich mich für zwei 190KV Motoren von Enertionboards entschieden. Sie haben eine Leistung von je 2.400 Watt und mit ihrem Durchmesser von 63mm passen sie perfekt in die Motorhalterungen, die ich schon für meinen Hobbyking Motor im ursprünglichen Setup genutzt habe.

190kv_electric_skateboard_motor_high_performance_r_spec_3__36014.1440038099.1000.1000

Mit ihren in Summe 4.800 Watt bringen sie fast die doppelte Leistung meines ursprünglichen Setups (der Hobbyking Motor hatte 2.550 Watt Leistung bei 213KV). Das einmotorige Setup mit 2.550 Watt hat mich schon sehr gut aus dem Stand beschleunigt und auch ordentliche Steigungen bewältigt. Mit 4.800 Watt sollte das jetzt noch komfortabler möglich sein, vor allem auch weil die Kraftübertragung jetzt auf zwei Rädern, mit zwei Antriebszahnrädern und Zahnriemen erfolgt.

Rechnen wir das doch mal durch…

190 kv * 38 V Spannung = 7.220 RPM (maximale Motordrehzahl)

Bei 35 km/h Höchstgeschwindigkeit muss die Longboardrolle sich zur gleichen Zeit 2.237 mal drehen.

2.237 [RPM] = 35.000 [Meter pro Stunde] / (0,083 [m Rollendurchmesser] * 3,14159265359 [PI] * 60 [Minuten])

Eine ausführlichere Erklärung für eine Setupkalkulation mit allen Formeln und Zusammenhängen findet Ihr natürlich im DIY eLongboad Artikel.

Das eben errechnete entspricht einer Übersetzung von 1:3,22. In Zähne umgerechnet sind das 11 Zähne auf der Motorwelle, bei 36 Zähnen auf dem Antriebsrad. Bei zwei Motoren sollten 12 oder 14 Zähne auf den Motorwellen damit kein Problem sein. Dafür werden die in Summe 4.800 Watt schon sorgen. 😉

Die Speedcontroller

Als Speedcontroller kamen nur wieder zwei neue VESCs in Frage. 😉 Diesmal habe ich sie bei der Ollinboardcompany bestellt. Die Wartezeit war mit zwei Monaten deutlich länger als bei meiner ersten Bestellung bei Enertion Boards. Am Ende habe ich aber wirklich die neueste Hardwaregeneration in sehr guter Verarbeitungsqualität bekommen. Außerdem konnte ich bestimmen, welche Anschlüsse (Stecker) ich für Motor und Batterien haben wollte, sodass ich nichts selber an- oder umlöten musste. Die Speedcontroller kamen dabei nicht nur mit der neuesten Hardwarekonfiguration, sondern auch mit der aktuellen Firmware bei mir an. Als ich sie dann mit meinem BLDC Tool unter Mac OSX (El Capitan) konfigurieren wollte wurden sie natürlich zunächst mal nicht erkannt. Ich musste mir also erst eine neue Version für den Mac besorgen. Meine Web Recherche hat dann aber ergeben, dass es weder für Windows, noch für Mac OSX eine aktuelle Version des BLDC Tools gibt. Jetzt musste ich mir also dich eine Linux (Ubuntu) Version installieren. Das habe ich dann in einer VirtualBox auf meinem Mac hinbekommen. Wie es geht, könnt ihr hier nachlesen.

Zu den VESCs an sich habe ich in den vorherigen Artikeln eigentlich schon beinahe alles gesagt bzw. geschrieben. Ein paar kleine Ergänzungen gibt es aber für Setups mit mehr als einem Motor. Ihr müsst für jeden Motor einen „eigenen“ VESC nutzen. Dabei wird jeder VESC im BLDC Tool mit einer eigenen Controller ID versehen (bei zwei Motoren hat der „Master“ die „0“ und der „Slave“ die „1“). (Einstellung am Master s.u.)

Master Config

Nur beim „Slave“ Controller wird die Checkbox „Send status over CAN“ aktiviert, die Einstellung „No app“ ausgewählt (hier wird ja kein Nunchuck bzw. Funkfernsteuerung angeschlossen) und, wie bereits erwähnt, die Controller ID „1“ vergeben. (Einstellung am Slave s.u.)

Slave Config

An den „Master“ wird der Empfänger für den Nunchuck oder die Funkfernsteuerung angeschlossen. Die beiden Speedcontroller werden über den CAN Bus mit Hilfe eines Kabels miteinander verbunden.Bei der Nunchuck Konfiguration des Masters wird die Checkbox „Multiple ESCs over CAN“ aktiviert. Wenn auch „Enable Traction Control“ aktiviert wird, dann kann der „Master“ VESC die Drehzahl beider Motoren miteinander synchronisieren. (Einstellung am Master s.u.)

Nunchuck Config

Den Rest (z.B. die Motorkonfiguration) führt ihr ganz normal für die beiden ESCs  mit dem BLDC Tool durch, wie in meinem Grundlagenartikel zum DIY eLongboard beschrieben.

Die Verkabelung

Ich habe eine Weile hin und her überlegt, wie ich die Verkabelung der ESCs mit den beiden LiPo Batterien am besten vornehme. Für das „Single Motor Setup“ habe ich zwei parallel geschaltete 10s LiPos mit insgesamt 38 Volt und 11,6 Amperestunden Kapazität genutzt. Nach voller Ladung konnte ich mit diesen Batterien rund 30km am Stück fahren. Diese beiden Akkus möchte ich natürlich für das neue Setup weiter nutzen. Weil beim eLongboarden ziemlich hohe Ströme fließen, war die Integration eines simplen „Ein-/ Ausschalters“ nicht trivial. Ich habe im ursprünglichen Setup einen speziellen “No-Spark Hi Current Battery Arming Switch“ für Flugmodelle verbaut.

Es besteht also grundsätzlich die Möglichkeit, an jeden VESC (bzw. Motor) jeweils einen der beiden LiPo Akkus direkt anzuschließen. Vorteil dabei ist die möglicherweise gleichmäßigere Entladung der beiden Batterien und niedrigeren Ströme. Ich hatte ja schon im Grundlagenartikel beschrieben, dass es sehr wichtig ist, auf eine gleichmäßige Entladung der Akkus zu achten, da LiPos sehr allergisch auf Tiefenentladung reagieren. Außerdem fließen jeweils „nur“ Ströme von maximal 70 Ampere je Akku bzw. Motor. Nachteil beim separaten Anschluss je eines Akkus an je einen Motor ist aber, dass dann beide Akkus mit einem eigenen „Ein-/ Ausschalter“ versehen werden müsste. Vor jeder Fahrt müsste dann jeder Motor separat scharf geschaltet werden. Das wollte ich vermeiden und das gesamte System mit nur einem Schalter aktivieren bzw. ausschalten können.

Bildschirmfoto 2016-03-23 um 21.59.48

Also beließ ich es bei der Parallelschaltung der LiPos und schloss sie an beide ESCs an (siehe oben). So kann ich alles mit nur einem Schalter ein- und ausschalten. Allerdings fließen nun bis zu 140 Ampere über diesen Schalter. Außerdem muss ich im Auge behalten, wie gleichmäßig die LiPos bei dieser Schaltung entladen werden, denn auf Tiefenentladung reagieren sie bekanntlich sehr allergisch bzw. dramatisch. Die „Musterlösung“ für die Schaltung bei zwei Motoren habe ich bei meinen Recherchen leider nicht finden können. Es gibt im Netz Beispiele für beide Varianten. Falls meine Verkabelung im Regelbetrieb irgendwelche Probleme machen sollte, werde ich darüber natürlich berichten. Bei den bisherigen Testfahrten funktionierte alles problemlos.

Die Optik oder „Pimp my Board“

Die restlichen Veränderungen an meinem Board dienten ausschließlich optischen Zwecken. Da ich das Griptape wegen einiger Macken ohnehin entfernen musste wollte ich zunächst die Befestigung der GFK Box für die Elektronik unter dem Deck verbessern. Bislang habe ich vier 4mm Maschinenschrauben und dazu passende Flügelmuttern benutzt.

image

Das sollte auch nach dem Umbau so bleiben. Allerdings wollte ich erreichen, dass man die Köpfe der Schrauben von oben nicht mehr sehen kann. Ich habe mir daher einen Senkkopfbohrer besorgt und die Löcher auf der Oberseite des Decks so vertieft, dass die Schraubenköpfe nicht mehr hervorstehen.

Als nächstes habe ich die Löcher auf der Unterseite mit einem größeren Bohrer vertieft, damit ich Kontermuttern anbringen konnte, die ich danach quasi „plan“ im Board „versenken“ konnte, damit sie ebenfalls nicht überstehen. Das ist nötig, weil die Schraubenköpfe auf der Oberseite am Ende ja nicht mehr sichtbar, bzw. erreichbar sein werden und die Schrauben sich beim Anziehen der Flügelmuttern nicht bewegen bzw. drehen dürfen.

Als nächstes habe ich die Kontermutter und das Loch an der Unterseite mit Epoxidharz  ausgegossen. Den Schraubenkopf an der Oberseite habe ich unter Holzspachtel verschwinden lassen. Danach alles schön abschleifen, frisch lackieren und am Ende neues Griptape aufkleben, fertig ist das Deck.

Außerdem wollte ich die Optik meiner Trucks (=Achsen) mit den Motorhalterungen verbessern. Das blanke, leicht „angemackte“ Aluminium hat mir nicht mehr so gut gefallen. Ich ging daher zum Pulverbeschichter meines Vertrauens und habe die Achsen schwarz glänzend beschichten lassen. Die Farbe ist natürlich Geschmacksache. In „Natura“ sehen die pulverbeschichteten Achsen für meinen Geschmack noch viel besser aus, als auf dem Foto und wirken deutlich edler bzw. wertiger als die unbeschichteten. 😉

image

Am Ende noch die Kugellager reinigen, alle Komponenten montieren und fertig ist das Upgrade auf zwei Motoren.

Ich habe jetzt schon einige Fahrten mit dem neuen Setup gemacht. Wahnsinn, welche Power das Board jetzt hat. Mit einem Motor war es schon ganz gut. Mit zweien läuft es noch souveräner, vor allem wenn es bergauf geht. Es ist ein bisschen wie der Vergleich zwischen einem Auto mit vier Zylindern und 2 Litern Hubraum und einem 6 Zylinder mit 3 Litern Hubraum. Da hat man einfach noch mehr Freude am Fahren. 😉

Das BLDC Tool unter Linux installieren…

Es ist eine Weile her, seit ich den letzten Bericht geschrieben habe. Das liegt daran, dass ich 2 Monate auf die neuen Speedcontroller warten musste. 😦 Wie schon an anderer Stelle erwähnt muss man immer Geduld mitbringen, wenn man sich neue VESC Controller bestellt, weil sie in (halb-) manueller Kleinserienfertigung hergestellt werden. Aber zwei Monate fand ich dann doch ziemlich lang.

Dir lange Wartezeit hat sich aber gelohnt. Die VESCs von der Ollinboard Company sind wirklich klasse geworden und mit einem speziellen Schutzcover ausgestattet worden.

20151219_105035

Die Verarbeitung macht einen sehr guten Eindruck und die Kabel habe ich so bestellen können, dass sie direkt zu den Anschlüssen der Motoren und der Akkus passen. Und weil ich so geduldig war, habe ich die allerneuesten Hardware Versionen bekommen. Die Firmware und der Bootloader waren natürlich auch schon vorinstalliert.

Einziges Problem war der Umstand, dass der letzte Stand des BLDC Tools für Windows und Mac OSX schon ziemlich veraltet ist (Firmware Version 1.10 bzw. 1.12). Die aktuelle Version konnte ich leider nirgendwo finden. Da ging kein Weg mehr an der Linux Version vorbei. Also habe ich mir ein altes Laptop geschnappt und erst mal eine Ubuntu Distribution installiert. Die Ubuntu 14.04.4 LTS Version könnt Ihr hier downloaden. Ich habe die Installation nachfolgend beschrieben, weil Linux für Windows- oder Apple OSX Nutzer schon ziemlich gewöhnungsbedürftig ist. Insbesondere die Installation von Software kann es in sich haben und muss häufig „manuell“ über das Eintippen von Linus Kommandos in einem Terminal Window erfolgen (so auch beim BLDC Tool). Ich habe mich daran gewagt und es als absoluter Linux Neuling tatsächlich hinbekommen. Wenn man sich an die unten aufgeführten Schritte hält, ist es wirklich nicht schwer.

Vor der Installation müsst Ihr die Imagedatei aus dem Download entweder auf eine DVD brennen oder auf einen bootfähigen USB Stick kopieren. Dann folgt Ihr einfach den Installationshinweisen. Das ist noch ziemlich easy und unterscheidet sich nicht von einer gewöhnlichen Windows oder OSX Installation.

Wenn Ubuntu installiert ist und läuft, startet Ihr ein „Terminal“ auf Eurem Linux Rechner. Anschließend gebt Ihr die unten folgenden Kommandos in das Terminal Fenster ein. Ihr könnt sie auch direkt zeilenweise aus diesem Artikel kopieren (geht wie bei Windows über ein Kontextmenü mit der rechten Maustaste und vorheriges Markieren des Textes mit der linken Maustaste) und in das Terminal Window „pasten“…

Schritt 1

Zunächst muss eine sogenannte „Toolchain“ installiert werden. Wegen der Anzeige hier im Blog kann es sein, dass eine Kommandozeile hier als zwei Zeilen angezeigt wird. Kopiert immer alles, bis vor das nächste „CX: “ und fügt es als eine Zeile in das Terminal ein (natürlich ohne das jeweilige „CX:“ mit zu kopieren oder abzutippen), sonst bekommt Ihr am Ende Fehlermeldungen wegen nicht installierter Bibliotheken (Libraries). Das betrifft insbesondere die Kommandozeile 5 (C5:). Wenn Ihr hier etwas weg lasst, dann kommen später die Fehler beim „qmake“ (C15:) und beim „make“ (C16:):

C1: sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-wabi
C2: sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
C3: sudo apt-get update
C4: sudo apt-get install gcc-arm-none-eabi=4.9.3.2015q3-1trusty1

Schritt 2

Danach müssen weitere Abhängigkeiten installiert werden:

C5: sudo apt-get install build-essential qt-sdk openocd git libudev-dev libqt5serialport5-dev

Schritt 3

Fügt Euch zu „Dialout“ Gruppe hinzu um an den USB Port zu kommen, ohne „root“ zu sein:

C6: sudo adduser $USER dialout

Schritt 4

Deinstalliert den Modemmanager (es sei denn, Ihr benutzt ihn) um Wartezeiten zu vermeiden, wenn Ihr den VESC mit dem USB Port verbindet:

C7: sudo apt-get remove modemmanager

Schritt 5

Danach fügt „udev“ Regeln hinzu:

C8: wget vedder.se/Temp/49-stlinkv2.rules
C9: sudo mv 49-stlinkv2.rules /etc/udev/rules.d/
C10: sudo reload udev

Schritt 6

Loggt Euch aus und wieder ein. Jetzt könnt Ihr das BLDC Tool downloaden, kompilieren und am Ende auch starten.

Dazu erzeugt Ihr zunächst ein Verzeichnis für das BLDC Tool und wechselt snchließend in dieses Verzeichnis:

C11: mkdir BLDC
C12: cd BLDC

Dort führt Ihr die nachfolgenden Kommandos aus:

C13: git clone https://github.com/vedderb/bldc-tool.git vldc-tool
C14: cd vldc-tool
C15: qmake -qt=qt5
C16: make 
C17: ./BLDC_Tool

Am Ende sollte dieses Fenster erscheinen, dann habt Ihr es geschafft 😉 :

MCCONF_Limits

Ihr habt außerdem die Möglichkeit mir dem Linux Dateimanager (keine Ahnung, wie das Teil offiziell heißt 😛 ) in das BLDC Installationsverzeichnis zu gehen und einen Starlink für das Tool direkt auf den Desktop zu kopieren. Dann müsst Ihr zukünftig zum Starten des Tools nicht erst wieder das Terminal öffnen um den Startbefehl von Hand einzutippen.

Verbindet jetzt den VESC mit dem USB Port Eures Computers und klickt auf „Connect“. In der unteren, rechten Ecke sollte jetzt „Connected“ angezeigt werden. Wenn Ihr das geschafft habt, könnt Ihr die neueste Firmware auf den VESC aufspielen und/ oder den Controller konfigurieren. Wie das geht, habe ich in meinem DIY eLongboard Artikel schon beschrieben.

Wenn Ihr einen VESC ohne vorinstallierte Firmware und Bootloader gekauft oder selbst gelötet habt, dann müsst Ihr noch einen sogenannten Programmer nutzen und noch die entsprechenden Installationen unter Linux vornehmen. Wie das geht, könnt Ihr auf Benjamins Website nachlesen. Wenn Ihr Eure VESCS bei den einschlägigen Produzenten (Enertion Boards, Ollinboard Company, etc.) bestellt, ist die aktuelle Firmware und der Bootloader immer schon vorinstalliert. Dann braucht Ihr Euch um den Programmer und die zusätzlichen Schritte keine Gedanken zu machen. Ihr könnt dann direkt mit dem BLDC Tool am USB Port arbeiten.

Ich habe außerdem schon versucht, Ubuntu und das BLDC Tool in einer VirtualBox unter OSX laufen zu lassen. Die Installation hat dort auch einwandfrei funktioniert. Ich habe es aber nie hinbekommen, den USB Port fehlerfrei an das Linux in der VirtualBox freizugeben. Auch die Filter habe nie richtig funktioniert.

Update vom 13.3.2016: Inzwischen hat es auch unter „El Capitan“ in der VirtualBox geklappt. Mit der aktuellen Version der VirtualBox (5.0.16) und Ubuntu Version 15.04 läuft BLDC auf meinem MacBook Pro. Auch das „Einfangen“ bzw. „Filtern“ des USB Ports ist jetzt kein Problem mehr. Das ist extrem praktisch, weil ich Linux und das BLDC Tool jetzt direkt aus dem Mac Betriebssystem laufen lassen kann. 😉

Bildschirmfoto 2016-03-14 um 00.03.45

Mein überarbeitetes Dual Motor DIY eLongboard 2.0 ist übrigens auch schon fahrtüchtig. Die erste, kleine Probefahrt konnte ich heute machen. Die zwei Motoren haben eine Wahnsinnspower. Demnächst schreibe ich hier natürlich einen ausführlicheren Artikel darüber.

Elektronikprojekte mit Mikrocontrollern

%d Bloggern gefällt das: