Eachine Racer 250 Upgrade

Ich besitze seit Ende 2017 einen Quadcopter, der auf den Namen Eachine Racer 250 hört. Damals konnte man die Drohne über den chinesischen Versandhändler Banggood erwerben, inzwischen ist das Fluggerät nicht mehr erhältlich, aber dennoch sehr beliebt.

Hier soll es nun darum gehen, die Drohne etwas aufzuwerten und eventuell defekte Teile zu tauschen. Wer also einen Eachine Racer 250 besitzt und eine verständliche Zusammenfassung funktionierender Upgrades haben möchte, wird hier hoffentlich fündig. Ich bin selbst überhaupt kein Profi und musste mir die meisten Dinge in diversen Foren und auf YouTube aneignet.

Welches Modell genau wird genutzt?

Es gibt diverse Konfigurationen, in denen man den Eachine Racer 250 kaufen konnte. Ich habe die Drohne im Set mit einer angepassten und auf Eachine gebrandeten Version der FlySky i6 Fernsteuerung gekauft. Genauer:

  • Eachine Racer 250
  • Eachine i6 Transmitter
  • Eachine i6 Receiver
  • Akku mit 1500mAh
  • Ladegerät
  • Mode 2 (Left Hand Throttle)
  • F3 6DOF Flight Controller (SP Racing F3 6DOF)
  • FPV Kamera und Sender

Die Drohne wurde komplett fertig montiert geliefert und war nach dem Aufladen sofort einsatzbereit.

Eachine Racer 250 im Flug über einem Getreidefeld

Was habe ich verändert, nachgekauft, ersetzt?

Ich fange an bei den Dingen, die einfach 1:1 ersetzt wurden und die keine wirklichen Eingriffe in das Fluggerät erfordern, nach unten hin wird es etwas anspruchsvoller.

Links zu den Produkten sind teilweise Affiliate-Links, ich bekomme also für darüber gekaufte Produkte etwas Provision. Das ist aber nicht die Motivation für diesen Artikel und auch nicht der Grund für die Auswahl der Produkte.

Um die Navigation etwas einfacher zu machen, hier ein paar Sprungmarken:

Hochwertiges Ladegerät

Das mitgelieferte Ladegerät ist kurz gesagt Schrott und wird die Akkus vermutlich eher über Kurz, als über Lang töten. Ich kaufte mir ein SC-608 von iSDT, ein kleines Ladegerät, das über einen XT60-Stecker mit einer variablen Spannung versorgt wird und LiPo-Akkus mit zwei bis sechs Zellen laden kann. Die in die Drohne passenden Akkus haben üblicherweise drei Zellen, das passt also. Großer Vorteil dieses Gerätes: Ich kann es sowohl Zuhause am Netzteil, als auch im Auto am Zigarettenanzünder nutzen.

Leider scheint es das Ladegerät nicht mehr zu geben, manchmal tauchen gebrauchte Geräte bei eBay auf. iSDT ist aber generell eine zu empfehlende, günstige Ladegerät-Marke, die auf Banggood eine breite Palette an Produkten anbietet.

Ersatz-Akkus

Gleich zu Anfang kaufte ich noch einen Original-Akku, dieser ist aber offenbar nicht mehr erhältlich. Das Original ist ein 3S-Akku (3 Zellen) mit 11,1V Nennspannung und 1500mAh Kapazität, die Belastbarkeit ist mit 25C angegeben (das heißt, es kann kurzfristig das 25-fache der Nennkapazität entnommen werden)

Ein originaler Eachine-Akku mit 1500mAh und der ZOP Power mit 2200mAh liegen nebeneinander.

Ich habe kurze Zeit später noch einen weiteren Akku gekauft, hier habe ich mich für einen ZOP Power Akku entschieden, ebenfalls mit 3 Zellen und damit 11,1V Spannung, jedoch 2200mAh Kapazität und einer Belastbarkeit von 35C. Der Akku ist etwas dicker, als das Original, passt aber dennoch gut unter die obere Abdeckung des Quads. Durch die höhere Kapazität ist die Flugzeit spürbar länger, die Belastbarkeit von 35C ist vor allem wichtig, wenn noch bessere ESCs und Motoren verbaut werden.

Akku-Lagerbox

Lithium-Polymer-Akkus sind extrem Leistungsfähig, dabei aber leicht und klein. Das bedeutet: Die Energiedichte ist hoch und damit ebenso die Energie, die im Fehlerfall freigesetzt wird.
Kurz gesagt: Wenn so ein Akku im geladenen Zustand durch welche Umstände auch immer kurzgeschlossen oder überhitzt wird, kann er enorm lange, enorm spektakulär und enorm heiß verbrennen. Das möchte man nicht im Regal in der Wohnung haben.

Es gibt spezielle Taschen, die aus einer Art dicker Kunststofffolie mit Gewebe bestehen und die thermische Energie, sowie auch den Druck zurückhalten können sollen. Das ist jedoch Unsinn, die Stichflammen fressen sich in kürzester Zeit durch das Material.

Eine mit LIPO SAFE beschriftete Tasche aus grauer Kunststoffgewebefolie

Wirklich gut helfen tun nur spezielle LiPo-Safes wie zum Beispiel Bat-Safe oder ähnliche, meist dick ausgekleidete Metallkisten, teilweise mit Luftfilter.
Oder, in der (auch von mir gewählten) etwas günstigeren Variante: Alte Munitionskisten aus Stahl. Ich habe bei eBay eine für 15€ gekauft. Wichtig ist: Die Dichtung im Deckel muss entfernt werden, damit im Notfall der Druck irgendwie entweichen kann. Da natürlich auch die Stahlkiste extrem heiß wird, empfiehlt es sich, diese noch mit Gipskarton oder Ähnlichem auszukleiden.

Olivgrüne Munitionskiste aus Stahl

Ersatz-Propeller

Mitgeliefert waren zwei Sets Propeller der gleichen Bauart, ein mal schwarz, ein mal weiß. Diese Propeller funktionieren ziemlich gut, gehen aber, gerade am Anfang, schnell kaputt. Es ist nicht so einfach, Ersatz zu finden, der qualitativ auch den Anforderungen des doch recht rasanten Quads gewachsen ist. Ich bin inzwischen bei Propellern von KingKong angekommen, mit denen ich sehr zufrieden bin. Sie werden gleich im Set mit 10 Stück CW und 10 Stück CCW verkauft, also quasi 5 Sets.

Pappschachtel mit der Beschriftung KINGKONG mit zwei Kunststoffbeuteln, in jedem Beutel befinden sich acht orangene Propeller, eine Tüte ist mit R bedruckt.

Selbstsichernde Propeller-Muttern

Die Original-Muttern, die mit dem Quad geliefert wurden, waren sowohl nicht besonders sicher, als auch unvollständig (eine fehlte). Ich war also froh, gleich selbstsichernde Muttern mit bestellt zu haben, die gibt es im Set mit 2 Stück CW und 2 Stück CCW. Die Qualität ist nicht sehr berauschend, aber sie tun, was sie sollen und fallen auch nicht wieder ab, besser als die mitgelieferten sind sie in jedem Fall.

Ersatz-Beine

Der Racer 250 besteht aus einer großen Platine, die gleichzeitig auch die Bodenplatte ist, einer Deckelplatte aus Carbon und vier Beinen aus (vermutlich) glasfaserverstärktem Kunststoff bestehen. Die Beine verbinden die obere mit der unteren Platte und tragen die Motoren, gleichzeitig sind sie die Füße des Quads. Sie müssen also recht häufig recht viel Energie abfangen und können schon mal kaputt gehen. Es gibt aktuell noch die originalen Beine als Ersatz recht günstig zu kaufen, ich habe auch noch ein paar in meiner Kiste liegen (und musste auch schon zwei tauschen).

Die mit Grasschnitt verdreckte Drohne liegt auf einem Tisch, bei den beiden vorderen Beinen fehlen Teile der Füße. Vor der Drohne liegen zwei neue Beine und ein Inbusschlüssel.

Namensschild

Unbemannte Luftfahrzeuge mit einem Gewicht ab 250 Gramm benötigen ein fest montiertes und nicht brennbares „Kennzeichen“ mit dem Namen des Halters samt Anschrift und Kontaktmöglichkeit. Der DMFV (Deutscher Modell Flieger Verband) bietet solche Schilder an, dort habe ich meines soweit ich weiß auch gekauft.

Kenntnisnachweis und Versicherung

Hat nichts mit der Drohne direkt zu tun, aber wo wir gerade beim Namensschild und dem DMFV sind:
Wer eine Drohne fliegt, muss eine Haftpflichtversicherung haben, die dadurch verursachte Schäden abdeckt. Das tut eine private Haftpflichtversicherung üblicherweise nicht.
Die Mitgliedschaft im DMFV ist gleichzeitig auch eine Haftpflichtversicherung für Drohnenpiloten sowohl auf Modellflugplätzen, als auch außerhalb solcher Flugplätze, wenn die Startmasse geringer als 1 kg ist. Die Basis-Mitgliedschaft kostet 42€ pro Jahr und beinhaltet eine Versicherung mit Deckungssumme bis 2 Millionen €.

Außerdem bietet der DMFV einen Kenntnisnachweis an. Dieser ist Vorschrift, wenn man Drohnen über 2 kg fliegen will, aber durchaus auch sinnvoll, wenn man leichtere Modelle bewegt (einfach, um neugierigen Personen eine gewisse Sachkunde nachweisen zu können und um selbst auch einfach die Regeln zu kennen). Beim DMFV wird der Kenntnisnachweis online erworben und kostet 26,75€.

Ausbau der FPV-Kamera

Inzwischen habe ich die Kamera samt Sendeeinheit für den FPV-Flug ausgebaut (dort, wo ich fliege, ist die Nutzung üblicherweise und im speziellen ohne Begleitung nicht erlaubt und ich entgehe so dem Vorwurf, andere Menschen zu filmen), das spart etwas Gewicht und kommt damit der Flugzeit zugute.

Ziemlich verdreckte Drohne liegt auf einem Tisch, die beiden vorderen Beine sind demontiert und die ESCs von der Platine abgelötet, das abgesteckte Kameramodul liegt vor der Drohne, die Sendeplatine ist noch an die demontierte obere Platte geschraubt.

Ich habe dafür einfach die obere Platte abgenommen, das Kameramodul herausgenommen, die Sendeeinheit abgeschraubt und das Quad wieder zusammengebaut.

Gute Motoren

Das, was man über den Racer am häufigsten im Netz liest ist: Tolles Quad, aber die Motoren sind schlecht verarbeitet. Und so ist es auch, die Motoren hatten von Anfang an hohe Toleranzen und waren wackelig, vor kurzem war die Drohne bei mir dann auch nicht mehr sicher steuerbar, weil ziemliche Vibrationen auftraten. Es mussten also neue her. Die originalen Motoren gibt es nicht mehr und ich wollte sie auch nicht mehr nutzen, also musste eine gute Alternative her. Ich entschied mich nach längerer Recherche für die Racing-Motoren RS2205-2300 von EMAX, natürlich je zwei mal CW und CCW.

Ein EMAX Motor mit montiertem Propeller am linken, vorderen Bein

Nach der Inbetriebnahme und ersten Flügen kann ich sagen, dass sich diese Investition wirklich lohnt. Die Motoren sind wirklich stark und bewegen den Racer zusammen mit neuen ESCs und den KingKong-Propellern sehr geschmeidig und schnell, dabei sind sie deutlich leiser (im Leerlauf bei mäßigem Umgebungslärm gar nicht hörbar) und sehr stabil. Passendes Werkzeug, Schrauben in verschiedenen Längen, Ersatzteile und Propeller-Muttern werden gleich mitgeliefert.

Montage der Motoren:

Die mechanische Montage sollte selbsterklärend sein: Die vier Gewindelöcher im Motor werden mit den vier Langlöchern im Bein ausgerichtet, sodass die drei Adern zum Inneren des Beins zeigen. Zum Anschrauben habe ich die kürzesten mitgelieferten Schrauben genutzt, alle anderen wären zu lang und würden das Innere des Motors beschädigen. Die Schrauben werden natürlich ordentlich fest angezogen, damit die Vibrationen sie nicht einfach wieder lösen. Bei der Montage ist natürlich die Drehrichtung der Motoren zu beachten, diese ist sowohl mit Pfeilen, als auch als Text auf die Motoren gedruckt:

Foto des Eachine Racer 250 von oben mit montierten Propellern, neben den Motoren ist Text ins Bild eingefügt:
Vorne links: CW
Vorne rechts: CCW
Hinten rechts: CW
Hinten links: CCW

Der Anschluss der drei Adern an den ESC ist ebenfalls recht einfach: Ich habe zuerst alle Motoren gleich angeschlossen, also den ESC neben den Motor gelegt und die drei Adern in der Reihenfolge, in der sie aus dem Motor kommen, 1:1 auf den ESC gelötet. Zwei der Motoren werden sich also bei der Inbetriebnahme richtig herum drehen, zwei falsch herum. Bei den falsch drehenden müssen dann noch zwei der Adern vertauscht werden, was die Drehrichtung wieder umkehrt. Der erste Test, dabei speziell die Kontrolle der Laufrichtung, erfolgt am besten in betaflight und, ganz wichtig, ohne Propeller!

Moderne ESCs (Fahrtenregler)

Die im Racer 250 verbauten ESCs sind etwas ältere Teile, Simonk 12A, die mit 12A nicht sehr leistungsfähig sind und auch keine modernen Protokolle sprechen, sondern über PWM angesteuert werden.

Wo nun schon die Motoren neu waren, konnte ich das so nicht lassen und ersetzte sie durch Favourite FVT LittleBee Spring 20A ESCs, die neben der deutlich höheren Leistung von 20A (25A Boost) auch moderne ESC-Protokolle wie DSHOT verstehen. Die neuen ESCs funktionieren ausgezeichnet mit dem verbauten Flight Controller (SP Racing F3) und den neuen Motoren.

Montage der ESCs

Die original verbauten Simonk ESCs hatten nur drei Adern (Plus, Minus, Signal), die direkt an die Platine gelötet wurden. Die neuen ESCs haben zwei dicke Adern (Plus und Minus), sowie zwei dünne Adern, die auf einen kleinen Stecker geführt sind. Das ist aber kein Problem, ich habe die beiden dünnen Adern auf die gleiche Länge zugeschnitten, wie die beiden dicken und alles dabei möglichst lang gelassen (was die Demontage und eventuelle Reparaturen einfacher macht).

Vorderer Teil der Drohne ohne die obere Platte und ohne Beine, die ESCs sind abgelötet und man kann die drei Lötpads und ihre Beschriftung (-, S, +) erkennen.

Die dicke rote Ader (Plus) wird einfach auf das Lötpad gelötet, das mit „+“ markiert ist, die dünne weiße (Signal) kommt auf das mittlere Pad (beschriftet mit S1-S4, je nach Bein) und sowohl die dicke schwarze, als auch die dünne schwarze Ader (beide Minus) werden auf das mit „-“ markierte Pad gelötet.

Blick ins Innere des Bein-Gerippes, ein ESC wird mit einem Kabelbinder im Bein gehalten, drei Adern gehen zum Motor, vier Adern gehen mit der beschriebenen Belegung auf die drei Pads auf der Platine.

Ich habe die Adern dann so verlegt, dass sie nicht in die Propeller geraten können und die ESCs einfach mit Kabelbindern an den Beinen befestigt.

betaflight flashen und Einstellungen vornehmen

Ich werde hier jetzt nicht auf die Besonderheiten von betaflight eingehen, dazu gibt es auf YouTube einige gute Tutorials. Es gibt aber ein paar Dinge zu beachten, dazu hier mehr.

Richtige Version auswählen

Der verbaute Controller SP Racing F3 ist schon etwas älter und sowohl die CPU, als auch der Speicher kommen mit den neueren Versionen von betaflight an ihre Grenzen. Aus diesem Grund unterstützen neuere Versionen den Flight Controller gar nicht mehr, aber auch bei etwas älteren Versionen der Firmware lassen sich bestimmte, für den Racer 250 aber wichtige Funktionen nicht mehr auswählen. So kann man beispielsweise den Empfänger-Modus nicht auf PWM schalten, das ist aber notwendig, da der Empfänger keine serielle Kommunikation unterstützt, sondern eine Ader pro Kanal nutzt.

Mein Quad fliegt aktuell mit betaflight 3.5.7, diese Version hat noch alle benötigten Einstellungsmöglichkeiten.

Einstellungen vornehmen

Wie gesagt, das hier wird kein betaflight-Tutorial, aber ich gebe ein paar Tipps, wie man mit dem Racer 250 schnell zum Ziel kommt.

  • Einrichtung: Hier gibt es nichts spezielles zu beachten.
  • Anschlüsse: Wie schon geschrieben, wir nutzen keinen seriellen Empfänger, hier muss nur UART1 auf Konfiguration/MSP geschaltet sein (USB-Schnittstelle)
  • Konfiguration:
    • Der Mischer muss auf Quad X eingestellt werden.
    • Als ESC-Protokoll habe ich mit den neuen ESCs und Motoren DSHOT600 ausgewählt.
    • Um die CPU nicht zu überlasten, aber gute Ergebnisse zu erzielen, habe ich als Gyro Update Frequenz 4 kHz, als PID Loop Frequenz 2 kHz gewählt. Das bringt eine CPU-Auslastung von um die 50%, was okay ist.
    • Als Empfänger-Modus muss „PWM Empfänger“ gewählt werden.
  • Strom & Batterie: Hier gibt es nichts zu beachten, diese Anschlüsse sind am Racer nicht belegt.
  • PID Einstellungen: Hier gibt es sicher ganz erstaunlich viel einzustellen, jedoch: Die Standardwerte funktionieren ausgezeichnet.
  • Empfänger: Grundsätzlich sollte die Voreinstellung okay sein. Die Kanalzuordnung ist AETR1234. Ich habe bei angeschlossenem Akku die Werte der Fernsteuerung überprüft und die Stickwerte etwas genauer angepasst, aber das ist nicht wirklich notwendig.
  • Modi: Hier werden die Flumodi eingestellt. Diese werden an der Fernsteuerung über den Dreifachschalter gewählt. Üblicherweise sollte man hier Angle, Horizon und Acro Trainer wählen. Der Kanal ist bei allen drei Modi AUX 1, die Bereiche sollten mit angeschlossenem Akku kontrolliert und justiert werden.
    • Angle: Der einfache Modus, das Quad wird automatisch gerade gehalten und die Motoren können nicht übersteuern (man kann das Quad also nicht auf den Kopf drehen). Der Schalter ist dafür ganz oben. Der Bereich ist etwa zwischen 900 und 1200.
    • Horizon: Exakt das gleiche, wie Angle, jedoch kann man das Quad auf den Kopf drehen (flippen), es gibt also keine Winkel-Begrenzung. In Ruhestellung der Achsen wird das Quad aber wieder gerade gehalten. Der Schalter ist in der Mittelstellung, der Bereich liegt zwischen 1300 und 1700.
    • Acro Trainer: Hier ist die Stabilisierung aus, das Quad tut also in etwa das, was man ihm an den Sticks befiehlt. Lediglich extreme Ausschläge werden abgefangen. Der Schalter ist dafür ganz unten, der Wert liegt zwischen 1800 und 2100.
  • Motoren: Hier wird es wieder interessant, wenn die Motoren angeschlossen, aber die Laufrichtung nicht überprüft wurde. Dieses Menü erlaubt es, die Motoren einzeln hochzufahren und zu testen. Dafür müssen in jedem Fall die Propeller entfernt sein, sonst wird es schnell gefährlich. Der Akku muss angeschlossen sein. Rechts kann der Schalter neben „Ich weiß was ich mache“ aktiviert werden, dann lassen sich die Motoren über die einzelnen Regler steuern. Hier wird dann also einzeln geprüft, ob die Laufrichtung stimmt. Wenn nicht, werden beim entsprechenden Motor zwei Adern getauscht, was die Drehrichtung ändert.
  • Flugschreiber: Kann, wenn man das nicht braucht, deaktiviert werden.
  • Kommandozeile: Wird nur benötigt, um speziellere Einstellungen vorzunehmen, anzusehen oder Backups zu machen.

Ich denke, das war es eigentlich. Um noch mehr Möglichkeiten zu haben, könnte man noch den Flight Controller tauschen gegen ein moderneres Modell wie beispielsweise den CC3D Revolution. Dies werde ich in Zukunft auch tun, dazu dann aber gesondert mehr.

Pentax K-50 Blendenfehler „reparieren“

Seit 2014 besitzen wir eine digitale Spiegelreflexkamera, eine Pentax K-50. Wir haben sie seitdem tatsächlich nicht sehr oft genutzt, aber haben sie trotzdem ziemlich lieb. Leider verließ uns heute das Glück mit der Kamera, von einem Bild auf das andere war alles schwarz, nur sehr helle Stellen waren auf Bildern noch erkennbar.

Nach kurzer Recherche stellte ich fest: Dies ist ein bekanntes Problem der Pentax K-50 und auch der K-30. Eine Reparatur außerhalb der Garantie kostet vermutlich etwa 200€. Die Kamera kostete damals etwa 550€, das Verhältnis passte mir nicht, daher versuchte ich es selbst. Mit Erfolg. Das Problem ist nur ein verklemmter Magnetanker, der in einem Spulenkörper hin und her gleiten muss, sich aber verkeilt. Das lässt sich problemlos minimalinvasiv beheben.

Damit andere eventuell auf der Suche nach der Lösung des gleichen Problems fündig werden, schreibe ich auf, was ich tat. Aber beachtet bitte, dass jegliches Herumschrauben am Gerät die Garantie erlöschen lässt. Ihr seid für Schäden selbst verantwortlich.

Zuerst fotografierte ich die Kamera von allen Seiten und druckte die Fotos aus, um die entnommenen Schrauben auf dem Ausdruck zu fixieren. Hier sind es nicht sonderlich viele, dennoch hilft es, den Überblick zu behalten und nichts zu verwechseln.

Pentax K-50 steht auf einem Foto-Ausdruck, die Schrauben sind an den entsprechenden Stellen auf dem Ausdruck festgeklebt.

Gelöst werden müssen die Schrauben des Gehäuse-Oberteils, sowie eine Schraube im Batteriefach. Dafür sollte das Objektiv abgenommen und sowohl das Objektiv, als auch der Kamera-Körper mit den dafür vorgesehenen Kappen verschlossen werden.

Auf den folgenden Bildern ist zu sehen, welche Schrauben zu entfernen sind. Die Reihenfolge ist egal.

Sind die Schrauben alle entfernt, kann das Oberteil der Kamera einfach nach oben abgezogen werden.
Vorsicht: Kamera und Oberteil sind mit Litzen und Flachbandkabeln mit einander verbunden. Also nicht zu stark ziehen. Das Gehäuse kann dort hängen bleiben.

Ist das Oberteil abgenommen, sieht man rechts unter dem Mikrofon eine kleine Spule, die mit Kupferdraht gewickelt ist. In der Spule steckt ein beweglicher Anker/Kern.

Das Obergehäuse ist entfernt, der Blick auf die Platinen ist frei. Innen in Objektivnähe, unter dem Mikrofon befindet sich die Spule mit dem festgeklemmten Anker.
Das Obergehäuse ist entfernt, der Blick auf die Platinen ist frei. Innen in Objektivnähe, unter dem Mikrofon befindet sich die Spule mit dem festgeklemmten Anker.

Ich habe nun einen spitzen Schraubendreher genutzt, um den Anker vorsichtig nach vorne zu drücken. Mit einem nicht ganz kleinen Ruck löste er sich aus der Spule und schnappte wieder nach vorn. Das Problem ist damit behoben.

Huawei Watch (1) recovery bootloop und fix

Da es aktuell vermutlich (Android Wear 2.0 ist verfügbar) vermehrt dazu kommt, dass Anwender ihre Huawei Watch erster Generation über die android debug bridge (adb) flashen und es dabei offenbar zu einem gemeinen Bootloop im Recovery kommen kann, hier nun meine Lösung dieses Problems.

Voraussetzungen:

  1. Android SDK Platform Tools installiert und lauffähig
  2. „Non preview image“ der Huawei Watch von der Android-Wear Entwickler-Seite bei Google herunterladen und entpacken

Der Fehler stellt sich wie folgt dar:

Die Uhr startet nicht korrekt, es wird ganz kurz der liegende Android mit Ausrufezeichen angezeigt (wirklich nur für den Bruchteil einer Sekunde), dann startet die Uhr neu und endet wieder im oben genannten Zustand und wiederholt das in einer Endlosschleife. Bei langem Druck auf die Krone geht die Uhr nicht aus, sondern startet wieder in den genannten Bootloop.

Die Lösung:

Zuerst muss die Uhr in den Fastboot-Modus gebracht werden. Da im Fehlerfall kein Zugriff über den Computer möglich ist, muss dies manuell über die Krone der Uhr gemacht werden.

  1. Krone drücken und halten. Nach einigen Sekunden startet die Uhr neu, das Huawei-Logo erscheint. Die Krone weiter gedrückt halten.
  2. Während das Logo aufleuchtet, vibriert die Uhr für etwa eine Sekunde. Danach sofort die Krone loslassen und kurz erneut drücken, bevor die Uhr noch einmal vibriert. Drückt man zu spät, landet man wieder im Bootloop. Drückt man richtig, landet man im Fastboot-Modus.

Nun muss die Uhr in den USB-Adapter gelegt und an den PC angeschlossen werden. In der Konsole muss geprüft werden, ob die Uhr erkannt wird, dies geschieht per

fastboot devices

Nun sollte die Uhr angezeigt werden. Wird kein Gerät angezeigt, hat das nicht geklappt und die weiteren Schritte werden nicht funktionieren.

Nun muss zuerst den Bootloader (im eingangs heruntergeladenen Ordner) geflasht werden:

fastboot flash bootloader /pfad/zur/datei/bootloader-sturgeon-m6e69f.img
fastboot reboot-bootloader

Ist dies geschehen, wird das System-Image geflasht:

fastboot -w update /pfad/zur/datei/image-sturgeon-m6e69f.zip

Auch dies muss fehlerfrei durchlaufen. Ist es geschehen, ist die Uhr wieder im Auslieferungszustand und kann neu eingerichtet werden.

ESP8266 & NodeMCU (LUA) Tutorial – Temperatursensor DS18B20 abfragen

Dies ist Teil zwei meiner Tutorialserie zum ESP8266.
Teil eins ist hier zu finden: „ESP8266 & NodeMCU (LUA) Einstiegstutorial

Inhalt

  1. Einleitung
  2. Voraussetzungen
  3. Hardware-Vorbereitung
  4. Firmware flashen
  5. Das Programm

Einleitung

Im ersten Teil der Reihe habe ich beschrieben, was der ESP8266 ist, wie man die Firmware auf den Controller läd und sich in der Programmierumgebung ESPlorer mit dem Chip verbindet und die Verbindung überprüft.

Hier soll es nun darum gehen, ein einfaches Programm zu erstellen, um mehrere Temperatursensoren DS18B20 einzubinden und Daten wie Chip-Adresse und die Temperatur anzuzeigen.

Voraussetzungen

Als Hardware wird der ESP8266 in Form des ESP-01 genutzt, grundsätzlich funktioniert natürlich jedes andere Modul mit mindestens einem GPIO-Pin. Dieses Tutorial ist aber ausdrücklich für den ESP-01 geschrieben und auch nur auf diesem getestet.

Ansonsten gehe ich davon aus, dass sowohl das ESPTool zum flashen der Firmware, als auch der ESPlorer bereits installiert sind und funktionieren.

Praktisch wäre es natürlich auch, wenn zwei Temperatursensoren DS18B20 vorhanden sind, diese sind auf ebay sehr günstig aus China, oder etwas teurer aus Deutschland erhältlich. Außerdem wird ein 4,7 Kiloohm-Widerstand benötigt.

Hardware-Vorbereitung

Zuerst sollten wir die Hardware entsprechend zusammen stecken. Grundsätzlich ist der Aufbau sehr ähnlich der bereits aus dem ersten Teil bekannten Konfiguration, hinzu kommen nur ein 4k7Ω Widerstand, sowie die beiden DS18B20. Die Grafik sieht der Übersicht halber ein wenig anders aus, ist aber tatsächlich nur in den genannten Details unterschiedlich zur Grafik aus dem ersten Teil.

Der ESP8266 auf einem Breadboard mit dem zwei Temperatursensoren DS18B20
ESP8266 mit DS18B20

Auf dem Breadboard sieht das in etwas komprimierter Form bei mir so aus:

Der ESP8266 mit zwei DS18B20 zusammengesteckt auf einem Breadboard
ESP8266 mit DS18B20 auf Breadboard

Wie man sieht, habe ich die Sensoren direkt auf das Breadboard gesteckt, ebenso den Widerstand.

Firmware flashen

Hier soll es nicht darum gehen, wie die Firmware auf den Chip kommt, sondern darum, dass die korrekte Firmware auf den Chip kommt. Im weiteren Verlauf des Tutorials wird eine Bibliothek genutzt, die verschiedene Module in der Firmware des ESP8266 benötigt.

Die von mir genutzte Firmware enthält die Module

  • file
  • gpio
  • net
  • node
  • ow
  • tmr
  • uart
  • wifi

geflasht ist die float-Version, da dies für die genutzte Bibliothek des DS18B20 notwendig ist.

Wer mag, kann auch die von mir genutzte Firmware hier herunterladen, dann ist alles genau gleich.

Wie die Firmware auf den ESP8266 kommt, habe ich ja bereits geschrieben, dies sollte nun geschehen.

Das Programm

Nun sollte alles bereit sein: Die Hardware ist zusammengesteckt, die Firmware ist auf den ESP8266 geflasht und die Programmieroberfläche ESPlorer ist installiert und einsatzbereit.

Um die Sensoren über unser einfaches Programm abfragen zu können, benötigen wir die Bibliothek ds18b20.lua, die ich vor längerer Zeit mal im Git-Repo von NodeMCU heruntergeladen habe. Ich weiß leider nicht mehr genau, welche der Bibliotheken es war, daher stelle ich auch diese hier zum Download zur Verfügung. Die Bibliothek kann an beliebiger Stelle entpackt werden und dann im ESPlorer geöffnet werden. Hierzu einfach im Reiter „NodeMCU & MicroPython“ auf „Open“ klicken, zu der Datei navigieren, auswählen und öffnen:

Bibliothek ds18b20.lua in ESPlorer öffnen
Bibliothek ds18b20.lua in ESPlorer öffnen

Die geöffnete Datei muss nicht weiter angepasst werden, sie wird nun per Klick auf „Save to ESP“ in den Speicher des ESP8266 geladen und ist ab diesem Zeitpunkt auf dem Gerät nutzbar.

Nun schreiben wir das eigentliche Programm, welches die eben gespeicherte Bibliothek nutzt, um Daten von angeschlossenen DS18B20-Sensoren zu empfangen und auszugeben. Der Dateiname ist hier ds18b20-test.lua.

-- Testprogramm um mehrere DS18B20 zu lesen

-- GPIO-Pin festlegen
pin = 3

-- DS18B20-Modul und GPIO initialisieren
t=require("ds18b20")
t.setup(pin)
addrs=t.addrs()

-- Anzahl der DS18B20 ausgeben
print('Anzahl Sensoren: ' .. table.getn(addrs))

-- Adresse(n) der DS18B20 ausgeben
for k, v in pairs(addrs) do print('Adresse Sensor ' .. k .. ':', v:byte(1,8)) end

for k, v in pairs(addrs) do
print('Temperatur Sensor ' .. k .. ': ' .. t.read(v,C) .. ' Grad Celsius')
end

-- Alle Ressourcen wieder freigeben
t = nil
ds18b20 = nil
package.loaded["ds18b20"]=nil

Die Kommentare sagen eigentlich schon so ziemlich alles: Der nutzbare GPIO-Pin heißt in der Firmware Pin 3 und wird am Anfang des Programms festgelegt. Die eben auf das Gerät geladene Bibliothek wird geladen und der Pin übergeben. Nun wird gezählt, wieviele Sensoren gefunden wurden, die Zahl wird ausgegeben, danach die Adressen der Sensoren, sowie der Temperaturwert.
Zum Schluss werdend die Ressourcen wieder freigegeben.

Auch dieses Programm kann hier heruntergeladen werden, da vermutlich Hochkommata etc. hier falsch dargestellt sein dürften.

Diese Datei muss nun wie schon die Bibliothek per Klick auf „Save to ESP“ in den Speicher des ESP8266 geladen werden. Ist dies geschehen, wird das Programm bereits ausgeführt. Es sollte also in etwa so aussehen:

Das Programm wird im ESPlorer in den Speicher geladen und danach automatisch ausgeführt.
Das Programm wird gespeichert und ausgeführt

Wir sehen also, dass die beiden Sensoren funktionieren und uns neben ihrer Adresse auch die Temperatur melden.

Um das Programm nun über den ESPlorer ausführen zu lassen, müssen wir nur den Befehl

dofile("ds18b20-test.lua");

in der Befehlszeile unten im ESPlorer ausführen und bekommen schon unser gewünschtes Ergebnis zurück:

Das Programm wird im ESPlorer mit dem Befehl dofile("ds18b20-test.lua"); ausgeführt.
DS18B20 abfragen über ESPlorer

Damit geht dieses Tutorial auch wieder zuende, im (hoffentlich bald folgenden) nächsten Teil steigen wir dann etwas tiefer ein und lassen das Programm zyklisch auf dem Controller laufen und die Werte über eine einfache Webseite im LAN/WLAN ausgeben.

ESP8266 & NodeMCU (LUA) Einstiegstutorial

Vor ein paar Wochen stolperte ich über einen Chip mit dem klangvollen Namen ESP8266. Julian Ilett stellte ihn in einem Video vor und kurz darauf machten sich zwei Module aus China auf den Weg zu mir.
Da der ESP8266 ein für Bastler ziemlich interessanter Chip ist, habe ich mich entschlossen, ihm ein paar Artikel zu widmen, dies ist der erste.

Inhalt

  1. Der ESP8266
  2. Das Tutorial
  3. Die Hardware
  4. Zusammenstecken
  5. NodeMCU Firmware flashen
  6. Die Programmierumgebung

Der ESP8266

Vom ESP8266 wird häufig als WLAN-Modul gesprochen und tatsächlich sieht man im Netz viele Projekte, die ihn als reine Seriell-zu-WLAN-Schnittstelle für beispielsweise einen Arduino nutzen.
Der ESP8266 ist allerdings deutlich mehr, denn neben der WLAN-Funktionalität ist er ein kompletter Microcontroller, der mit verschiedenen Firmwares geflasht und dann beispielsweise in C, C++ oder LUA programmiert werden kann.

Der Microcontroller hat soweit ich weiß 12 GPIO-Pins, die unter anderem I2C, SPI, UART, GPIO und PWM bereitstellen und einen 3,3V-Pegel führen. In Verbindung mit seiner WLAN-Schnittstelle eignet er sich damit ziemlich gut als Controller für die ganzen modischen IoT-Dinge, wie beispielsweise einen WLAN-Temperatursensor oder -Lichtschalter.

Der Microcontroller wird auf verschiedenen Breakout- und Devboards angeboten, die mal mehr, mal weniger Funktionen des Chips unterstützen.

Das Tutorial

In diesem Tutorial soll es darum gehen, den Chip über eine Serielle Schnittstelle (UART) mit dem Computer zu verbinden und zwei der wichtigsten Tools in Betrieb zu nehmen.

Ich benutze in diesem Tutorial ein Breakout-Board mit dem Namen ESP-01, welches neben der UART-Schnittstelle und den für den Betrieb wichtigen Pins nur einen nutzbaren GPIO-Pin nach außen führt. Dafür bekommt man es für einen niedrigen, einstelligen Euro-Betrag aus China oder auch aus Deutschland.

Frontansicht des ESP-01 Breakout-Boards
Der ESP8266 als ESP-01 Breakout-Board

Natürlich können auch andere Ausführungen genutzt werden, populär ist beispielsweise das Development-Kit von NodeMCU, welches schon eine eigene USB-zu-Seriell-Schnittstelle mitbringt und neben den 5V per USB keine weitere Spannungsversorgung benötigt. Außerdem hat dieses Dev-Board einen Reset-Knopf und einen Knopf für GPIO0, welcher zum Flashen neuer Firmware benötigt wird, doch dazu später mehr.

Der ESP8266 aufgelötet auf ein Development-Board von NodeMCU
ESP8266 auf dem NodeMCU-Devboard

Ich benutze in diesem Tutorial einen Linux-PC, manche verwendete Software gibt es für Windows eventuell nicht und bei der Installation ist die Vorgehensweise sicherlich eine andere.

Die Hardware

Neben dem schon angesprochenen ESP8266 benötigen wir entweder eine Serielle Schnittstelle und einen Pegelwandler wie einen MAX3232, um auf den vom ESP8266 benötigten LVTTL-Pegel von 3,3V zu kommen, oder einen USB-Adapter, der beispielsweise per FTDI-Chip direkt LVTTL-Pegel hat. Einen solchen USB-zu-TTL-Adapter gibt es auch auf ebay für wenig Geld.

Um die Teile unkompliziert zusammen stecken zu können, sollte man auf ein Breadboard, also ein Elektronik-Steckbrett und fertige Jumper-Kabel zurückgreifen. Beides gibt es sehr günstig in tausendfacher Ausführung bei ebay.

Außerdem benötigt das Modul selbst noch eine Spannungsversorgung. Viele USB-zu-TTL-Platinen bringen eine zwischen 5V und 3,3V einstellbare Versorgungsspannung mit, diese ist jedoch zu instabil und der benötigte Strom übersteigt meistens die Kapazität der Platine. Es sollte also eine externe 3,3V-Spannungsquelle genutzt werden. So etwas gibt es auch bei ebay fertig für die Verwendung mit Breadboards.

Zusammenstecken

Das Modul ESP-01 ist leider nicht Breadboard-freundlich, muss also entweder fliegend verdrahtet, oder per selbstgebautem Adapter auf das Breadboard gesteckt werden. Ich nehme hier die erste Lösung und verbinde das Modul fliegend mit Jumperwire.

Da die Module üblicherweise völlig undokumentiert verschickt werden und das ESP-01 oft auch kein gedrucktes Pinout hat, habe ich hier einen Belegungsplan gemacht.

Pinout des ESP8266 ESP-01 Moduls
Pinout des ESP-01 Moduls

Nun müssen die Pins des ESP8266 über das Breadboard mit dem FTDI-Modul und der Spannungsversorgung verbunden werden. Wichtig ist, dass die Spannungsversorgung auf 3,3V eingestellt ist, 5V würden das Modul zerstören. Das Schema sieht wie folgt aus:

Der ESP8266 angeschlossen an das Breadboard und verbunden mit einer FTDI-Schnittstelle
ESP8266 ESP-01 an FTDI

GND wird mit GND auf dem Breadboard verbunden, VCC mit +3,3V, ebenfalls an 3,3V wird der Pin CH_PD angeschlossen.

RXD und TXD werden gekreuzt mit RXD und TXD des FTDI-Adapters verbunden, GND der Schnittstelle muss auf jeden Fall auch zu GND auf dem Breadboard gebrückt werden. Wie weiter oben schon beschrieben, sollte man nicht versuchen, den ESP8266 über die Spannungsversorgung des FTDI-Adapters zu betreiben, VCC des Adapters bleibt also unbelegt.

RST am ESP8266 ist der Reset-Anschluss, der genutzt wird, um das Programm auf dem Chip neu zu starten. Dies kann später auch Softwareseitig geschehen, der Pin kann freigelassen werden.

GPIO0 ist ein Pin, der leider nicht für externe Anwendungen genutzt werden kann. Er wird auf GND verbunden, um in den Flash-Modus zu gelangen. Im Normalbetrieb ist er nicht belegt.

GPIO2 ist der tatsächlich nutzbare GPIO-Pin, der für externe Anwendungen wie OneWire, Digital I/O usw. genutzt werden kann. Dazu in weiteren Tutorials mehr.

NodeMCU Firmware flashen

Im Auslieferungszustand ist der ESP8266 vermutlich mit der AT-Firmware geflasht. Bei den billigen China-Modulen kommt es auch vor, dass überhaupt keine lauffähige Firmware vorhanden ist und das Modul darüber nicht ansprechbar ist.

Nun heißt dieses Tutorial aber „ESP8266 & NodeMCU (LUA) Einstiegstutorial“, also sollte auch die NodeMCU-Firmware auf den Chip kommen. Wir benötigen folgendes dazu:

  • Firmware
  • Flash-Tool

Die Firmware kann entweder aus dem Sourcecode gebaut werden, oder aber über eine bequeme Weboberfläche zusammen geklickt werden. Der Einfachheit halber entscheiden wir uns hier für letztere Option und lassen uns die Firmware von der Seite nodemcu-build.com bauen und per Mail zusenden. Die ausgewählten Module reichen eigentlich aus, um den Chip in Betrieb zu nehmen und auch eine LED blinken zu lassen.

Achtung: Vor dem Flashen muss der Pin GPIO0 mit GND verbunden werden, andernfalls kann die Firmware-Ebene nicht erreicht werden.

Das Flash-Tool ist ein Python-Programm, das über pypi installiert werden kann (Vorausgesetzt ist Python >= 2.7 und pip):

pip install esptool

Ist das Flash-Tool installiert und die Firmware vorhanden, starten wir den ESP8266 und verbinden die serielle Schnittstelle mit dem Computer. In der Konsole sollte dmesg nun als eine der letzten Zeilen etwas derartiges ausgeben:

FTDI USB Serial Device converter now attached to ttyUSB0

Wir wissen also, dass der PC den Adapter erkannt hat und dass er die Gerätedatei /dev/ttyUSB0 bekommen hat.

Nun müssen wir nur noch die Firmware flashen. Die Syntax dafür ist:

python esptool.py --port /dev/ttyUSB0 write_flash 0x00000 /pfad/zur/firmware.bin

Das sieht dann in natura so aus:

Konsole mit der Ausgabe des esptool beim Flashen des ESP8266
NodeMCU-Firmware auf den ESP8266 flashen mit esptool

Nun ist die neue Firmware auf dem ESP8266 und kann nach einem Neustart genutzt werden. Nicht vergessen, GPIO0 wieder von GND zu trennen, um in den Betriebsmodus zurückzukehren.

Die Programmierumgebung

Der ESP8266 kann nun über LUA programmiert werden. Um die Verbindung herzustellen und einige Helferlein an die Hand zu geben, gibt es eine Programmierumgebung namens ESPlorer. Die Software benötigt Java und läuft auf allen Betriebssystemen, die das unterstützen. Herunterladen kann man ESPlorer bei GitHub.

Programmieroberfläche ESPlorer, links der Code-Editor, rechts der serielle monitor
Programmieroberfläche ESPlorer

Oben kann nun die serielle Schnittstelle ausgewählt werden, über „Open“ verbindet sich die Oberfläche mit dem ESP8266. Dieser Antwortet mit so etwas wie:

NodeMCU custom build by frightanic.com
	branch: master
	commit: c8037568571edb5c568c2f8231e4f8ce0683b883
	SSL: false
	modules: file,gpio,net,node,ow,tmr,uart,wifi
 build 	built on: 2016-05-27 20:54
 powered by Lua 5.1.4 on SDK 1.4.0
lua: cannot open init.lua

Eventuell wird auch erst eine Fehlermeldung angezeigt. Startet man den ESP8266 neu, sollte er aber mit der Oberfläche kommunizieren. Meldet er sich nicht korrekt an, heißt das nicht, dass es nicht funktioniert hat, das kommt schon mal vor. Tippt man unten in das Textfeld neben dem grünen „Send“ Knopf

=node.chipid()

sollte der ESP mit der Chip-ID antworten. Tut er das, scheint es auch geklappt zu haben.

ESPlorer zeigt die Begrüßung der Firmware, aber auch Fehlermeldungen an
Der ESPlorer verbunden mit dem ESP8266

Damit ist dieses Tutorial schon beendet, der Chip wurde angeschlossen, geflasht und kann mit dem ESPlorer verbunden werden. ESPlorer unterstützt nun die Programmierung des Chips mit LUA-Scripts. Interessante Scripts und Bibliotheken findet man im GitHub der NodeMCU-Firmware.

Ich hoffe, ich konnte den Einstieg einigermaßen sinnvoll erklären, bei Fragen bitte einfach einen Kommentar hinterlassen.