Elektronik_Header_3Lüftersteuerung mit ESP-01

 

Mini-Wecker

Im Zuge der Entwicklung des Holz-Weckers ist mir irgendwann die Idee durch den Kopf geschossen, so eine Wortuhr müsste doch auch noch wesentlich kleiner gebaut werden können. Und nachdem mit dem Holz-Wecker der Schritt weg von der Verwendung von LED-Stripes hin zur eigenen Platine mit aufgelöteten LED-Pixeln bereits getan war, habe ich mal geschaut, was so an kleineren, seriell ansteuerbaren RGB-LEDs auf dem Markt angeboten wird.

Relativ schnell fand ich Typen in der Größe 2427, also 2,4 x 2,7 mm groß, kurz darauf auch quadratische Versionen in 2020, also 2 x 2 mm groß.

Einige Überlegungen und Rechnungen später habe ich die Front der gewünschten Wortuhr mit 75 x 75 mm festgelegt und mit der Platzierung der LEDs in der Größe 2020 und sonstigen Bauelemente begonnen. Das Schaltbild konnte ich fast 1:1 vom Holz-Wecker übernehmen, lediglich die dort gefundenen Auslassungen und Optimierungen wurden eingebaut.

Als Solche sind zu nennen der Treibertransistor für den Piezo-Piepser, der ja mit 5 V betrieben werden soll und mit der vom ESP8266 gelieferten Spannung von 3,3 V nur viel zu leise vor sich hin piept, sowie eine Pegelwandlerstufe zwischen ESP und der ersten LED. Hier dasselbe Problem, der ESP liefert 3,3 V, die LEDs werden aber mit 5 V betrieben und erwarten für eine sichere Ansteuerung TTL-Pegel.

Es soll aber nicht unerwähnt bleiben, dass die Ansteuerung der LEDs in allen meinen bisherigen Wort-Uhren ohne diese Pegelwandlerstufe vollkommen problemlos funktioniert. Siehe dazu auch hier.


Für die Erstellung des Layout für die LEDs habe ich wieder ein Excel-Sheet erstellt, das mir die notwendigen Koordinaten auswirft.

Mini-Wecker LED Koordinaten

Für das Lichtgitter gibt es ebenfalls eine Tabelle.

Mini-Wecker Lichtgitter Koordinaten

Die Platine habe ich in EasyEDA erstellt und dann auf direktem Weg bei  JLCPCB bestellt. Auch diesmal ging das Ganze vollkommen problemfrei, qualitativ hochwertig und schnell über die Bühne, nach 2 Wochen lagen die Platinen im Briefkasten.

Der in den beiden Excel-Sheets Orange markierte Bereich kann übrigens in ein weiteres Excel-Sheet kopiert werden, welches dann automatisch die notwendige Definition der Anordnung der LEDs für “Layout.h” generiert.

Der aufmerksame Beobachter sieht, dass ich die Alarm LED “inline” zwischen LED 5 und 7 in der oberen Reihe angeordnet habe. Auf diese Weise vermeide ich unnötig lange Leitungen.


Damit die LEDs leichter aufgelötet werden können, habe ich sie um 45° gedreht platziert. Dadurch kommt man besser an die Lötanschlüsse heran, zusätzlich ergibt sich ein aufgeräumteres Leiterbild, was aber ein eher psychologischer Aspekt ist, denn die Leiterbahnen sind unter der aufgebrachten Farbschicht kaum noch erkennbar.

Die Sensortasten sind alle an die obere Kante gewandert, die Bedienung von Up und Down auf der Seite, wie beim Holz-Wecker realisiert, hat sich als ungünstig erwiesen, der Wecker wird dabei nur in der Gegend herum geschoben. Da bei einem aktiven Weck-Ereignis (der Wecker piept) alle Tasten ein Abschalten des Wecksignals bewirken, ist das die naheliegendste Positionierung der Tasten. Es ist also nicht zu befürchten, dass man morgens, im Halbkoma auf der Suche nach der Taste zum Abschalten des Alarms, alle Einstellungen des Weckers über den Haufen wirft.

Auf der Vorderseite ist ansonsten nur noch der LDR für die automatische Helligkeitsanpassung platziert, die Sensoren werden nach hinten orientiert angelötet..

Mini-Wecker Platine - Front

Auf der Rückseite der Platine ist schon mehr los. Im oberen Bereich sitzt der Wemos D1 mini als Hirn des Weckers. Links neben dem Wemos kann der Piezo-Piepser in SMD -Ausführung eingebaut werden, der Einbauplatz für dessen Schaltstufe ist ebenfalls zu sehen.

Rechts oben in der Ecke kann man den Einbauplatz des Pegelwandler-MOSFET für die LEDs sehen, ansonsten ist noch der Anschluss rechts unten für einen 2200 µF Blockkondensator erwähnenswert. Der Kondensator ist ein Typ mit beiden Anschlüssen auf einer Seite und wird liegend eingelötet und zusätzlich festgeklebt. Die Anschlussbeine müssen dafür passend abgeknickt werden.

Mini-Wecker Platine - Back

Hier noch eine Gegenüberstellung der beiden Wecker-Varianten.

Mini-Wecker und Holz-Wecker

Wer den Wecker nachbauen möchte, kann das Design im EasyEDA Format laden.


Der Einbau der LEDs war erwartungsgemäß kein Kinderspiel. Die LEDs haben keine Beinchen seitlich am Gehäuse, wie das bei den 5050er und den 2427er Typen der Fall ist, die Anschlusspads sitzen komplett auf der Unterseite des Gehäuses.

Größenvergleich RGB-LEDs in 5050, 2427, 2020

Das, zusammen mit der Winzigkeit der LEDs, erhöht den Spaßfaktor beim Anlöten in keinster Weise. So hat sich dann auch über die nächsten Tage der eine oder andere Lötfehler eingeschlichen, und das, obwohl ich in weiser Voraussicht einen Taster in die Plusleitung vom Netzteil eingebaut habe, um direkt nach dem Einlöten einer jeden LED einen Funktionstest durchzuführen.

Geäußert hat sich der Fehler in einem sporadischen Farbwechsel im mittleren und unteren Bereich der Anzeige, nachdem die Anzeige längere Zeit gelaufen ist. Im Prinzip also ein Wärmefehler, den ich durch Nachlöten der in Frage kommenden LEDs beheben konnte.

Nachtrag
Die fertig bestückte Platine läuft jetzt schon ein paar Wochen auf meinem Schreibtisch vor sich hin. Dabei passiert es immer wieder, dass die LEDs in der unteren Hälfte des Display anfangen Farbspiele zu produzieren und/oder nicht mehr aktualisiert werden. Durch Nachlöten kann ich diese Effekte immer beheben, aber das ist kein Zustand.
Ich bin geneigt, diesen 2020er LEDs in Handlötung die Funktionsfähigkeit im Dauerbetrieb abzusprechen, vor einem Nachbau rate ich dringend ab.

Wer alternativ einen Reflow-Ofen zur Verfügung hat, kann hingegen wahrscheinlich gut damit leben, JLCPCB bietet, basierend auf meinem Datensatz, auch die Fertigung einer passenden Lötpastenschablone (Stencil) an.


Hier die fertig bestückte Platine des Mini-Weckers. Es ist 22 Minuten nach 4 Uhr.

Mini-Wecker fertig bestückt


Das Lichtgitter ist unspektakulär, mit 6 mm genauso dick wie das des Holz-Weckers, nur, geschuldet den kleineren Abmessungen, um Einiges filigraner.

Mini-Wecker Lichtgitter


Für die Front musste ich mir noch etwas einfallen lassen, denn die Buchstaben dürfen nur noch ca. 3,5 mm hoch sein, die Strichstärke fällt entsprechend gering aus.

Zum Glück hatte Andreas schon wieder eine gute Idee. Modulor bietet eine 3 mm dicke Acrylglas-Platte mit rückseitiger Verspiegelung an. Ein Test an einem freundlicher Weise von Modulor zur Verfügung gestellten Handmuster bewies, damit kann die Front in der notwendigen Auflösung gefräst werden, zudem ist die Spiegelschicht lichtdicht - Volltreffer.

Leider fällt das Licht der LEDs nicht ausschließlich geradeaus durch die Acryl-Schicht hindurch, sondern wird auch in die benachbarten Lichtschächte des Lichtgitters gespiegelt, so dass nicht nur die beleuchteten Buchstaben, sondern auch deren Nachbarn deutlich erhellt werden.

Durch Abfräsen der nicht verspiegelten Seite der Acryl-Platte auf ca. 0,8 mm Stärke konnte dieser Effekt soweit vermindert werden, dass die Streuung nicht mehr stört. Eine Spiegelung ist aufgrund der durch die Fräserspuren nicht mehr glatten Oberseite der Platte ohnehin nicht mehr zu erwarten.

Die hier abgebildete Front ist das Handmuster

Acryl-Front Handmuster

Acryl-Front Handmuster

Im linken Teil der Front sieht man das ebenfalls in dieses Handmuster gefräste, um 90° gedrehte Buchstabenbild für den Holz-Wecker.

Unten sind die erwähnten Probleme mit der kalten Lötstelle zu sehen. Hier sieht man noch ein leichtes Übersprechen zwischen beleuchteten und benachbarten, dunklen Buchstaben.

Acryl-Front Handmuster

Liegt das vorgesehene Modulor MicroWood in Ahorn über der dünn gefrästen Acryl-Platte, ist vom Übersprechen auf benachbarte Buchstaben nichts mehr zu sehen.

Acry-Front mit MicroWood Ahorn

Der Hof um die Buchstaben und deren Unschärfe liegt teilweise an der gewölbten Form des MicroWood, ich habe das auf die Schnelle nicht glatt aufgelegt bekommen, sorry ;-)


Die fast endgültige Front, noch ohne dünn gefräst zu sein.

komplette Front

“Fast” bedeutet konkret, die Buchstaben sind zu dick gefräst, das Bild der Glocke gefällt mir nicht, das Fenster für den LDR ist zweimal vorhanden (ja, ich habe vergessen, dass die Front gespiegelt auf der Fräse bearbeitet wird ;)

Ich spare mir deshalb die Bearbeitung der Oberseite um die Scheibe dünner zu bekommen, sie wird ohnehin nicht zum Einsatz kommen.


Ok, einen kleinen Wecker kann wahrscheinlich jeder, auch wenn’s schwer fällt...

Also habe ich mir noch etwas Besonderes in den Kopf gesetzt. Der Weck-Sound wird beim Mini-Wecker nicht mehr mit einem Piezo-Piepser erzeugt, sondern alternativ wird eine MP3-Datei abgespielt. Hierzu verwende ich einen I²S-Verstärker MAX98357, dessen Ansteuerung durch den ESP8266 über die von Earle F. Philhower, III zur Verfügung gestellte Library ohne große Probleme umgesetzt werden kann.

Der dort beschriebene Ansatz für ein Minimal-Interface zwischen ESP8266 und Schallwandler, die Umwandlung der MP3-Datei direkt über einen Software DeltaSigma -Wandler im ESP und die Verstärkung dieses Signals über einen einzelnen FET oder Transistor, hat zwar prinzipiell funktioniert, der Hörgenuss bleibt dabei aber irgendwie auf der Strecke und der Gewinn gegenüber dem Piezo-Schallwandler ist nur marginal. Konkret ist beim Abspielen der MP3 Datei permanent ein sehr störendes Rauschen und Knistern zu hören. Das lassen wir also.

Das oben erwähnte “ohne große Probleme” bezieht sich übrigens nur auf den prinzipiellen Vorgang der Umwandlung von MP3 in Schall mittels eines ESP8266, das hat Earle ja in seinen Beispielen bereits fertig ausprogrammiert zur Verfügung gestellt.

Beim Einbau der Ansteuerung des I²S-Verstärkers in den QlockWiFive Code haben sich dann aber doch ein paar Probleme ergeben, auf die ich hier näher eingehen will.

Explizit geht es um Speicher. Genauer, um genügend freien Speicher im RAM. Im Uhren-Code werden die HTML-Seiten der GUI (Graphical User Interface, die Bedienoberfläche im WEB-Browser) dynamisch aufgebaut und belegen dadurch große Bereiche des RAM/Heap, wovon insgesamt ca. 80 kB im ESP zur Verfügung stehen.

Die MP3-Wandlung benötigt ihrerseits Einiges an Speicher, verteilt auf eine Reihe von Puffern, die reihum gefüllt und geleert werden.

Das Problem hierbei ist, die Texte für die HTML-Seiten werden gleich beim Programmstart im RAM angelegt und verbleiben dort, auch wenn die GUI gar nicht aufgerufen wird. In Folge kann der Programmteil des MP3-Decoders seine Puffer nicht allokieren, es wird keine Musik ausgegeben.

Das Problem der Blockierung von RAM für statische Texte ist ein Bekanntes, die Erfinder von Arduino haben also bereits Abhilfe in Form des F(..) Makros geschaffen. Mit Hilfe dieser Konstruktion bekommt der Compiler gesagt, dass der betroffene Text nicht im RAM, sondern ausschließlich im Flash abgelegt und zur Laufzeit auch von dort geholt werden soll.

Hier zur Verdeutlichung der Code für die übersichtliche WEB-Seite “Error 404 - File not found”. Anstelle der gewohnten Definition

    // Page 404.
    void handleNotFound()
    {
     esp8266WebServer.send(404, "text/plain", "404 - File Not Found.");
    }

verwenden wir jetzt

    // Page 404.
    void handleNotFound()
    {
     esp8266WebServer.send(404, F("text/plain"), F("404 - File Not Found."));
    }

und schaufeln dadurch 30 Byte Zeichen plus 2 Byte Zeichenketten-Abschluss im RAM frei.

Im Code finden sich zudem Konstruktionen, bei denen der Text dynamisch zusammengesetzt wird. Im nachfolgenden Beispiel wird der Seitentitel erstellt.

    String message = F("<!doctype html>");
    message += F("<html>");
    message += F("<head>");
    message += F("<title>") + String(PRODUCT_NAME) + F(" Settings</title>");
    message += ....

In der 4. Zeile wird der Titel aus dem statischen Text “<title>”, dem in ein String-Objekt gewandelten PRODUCT_NAME und dem Abschluss " Settings</title>" zusammengesetzt.

Der +-Operator für die Concatenation (Aneinanderreihung, Verkettung) eines String-Objekts mit einem nachfolgenden char-Array , das per PROGMEM Anweisung aus dem Flash zu holen ist, ist definiert, der letzte Teil der Zeile funktioniert also problemlos.

Der +-Operator für die Concatenation eines im PROGMEM liegenden char-Array mit einem nachfolgenden String-Objekt hingegen ist nicht definiert, der Compiler meldet hier Fehler und bricht ab.

Das Problem lässt sich aber mittels Casting umgehen:

    String message = F("<!doctype html>");
    message += F("<html>");
    message += F("<head>");
    message += (const char*)F("<title>") + String(PRODUCT_NAME) + F(" Settings</title>");
    message += ....

Nachdem alle HTML-Texte dergestalt überarbeitet wurden, funktioniert sowohl das Compilieren als auch der Betrieb der Uhr, allerdings wird die MP3-Datei trotzdem nicht ausgegeben.

Weitere Nachforschungen ergeben, dass der Transfer der HTML-Texte ins Flash längst nicht genug dynamischen Speicher freischaufelt. Die unzähligen Debug-Ausgaben in Klartext, teilweise gedoppelt durch zusätzliche Ausgaben an den Syslog-Server, müssen sich ebenfalls die Ablage im Flash gefallen lassen, was aber immer noch nicht ausreicht. Zwar spielt inzwischen die Musik beim Wecken, aber nach wenigen Sekunden ist wieder Schluss. Exception wegen Speicherengpass.

Letzte Abhilfe fand ich dann, indem ich die Ansammlung von verschiedenen Layouts drastisch auf das eine Layout reduziert habe, das im gegebenen Fall Verwendung findet. Das ist insofern kein Problem, da der Typ der Uhr ohnehin in der Configuration.h mit einem Define festgelegt wird. Das Define verwende ich in Layout.h zur Selektion des - in einzelnen Fällen der beiden - möglichen Layouts. Diese Maßnahme schafft dann, zusammen mit den Text-Überarbeitungen, den notwendigen Platz im RAM für die Puffer der Audio Bibliothek.

Hätte diese Idee nicht gefruchtet, wäre noch die Weichei-Lösung in Frage gekommen, bei der sowohl Speicherung der MP3-Dateien als auch deren Dekodierung und Verstärkung in einem eigenen MP3-Modul mit SD-Karten-Slot erfolgt wäre. Die Steuerung solcher Module erfolgt über eine serielle Schnittstelle, was problemlos in den Uhren-Code einzubauen gewesen wäre.

Der Charme der von mir gewählten Lösung ist, dass mit dem Wemos D1 mini pro sowohl der notwendigen Speicher für die MP3-Datei als auch die Rechenleistung für die MP3 -Dekodierung im ESP8266 zur Verfügung stehen. Lediglich der Verstärker muss zusätzlich vorgesehen werden. Der Wemos D1 sollte unbedingt die “pro” Version sein, diese hat 16 MByte Flash und stellt somit ca. 14 MByte Speicher für die MP3-Datei zur Verfügung.

Hinweis
Die Audio Bibliothek von Earle stellt beide Stereo-Kanäle zur Verfügung, verwendet man also einen Stereo tauglichen I²S Verstärker, kann man sich auch in Stereo wecken lassen. Genauso ist es möglich, zwei der oben bezeichneten I²S-Verstärkermodule zu verwenden, denn die kann man von Mono-Wiedergabe auf Linken/Rechten Kanal jumpern.


Als weiteres Goodie habe ich mir in den Kopf gesetzt, den Wecker über einen Qi-Ladeadapter mit Strom zu versorgen. Diese Qi-Charger dienen dem kabellosen Laden von Handys. Vereinfacht ausgedrückt wird das Handy einfach auf den Adapter aufgelegt und eine im Handy eingebaute Spule empfängt den Strom, eine mehr oder minder komplizierte Schaltung bereitet ihn auf und der Handyakku wird drahtlos geladen.

Der mir zusagende Qi-Ladeadapter kommt recht edel daher. Er misst 9 x 9 cm im Quadrat, ist ca. 5 mm dick, die Oberseite besteht aus dunklem Glas.

Qi Ladeadapter

Qi Ladeadapter

Der passende - getrennt gekaufte - Qi-Empfänger, hier angeschlossen an eine fertig aufgebaute Holz-Wecker Platine.

Qi-Empfänger

Qi-Empfänger

Derselbe Adapter, diesmal bereits ohne Umhüllung, an das Testboard angesteckt.

Testaufbau Wort-Uhr Testboard mit Qi-Charger

Man sieht sehr schön die erwähnte Spule und die zugehörige Elektronik.

Das Testboard wird über den Qi Ladeadapter drahtlos mit Strom versorgt. Der Qi-Empfänger liegt im gefrästen MDF-Rahmen für den Holz-Wecker um zu testen, ob der durch das 3 mm dicke Holzgehäuse vergrößerte Luftspalt den Betrieb einschränkt. Tut er nicht.

Auch in einem 5 mm dicken PLA-Gehäuse aus dem 3D-Drucker ist der Betrieb, hier testweise mit einer Mini-Wecker-Platine, noch gegeben, hier muss der Qi-Empfänger aber schon ziemlich genau in der Mitte des Ladeadapters positioniert werden, beim 3 mm Holzgehäuse ist noch ein gewisser Spielraum vorhanden.

Mini-Wecker mit Qi-Versorgung


Der magnetische Mini-Schallwandler im Piezo-Piepser-Design, den ich für die Tests mit MP3-Ausgabe verwendet habe:

Magnetischer Schallwandler

Magnetischer Schallwandler

Den Wandler habe ich mit einem Streifen Tesa zugeklebt um die schrillen Töne im Hochtonbereich, die er naturgemäß sehr gut wiedergeben kann, zu dämpfen. Bässe erzeugt er dadurch immer noch nicht, aber das Klangbild ist ausgewogener. Und er ist leiser. Das ist zwar alles kein Killkriterium, denn dieser Schallwandler wird im Wecker ohnehin nicht zum Einsatz kommen, aber bei der Programmentwicklung und beim Debuggen muss immer wieder der Weck-Sound angespielt werden, was auf Dauer dann doch nervt. Anfangs habe ich einen kleinen Mini-Lautsprecher aus einem Transistorradio verwendet, aber der kommt dann schon recht laut daher, auch wenn er in einer Schachtel eingesperrt ist.

Der I²S-Verstärker kann zwar per Beschaltung fest auf eine geringere Verstärkung eingestellt werden, aber selbst die leiseste Stufe ist noch immer recht laut.

I²S Verstärker

Der in den Unterlagen erwähnte Weg, die Lautstärke zu verringern indem die Versorgungsspannung auf 3,3 V gesetzt wird, empfehle ich nicht, dann treten nämlich Verzerrungen auf, die bei Versorgung mit 5 V nicht vorhanden sind. Grund dafür könnte natürlich sein, dass die 3,3 V des Wemos D1 mini nicht stabil genug sind und die Spannung somit zusammenbricht.

Näher untersucht habe ich das nicht, in der endgültigen Version der Wecker-Firmware ist die Lautstärke softwaremäßig über die Plus/Minus Tasten sowie in der GUI einstellbar.


Den aus einem Prototypgehäuse aus dem 3D-Drucker, der nicht fertig gefrästen Spiegel-Acryl-Front, dem Qi-Adapter und dem oben vorgestellten Schallwandler liebevoll mit Tesa zusammengeklebten Mini-Wecker habe ich in einem kleinen Video verewigt.

Mini-Wecker Alarm-Video auf Vimeo          (Click auf das Bild führt zu Vimeo)

Der für die Tests stark gekürzte MP3-Sound startet etwa bei Minute 1:01, den langen Vorlauf bitte ich zu entschuldigen.


Verschiedene Gehäusevarianten aus dem 3D-Drucker

Ich habe ein Gehäuse mit 3 mm dickem Boden entworfen, dessen Konstruktion ich im RSDOC- und STL-Format für DesignSpark Mechanical und Cura offenlege.

Mini-Wecker Gehäuse

Die Wecker-Platine liegt links und rechts auf dem innen sichtbaren Rand auf, dessen Abstand zur Vorderkante des Gehäuses so gewählt wurde, dass das Paket aus Platine, Lichtgitter und Frontscheibe diesen Abstand exakt ausfüllt.


Wir erinnern uns, der Wecker soll uns mit Musik wecken. Was liegt also näher, als dem Gehäuse noch ein Loch für den Schall zu spendieren? Genau, ein Loch für den Schall und eine Bassreflexrohr für die “Tiefen” :)

Gehäuse Mono mit Bassreflexrohr

Gemeinhin rechnet man für den Querschnitt des Bassreflexrohrs ca. 20% der Membranfläche des Lautsprechers um Strömungsgeräusche zu vermeiden. Ok, das wird bei dem Verwendung findenden Lautsprecher kaum zu erwarten sein, aber allgemeine Regeln soll man ja beachten. Im gegebenen Fall verwende ich ein 32 mm-Chassis mit 28er Membran, so dass sich ein Rohrdurchmesser von 12,5 mm ergibt. Die Länge habe ich so gewählt, dass noch ein ausreichender Abstand zur Leiterplatte bleibt, die akustischen Belange habe ich mal außen vor gelassen. Für größere Wege (längeres Rohr) ist innerhalb des kleinen Gehäuses ohnehin kein Platz.

Auch dieses Gehäuse mit Lautsprecher stelle ich im STL- und RSDOC-Format zur Verfügung.

Für die Mono-Variante des Mini-Weckers habe ich noch einen etwas größeren Lautsprecher mit 40 mm Chassisdurchmesser gekauft, der natürlich nicht in das oben vorgestellte Gehäuse passt.

Gehäuse für 40 mm Lautsprecher

Obige Kalkulationen bezüglich Innendurchmesser des Bassreflexrohrs habe ich hier ebenfalls angewandt und mit 37 mm Membrandurchmesser 16,5 mm lichte Weite für das Rohr erhalten.

Die Konstruktionsunterlagen dieses Gehäuses findet ihr hier.


Da die Audio-Library von Earle ein Stereo-Signal zur Verfügung stellt, biete ich auch noch eine Stereo-Version des Gehäuses an.

Gehäuse Stereo mit Bassreflexrohr

Man erkennt das etwas größere Bassreflexrohr. Hier habe ich unter denselben Voraussetzungen mit doppelter Fläche der Membranen gerechnet, mithin hat das Rohr einen Innendurchmesser von 17,4 mm.

Bei beiden Rohren habe ich die Kanten verrundet, die Lautsprechergitter sind liebevoll von Hand entworfen und diagonal angeordnet, so dass der Druck ohne Support erfolgen kann.

Die Lautsprecheröffnungen musste ich recht weit nach hinten platzieren, damit die Lautsprecherchassis und -Magnete nicht mit den auf der Leiterplatte aufgesteckten Bauteilen interferieren. Der Abstand vom Boden ergibt sich durch das Bassreflexrohr.

Auch hier die Designfiles für die Stereo-Variante.


Um Stereo ausgeben zu können, müssen zwei der oben vorgestellten I²S-Verstärker an den ESP8266 angeschlossen werden, wobei beide Schaltungen das identische Signal bekommen, aber jeder Verstärker per Konfigurationswiderstand an Anschluss SD_MODE auf die Ausgabe des entsprechenden Kanals eingestellt werden muss.

Im Auslieferungszustand ist der Widerstand mit 1 MΩ (Kennzeichnung 105) der sogenannte PullUp RLARGE, dimensioniert für 5 V Betrieb, und legt somit fest, dass der Verstärker das kombinierte Signal für Links und Rechts ausgibt.

MAX98357A

Der linke Kanal wird ausgewählt, wenn SD_MODE direkt oder über einen sehr kleinen Widerstand, z.B. 1..2 kΩ, auf High-Potential gelegt wird. Wird SD_MODE über einen Widerstand RSMALL, für 5 V Betrieb sind das 370 kΩ, auf High gelegt, wird der rechte Kanal ausgegeben.

    Kanal Rechts: R = 370 kΩ
    Kanal Links:    R = 2 kΩ

SD_MODE sollte nicht direkt auf High Potential gelegt werden, denn über den Eingang SD (dritter Anschluss von Rechts im Bild oben) kann der Chip durch LOW Potential vom Microcontroller in den Shutdown Modus geschaltet werden. Wäre der PullUp in diesem Fall 0 Ω, würde der Ausgang des µC versuchen, die Versorgungsspannung auf Null zu ziehen. Nicht empfehlenswert.

Die Berechnungsgrundlagen und Dimensionierungsbeispiele findet der geneigte Leser im Datenblatt des MAX98357A.


Um den Wecker in Stereo erklingen zu lassen, ist das erste Design der Mini-Wecker Platine denkbar ungeeignet, man müsste den zweiten I²S-Verstärker fliegend verdrahten.

Abhilfe schafft hier die Verwendung der Stereo-Version des Mini-Weckers :-)

Ich habe mir nicht nehmen lassen, das Design nochmal zu überarbeiten und in diesem Zuge den zweiten Verstärker vorzusehen. Hauptgrund für die nächste Version war aber zum einen die Verwendung der etwas größeren 2427er LEDs. Ich hoffe, die lassen sich besser als die 2020er löten und halten länger auf der Platine ohne kalte Lötstellen. Der zweite, ebenfalls nicht unerhebliche Grund war, dass sich der Micro-USB-Stecker nicht mehr auf dem Wemos D1 stecken lässt, wenn der I²S-Verstärker montiert ist, nicht eben hilfreich, wenn Änderungen an der Firmware vorgenommen und getestet werden sollen, die im Zusammenhang mit MP3 stehen.

Die Front ist nicht aufregend, lediglich die etwas größeren Pads für die LEDs sind gegenüber der Version V1 geändert.

Mini-Wecker V2 Stereo

 

Auf der Rückseite der schon gewohnte Wemos D1 und diesmal zwei der I²S-Verstärker Max98357. Damit der Zugang zum USB-Anschluss des Wemos nicht versperrt werden kann, ist zusätzlich der Anschluss für die Spannungsversorgung nach links gewandert.

Mini-Wecker V2 Stereo

Die Verteilung der lediglich 55 statt deren 115 100 nF Kondensatoren für die LEDs sowie die Ausstattung der Schaltung mit dem 2200 µF Block-Elko hat sich bei Version 1 als ok erwiesen. Der Betrieb des Weckers auf dem Qi-Ladeadapter ist einwandfrei, auch die Wiedergabe der Musik macht keine Probleme, obwohl dann ja der Stromverbrauch naturgemäß höher ist. Gemessen habe ich den Strom nicht.

Nette Anekdote am Rande - zumindest im Nachhinein ;-)
Man sollte es eigentlich erwarten, aber ich habe überhaupt nicht dran gedacht... Bei den Tests habe ich den Lautsprecher, diesmal einen echten Mini-Lautsprecher mit Magnet, Korb und Membran mit Gummisicke, einfach unten ins Gehäuse gelegt, eine Befestigung gab es nicht dafür. Plötzlich fing der Wecker an, Zicken zu machen, die LEDs flackerten, änderten unmotiviert die Farbe und solche Sachen.

Es hat ein bisschen gedauert, bis ich drauf kam, dass der Lautsprechermagnet die Energieübertragung durch die Luftspulen nachhaltig stört. Jetzt sitzen die Lautsprecher in anständiger Entfernung zum Qi-Adapter und die Probleme sind verschwunden :-)

Erwähnung sollte finden, dass der Wecker insgesamt im Betrieb recht warm wird. Das erste Lichtgitter hat sich deshalb schon etwas geworfen. Zum einen erwärmen sich die LEDs nicht unerheblich, der Wemos trägt ebenfalls dazu bei und letztlich erzeugt auch der Qi-Adapter bei dem recht hohen Stromverbrauch des Weckers etwas Abwärme. Auch der QI -Sender wird warm. Tagsüber ist es stärker zu merken, da dann die LEDs heller leuchten.


Die Platine ist bestückt und funktioniert wie erwartet, die Weckmelodie ertönt in Stereo und der Klang ist erstaunlich gut für die kleinen Lautsprecher.

Mini-Wecker V2 Stereo - bestückte Platine

Rechts oben im nächsten Bild sieht man die mit einem Draht überbrückte Pegelwandlerstufe zwischen dem Ausgang des ESP8266 und der ersten LED - Grund für einigen Verdruss, wie ich vorgreifend erwähnen möchte :-)

Mini-Wecker V2 Stereo - bestückte Platine

Beim Zusammenbau muss darauf geachtet werden, dass die Lautsprecher komplett in die vorgesehenen Vertiefungen eingedrückt werden, ggf. muss der Ausschnitt im Gehäuse mit einem passenden Werkzeug nachgearbeitet werden, bis die Chassis satt im Loch sitzen. Außerdem ist wichtig, dass nach vorne, Richtung Platine, ein Ausschnitt im Lautsprecherkorb zu liegen kommt, sonst passen die beiden I²S Verstärker nicht berührungslos an den Chassis vorbei.

Sitz der Lautsprecher

Insgesamt ist das Gehäuse etwas knapp entworfen, man könnte zur Vereinfachung noch den einen oder anderen Millimeter gewinnen, aber es funktioniert auch so.

Damit es überhaupt passt, müssen die Schraubklemmanschlüsse der Verstärkerplatinen für die Lautsprecher auf der Unterseite der Platinen eingesetzt werden.

Beim Anschließen der Lautsprecher an die Verstärker unbedingt auf die Polarität der Lautsprecher achten, sonst löschen sich die tiefen Töne, die auch bei Stereo von beiden Lautsprechern wiedergegeben werden, durch gegenläufigen Hub der Membranen aus und der Klang ist miserabel.

Der Qi-Empfänger wird mit doppelseitigem Teppichklebeband auf den Boden des Gehäuses geklebt.

Qi-Empfänger


Nachtrag zum Pegelwandler für die erste LED

Nachdem ich auch bei diesem Board mit den 2427er LEDs mehrfach Probleme mit Farbspielen auf dem Display hatte und nach einigen Durchgängen ziemlich sicher war, alle kalten Lötstellen behoben zu haben, das Gezappel mit den Farben aber dennoch auftrat, habe ich als letzte Option doch noch die Pegelwandlerstufe zwischen ESP8266 und der ersten LED eingebaut. Und siehe da, die Probleme sind verschwunden.

Ich revidiere also meine mehrfach geäußerte Meinung, der Pegelwandler sein unnötig, zumindest für die 2427er LEDs in diesem Design, reumütig aber ohne Scham :-)

Tipp
Wenn der Verdacht besteht, dass der Signalpegel an der ersten LED bei Verwendung eines ESP8266 als Hirn zu gering sein könnte, einfach in den Optionen der Uhr den Modus auf Mood mit schnellster Änderung (9) einstellen. Dann wird das Display quasi permanent mit neuen Daten beschickt und Pegelprobleme zeigen sich nicht nur sporadisch bei jeder neuen Minute, sondern nahezu ununterbrochen.

 


Beim Aufruf dieser Funktion werden Daten an Google in USA übermittelt. Neben Ihrer IP-Adresse wird auch die URL der besuchten Seite übertragen.
Besucherzaehler

Besucher seit
25.11.2000