Forum: Projekte & Code WordClock mit WS2812


von Chris K. (Gast)


Lesenswert?

Typischer Fall von zu früh gefreut. Das Bier muss noch warten. Bei 
genauerer Betrachtung scheint es meine Art der Zeitangabe in der Wortuhr 
überhaupt noch nicht zu geben.

Die meisten Uhrzeiten setzten sich nach folgenden Schema zusammen:

Es ist Drei Uhr und Sechs und Vizerig Minuten

Zur vollen Stunde ist es - na klar - Ein Uhr, Zwei Uhr usw.

15 Minuten später sollte die Anzeige lauten

Es ist viertel nach Drei

weitere 15 Minuten drauf und wir haben

Es ist halb Vier

nochmal 15 Minuten später ist es dann

Es ist viertel vor Vier

Sprich bei 30 und 45 Minuten muss die aktuelle Stunde jeweils um 1 
inkrementiert werden. Das klappt mit dem Flag vorne in der Tabelle. 
Problem, für die 3 Spezialfälle darf das "Uhr" nach der Stundenangabe 
nicht angezeigt werden. Sonst hieße es ja plötzlich "Es ist viertel nach 
Drei Uhr". Klingt irgendwie nicht richtig. Das zweite Problem ist in 
meiner Aufteilung. Die Stundenenzeige gibt es quasi zwei mal. Einmal vor 
den Textzeilen mit viertel, halb, nach und einmal danach. Bei den drei 
Sonderfällen muss, damit die Leseart wieder stimmt, also eigentlich die 
Stunde aus der zweiten Hälfe dargestellt werden, denn sonst ließt man 
"Es ist drei Uhr halb". Argh.

Nun knobel ich an der Umsetzung. Der erste Gedanke war die Tabellen um 
ein weiteres Flag zu ergänzen, dass mir anzeigt ob ich denn "Uhr" nun 
ausblenden soll oder nicht. Dann bin ich drauf gekommen, dass es 
vielleicht besser sein könnte gleich auf die Minuten zu prüfen und bei 
15 || 30 || 45 das "Uhr" auszublenden und dabei auch gleich die 
Stundenanzeige aus einer anderen Tabelle zu laden.

Knackpunkt ich krige nicht genau raus wie der letzten Endes anzuzeigende 
Text zusammen gesetzt wird. Die einzige Funktion die ich momentan dafür 
in betracht ziehe ist die display_clock Funktion. Nur setzt es da bei 
mir aus zu verstehen, wie die Uhrzeit konkret zusammengesetzt wird. Wenn 
ich das auch nur halbwegs richtig verstehe gibt es innerhalb der 
Funktion zwei Schleifen. Die erste läuft durch die Tabelle für die 
Minuten die zweite durch die Tabelle für die Stunden, die dem aktuell 
eingestellten Modus entsprechen. Dabei wird scheinbar auf ein Flag 
geprüft und falls dieses gesetzt ist, wird dann ein Flag im Array Words 
gesetzt. Was dann wiederrum dargestellt wird.

Help please °_°

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Chris K. schrieb:
> Es ist Drei Uhr und Sechs und Vizerig Minuten
> Es ist viertel vor Vier

Ist das Dein Ernst? Du willst lediglich die Viertelstunden anders 
ausgeben und sonst immer die voll "ausgesprochenen" Minuten? Wer spricht 
denn so? Entweder lese ich alles "digital" vor (also fünf und vierzig) 
oder ich kürze ab: "viertel vor", "zehn vor", "fünf vor". Dein Vorhaben 
klingt etwas inkonsequent. Und deshalb bekommst Du Probleme mit den 
hour-Tabellen, denn diese setzen eine konsequente "Sprechweise" voraus.

Aber okay:

Bis auf die Viertelstunden entspricht Dein Vorhaben dem Mode 2 (hh und 
mm (12)), siehe auch:

  http://uclock.de/?x=2&h=6&m=32 (06:32)
  http://uclock.de/?x=2&h=6&m=50 (06:50)

Aber:
  http://uclock.de/?x=2&h=6&m=45 (06:45)

Hier (und für xx:15 und xx:30) müsste dann die Viertel-Anzeige rein. 
Dann passt der hour-Mode aber nicht und Du müsstest den in 
display_clock() ad hoc wechseln für diese Spezialfälle. Igitt. ;-)

> Problem, für die 3 Spezialfälle darf das "Uhr" nach der Stundenangabe
> nicht angezeigt werden. Sonst hieße es ja plötzlich "Es ist viertel nach
> Drei Uhr". Klingt irgendwie nicht richtig.

Jepp. Dieses Problem gibt es tatsächlich, wenn das "Uhr" an bestimmten 
Stellen unterdrückt werden soll aber sonst immer gezeigt werden muss. Du 
könntest im Source an diesen Stellen das Wort UHR wieder wegblenden, 
indem Du das Flag wieder zurücksetzt. Oder die Hour-Tabelle wechseln, 
siehe oben.

Eine weitere (und vermutlich die beste) Möglichkeit wäre vielleicht, die 
Steuerung des Wortes "UHR" in die Minute-Tabellen zu verlagern. Habe ich 
aber aus Faulheit nie getestet, sollte aber klappen und wäre absolut 
sauber formuliert. Also "WP_UHR_x" raus aus tbl_hours[] und rein in 
tbl_minutes[].

> Das zweite Problem ist in
> meiner Aufteilung. Die Stundenenzeige gibt es quasi zwei mal. Einmal vor
> den Textzeilen mit viertel, halb, nach und einmal danach. Bei den drei
> Sonderfällen muss, damit die Leseart wieder stimmt, also eigentlich die
> Stunde aus der zweiten Hälfe dargestellt werden, denn sonst ließt man
> "Es ist drei Uhr halb". Argh.

Ja, deshalb haben die doppelt vorkommenden Wörter auch einen Index, wie 
z.B. WP_FUENF_2 als zweite Fünf auf dem Display. Die erste Fünf heisst 
WP_FUENF_1. Diese Indices findest Du dann auch wieder in den 
entsprechenden Tabellen.

> Nun knobel ich an der Umsetzung.

Meine erste Frage an Dich wäre: Kann Dein exotisches Display mit 
16x16-Matrix das überhaupt? Hast Du für alle erdenklichen Kombinationen 
auch die erforderlichen Wortzusammensetzungen? Immerhin fehlen Dir 
gegenüber der 16x18-Standard-Matrix 32 Buchstaben. Und bei letzterer ist 
das System schon ziemlich ausgetüftelt. Da wurde monatelang dran 
rumgeschraubt, bis das alles passte. Wenn Dein 16x16-Display das auch 
alles kann, dann gibt es auch eine Lösung dafür.

> Der erste Gedanke war die Tabellen um
> ein weiteres Flag zu ergänzen, dass mir anzeigt ob ich denn "Uhr" nun
> ausblenden soll oder nicht. Dann bin ich drauf gekommen, dass es
> vielleicht besser sein könnte gleich auf die Minuten zu prüfen und bei
> 15 || 30 || 45 das "Uhr" auszublenden und dabei auch gleich die
> Stundenanzeige aus einer anderen Tabelle zu laden.

Entweder so, oder das Wort "Uhr" wieder wegzublenden durch Zurücksetzen 
des Flags siehe oben.

> Knackpunkt ich krige nicht genau raus wie der letzten Endes anzuzeigende
> Text zusammen gesetzt wird. Die einzige Funktion die ich momentan dafür
> in betracht ziehe ist die display_clock Funktion.

Die reicht auch.

> Nur setzt es da bei
> mir aus zu verstehen, wie die Uhrzeit konkret zusammengesetzt wird.

Es werden anhand der hour- und der minute-Tabellen einfach die 
entsprechenden Flags gesetzt, welches Wort leuchten soll. Die 
Reihenfolge, ob "Uhr" hinten oder vorne gezeigt werden soll, ergibt sich 
aus der Wahl des Indices, also WP_UHR_1, WP_UHR_2 usw.

Wenn Du das Wort "UHR" aber nur einmal auf dem Display hast, bist Du 
aufgeschmissen.

> Wenn
> ich das auch nur halbwegs richtig verstehe gibt es innerhalb der
> Funktion zwei Schleifen. Die erste läuft durch die Tabelle für die
> Minuten die zweite durch die Tabelle für die Stunden, die dem aktuell
> eingestellten Modus entsprechen. Dabei wird scheinbar auf ein Flag
> geprüft und falls dieses gesetzt ist, wird dann ein Flag im Array Words
> gesetzt. Was dann wiederrum dargestellt wird.

Das ist soweit korrekt. Wahrscheinlich hast Du aber übersehen, dass 
viele Wörter doppelt existieren und da gezielt die Zahlen über den Index 
gewählt werden, um sie vorne oder hinten in der "Uhrzeitansage" 
einzutragen.

: Bearbeitet durch Moderator
von Chris K. (Gast)


Lesenswert?

Hallo Frank,

alles schon gelöst. Uhr läuft jetzt so wie sie soll. Ist zwar keine 
schöne Umsetztung, aber für meine Spezialmatrix reicht es. Die ganzen 
Sprachbesonderheiten kann ich sowieso nicht abbilden, von daher konnte 
ich daran ordentlich rumfuschen.

Lösung ist jetzt wie folgt. Den Stunden Offset für die Fälle "halb" und 
"viertel vor" gab es ja schon. Blieb noch das Problem mit dem 
überschüssigen Uhr und der Tatsache, dass man halt die zweite Position 
von Drei, Fünf usw. braucht. Nach einer Nacht drüber schlafen ist mir 
aufgefallen, dass sich diese beiden Probleme ja kombinieren lassen. Im 
Wessi Modus steht in der Tabelle für alle "normalen" Uhrzeiten die 
Stunde + das Wort Uhr in der Tabelle. Ich habe jetzt noch eine Tabelle 
mit neuen Stunden ergänzt wo einfach die zweite Position der 
Stundenangaben ohne das zusätzliche Uhr drin steht. Danach musste ich 
für meine 3 Sonderfälle die Ausgabe der Uhrzeit nur auf diese neue 
Tabelle umrouten. Dazu folgende Ergänzung in der display_clock Funktion
1
if(((hour_mode == 1 && minute_mode ==7) && (minute == 15 || minute == 30 || minute ==45)) hour_mode = indexneuetabelle;

damit wir in meinen Sonderfälle die Lookup Table für die Stundenanzeige 
umgemappt und die Anzeige passt zu unserer Art der Uhrzeitansage. Durch 
die zusätzliche Abfrage auf den Wessi Modus und die zusätzliche Tabelle 
sind die anderen Modi davon sogar unberührt.

Gruß Chris

von Bernd (Gast)


Lesenswert?

Hallo Frank,

ein großes Lob an dich und vielen Dank für deine Arbeit! Das ist ein 
super Projekt. Meine Uhr ist zwar leider immer noch nicht fertig, da 
vieles dazwischen gekommen ist, aber ich verfolge diesen Thread und 
freue mich über die ganzen Erweiterungen.

Ich hätte einen Vorschlag für eine Erweiterung und zwar die Integration 
in SmartHome Projekte als Anzeige/Ambilight/Uhr. Konkret kommt bei mir 
bald eine HomeMatic Zentrale CCU2 zum Einsatz, OpenHAB wäre aber auch 
denkbar, da vielleicht universeller. Vermutlich können aber viele/alle 
Systeme einen Link aufrufen und vielleicht könnte man das darüber 
realisieren. Also z.B. für einen Lauftext einen Linkaufruf an die Uhr 
schicken mit dem Text und weiteren Parametern wie Größe, Farbe, 
Scrollgeschwindigkeit, Anzeigedauer. Das ließe sich für viele Funktionen 
einbauen. Piktogramme anzeigen, zwischen verschiedenen Animationen 
wechseln, das Wetter anzeigen, das Ambilight oder das ganze Display in 
ein Beleuchtungskonzept einbinden. Interessant wäre die Matrix als 
Anzeige/Beleuchtung, das Ambilight als Beleuchtung und bestimmte 
Konfigurationsvariablen der Uhr von außen kontrollieren. Zusammen mit 
einem Tongeber wäre die Uhr so eine super Anzeige für ein SmartHome 
System.
Das ist alles vermutlich viel Aufwand, aber könnte ganz interessant sein 
und ließe sich ja auch schrittweise erweitern. Z.B. zuerst nur Texte 
anzeigen und Ambilight/Uhrfarbe steuern, sowie die Zeitsteuerung mit 
einer Leaving Home Variable übersteuern und mit Coming Home wieder 
aktivieren. Das wäre eine super Erweiterung meiner Meinung nach.
Was meinst du dazu?

Gruß
Bernd

von Roland A. (radair)


Lesenswert?

Hallo WordClock Freunde,

Ich habe mir vor einigen Jahren mit eurer Hilfe die erste Version der 
WordClock gebaut und ich habe sie heute noch. Sie funktioniert bis jetzt 
tadellos und ich muss sagen ich liebe sie. Vielen Dank nochmal an das 
gesamte Forum!

Durch Zufall bin ich nun im Netz auf eine andere, sehr beeindruckende 
Uhr gestoßen welche es nicht zu kaufen gibt. Da ist mir natürlich sofort 
das Microcontroller Forum eingefallen und ich wollte euch hier mal 
fragen, ob die folgende Uhr hier in einem Gemeinschaftsprojekt, wie es 
bei der bei der WordClock der Fall ist, machbar wäre.
Link: https://youtu.be/FNxiFOUKpZ4
Was meint ihr?

Sorry, ich weiß, dass dieser Post in diesem Thread etwas off topic ist, 
aber dieser Thread ist der aktuellste Uhrenthread und ich wollte keinen 
neuen aufmachen.

Liebe Grüße
Roland

von Gerhard B. (bana56)


Lesenswert?

Hallo Roland,

die Uhr wurde hier schon diskutiert:
Beitrag "Uhr wie im Ham Yard Hotel in London"

mfg
bana

von Roland A. (radair)


Lesenswert?

Hallo Gerhard,

Vielen Dank für den Link und nochmal sorry für den off-topic post.

LG
Roland

von roman (Gast)


Lesenswert?

Hi Frank
I have a request to you. As you will have some free time, insert a piece 
of code to display the temperature digital clock in the 24h (my matrix 
is 18x18) as it is in the clock 12h.

von Thomas G. (thomas_g18)



Lesenswert?

Hallo Zusammen

Da ich nun schon sehr lange hier mitlese, möchte ich mich auch mal in 
die Diskussion einbringen.
Zuallerst möchte ich mich bei allen bedanken die hier mithelfen dieses 
coole Projekt so voranzutreiben,vorallem Frank der sehr viele Stunden 
investiert.
Ich habe schon länger so eine Wortuhr mit den WS2812 Stripes gebaut, auf 
die ich damals in deutschen Arduino-Forum gestossen bin. Alles hat nach 
meiner  Zufriedenheit funktioniert und sah auch gut aus.
Da aber dieses Projekt nicht mal Ansatzweise konnte was dieses Projekt 
kann machte ich mich an ein Update.

Ich möchte jetzt euch schnell meine Ideen mitgeben ,vielleicht kann Sie 
jemand auch gebrauchen.

Grundplatte:
bei meine Uhr habe ich alle Stripes (30 Led per m) auf eine grosse 
Aluplatte aufgeklebt.
Auf meiner CNC habe ich dafür die Positionen der Stripes und Kabel 
eingeritzt und somit kann ich sichergehen dass auch bei voller 
Lichtausbeute genügend Wärme abgeführt wird.
Zwischenplatte:
Die Zwischenplatte habe ich wiederum auf der CNC beidseitig 
gefräst.Hinten sind alle Stripes und Kabel geordnet und Vorne sind die 
Buchstabenlöcher.
Die Aluplatte wird einfach draufgeschraubt.
Ambilight:
Als ich von dem Ambilight gelesen habe war ich sofort begeistert.
Leider hatte war es aber so das die Stripes-Längen natürlich nicht 
passten.Da ich meine Uhr mit Kantenlänge 450mm aussen (Plexi) und 410mm 
Zwischenboden angefertig habe, galt es auf den Umfang von 4 mal 410mm 
also 1640 mm 60 Leds schön geometrisch zu verteilen.Da ich kein Freund 
von Sonderanfertigungen bin konnte ich den Umfang durch abrunden der 
Ecken auf genau 1600mm reduzieren.Nun war es also möglich mit diese 
1600mm Umfang in 4 Stripes a 300mm mit 30 Led per m (9 Leds) und 
nochmals 4 Stripes a 100mm mit 60 Leds per m (6 Leds) aufzuteilen.So 
hatte ich 60 Led auf 1600mm und an den Ecken sehen die engeren Abstände 
erst noch gut aus da der Sektor den sie Beleuchten aufgrund des Radius 
grösser ist.Einwenig schwierig geschrieben aber das Fotos sagt alles 
aus.Auch die Ambilights sind auf einem Alustreifen appliziert um die 
Wärme zu verteilen.
Frontplatte:
Als Frontplatte hatte ich mir Plexiglas vorgestellt.Da ich eine ganz 
edle Uhr bauen wollte die Vorne ganz flach ist habe ich eine schwarze 
und eine opal-weisse Plexiglas-Platte aufeindergeklebt.Die Buchstaben 
habe ich dann von hinten durch die schwarze Platte 
durchgefräst.Warscheinlich wird es die einzige solche Frontplatte 
bleiben da der Aufwand enorm ist und die Leuchtkraft nur mässig.Auch die 
Konturen leiden bei nahem Betrachten was ich aber schon vorher 
wusste.Die Befestigung erfolgte mit 5 kleinen Magneten welche jeweils in 
den Ecken und einer in der Mitte ist.Als Magnete habe ich 10mm 
Durchmesser bei 2mm Dicke genommen was sich gut bewärt hat.Die 
Minutenpunkete sind alle Oben in einer Reihe angeordnet.
Geschrieben ist die Uhr in Schweizer Mundart was alle total der Brüller 
finden.Das Programm musste ich dafür anpassen.
Steuerung:
Ich habe die Steuerung auf eine einseitige Platine aufgebaut.
Auf der Oberseite braucht es etwa 6 Drahtbrücken und somit kann ich 
alles was Ich brauche auf 160x25mm unterbringen.Ich habe die Datei als 
DXF angehängt falls auch jemand sich eine Platine fräsen möchte.
Auf der Platine habe den Temperatursensor und den LDR nach aussen 
geführt.Die jeweiligen Wiederstände müssten sich aber am Kabel befinden 
das ich keinen Platz mer hatte auf der Platine.Für die 3.3 V habe ich 
einen Mini360 Stepdown Regler eingesetzt.

Freundliche Grüsse Thomas

von Ralf H. (hammeran)


Lesenswert?

Hallo Frank,

ich habe heute festgestellt, dass bei mir die Auswertung des DCF-Signals 
nicht mehr funktioniert.

Die "Störung" des DCF-Signals entsteht durch das Auslesen der Temperatur 
(DS18xx) in der Sekunde 50. Die DCF-Logik kommt dabei aus dem Takt und 
bekommt keine volle Minute mehr zusammen.

Ich habe vor 3 Wochen von 2.0.2 auf 2.2.0 (WC12h / STM32F10X) gewechselt 
- ich gehe mal davon aus, dass der Fehler dabei rein gekommen ist.

Die RTC funktioniert so gut, dass mir das bisher nicht aufgefallen ist. 
Erst heute mit der Zeitumstellung ....


mfg

Ralf

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hallo Ralf,

Ralf H. schrieb:

> Die "Störung" des DCF-Signals entsteht durch das Auslesen der Temperatur
> (DS18xx) in der Sekunde 50. Die DCF-Logik kommt dabei aus dem Takt und
> bekommt keine volle Minute mehr zusammen.

Blöd. Offenbar dauert der Block
1
            if (ds18xx.is_up)
2
            {
3
                short_isr = 1;
4
                ds18xx_temperature_index = temp_read_temp_index ();
5
                short_isr = 0;
6
                log_printf ("DS18xxx temperature: %d%s\r\n", ds18xx_temperature_index / 2, (ds18xx_temperature_index % 2) ? ".5" : "");
7
                var_send_ds18xx_temp_index ();
8
            }

in main.c zu lange, so dass der Aufruf von dcf77_tick() alle 10msec 
jittert.

Ich hätte da folgende Idee, die Du mal ausprobieren könntest:

1. dcf77_tick() direkt aus TIM2_IRQHandler() - main.c - aufrufen
Alt:
1
        if (dcf77_cnt == F_INTERRUPTS / 100)                                // set dcf77_flag every 1/100 of a second
2
        {
3
            dcf77_flag = 1;
4
            dcf77_cnt = 0;
5
        }

Neu:
1
        if (dcf77_cnt == F_INTERRUPTS / 100)                                // set dcf77_flag every 1/100 of a second
2
        {
3
            dcf77_tick();           // call dcf77_tick() directly
4
            dcf77_cnt = 0;
5
        }

2. In dcf77.c die globalen static-Variablen auf volatile umstellen:
1
static volatile uint_fast8_t                     time_is_valid = 0;
2
...
3
static volatile uint_fast8_t                     isdst;
4
static volatile uint_fast8_t                     minute;
5
static volatile uint_fast8_t                     hour;
6
static volatile uint_fast8_t                     wday;
7
static volatile uint_fast8_t                     mday;
8
static volatile uint_fast8_t                     month;
9
static volatile uint_fast16_t                    year;

Man kann in main.c noch den Block
1
        if (dcf77_flag)
2
        {
3
            dcf77_flag = 0;
4
            dcf77_tick ();
5
        }

auskommentieren. Ist aber für den Test nicht notwendig, da dcf77_flag 
nicht mehr gesetzt und damit dieser Block nicht mehr ausgeführt wird.

Sollte die Änderung funktionieren, werde ich sie so fürs nächste Release 
übernehmen. Wenn das aber immer noch nicht reicht, dann kommentiere mal 
die Zeile
1
                short_isr = 1;

vor
1
                ds18xx_temperature_index = temp_read_temp_index ();

aus. Es könnte dann aber passieren, dass ab und zu mal das Lesen der 
Temperatur über OneWire fehlschlägt, wenn die ISR (in Langform) 
dazwischenhaut. Halte ich aber für nicht sooo tragisch.

: Bearbeitet durch Moderator
von Thomas G. (thomas_g18)


Lesenswert?

Hallo

Bei meiner Uhr (12 Stunden Version mit STM32F103-Board) macht die 
Temperaturanzeige Probleme.In der Web-Oberfläche sehe Ich die korrekte 
Temperatur von der DS3231 RTC.Ein DS18B20 ist nicht angeschlossen.
Wenn ich dann den Button get Temperatur drücke zeigt mir die Uhr einfach 
eine 12 an welche sich dann wieder ausblendet.Ich habe es auch schon mit 
einem Offset Wert versucht was aber keine Abhilfe bringt.
Entsteht der Fehler dadurch dass es gar nicht Vorgesehen ist nur die 
Temperatur der RTC anzuzeigen?Der DS18B20 wird korrekt als offline 
angezeigt.
Freundliche Grüsse

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Thomas G. schrieb:
> Wenn ich dann den Button get Temperatur drücke zeigt mir die Uhr einfach
> eine 12 an welche sich dann wieder ausblendet.

Ja, der Fehler ist bekannt. Wird mit der nächsten Version 
(höchstwahrscheinlich kommt die morgen) behoben sein.

von Ralf H. (hammeran)


Lesenswert?

Hallo Frank,

> Ich hätte da folgende Idee, die Du mal ausprobieren könntest: ...

Die Änderung waren erfolgreich, allerdings war auch das erforderlich:

> .., dann kommentiere mal die Zeile
1
                 short_isr = 1;
> aus. ...

Alternativ zu dieser Änderung könnte man aber auch den Block
1
      dcf77_cnt++;
2
3
        if (dcf77_cnt == F_INTERRUPTS / 100)                                // set dcf77_flag every 1/100 of a second
4
        {
5
            dcf77_tick();           // call dcf77_tick() directly
6
            dcf77_cnt = 0;
7
        }

nochmal in "if (short_isr)" aufnehmen. So lasse ich das erstmal bei mir 
laufen.

mfg

Ralf

von Bernd (Gast)


Lesenswert?

Bernd schrieb:
> Das ist alles vermutlich viel Aufwand, aber könnte ganz interessant sein
> und ließe sich ja auch schrittweise erweitern. Z.B. zuerst nur Texte
> anzeigen und Ambilight/Uhrfarbe steuern, sowie die Zeitsteuerung mit
> einer Leaving Home Variable übersteuern und mit Coming Home wieder
> aktivieren. Das wäre eine super Erweiterung meiner Meinung nach.
> Was meinst du dazu?

Hallo Frank,

es gab so gar keine Reaktion auf meine Idee in 
Beitrag "Re: WordClock mit WS2812". Ist ja 
vollkommen OK, wenn das nicht in Frage kommt. Dachte nur ich frage noch 
mal nach, ob das andere auch interessieren könnte und für dich umsetzbar 
wäre. Im Prinzip wäre die Ansteuerung ja unabhängig vom SmartHome 
System. Die Uhr müsste sich nur in bestimmten Dingen per Weblink 
ansteuern/konfigurieren lassen. Evtl. geht das für deine App sogar 
schon. Ob sich die Ansteuerung per Homemativ CCU dann so realisieren 
läßt, weiß ich aber ehrlich gesagt noch gar nicht. Für die CCu gibt es 
zumindest eine XML-API die die CCU per Weblink abfrag- und steuerbar 
macht.

Gruß
Bernd

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hallo Bernd,

> es gab so gar keine Reaktion auf meine Idee in
> Beitrag "Re: WordClock mit WS2812". Ist ja
> vollkommen OK, wenn das nicht in Frage kommt.

Es gibt 2 Erklärungen, wenn ich auf einen Beitrag nicht (sofort) 
reagiere:

a) Ich habe ihn übersehen - kommt vor.

b) Die Antwort erfordert wegen der Komplexität bzw. Themenvielfalt
   einen längeren Text, der Nachdenken & Zeit erfordert.

Auf Deine Anfrage trifft der Teil b) zu. Ich habe im Moment dazu noch 
keine Meinung und muss mir das dafür notwendige Konzept erstmal auf der 
Zunge zergehen lassen. Ich stehe Deiner Anregung aber durchaus 
aufgeschlossen gegenüber. Einiges - wie die Anzeige des Lauftextes - 
geht jetzt schon über den entsprechenden Link. Die Anzeige eines 
speziellen Piktogramms, welches lediglich allein für Dich nur sinnvoll 
zusammen mit Deiner HomeMatic ist, klingt aber für mich zunächst einmal 
sehr exotisch.

Ich nehme mal an, dass Du der einzige bist, der so eine "Zusammenarbeit" 
konkret zwischen Homematic und WordClock wünscht. Damit habe ich schon 
ein Problem: Eine Spezialarbeit für einen einzelnen Anwender werde ich 
gewiss nicht einfach so just for Fun für lau hinlegen. Denn davon habe 
ich und 99,9% aller anderen Anwender gar nichts. Daher überlege ich 
schon länger , wie man solche Möglichkeiten möglichst allgemein 
realisiert, also wie man z.B. diese speziellen Piktogramme ermöglicht, 
ohne sie fest in den Code zu integrieren. Sie benötigen nämlich Platz im 
Flash (Daten und Programmcode), den alle Anwender außer Dir zukünftig 
lieber für allgemeinere Dinge nutzen wollen.

Man könnte es aber durchaus so realisieren, dass man z.B. solche 
speziellen Piktogramme at Runtime (d.h. nach dem Flash) auf die 
WordClock nachladen kann.

Dafür muss aber ein allgemeines Konzept her. Dann können auch evtl. 
andere Anwender mit so einer Möglichkeit etwas anfangen - auch wenn sie 
keine Homematic haben. Aber vielleicht haben sie etwas anderes - oder 
bekommen dadurch Anregungen, etwas ganz neues zu entwickeln, wo die 
WordClock als Display dann eingesetzt wird.

Dieses allgemeine Konzept habe ich aber zur Zeit nicht. Und es 
widerstrebt mir, eine "spezielle Auftragsarbeit" in die WordClock zu 
integrieren, von der ich (und andere) überhaupt nichts habe. Aber 
deshalb ist diese Sache trotzdem noch nicht vom Tisch. Ich sag mal so: 
Sie muss noch etwas reifen.

Bist Du mit dieser Antwort erst einmal zufrieden? Lass mich bitte 
erstmal die Piktogramme für das Wetter einbauen. Dann können wir über 
spezielle Piktogramme ja gern reden. Aber bitte einen Schritt nach dem 
anderen. Wenn die Todo-Liste schneller wächst als die Liste der 
realisierten Punkte, dann wächst mir die Sache über den Kopf. Und das 
will ich nicht.

von Bernd (Gast)


Lesenswert?

Hallo Frank,

vielen Dank für die ausfürhliche Antwort. Ich wollte nicht drängeln, die 
Erklärung ist absolut nachvollziehbar für mich und es soll auch nicht in 
einem "Spezialauftrag" nur für mich enden. Piktogramme sind nicht so 
wichtig. Die Lauftexte sind universell und viel interessanter. Und die 
Lichtgeschichten (Dimmen, Farbwahl, Ambilight) sind halt vor allem im 
Zusammenhang mit Lichtszenarien interessant und dafür bietet sich eine 
Integration an. Die Ansteuerung sollte allgemein und systemunabhängig 
sein.
Ich denke eine Link mit Parametern kann man von vielen Systemen aus 
aufrufen und es würde sogar ganz normal aus dem Browser funktionieren.
Und wenn es niemanden sonst interessiert, dann vergiss es einfach.
Also danke nochmal und weiter so!
Thumbs Up!

Gruß
Bernd

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Bernd schrieb:
> Piktogramme sind nicht so wichtig.

Wie gesagt: Wenn ich ein allgemeines Konzept dafür habe, beliebige 
Piktogramme anzeigen zu lassen, dann wirds auch interessant für dieses 
Projekt. Die sind also nicht vom Tisch.

> Die Lauftexte sind universell und viel interessanter.

Das sollte mit

  http://ip-der-wordclock/?action=saveticker&ticker=TEXT

gehen, wobei TEXT der anzuzeigende Text ist. Leerstellen müssen evtl. 
mit %20 statt mit Blank eingefügt werden. Das musst Du mal ausprobieren, 
ob beide Varianten oder nur die mit %20 gehen.

> Und die
> Lichtgeschichten (Dimmen, Farbwahl, Ambilight) sind halt vor allem im
> Zusammenhang mit Lichtszenarien interessant und dafür bietet sich eine
> Integration an. Die Ansteuerung sollte allgemein und systemunabhängig
> sein.

Eigentlich kann man alles, was man per Webinterface einstellen kann, 
auch mit einer konkreten URL aufrufen. Sag einfach, was Du brauchst, 
dann nenne ich Dir den Direktlink dazu.

> Ich denke eine Link mit Parametern kann man von vielen Systemen aus
> aufrufen und es würde sogar ganz normal aus dem Browser funktionieren.

Jepp.

Gruß,

Frank

von Bernd (Gast)


Lesenswert?

Ja super, nochmal vielen Dank.
Meine Uhr ist ja leider noch nicht fertig.
Aber da komme ich später gerne drauf zurück.

Gruß
Bernd

von Martin M. (mastermind1)


Angehängte Dateien:

Lesenswert?

Hallo zuerst einmal und vielen Dank für die super Anleitung.

Soweit hat alles geklappt.

Ich hab das Shield V1 mit dem STMxxx103er im Einsatz + DS3232 + DCF + 
AMS1117.

Ich hab einen 3,3V USB UART Adapter + ST-Link V2.
Das aufspielen der Firmware für den STMxxxx103 funktioniert reibungslos.

Leider bekomme ich das aufspielen der angepassten ESPWordclock.bin nicht 
hin.
Ich hab das kleine ESP8266 Flasher Tool und das von Espress If 
ausprobiert.
bei dem Espress If Tool steht als Fehler "Chip sync error".

Was kann da falsch laufen?

Ich schliesse das Shield an mein 5V Pollin Netzteil an.
Danach drücke ich die RESET Taste auf dem STMxxxx103 Board, dann brücke 
ich die beiden mit FLASH gekennzeichneten PINS (ist ja letztlich GND + 
PA6).

Dann stecke ich den USB UART Adapter am Laptop an (angeschlossen ist:)
USB UART GND -> GND
USB UART RX -> TX
USB UART TX -> RX
Dabei handelt es sich ja um die PINS neben Flash.....
Der USB UART Adapter ist auf 3,3v Pegel eingestellt und wird sauber als 
COM7 CH340 erkannt.

Habt ihr ne Idee?

Bin leider kein Elektroniker... :-(

von Peter Z. (flexopete)


Lesenswert?

Moin Martin,
beim 103er shield V1 ist die Beschriftung RX TX
vertauscht (steht auch irgendwo im Thread), Du musst
also TX --> TX und RX--> RX verbinden.
Ist bei der V2 geändert.

Gruss
Peter

von Martin M. (mastermind1)


Lesenswert?

Tx + rx habe ich einmal vertauscht ohne Erfolg... Aber vielleicht sollt 
ich mal einen anderen esp8266 einsetzen....

von Günter H. (gnter_h534)


Lesenswert?

Martin M. schrieb:
> Danach drücke ich die RESET Taste auf dem STMxxxx103 Board, dann brücke
> ich die beiden mit FLASH gekennzeichneten PINS (ist ja letztlich GND +
> PA6).

Nur noch mal zur Klarheit den Text aus dem Artikel:
- Reset-Taste drücken und festhalten,
- beim STM32F103-Mini-Development Board PA6 mit einem Taster mit Masse 
verbinden und festhalten,
- Reset-Taste loslassen,
- Brücke PA6-Masse nach 2 Sekunden entfernen.

Aus deiner Beschreibung geht nicht eindeutig hervor, ob du die 
RESET-Taste gedrückt hältst, während PA6 auf Masse gelegt wird.

Vielleicht hilft ja diese Vorgehensweise.

Gruß
Günter

von Martin M. (mastermind1)


Lesenswert?

Günter H. schrieb:
> Martin M. schrieb:
>> Danach drücke ich die RESET Taste auf dem STMxxxx103 Board, dann brücke
>> ich die beiden mit FLASH gekennzeichneten PINS (ist ja letztlich GND +
>> PA6).
>
> Nur noch mal zur Klarheit den Text aus dem Artikel:
> - Reset-Taste drücken und festhalten,
> - beim STM32F103-Mini-Development Board PA6 mit einem Taster mit Masse
> verbinden und festhalten,
> - Reset-Taste loslassen,
> - Brücke PA6-Masse nach 2 Sekunden entfernen.
>
> Aus deiner Beschreibung geht nicht eindeutig hervor, ob du die
> RESET-Taste gedrückt hältst, während PA6 auf Masse gelegt wird.
>
> Vielleicht hilft ja diese Vorgehensweise.
>
> Gruß
> Günter
Einen Taster habe ich keinen. Da ich das shield v1 habe nehme ich einen 
"Jumper" für die Pins mit der Beschriftung Flash. Die sind letzlich PA6 
/ GND. D.h. ich überbrücke diese und zieh die dann nach dem Loslassen 
der Reset Taste 2 Sekunden später wieder ab....
Bisher ohne Erfolg...
Nun ja ich warte jetzt auf einen esp8266 Programmer mit int. Taste ;-) 
ich probiers dann darüber...

von LDR (Gast)


Lesenswert?

Chris K. schrieb:
> Hallo Frank,
>
> ich habe die SW mit folgenden Array angepasst:
>
>
1
dimmed_color_array[MAX_BRIGHTNESS] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 
2
> 12, 13, 13, 14, 14, 15 };
>
>
> somit ist die Uhr Abends nun merklich dunkler. Tagsüber sehe ich
> eigentlich keine Veränderung.
> Passt erstmal für mich. Werde das ganze in den nächsten Tagen mal
> beobachten und schauen was die Uhr bei wechselnder Sonneeinstrahlung
> macht.

Hallo, nachdem ich übers Wochenende auch dazu gekommen bin, die Uhr 
zusammenzubauen ein paar Punkte die mir aufgefallen sind.

Muss sagen, dass mir meine Wordclock auch viel zu hell ist.
Bei meinen bisherigen Arduino Uhren hatte ich das noch deutlich weiter 
runterschrauben können.
Mein Vorschlag wäre im Webserver Reiter unter Display noch 2 Felder für 
minimale und maximale Helligkeit einzufügen. Dann kann sich jeder seine 
Helligkeit einstellen wie er mag oder auch einfach auf einen konstanten 
Wert stellen.

Helligkeit springt bei mir auch. Habe aber noch einen falschen LDR 
drinn. Nichtsdestotrotz, denke auch hier könnte man mit einem einfachen 
FIR Filter nachbessern und/oder bei der nächsten Platinenrevision ein RC 
Filter mit entsprechend hoher Zeitkonstante einplanen.

Warum lassen sich die RGB Werte eigentlich nur in Bereichen von 0-63 
verstellen und nicht 0-255. Persönlich fände ich das Besser.

Im Webserver könnte man zu den einzelnen Feldern ein paar Infos 
ergänzen. z.B. Link wo man die Adressen für den Timeserver findet.


Ansonsten wirklich alles sehr gut gemacht.

von Chris (Gast)


Lesenswert?

Der Regelbereich von 0 bis 63 kommt durch die linearisierung der 
Leuchtstärke.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

LDR schrieb:
> Muss sagen, dass mir meine Wordclock auch viel zu hell ist.

Also ist es wohl eine WC12h, denn die WC24h kann wegen der schmaleren 
bzw. kleineren Buchstaben gar nicht so hell werden.

> Mein Vorschlag wäre im Webserver Reiter unter Display noch 2 Felder für
> minimale und maximale Helligkeit einzufügen. Dann kann sich jeder seine
> Helligkeit einstellen wie er mag oder auch einfach auf einen konstanten
> Wert stellen.

Ja, ist sinnvoll. Eventuell sollte man die 16 Helligkeitswerte auch 
selbst im Web-Browser anpassen können. Kommt auf die TODO-Liste.

> Helligkeit springt bei mir auch. Habe aber noch einen falschen LDR
> drinn. Nichtsdestotrotz, denke auch hier könnte man mit einem einfachen
> FIR Filter nachbessern und/oder bei der nächsten Platinenrevision ein RC
> Filter mit entsprechend hoher Zeitkonstante einplanen.

Das Springen sollte mit der nächsten Version erledigt sein. Kommt noch 
heute. Der FIR-Filter steht schon auf der TODO-Liste.

> Warum lassen sich die RGB Werte eigentlich nur in Bereichen von 0-63
> verstellen und nicht 0-255. Persönlich fände ich das Besser.

Wie Chris schon schrieb:

Weil die Helligkeit an die Kennlinie des menschlichen Auges angepasst 
ist, siehe LED-Fading.

> Im Webserver könnte man zu den einzelnen Feldern ein paar Infos
> ergänzen. z.B. Link wo man die Adressen für den Timeserver findet.

Gute Idee. Ist notiert.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Die Version 2.2.1 ist nun über den Artikel WordClock mit WS2812 
verfügbar.

Änderungen:

 - Bugfix: Wenn ausschließlich das RTC-Modul zur Temperaturmessung
   dient, wurde auf dem Display immer fälschlicherweise 12°C ausgegeben.

 - Bugfix: Korrekturwert für DS18XX geht nach Reboot verloren.

 - SK6812 wird nun auch in der RGB-Variante unterstützt - nicht nur
   RGBW.

 - Verbesserung der automatischen Helligkeitsregelung (Sprungverhalten
   bei Unterschreiten der Helligkeits-Mindestwerts).

 - DCF77-Empfänger-Problem bei Sekunde = 50 (gleichzeitige DS18xx-
   Temperaturmessung) behoben.

Viel Spaß,

Frank

von Leif (Gast)


Lesenswert?

Hallo Frank,

ich habe mir gerade eine zweite Wordclock mit SK6812 anstelle von WS2812 
gebaut.
Das Ändern des Quellcodes und anschließende compilieren und hochladen 
hat einwandfrei funktioniert.
Die LEDs funktionieren jetzt auch einwandfrei.

Leider kann ich aber in der Weboberfläche die weiße LED nicht regeln.
Sobald ich eine Farbe auswähle wird diese zusammen mit der Weißen 
angezeigt.

Ist das ein bekanntes Problem?

Gruß

Leif

von Chris (Gast)


Lesenswert?

Nein das Problem kenne ich nicht.

Wenn ich Rot auswähle bekomme ich rot
Wenn ich Weiß auswähle bekomme ich weiß
Stelle ich zum Beispiel Blau mit Weiß ein kommt die entsprechende 
Mischung raus.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leif schrieb:
> Das Ändern des Quellcodes und anschließende compilieren und hochladen
> hat einwandfrei funktioniert.

Was hast Du geändert? Zeige bitte den entsprechenden Ausschnitt aus 
display-config.h.

> Leider kann ich aber in der Weboberfläche die weiße LED nicht regeln.

Fehlt der Regler für die weiße LED in der Weboberfläche? Oder bewirkt er 
nichts?

> Sobald ich eine Farbe auswähle wird diese zusammen mit der Weißen
> angezeigt.

Das habe ich nicht verstanden.

Chris K. schrieb:
> Nein das Problem kenne ich nicht.

Mit der neuen 2.2.1? Ich habe in der aktuellen Version noch den Support 
für SK6812-RGB - also ohne W - eingebaut.

Deshalb gibt es nun zwei Einstellungen in display-config.h:
1
#define DSP_USE_SK6812_RGB          0                                                           // use SK6812 RGB  LEDs
2
#define DSP_USE_SK6812_RGBW         0                                                           // use SK6812 RGBW LEDs

Eine davon muss auf 1, wenn man SK6812 verwendet

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leif schrieb:
> Leider kann ich aber in der Weboberfläche die weiße LED nicht regeln.

Ich habe den Grund dafür gefunden, Ursache ist in in V2.2.1 der 
zusätzliche Support der SK6812-LEDs ohne weiße LEDs.

Ersetze in vars.c
1
#if DSP_USE_SK6812 == 1
durch
1
#if DSP_USE_SK6812_RGBW == 1

Das kommt in vars.c zweimal vor.

Ich habe die Änderung als V2.2.2 ins SVN eingecheckt.

: Bearbeitet durch Moderator
von Martin M. (mastermind1)


Lesenswert?

Martin M. schrieb:
> Günter H. schrieb:
>> Martin M. schrieb:
>>> Danach drücke ich die RESET Taste auf dem STMxxxx103 Board, dann brücke
>>> ich die beiden mit FLASH gekennzeichneten PINS (ist ja letztlich GND +
>>> PA6).
>>
>> Nur noch mal zur Klarheit den Text aus dem Artikel:
>> - Reset-Taste drücken und festhalten,
>> - beim STM32F103-Mini-Development Board PA6 mit einem Taster mit Masse
>> verbinden und festhalten,
>> - Reset-Taste loslassen,
>> - Brücke PA6-Masse nach 2 Sekunden entfernen.
>>
>> Aus deiner Beschreibung geht nicht eindeutig hervor, ob du die
>> RESET-Taste gedrückt hältst, während PA6 auf Masse gelegt wird.
>>
>> Vielleicht hilft ja diese Vorgehensweise.
>>
>> Gruß
>> Günter
> Einen Taster habe ich keinen. Da ich das shield v1 habe nehme ich einen
> "Jumper" für die Pins mit der Beschriftung Flash. Die sind letzlich PA6
> / GND. D.h. ich überbrücke diese und zieh die dann nach dem Loslassen
> der Reset Taste 2 Sekunden später wieder ab....
> Bisher ohne Erfolg...
> Nun ja ich warte jetzt auf einen esp8266 Programmer mit int. Taste ;-)
> ich probiers dann darüber...


Der ESP8266-01 Programmer mit integriertem Taster ist angekommen.
Damit funktioniert das Flashen einwandfrei...

Einfach bei Ebay mal nach "ESP8266 ESP-01 Flasher mod.prog" suchen.
Für 8,5€ aus Deutschland innerhalb von wenigen Tagen.

Für 2 - 3 € auch aus China erhältlich wenn man Zeit hat :-)

von Thomas G. (thomas_g18)


Lesenswert?

Hallo

Erst mal einen Grossen Dank für das neue Update!Ich habs zwar noch nicht 
draufgespielt aber ich freue mich jetzt schon auf weitere Funktionen.

Ich habe noch grosse Probleme mit der Energieversorgung der Uhr.
Wie löst Ihr dass oder was mache ich falsch?

In meiner Werkstatt läuft die Wordclock am Labornetzgerät und auch an 
einem umgebauten Computernetzteil ohne Probleme.Die Uhr zieht maximal so 
um die 200mA (ausser bei grossen Animationen oder Displaytest). Da ich 
die Uhr aber im Wohnzimmer aufhängen möchte habe ich schon verschiedene 
Netzteile ohne Erfolg probiert.
Probiert habe ich zwei Steckernetzteilen mit 5 Volt und einmal mit 2A 
und einmal mit 3A Leistung.Ich dachte mir jeweils dass die Leistung 
nicht ausreicht und habe mir ein Netzteil mit 5 Volt und 8 A Leistung 
bestellt.Leider läuft die Uhr aber auch mit diesem Netzeil nicht.Der 
Steuerung habe ich schon zwei Elkos von 220nF verpasst.Auf dem Oszi 
sieht  die Spannungskurve auch nicht schlimm aus und es gibt keine 
Spannungseinbrüche oder dergleichen.

Links der verwendeten Netzteile:
https://de.aliexpress.com/item/High-Power-AC-DC-Adapter-AC-100-240V-to-DC-5V-12V-24V-1A-2A-3A/32479352044.html?spm=2114.13010608.0.0.6OiNrH&detailNewVersion=&categoryId=200001051

https://de.aliexpress.com/item/1PCS-5V2A-New-AC-100V-240V-Converter-Adapter-DC-5V-2A-2000mA-Power-Supply-EU-Plug/32277477479.html?spm=2114.13010608.0.0.DgZdCy&detailNewVersion=&categoryId=14191101

https://de.aliexpress.com/item/1PCS-5V-3000mA-3A-Mains-Micro-USB-AC-DC-Adaptor-Power-Supply-Charger-4-Raspberry-PI/32642533063.html?spm=2114.010208.3.9.tvbkFx&ws_ab_test=searchweb0_0,searchweb201602_2_10091_10090_10088_10089,searchweb201603_1&btsid=cf52d6f7-77a1-4de1-8b92-28ebdbfabdd6




Weis jemand Rat in meiner Sache?

Grüsse

: Bearbeitet durch User
von Martin M. (mastermind1)


Lesenswert?

Ist den das empfohlene Pollin 5v 2A Steckernetzteil dabei?(müsste eins 
von Meanwell sein)

von Thomas H. (supergrobi)


Lesenswert?

Ich hab mir bei Ali die 12V/3A Netzteile gekauft und setze davor noch 
einen StepDown LM2596 und regel auf 5V.

von Günter H. (gnter_h534)


Lesenswert?

Thomas G. schrieb:
> Leider läuft die Uhr aber auch mit diesem Netzeil nicht.

5 V/8 A müssen auch für eine WordClock 24h "locker" ausreichen. Meine 
WordClock 12h läuft auch mit einem 1 A-Netzsteil.

Aber was heißt denn: "Die Uhr läuft nicht?".

Spannung (wie hoch an der Uhr?) scheint ja anzuliegen. Wie hoch ist die 
Stromaufnahme mit dem Netzteil im Wohnzimmer? Leuchten die LEDs von z. 
B. Board, RTC oder WLAN-Modul? Wenn ja, ist die Uhr über das 
Web-Interface erreichbar?

Vielleicht lässt sich mit Klärung dieser Fragen der Fehler eingrenzen.

Gruß
Günter

: Bearbeitet durch User
von Thomas G. (thomas_g18)


Lesenswert?

Hallo

Thomas H. schrieb:
> Ich hab mir bei Ali die 12V/3A Netzteile gekauft und setze davor noch
> einen StepDown LM2596 und regel auf 5V.

Der Tipp mit einem Netzteil mit 12 Volt und anschliessendem LM2596 hat 
bei mir auch funktioniert.Leider habe ich in der Uhr keinen Platz mehr 
für ein solches Bauteil, und ein kleines Zwischengehäuse im Kabel sieht 
auch wieder nach gebastel aus.

Günter H. schrieb:
> Aber was heißt denn: "Die Uhr läuft nicht?".

Die Uhr läuft am Labornetzteil ohne Probleme:Anzeige,Weboberfläche alles 
Gut.
Am Steckernetzteil:Einige Leds leuchten in undefinierten Farben.Spannung 
an Led Stripes 4.95 Volt.Power Leds auf STM,ESP und RTC alle an aber per 
Web Interface nicht erreichbar.

Ich glaube es liegt an meiner 3.3 V Versorgung welche nicht sauber 
arbeitet.
Ich setze dort einen Mini 360 Stepdown Wandler ein. Wie ich jetzt 
nachgelesen habe hat dieser eine minimale Eingansspannung von 4.75 Volt 
was eventuell knapp ist.
https://de.aliexpress.com/item/RC-Airplane-Module-Mini-360-DC-Buck-Converter-Step-Down-Module-4-75V-23V-to-1V/32685367474.html?spm=2114.010208.3.12.OlGmtU&ws_ab_test=searchweb0_0,searchweb201602_2_10091_10090_10088_10089,searchweb201603_1&btsid=54aaea9d-8809-457c-8326-4b1f64c7a82b

Die Stripes werden direkt vom Netzteil mit 5 Volt versorgt und alle 
andere Elektronik wird via diesem Step-Down mit 3.3 Volt versorgt.
Wie generiert Ihr die 3.3 Volt bei euren Uhren?

Gruss

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Thomas G. schrieb:
> Wie generiert Ihr die 3.3 Volt bei euren Uhren?

AMS1117 3,3 V Drop Down Spannungsregler auf Mini-Platine

Steht auch im Artikel unter

  https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Anschlusstabelle
und
  https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Shield_f.C3.BCr_STM32_MiniDevBoard

mit Bezugsquellen.

von Günter H. (gnter_h534)


Lesenswert?

Thomas G. schrieb:
> Die Stripes werden direkt vom Netzteil mit 5 Volt versorgt und alle
> andere Elektronik wird via diesem Step-Down mit 3.3 Volt versorgt.

Das STM32F103C8T6 Mini-Development Board ist bei mir wie die Stripes 
auch an 5 V angeschlossen, die 3,3 V für den Mikrocontroller selbst 
kommen vom 3,3V-Spannungsregler auf dem Board.

Die restliche Elektronik wird über einen LF 33 CV Low Drop 
Festspannungsregler (+ zwei Kondensatoren, entspricht letztlich dem 
AMS1117-Baustein) mit 3,3 V versorgt.

Gruß
Günter

von Martin M. (mastermind1)


Lesenswert?

Inzwischen bin ich mit dem Mini Dev-Board v1 und dem Aufbau komplett 
fertig.
ESP8266 ist geflasht, STM32...103 Board geflasht....

Vielen dank nochmals für die super anleitungen und beschreibungen - und 
vor allem für die investierte Zeit!.

Da ich von einem Bauvorschlag von Ulrich Radig auf das Projekt hier 
umgestiegen bin, habe ich leider "ein anderes" Buchstabenlayout meiner 
Frontplatten.

Daher die Frage, wenn ich den Programmcode anfasse (wie ja beschrieben) 
-
gibt es eine kurze Notiz zu den Umsetzungen (d.h. wie geschalten wird)

Es ist x Uhr, Es ist halb fünf....
Gibts zufällig ne Mappingtabelle... (z.B. ES -> Pin 1,2, IST Pin 
4,5,6....)

Das wäre klasse.... und schon mal vielen dank.

P.S. Leider habe ich die Frontplatten schon machen lassen (1x Edelstahl, 
1x Rost-Stahl).... Aufgrund des Preises möchte ich das nicht nochmals 
machen lassen.... Bei ner Folie wäre das eher machbar.....

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Gibts zufällig ne Mappingtabelle... (z.B. ES -> Pin 1,2, IST Pin
> 4,5,6....)

display/tables.h & display/tables.c für WC24h,
display/tables12h.h & display/tables12h.c für WC12h.

von Martin M. (mastermind1)


Lesenswert?

Frank M. schrieb:
> Martin M. schrieb:
>> Gibts zufällig ne Mappingtabelle... (z.B. ES -> Pin 1,2, IST Pin
>> 4,5,6....)
>
> display/tables.h & display/tables.c für WC24h,
> display/tables12h.h & display/tables12h.c für WC12h.


Danke für die schnelle Antwort.
wollte mich gerade an die arbeit machen... leider finde ich für meine 
WC12h keine passende Version.

Unter
https://www.mikrocontroller.net/svnbrowser/wordclock24h/wclock24h-F103/
gibts ne wclock24h-F103.ebp in Version 2.1.
Ist in dieser die "WC12h-Variante" enthalten?

Eigentlich wollte ich auf die 2.2.0 bzw. 2.2.1 gehen (ESP + 
STM...103board)

Auch im Hauptverzeichnis finde ich nichts neueres.... Oder gibts den Weg 
auch rückwärts (HEX File nehmen) und dekompilieren?

Und gibt es das EM::Blocks noch irgendwo zum download?
Beim Hersteller gibts jetzt das "EM::Blitz". Macht das einen 
Unterschied?

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Unter
> https://www.mikrocontroller.net/svnbrowser/wordclock24h/wclock24h-F103/
> gibts ne wclock24h-F103.ebp in Version 2.1.

Das sagt nur aus, dass die Datei sich seit 2.1 nicht mehr geändert hat. 
Alles, was Du im SVN findest, ist auf dem aktuellen Stand. Am besten 
lädst Du Dir den kompletten Tarball. Der Link ist unter Download im 
Artikel.

von Daniel K. (granturismo)


Lesenswert?

Martin M. schrieb:
> Frank M. schrieb:
>> Martin M. schrieb:
>>> Gibts zufällig ne Mappingtabelle... (z.B. ES -> Pin 1,2, IST Pin
>>> 4,5,6....)
>>
>> display/tables.h & display/tables.c für WC24h,
>> display/tables12h.h & display/tables12h.c für WC12h.
>
>
> Danke für die schnelle Antwort.
> wollte mich gerade an die arbeit machen... leider finde ich für meine
> WC12h keine passende Version.
>
> Unter
> https://www.mikrocontroller.net/svnbrowser/wordclock24h/wclock24h-F103/
> gibts ne wclock24h-F103.ebp in Version 2.1.
> Ist in dieser die "WC12h-Variante" enthalten?
>
> Eigentlich wollte ich auf die 2.2.0 bzw. 2.2.1 gehen (ESP +
> STM...103board)
>
> Auch im Hauptverzeichnis finde ich nichts neueres.... Oder gibts den Weg
> auch rückwärts (HEX File nehmen) und dekompilieren?
>
> Und gibt es das EM::Blocks noch irgendwo zum download?
> Beim Hersteller gibts jetzt das "EM::Blitz". Macht das einen
> Unterschied?

Hallo Martin
ist eigentlich recht einfach. Du musst einfach in tables12h.c die 
Einträge unter const struct WordIllu illumination[WP_COUNT] anpassen. 
Ich habe diese beiden Files recht stark angepasst und so eine komplette 
Schweizer - Frontplatte nagesteuert.
PS: In dieser Tabelle sind immer die Zeilennummer, Anfangsposition und 
Länge (Anzahl LED) anzupassen :-)
Gruess Daniel

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Und gibt es das EM::Blocks noch irgendwo zum download?
> Beim Hersteller gibts jetzt das "EM::Blitz". Macht das einen
> Unterschied?

EM::Blitz ist der Nachfolger und sollte damit auch gehen.

von Daniel K. (granturismo)


Lesenswert?

Hallo Frank
ich wollte gestern mal auf komplette Mehrsprachigkeit umstellen. Dies 
ist zwar eigentlich relativ einfach, da alle Tabellen nahezu 
mehrspachenfähig sind (aufgrund der verschieden DE - Versionen).
Ich möchte aber nun neben den deutschen Versionen auch Englisch 
einbauen.
Dies wäre rel. einfach möglich, wenn du mir allenfalls "const uint8_t 
it_is[2] = { WP_ES, WP_IST };" mit den MODES_COUNT koppeln könntest.
Somit wie folgt:
const uint8_t it_is[MODES_COUNT][2] = {
{ WP_ES, WP_IST },
{ WP_IT, WP_IS }
};
Wäre das was für die nächste Version?
Gruss Daniel

von Martin M. (mastermind1)


Lesenswert?

Frank M. schrieb:
> Martin M. schrieb:
>> Und gibt es das EM::Blocks noch irgendwo zum download?
>> Beim Hersteller gibts jetzt das "EM::Blitz". Macht das einen
>> Unterschied?
>
> EM::Blitz ist der Nachfolger und sollte damit auch gehen.

Liess sich importieren mit em::Blitz
Aber ne wordclock12h  version für das stm23.. 103 board, hab ich nicht 
finden können.
Stell mich wohl dämlich an?

von Daniel K. (granturismo)


Lesenswert?

Martin M. schrieb:
> Frank M. schrieb:
>> Martin M. schrieb:
>>> Und gibt es das EM::Blocks noch irgendwo zum download?
>>> Beim Hersteller gibts jetzt das "EM::Blitz". Macht das einen
>>> Unterschied?
>>
>> EM::Blitz ist der Nachfolger und sollte damit auch gehen.
>
> Liess sich importieren mit em::Blitz
> Aber ne wordclock12h  version für das stm23.. 103 board, hab ich nicht
> finden können.
> Stell mich wohl dämlich an?

Hoi Martin

du solltest alle nötigen Files unter 
svn://mikrocontroller.net/wordclock24h/ finden und download können. Da 
befinden sich auch die Files, welche Frank erwähnt hat. Ich bilde 
jeweils mit dieser Version unter dem SVN für meine 12h - Variante.

Gruss Daniel

von Martin M. (mastermind1)


Lesenswert?

Daniel K. schrieb:
> Martin M. schrieb:
>> Frank M. schrieb:
>>> Martin M. schrieb:
>>>> Und gibt es das EM::Blocks noch irgendwo zum download?
>>>> Beim Hersteller gibts jetzt das "EM::Blitz". Macht das einen
>>>> Unterschied?
>>>
>>> EM::Blitz ist der Nachfolger und sollte damit auch gehen.
>>
>> Liess sich importieren mit em::Blitz
>> Aber ne wordclock12h  version für das stm23.. 103 board, hab ich nicht
>> finden können.
>> Stell mich wohl dämlich an?
>
> Hoi Martin
>
> du solltest alle nötigen Files unter
> svn://mikrocontroller.net/wordclock24h/ finden und download können. Da
> befinden sich auch die Files, welche Frank erwähnt hat. Ich bilde
> jeweils mit dieser Version unter dem SVN für meine 12h - Variante.
>
> Gruss Daniel
Hallo Daniel,

Danke für den Hinweis - jetzt kapiert....
Wie gesagt: ich stell mich dämlich an.... ;-)

von Martin M. (mastermind1)


Lesenswert?

Für andere die zum ersten mal mit EM::BLITZ arbeiten...

Das Projektfile "wclock24h-F103" öffnen.
Import umwandlungsdialog von EM::BLOCKS in EM:Blitz bestätigen
mit der "Rechten Maustaste" auf wclock24h-F103 klicken und auf 
WC12h-STM32F103-Release wechseln....

Da muss man erstmal drauf kommen ? :-)

Da gehört dann dazu:

-DSTM32F10X
-DSTM32F103
-DSTM32F103C8
-DUSE_STDPERIPH_DRIVER
-DHSE_VALUE=8000000
-DWCLOCK24H=0
-fno-strict-aliasing

und bei WORDCLOCK24h

-DSTM32F10X
-DSTM32F103
-DSTM32F103C8
-DUSE_STDPERIPH_DRIVER
-DHSE_VALUE=8000000
-DWCLOCK24H=1
-fno-strict-aliasing

: Bearbeitet durch User
von Daniel K. (granturismo)


Lesenswert?

Hallo Martin
du hast etwas von einem eigenen Buchstabenlayout deiner
Frontplatten geschrieben. Wie hast du diese gelayoutet und woher hast du 
diese beschafft? Möchte allenfalls auch noch etwas in Chromstahl 
machen...
Gruss Daniel

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Daniel K. schrieb:
> du hast etwas von einem eigenen Buchstabenlayout deiner
> Frontplatten geschrieben. Wie hast du diese gelayoutet und woher hast du
> diese beschafft? Möchte allenfalls auch noch etwas in Chromstahl
> machen...

Ich würde Dir raten, beim Layout der WC12h zu bleiben, denn dann ist 
keine Software-Änderung notwendig. Es werden nämlich auch 
Edelstahvarianten der WC12h als Frontplatten in Sammelbestellungen vom 
Benutzer hansa angeboten. Und zwar im (frontplatten-kompatiblen) 
früheren ATmega-Projekt:

https://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Edelstahl.29

von Martin M. (mastermind1)


Lesenswert?

Ich würde das auch empfehlen. Hätte ich auch so gemacht, wenn ich nicht 
von einem anderen Projekt gekommen wäre.

D.h bei jeder Firmware Erneuerung die man möchte, muss man die tables... 
Austauschen...

Ich habs gestern Abend gemacht.
Ausgedruckt, durchgezählt, und die Zahlungen angepasst.
Auch das Kompilieren hat einwandfrei geklappt...
Aber den Aufwand könnte man sich natürlich sparen wenn man die richtige 
Frontplatte nimmt.

von Daniel K. (granturismo)


Lesenswert?

Frank M. schrieb:
> Daniel K. schrieb:
>> du hast etwas von einem eigenen Buchstabenlayout deiner
>> Frontplatten geschrieben. Wie hast du diese gelayoutet und woher hast du
>> diese beschafft? Möchte allenfalls auch noch etwas in Chromstahl
>> machen...
>
> Ich würde Dir raten, beim Layout der WC12h zu bleiben, denn dann ist
> keine Software-Änderung notwendig. Es werden nämlich auch
> Edelstahvarianten der WC12h als Frontplatten in Sammelbestellungen vom
> Benutzer hansa angeboten. Und zwar im (frontplatten-kompatiblen)
> früheren ATmega-Projekt:
>
> 
https://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Edelstahl.29

Jungs, grundsätzlich stimme ich euch ja zu. Jedoch habe ich die Software 
längst geändert und eine Schweizerdeutsche Glasfront drauf. Nun möchte 
ich aber auf eine Stahlvariante und brauchte da im Layouting und bei den 
Herstellern etwas Hilfe :-)

von Martin M. (mastermind1)


Lesenswert?

Daniel K. schrieb:
> Frank M. schrieb:
>> Daniel K. schrieb:
>>> du hast etwas von einem eigenen Buchstabenlayout deiner
>>> Frontplatten geschrieben. Wie hast du diese gelayoutet und woher hast du
>>> diese beschafft? Möchte allenfalls auch noch etwas in Chromstahl
>>> machen...
>>
>> Ich würde Dir raten, beim Layout der WC12h zu bleiben, denn dann ist
>> keine Software-Änderung notwendig. Es werden nämlich auch
>> Edelstahvarianten der WC12h als Frontplatten in Sammelbestellungen vom
>> Benutzer hansa angeboten. Und zwar im (frontplatten-kompatiblen)
>> früheren ATmega-Projekt:
>>
>>
> 
https://www.mikrocontroller.net/articles/Word_Clock#Sammelbestellung_.28Edelstahl.29
>
> Jungs, grundsätzlich stimme ich euch ja zu. Jedoch habe ich die Software
> längst geändert und eine Schweizerdeutsche Glasfront drauf. Nun möchte
> ich aber auf eine Stahlvariante und brauchte da im Layouting und bei den
> Herstellern etwas Hilfe :-)


Ich habe die Vorlage 1zu1 von:
http://blog.bubux.de/wortuhr-frontplatte-i/

Da diese in 50x50cm Layout ist und vor allem für Stahl/Edelstahl gedacht 
ist.
Desweitern entspricht das Textlayout - nach meiner Recherche - dem 
ORIGINAL.

Dort gibt es die .DXF Cad Datei zum Download
Als Programm zur Bearbeitung wird dort QCAD empfohlen.

Die beiden Platten hat mir eine Firma (die Laser + Wasserstrahltechnik 
hat) in der Nähe erstellt.
Preis etwa für die Stahlvariante 70€, Edelstahl 85€.
Als ich dort ein Angebot angefragt habe, hat der Vertriebler nur 
gemeint, sowas ähnliches haben Sie vor kurzem schon mal gemacht :-)

Preislich war es günstiger als die Onlineanbieter wie "geerscutting"....
Und da vor der Türe, konnte ich es dort abholen und hatte somit auch 
kein Transportrisiko....

: Bearbeitet durch User
von Dario C. (dario) Benutzerseite


Lesenswert?

Hallo Frank,

ich habe da mal drei Fragen.

1) Wie bekomme ich die Wordclock dazu, sich eine neue IP-Adresse zu 
holen?

Ich habe in der FritzBox die Adresse geändert, aber die Uhr holt sich
keine neue IP. Nach einem Kaltstart: Alte IP. Selbst, wenn ich eine
andere SSID (ich habe mehrere APs) wähle, behält die Uhr die alte IP.
(ESP8266 firmware 2.1.0b)

Könnte man einen "DHCP-Renew" Button einbauen?


2) Wäre es möglich ein SSID-Search zu implementieren?

Insbesondere wenn man die Uhr neu konfiguriert, nutzt man ja oft ein 
Smartphone um sich zur Uhr zu verbinden. Es wäre eine große Hilfe,
wenn man zumindest die SSID nicht abtippen müsste.
<Kleiner Scherz> Praktisch wäre es, wenn die Uhr das Passwort selber
knacken könnte. ;-) </Kleiner Scherz>


3) Wäre es möglich einen "Reboot" Button einbauen?

Obwohl mir Ad-Hoc kein richtiger Grund dafür einfällt :-)


Grüße

Dario

von Werner A. (homebrew)


Lesenswert?

Dario C. schrieb:
> 1) Wie bekomme ich die Wordclock dazu, sich eine neue IP-Adresse zu
> holen?
Du musst die IP selber einstellen. Dazu erst als Accesspoint starten
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Start_als_Access-Point
Dann eine neue IP über das Web Interface einstellen
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Start_als_WLAN-Client

> Könnte man einen "DHCP-Renew" Button einbauen?
Wozu?

> 2) Wäre es möglich ein SSID-Search zu implementieren?
Wozu, du stellst die IP Adresse doch selber ein.

> 3) Wäre es möglich einen "Reboot" Button einbauen?
Du kannst den Reset Button drücken...

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Dario C. schrieb:
> 1) Wie bekomme ich die Wordclock dazu, sich eine neue IP-Adresse zu
> holen?

Der ESP8266 holt sich im Client-Modus immer eine IP-Adresse. Die meisten 
Router merken sich die MAC-Adresse zusammen mit der IP-Adresse, damit 
diese möglichst lange immer dieselbe bleibt. Gerade die Fritzbox 
beherrscht das bis zur Perfektion. Der Grund ist einfach: Definiert man 
per Portforwarding einen Zugang von draußen auf das Gerät drinnen, ist 
die interne IP-Adresse Dreh- und Angelpunkt für die 
Portforwarding-Tabelle. Diese würde ins Leere greifen, wenn die 
IP-Adressen sich dauernd ändern würden.

> Ich habe in der FritzBox die Adresse geändert, aber die Uhr holt sich
> keine neue IP.

Das habe ich noch nie getestet. Was macht die Fritzbox denn, wenn man 
die IP-Adresse irgendeines Geräts in der Fritzbox ändert? Das Gerät 
bekommt ja mit der per DHCP ausgelieferten IP-Adresse auch eine 
Lease-Time mitgeteilt, also eine Zeit, wie lange diese IP-Adresse gültig 
ist. Ich weiß nicht, welche Lease-Time die Fritzbox da wählt. Wenn es 
sich um mehrere Tage handelt, besteht kein Grund für den ESP, sich 
sofort eine neue IP-Adresse zu holen, erst bei einem Reset.

Aber den hast Du ja gemacht:

> Nach einem Kaltstart: Alte IP.

Dann hat das Ändern der IP-Adresse in der Fritzbox nichts bewirkt. Sei 
Dir gewiss: Der ESP bekommt die IP-Adresse vom AP zugewiesen. Der ESP 
kann sich da keine einfach so aussuchen.

> Selbst, wenn ich eine andere SSID (ich habe mehrere APs) wähle,
> behält die Uhr die alte IP.

Deine APs verwenden alle denselben IP-Adressbereich?!?
Wie lautet denn diese mysteriöse IP-Adresse?

Ich nehme mal an, dass die IP-Adressänderung entweder in der Fritzbox 
fehlerhaft implementiert ist oder Du einen Fehler gemacht hast, nämlich 
z.B. eine IP-Adresse vergeben, die außerhalb des eingestellten 
DHCP-Adressbereichs liegt. Eine andere Erklärung habe ich nicht.

Mach doch mal folgendes: Man kann in der Fritzbox den IP-Adressbereich 
für DHCP einstellen. Stell den mal so ein, dass die alte IP-Adresse 
nicht mehr in diesen Bereich fällt. Dann machst Du einen Reset vom ESP. 
Dann muss eine neue IP-Adresse zugewiesen werden.

Aber mal eine Frage: Warum willst Du dem ESP überhaupt eine andere 
IP-Adresse als die automatisch per DHCP vergebene aufzwingen? Sind 
bestimmte Adressen "schöner" als andere?

Ich sehe das so: Du willst dem ESP eine Adresse geben, die außerhalb des 
DHCP-Bereichs liegt. Das funktioniert aber nicht. Die Adresse muss 
innerhalb des DHCP-Bereichs liegen, sonst kann der DHCP-Server in der 
FritzBox diese Adresse nicht vergeben und der ESP behält so die zuletzt 
vergebene Adresse.

Die außerhalb des DHCP-Bereichs noch freien Adressen sind für statische 
IP-Adressen gedacht. Der ESP erhält aber keine statische Adresse, 
sondern holt sich immer per DHCP eine neue.

Für weitere Hilfe brauche ich folgende Infos:

1. Eingestellter IP-Adressbereich im WLAN
2. Eingestellter DHCP IP-Adressbereich für das WLAN
3. Ist-IP-Adresse des ESP
4. Wunsch-IP-Adresse des ESP

: Bearbeitet durch Moderator
von Dirk L. (hobbid)


Lesenswert?

Hallo,

ich hätte mal noch einen kleinen Verbesserungsvorschlag für das 
Webfrontend der Uhr.

Ich nutze das Webfrontend der Uhr unter iOS in Safari. Wenn ich die Uhr 
mal manuell mit poweroff abgeschaltet habe passiert es immer wieder das 
die Uhr sich abschaltet sobald ich safari aufrufe. Anscheinend ruft 
safari die Urls immer wieder mal ab um eine vorschau der offenen tabs zu 
generieren.

Ich denke es wäre ganz sinnvoll wenn man nach einer aktion nochmal einen 
redirect auf die "neutrale" Url macht.

Also bei Aufruf von /display?action=poweron redirect auf /display

Gruß

Dirk

von Leif (Gast)


Lesenswert?

Hi Frank,

ich muss mich leider noch einmal wegen dem Problem mit den weißen LEDs 
vom 08.11. melden.

Du hast ja bereits Änderungen in den Lines 165 und 316 der vars.c 
vorgenommen.

Leider gibt es immer noch ein Problem.

Der Regler zum Anpassen der Helligkeit für die weiße LED erscheint jetzt 
zwar in der Weboberfläche, aber die Regelung funktioniert nur 1x!

D.h. man kann nach dem booten einmalig die Helligkeit verändern.
Wenn ein zweites Mal der Reglerwert geändert wird und gespeichert wird, 
verändert sich die Helligkeit der LED nicht.

Auch wenn der Regler auf 0 gesetzt wird, bleibt die LED mit gleicher 
Helligkeit an.

Die RGB Leds lassen sich jedoch mehrmals verstellen.

von Joachim J. (jemand0815)


Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem mit der Uhr. Die Läuft nicht :-(
Hier das komplette Logfile:
1
power_init() called
2
switching power 
3
4
Welcome to WordClock Logger!
5
----------------------------
6
Version: 2.2.1
7
rtc is online
8
eeprom is online
9
current eeprom version: 0x00020200
10
ESP8266 LOGGER
11
read rtc: Su 2000-01-01 01:07:35
12
read rtc: Su 2000-01-01 01:07:45
13
RTC temperature: 19
Und dann ist stille :-(

Mein Aufbau:
- STM32F103 MiniBoard
- DS3231 RTC + EEPROM
- "fliegende" Verkabelung per Stiftleisten und Steckerchen.
- LEDs und STM hängen an getrennten 5V, sind aber an GND verbunden.

kein ESP, DCF. LDR oder sonst was.
Habe ich irgendwo überlesen, dass man das Programm noch gesondert 
konfigurieren muss? Oder mache ich was anderes falsch?

Gruß
Joachim

von Jan H. (Gast)


Lesenswert?

Guten Morgen!

@Joachim:

Dadurch das Du kein ESP dran hast kann es nicht funktionieren.
Der ESP ist jetzt Pflicht, weil ein Teil des Programms auf dem ESP 
ausgelagert wird.

von Joachim J. (jemand0815)


Lesenswert?

Guten Morgen,

ist das tatsächlich so?

Im Artikel steht: "Optional: ESP8266 ESP-01: WLAN Modul"
Dann wäre es ganz gut, wenn das Wort "Optional" verschwindet.

Werden eigentlich auch PullUps für das I2C benötigt? Die habe ich auch 
noch nicht verbaut.

Gruß
Joachim

von Jan H. (Gast)


Lesenswert?

Joachim J. schrieb:
> Im Artikel steht: "Optional: ESP8266 ESP-01: WLAN Modul"
> Dann wäre es ganz gut, wenn das Wort "Optional" verschwindet.

Ab der Version 2.1 ist das so. Weil der Speicher vom Miniboard erschöpft 
ist.
Ursprünglich wurde mal gesagt das Miniboard wird bis zum erschöpfen des 
Speicherplatz unterstützt. Deswegen sollte man das Nucleo-board nehmen.
Jetzt ist es leider so das man das W-Lan Modul und Board updaten muss.

Und alle nicht angeschlossenen Komponenten wollen ein Pull-up 
Widerstand.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Dirk L. schrieb:
> Anscheinend ruft
> safari die Urls immer wieder mal ab um eine vorschau der offenen tabs zu
> generieren.

Blödes Verhalten von Safari, ehrlich gesagt.

> Ich denke es wäre ganz sinnvoll wenn man nach einer aktion nochmal einen
> redirect auf die "neutrale" Url macht.
>
> Also bei Aufruf von /display?action=poweron redirect auf /display

Danke, kommt auf die TODO-Liste.

Joachim J. schrieb:
> Im Artikel steht: "Optional: ESP8266 ESP-01: WLAN Modul"
> Dann wäre es ganz gut, wenn das Wort "Optional" verschwindet.

Ja, stimmt, sorry. Werde ich entfernen.

Beitrag #4791096 wurde vom Autor gelöscht.
von Dario C. (dario) Benutzerseite


Lesenswert?

Frank M. schrieb:

>> Ich habe in der FritzBox die Adresse geändert, aber die Uhr holt sich
>> keine neue IP.

> Das habe ich noch nie getestet. Was macht die Fritzbox denn, wenn man
> die IP-Adresse irgendeines Geräts in der Fritzbox ändert?

Ja, das war mein Fehler:
Bei der Fritzbox (FRITZ!OS:06.51) kann man zwar die IP-Adresse ändern,
aber nur wenn das Gerät gerade offline ist. Ansonsten läuft die Änderung
ins Leere.

> Aber mal eine Frage: Warum willst Du dem ESP überhaupt eine andere
> IP-Adresse als die automatisch per DHCP vergebene aufzwingen?
Ich möchte dass gleichen Geräte, IPs aus den selben Bereichen haben:
1
x.x.x.1-9    # Infrastruktur (Router & Switche) 
2
x.x.x.1x     # Arduinos und ESP 
3
x.x.x.2x     # PCs
4
x.x.x.3x-49  # VMs aus Host xxxx
5
x.x.x.5x     # WLAN-PCs 
6
x.x.x.60-79  # iDingens
7
x.x.x.8x     # Drucker
8
x.x.x.9x     # Server
9
x.x.x.1xx    # neue Geräte per DHCP


> Sind bestimmte Adressen "schöner" als andere?
Nicht schöner, aber ich möchte neue Geräte schnell sehen.
Beim Basteln habe ich dann oft neue Geräte, die 100er Adressen bekommen.
Wenn die dann dauerhaft hier bleiben, bekommen die feste Adressen.
Wenn ich mich von außen über VPN einwähle, funktioniert oft das DNS 
nicht,
dann ist es nützlich, wenn man die IPs auswendig weiß und mit System ist
das einfacher.

Das Problem hat sich also erledigt und für alle, die auch mal die IP
ändern wollen: Vorher das Gerät ausschalten, dann in der Fritzbox die
neue IP eintragen.


Aber Du hast nicht auf meine zweite Frage geantwortet:

>> 2) Wäre es möglich ein SSID-Search zu implementieren?

Das wäre eine echte Erleichterung.


Dario

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Dario C. schrieb:
> Aber Du hast nicht auf meine zweite Frage geantwortet:
>
>>> 2) Wäre es möglich ein SSID-Search zu implementieren?
>
> Das wäre eine echte Erleichterung.

Die Frage hatte ich tatsächlich überlesen. Ja, das wäre möglich. Ich 
setze das mal auf die TODO-Liste.

von Daniel K. (granturismo)


Lesenswert?

Daniel K. schrieb:
> Hallo Frank
> ich wollte gestern mal auf komplette Mehrsprachigkeit umstellen. Dies
> ist zwar eigentlich relativ einfach, da alle Tabellen nahezu
> mehrspachenfähig sind (aufgrund der verschieden DE - Versionen).
> Ich möchte aber nun neben den deutschen Versionen auch Englisch
> einbauen.
> Dies wäre rel. einfach möglich, wenn du mir allenfalls "const uint8_t
> it_is[2] = { WP_ES, WP_IST };" mit den MODES_COUNT koppeln könntest.
> Somit wie folgt:
> const uint8_t it_is[MODES_COUNT][2] = {
> { WP_ES, WP_IST },
> { WP_IT, WP_IS }
> };
> Wäre das was für die nächste Version?
> Gruss Daniel

Hallo Frank
allenfalls ist meine Anfrage in der Blogflut untergegangen. Somit hier 
nochmals die Anfrage :-)
Gruss Daniel

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Daniel K. schrieb:
> allenfalls ist meine Anfrage in der Blogflut untergegangen. Somit hier
> nochmals die Anfrage :-)

Sorry. Ja, ist untergegangen.

Daniel K. schrieb:
> Dies wäre rel. einfach möglich, wenn du mir allenfalls "const uint8_t
> it_is[2] = { WP_ES, WP_IST };" mit den MODES_COUNT koppeln könntest.
> Somit wie folgt:
> const uint8_t it_is[MODES_COUNT][2] = {
> { WP_ES, WP_IST },
> { WP_IT, WP_IS }
> };

Das kann ich aber nur, wenn ich auch eine Definition von WP_IT und WP_IS 
habe. Sonst ist das nicht mehr compilierbar.

Und da stellt sich mir die Frage, warum Du eine gesonderte Definition 
von WP_IT und WP_IS überhaupt brauchst. Kannst Du da nicht einfach die 
Konstanten von WP_ES und WP_IST verwenden? Ich nehme mal an, dass sie 
dieselben Werte haben, nämlich 1 und 2. Oder hast Du die 
WP_XXX-Konstanten hinten an die enum-Liste wc12h_words angehängt?

: Bearbeitet durch Moderator
von Daniel K. (granturismo)


Lesenswert?

Frank M. schrieb:
> Daniel K. schrieb:
>> allenfalls ist meine Anfrage in der Blogflut untergegangen. Somit hier
>> nochmals die Anfrage :-)
>
> Sorry. Ja, ist untergegangen.
>
> Daniel K. schrieb:
>> Dies wäre rel. einfach möglich, wenn du mir allenfalls "const uint8_t
>> it_is[2] = { WP_ES, WP_IST };" mit den MODES_COUNT koppeln könntest.
>> Somit wie folgt:
>> const uint8_t it_is[MODES_COUNT][2] = {
>> { WP_ES, WP_IST },
>> { WP_IT, WP_IS }
>> };
>
> Das kann ich aber nur, wenn ich auch eine Definition von WP_IT und WP_IS
> habe. Sonst ist das nicht mehr compilierbar.
>
> Und da stellt sich mir die Frage, warum Du eine gesonderte Definition
> von WP_IT und WP_IS überhaupt brauchst. Kannst Du da nicht einfach die
> Konstanten von WP_ES und WP_IST verwenden? Ich nehme mal an, dass sie
> dieselben Werte haben, nämlich 1 und 2. Oder hast Du die
> WP_XXX-Konstanten hinten an die enum-Liste wc12h_words angehängt?

Gute Frage. Es ist natürlich so, dass ich zwischen Englisch und Deutsch 
umschalten möchte und somit wäre diese Definition hilfreich. Was mir 
auch schon helfen würde ist, wenn du const uint8_t it_is[MODES_COUNT][2] 
in ein Zweidimensionales Array umbaust, also etwa so: const uint8_t 
it_is[1][2]. Das bedingt aber leicht Anpassungen am display.c, dass 
dieses für ein mehrdimensionales Array fähig ist. Somit könnte ich dann 
jeweils nur meine Definitionen in den tables anpassen.
Andere Variante wäre, dass du das Array immer mit den gleichen Werten 
füllst:
const uint8_t it_is[MODES_COUNT][2] = {
 { WP_ES, WP_IST },
 { WP_ES, WP_IST }
};
Somit könnte ich dann auf meine Einträge wenn nötig abändern.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Daniel K. schrieb:
> Gute Frage. Es ist natürlich so, dass ich zwischen Englisch und Deutsch
> umschalten möchte

Ich hatte so etwas schon vermutet. Aber genau das verstehe ich nicht. 
Ein Umschalten bedingt das Auswechseln der Frontplatte. Die wechselt man 
aber nicht dynamisch, sondern man entscheidet sich von vornherein für 
deutsch oder englisch.

Ist es da nicht einfacher, den Source einmal für deutsch und einmal für 
englisch zu kompilieren und dann - je nach Modell - die richtige 
Firmware zu flashen?

von Daniel K. (granturismo)


Lesenswert?

Frank M. schrieb:
> Daniel K. schrieb:
>> Gute Frage. Es ist natürlich so, dass ich zwischen Englisch und Deutsch
>> umschalten möchte
>
> Ich hatte so etwas schon vermutet. Aber genau das verstehe ich nicht.
> Ein Umschalten bedingt das Auswechseln der Frontplatte. Die wechselt man
> aber nicht dynamisch, sondern man entscheidet sich von vornherein für
> deutsch oder englisch.
>
> Ist es da nicht einfacher, den Source einmal für deutsch und einmal für
> englisch zu kompilieren und dann - je nach Modell - die richtige
> Firmware zu flashen?

Frank, dies ist durchaus auch eine Variante, auch wenn ich das 
mehrdimensionale Array schätzen würde :-) So könnte ich einfach die 
Controller und gesamte Elektronik vorbereiten und dann kann die 
bestellende Person dann noch kurzfristig die Frontplattenversion / 
-sprache wählen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Wenn, dann würde ich eine englische Variante in die Software komplett 
einbauen wollen. Lediglich WP_IT und WP_IS zu definieren ohne jeglichen 
Mehrwert halte ich nicht für zielführend. Ich schlage vor, dass Du mich 
mal per E-Mail kontaktierst. Dann kann man dafür ein sinnvolles Konzept 
entwickeln.

von X. O. (overflow)


Lesenswert?

Daniel K. schrieb:

> Frank, dies ist durchaus auch eine Variante, auch wenn ich das
> mehrdimensionale Array schätzen würde :-) So könnte ich einfach die
> Controller und gesamte Elektronik vorbereiten und dann kann die
> bestellende Person dann noch kurzfristig die Frontplattenversion /
> -sprache wählen.

HASt du vor damit in Serie zu gehen?

von Daniel K. (granturismo)


Lesenswert?

X. O. schrieb:
> Daniel K. schrieb:
>
>> Frank, dies ist durchaus auch eine Variante, auch wenn ich das
>> mehrdimensionale Array schätzen würde :-) So könnte ich einfach die
>> Controller und gesamte Elektronik vorbereiten und dann kann die
>> bestellende Person dann noch kurzfristig die Frontplattenversion /
>> -sprache wählen.
>
> HASt du vor damit in Serie zu gehen?

Nein, ich baue hier zusammen mit drei Kollegen diese Uhr. Einer dieser 
Kollegen möchte jedoch die Uhr in Englisch haben und es wäre für mich 
einfacher, wenn es im Layout auch schon englisch gäbe. So könnte ich für 
alle die gleiche SW aufspielen und nachträglich umschalten.

von X. O. (overflow)


Lesenswert?

Wobei ich an der Englischen Variante auch interessiert wäre.

von Martin M. (mastermind1)


Lesenswert?

Meiner Meinung nach kann jeder die englische Version innerhalb von 15 
Minuten selbst kompilieren. Einfach die layout Datei mit em::Blitz 
anpassen.

Ich hab es ja selbst gemacht da meine Deutsche front das original Layout 
hat. Und das ist anders als das hier verwendete .
Und da auch jeder für die englische Version wahrscheinlich ein anderes 
layout hat, würde ich den Aufwand nicht machen, das zentral zu 
integrieren...

von Daniel K. (granturismo)


Lesenswert?

Martin M. schrieb:
> Meiner Meinung nach kann jeder die englische Version innerhalb von 15
> Minuten selbst kompilieren. Einfach die layout Datei mit em::Blitz
> anpassen.
>
> Ich hab es ja selbst gemacht da meine Deutsche front das original Layout
> hat. Und das ist anders als das hier verwendete .
> Und da auch jeder für die englische Version wahrscheinlich ein anderes
> layout hat, würde ich den Aufwand nicht machen, das zentral zu
> integrieren...

Martin, sehe ich etwas anders.
Das mit dem Umbau stimme ich dir zu, da ich das ja auch gemacht habe und 
das relativ easy ist. Wenn wir aber davon ausgehen, dass das Layout im 
Englisch vorgegeben ist, wie dies jetzt in Deutsch ist, wäre dies eine 
Option für eine Umschaltung. Allenfalls ist dies ja sogar für eine 
Sammelbestellung von Interesse:-)

von Joachim J. (jemand0815)


Lesenswert?

Hallo zusammen,

ich hab ein Problem mit dem ESP8266. Ich habe alles recht fliegend auf 
einem Steckbrett verkabelt. Den ESP konnte ich nicht mit dem 
STM32F103-Mini-Development-Board dazwischen flashen. Also habe ich RX 
und TX direkt an den ESP gehängt und das STM Board nur dazu benutzt um 
den ESP in den Programmiermodus zu bringen. Damit gings.
Jetzt habe ich aber kein WLAN namens "Wordclock" sondern "ESP8266" zu 
dem ich keine Verbindung mit meinem Handy aufbauen kann. :-( 
"Authentifizierungsproblem"
Der ESP wird über einen AMS1117 mit 3,3 V / 800mA versorgt.

Hier kurz ein Auszug aus dem Log:
1
power_init() called<\r><\n>
2
switching power on<\r><\n>
3
<\r><\n>
4
Welcome to WordClock Logger!<\r><\n>
5
----------------------------<\r><\n>
6
Version: 2.2.1<\r><\n>
7
rtc is online<\r><\n>
8
eeprom is online<\r><\n>
9
current eeprom version: 0x00020200<\r><\n>
10
DCF77 Error: High pulse >= 25<\r><\n>
11
ESP8266 LOGGER<\r><\n>
12
DCF77 Error: High pulse <= 5<\r><\n>
13
DCF77 Error: High pulse >= 25<\r><\n>
14
esp8266 now up<\r><\n>
15
(- setup UDP)<\r><\n>
16
(- local port: 2421)<\r><\n>
17
(- setup server UDP)<\r><\n>
18
(- local port: 2424)<\r><\n>
19
(FIRMWARE 2.2.0)<\r><\n>
20
(- working as AP)<\r><\n>
21
(MODE ap)<\r><\n>
22
(IPADDRESS 192.168.4.1)<\r><\n>
23
info: ip address = 192.168.4.1<\r><\n>
24
esp8266 now online<\r><\n>
25
--> time "192.53.103.103"<0d><0a><\r><\n>
26
(OK time)<\r><\n>

Woran kanns liegen?

Gruß
Joachim

von Martin M. (mastermind1)


Lesenswert?

Ich habe ebenfalls ein Problem mit drei getesteten ESP8266-01.

Wenn ich diese per Arduino IDE mit einem 0815 ESP WIFI Sketch bespiele, 
dann erzeugt der ESP nach einem neustart ein WLAN und wird von Handy + 
Notebook gefunden.

Wenn ich die "ESP_Wordclock.bin" (2.2.0) per
"esp8266_flasher.exe" oder auch "Flash_Download_Tools_v.2.4" auf die 
ESPs hochlade, erscheint mir nach einem ESP Neustart überhaupt kein 
WLAN.

Hat mir einer eine Idee, was ich da falsch machen könnte?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Joachim J. schrieb:

> Jetzt habe ich aber kein WLAN namens "Wordclock" sondern "ESP8266" zu
> dem ich keine Verbindung mit meinem Handy aufbauen kann. :-(
> "Authentifizierungsproblem"

Wenn Du im laufenden Betrieb den User-Button drückst bzw. die 
entsprechende Brücke am MiniBoard herstellst, sollte der ESP in den 
AP-Mode gehen mit der SSID "wordclock" und dem im Artikel genannten 
Password.

> Hier kurz ein Auszug aus dem Log:power_init() called<\r><\n>
> switching power on<\r><\n>
> <\r><\n>
> Welcome to WordClock Logger!<\r><\n>
> ----------------------------<\r><\n>
> Version: 2.2.1<\r><\n>
> rtc is online<\r><\n>
> eeprom is online<\r><\n>
> current eeprom version: 0x00020200<\r><\n>
> DCF77 Error: High pulse >= 25<\r><\n>

Du solltest den DCF-Eingangpin per Pullup auf definierten Pegel legen, 
wenn Du kein DCF benutzt - so wie im Artikel beschrieben.

> (- working as AP)<\r><\n>
> (MODE ap)<\r><\n>
> (IPADDRESS 192.168.4.1)<\r><\n>

Okay, Dein ESP geht in den AP-Modus. Aber noch mit der vom Hersteller 
eingestellten SSID "ESPxxxxx".

Ein Drücken des User-Buttons (blaue User-Taste auf dem Nucleo-Board, 
alternativ beim STM32F103-Mini-Development-Board PA6 mittels Taster mit 
Masse verbinden) hast Du aber offenbar vergessen, denn das würde ebenso 
im Log protokolliert werden. Davon ist hier aber nichts zu lesen.

Hier ist es im Artikel beschrieben:

https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Start_als_Access-Point

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Wenn ich die "ESP_Wordclock.bin" (2.2.0) per
> "esp8266_flasher.exe" oder auch "Flash_Download_Tools_v.2.4" auf die
> ESPs hochlade, erscheint mir nach einem ESP Neustart überhaupt kein
> WLAN.

Kannst Du das Protokoll (Log), was auf dem UART nach dem Boot erscheint, 
hier mal reinschreiben?

von Joachim (Gast)


Lesenswert?

Hallo Frank,

danke für die ausführliche Antwort!
- Ein DCF Modul von Pollin ist angeschlossen. Das sind vermutlich nur 
"Frame-Error". Ein DCF Signal bekommt die Uhr irgendwann.
- PA6 auf Masse ziehen habe ich auch schon versucht. Ob ich es in dem 
Log versucht habe, weiß ich gerade nicht mehr. Aber passiert ist da 
nichts. Ich schau später nochmal.
Muss PA6 per PullUp auch auf 3,3V gezogen werden, wenn er nicht gerade 
kurz an Masse hängt?

Gruß
Joachim

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Joachim schrieb:
> - Ein DCF Modul von Pollin ist angeschlossen.

Ah, okay.

> Das sind vermutlich nur "Frame-Error".

Ja.

> Muss PA6 per PullUp auch auf 3,3V gezogen werden, wenn er nicht gerade
> kurz an Masse hängt?

Nein, hier wird der interne Pullup eingeschaltet. Beim DCF77-Input kann 
ich das nicht machen, weil die DCF-Module einfach zu schwach sind, bei 
eingeschaltetem internen Pullup den Pin noch auf Masse zu ziehen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Joachim schrieb:
> - PA6 auf Masse ziehen habe ich auch schon versucht. Ob ich es in dem
> Log versucht habe, weiß ich gerade nicht mehr.

Ich habe gerade nochmal in den Source geschaut. Blöderweise bewirkt der 
User-Button (bzw. PA6) nur eine Umschaltung in den AP-Mode, wenn das 
ESP-Modul nicht bereits im AP-Mode ist. Bisher ging das wohl immer gut, 
aber bei den neueren Modulen scheinen die Reseller die ESP-Module 
bereits so auszuliefern, dass der AP-Mode jetzt Standard ist.

Die Folge ist, dass der ESP nicht auf die SSID "wordclock" umgeschaltet 
wird, weil der ESP ja bereits im AP-Mode steckt. Eigentlich nicht so 
schlimm, dann müsste der Zugriff über die SSID "ESPxxx" mit leerem 
Passwort funktionieren, falls der Reseller nicht auch schon ein 
Standard-Passwort hinterlegt hat.

Aber das ist unschön. Und deshalb werde ich die Software derart ändern, 
dass der User-Button (bzw. PA6) immer eine Aktivierung des AP-Modes 
mit SSID "wordclock" bewirkt - egal, ob der ESP bereits im AP-Mode ist 
oder nicht. Dann sollte es immer nach Anleitung funktionieren.

Update kommt heute abend.

von X. O. (overflow)


Lesenswert?

Frank M. schrieb:

> Ich habe gerade nochmal in den Source geschaut. Blöderweise bewirkt der
> User-Button (bzw. PA6) nur eine Umschaltung in den AP-Mode, wenn das
> ESP-Modul nicht bereits im AP-Mode ist. Bisher ging das wohl immer gut,
> aber bei den neueren Modulen scheinen die Reseller die ESP-Module
> bereits so auszuliefern, dass der AP-Mode jetzt Standard ist.
>
> Die Folge ist, dass der ESP nicht auf die SSID "wordclock" umgeschaltet
> wird, weil der ESP ja bereits im AP-Mode steckt. Eigentlich nicht so
> schlimm, dann müsste der Zugriff über die SSID "ESPxxx" mit leerem
> Passwort funktionieren, falls der Reseller nicht auch schon ein
> Standard-Passwort hinterlegt hat.
>

Kann ich bestätigen, bei mir wars auch so. Ich konnte mich aber ohne 
Probleme verbinden, da kein Password gesetzt war und anschließend die 
SSID geändert. Also habe ich mir nicht lange Gedanken dazu gemacht.

von Martin M. (mastermind1)


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
> Martin M. schrieb:
>> Wenn ich die "ESP_Wordclock.bin" (2.2.0) per
>> "esp8266_flasher.exe" oder auch "Flash_Download_Tools_v.2.4" auf die
>> ESPs hochlade, erscheint mir nach einem ESP Neustart überhaupt kein
>> WLAN.
>
> Kannst Du das Protokoll (Log), was auf dem UART nach dem Boot erscheint,
> hier mal reinschreiben?

Beim Anschluss des ESP8266 am USB UART erscheint das WLAN, und ich kann 
mich auf die Webseite einloggen.

Dein Image ist also in Ordnung!

Ich hab nun mein Shield V1 mal mit den Bildern und der Beschreibung 
verglichen.

In der Anlage habe ich ein Foto meines zweiten Shileds gemacht.
Am getesteten Shield V1 ist ein DCF von Pollin angeschlossen.

Ich nütze nicht:
LDR (Lichtsensor)
Infrarot
1-Wire Tempsensor DS18B20

Kann es sein, dass ich bei den rot markierten Bereichen was vergessen 
habe.

10,0k Widerstand
100Ohm Widerstand
4,7uF Elko

Ich denke es fehlt nur der 10,0k Widerstand?

Den ESP8266-01 habe ich fürs Foto weggelassen....

Danke schon mal fürs Feedback an einen Nichtelektroniker :-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Frank M. schrieb:
> Und deshalb werde ich die Software derart ändern,
> dass der User-Button (bzw. PA6) immer eine Aktivierung des AP-Modes
> mit SSID "wordclock" bewirkt - egal, ob der ESP bereits im AP-Mode ist
> oder nicht. Dann sollte es immer nach Anleitung funktionieren.

Das Upddate ist eingespielt als Version 2.2.3. Das SVN und sämtliche 
Hex-Dateien sind nun auf dem aktuellen Stand.

Einzige Änderung gegenüber 2.2.2:

  - Bugfix: Unbedingtes Aktivieren des AP-Modus durch User-Button,
    auch wenn der ESP wegen Hersteller-Einstellungen bereits im
    AP-Modus ist.

von Joachim J. (jemand0815)


Lesenswert?

Guten Morgen!

Läuft! Super! Dankeschön!
AP "wordclock" ist aufgetaucht und ich konnte mich problemlos verbinden.

Gruß
Joachim

von Marco R. (majestick)


Lesenswert?

@Frank
Vielen Dank für die neue Version.

@Martin M.
ja der 10 K Widerstand fehlt noch, der wird für das ESP benötigt.

Der 100 Ohm Widerstand und der Kondensator werden für den Infrarot 
Empfänger benötigt

@All die Probleme mit dem 220 Ohm Widerstand haben bzw. sporadisches LED 
flackern, falsche Farben oder ein merkwürdiges verhalten der Matrix 
feststellen.
Meine LEDs scheinen den 3,3V Eingangspegel nicht sonderlich gut zu 
verkraften, hier kann es helfen einen LVL Shifter zu benutzen, zumindest 
hat dies bei mir wahre Wunder bewirkt, nun läuft alles einwandfrei.

Habe so einen verwendet:
https://de.aliexpress.com/item/5pcs-lot-Logic-Level-Shifter-Bi-Directional-Four-way-two-way-logic-level-transformation-module/32690305593.html?

zwar ein paar Kanäle Zuviel, aber hatte nichts anderes da.


Gruß
Marco

von didi (Gast)


Lesenswert?

Hallo,

ich habe eine WordClock WC12H mit dem STM32F411 Nucleo laut Anleitung 
gebaut und sie funktionierte auch einwandfrei, bis ich das ST-Link 
absägte...

- R35, R37, SB62, SB63 sind geschlossen
- SB16, SB50, SB54, SB55 sind offen
- C33, C34 mit 22pf bestückt
- X3 bestückt (habe hier X1 vom ST-Link verwendet)


Beim Booten bzw. Drücken des Resttasters leuchtet nach ca. 1 Sekunde die 
Led LD2 grün.

Woran könnte es liegen?

Danke!

Gruß
Didi

von didi (Gast)


Lesenswert?

Die Uhr funktioniert wieder!
Ich hab sie ca. 5 Minuten am Strom gehabt, dann erst Reset gedrückt - 
seltsam ...


Didi

von Günter H. (gnter_h534)


Angehängte Dateien:

Lesenswert?

Marco R. schrieb:
> Meine LEDs scheinen den 3,3V Eingangspegel nicht sonderlich gut zu
> verkraften, hier kann es helfen einen LVL Shifter zu benutzen, zumindest
> hat dies bei mir wahre Wunder bewirkt, nun läuft alles einwandfrei.

Ich habe mir das Datenblatt von WS2812B nochmals bezüglich der 
Daten-Eingangsspannung angesehen: Danach ist die minimale 
Eingangsspannung für den H-Pegel (V IH) 0,7*V DD, also 3,5 V.

Bei mir läuft das System MIT 220 Ohm-Widerstand und OHNE Pegelwandler 
einwandfrei. Da aber die erste WS2812B letztlich außerhalb der 
Spezifikation betrieben wird, ist aus meiner Sicht nachvollziehbar, dass 
einige Mitstreiter hier im Forum über Schwierigkeiten bei der 
Ansteuerung der Stripes berichten.

Einen Schaltplan für eine solchen "Logic-Level-Shifter" habe ich 
angehängt.

Gruß
Günter

von Martin M. (mastermind1)


Lesenswert?

Günter H. schrieb:
> Marco R. schrieb:
>> Meine LEDs scheinen den 3,3V Eingangspegel nicht sonderlich gut zu
>> verkraften, hier kann es helfen einen LVL Shifter zu benutzen, zumindest
>> hat dies bei mir wahre Wunder bewirkt, nun läuft alles einwandfrei.
>
> Ich habe mir das Datenblatt von WS2812B nochmals bezüglich der
> Daten-Eingangsspannung angesehen: Danach ist die minimale
> Eingangsspannung für den H-Pegel (V IH) 0,7*V DD, also 3,5 V.
>
> Bei mir läuft das System MIT 220 Ohm-Widerstand und OHNE Pegelwandler
> einwandfrei. Da aber die erste WS2812B letztlich außerhalb der
> Spezifikation betrieben wird, ist aus meiner Sicht nachvollziehbar, dass
> einige Mitstreiter hier im Forum über Schwierigkeiten bei der
> Ansteuerung der Stripes berichten.
>
> Einen Schaltplan für eine solchen "Logic-Level-Shifter" habe ich
> angehängt.
>
> Gruß
> Günter

Ich habe z.b. Anzeigeprobleme mit den ersten beiden Buchstaben LEDs (ES) 
- kurzfristig leuchten sie korrekt, aber spätestens nach einem 
Uhrzeitwechsel leuchtet das E gelb, das S weiss obwohl rot definiert 
ist.

Reicht  es aus, diesen " logic Level shifter "ab den ersten Buchstaben 
LEDs vorzuschalten, oder sollten da idealerweise alle drüber versorgt 
werden?

Ich selbst habe das Mini Dev shield v1 mit dem stm...103 im Einsatz.
Die Stromversorgung wird da ja mittels des flachbandkabels realisiert.

von Marco R. (majestick)


Lesenswert?

Martin M. schrieb:
> Reicht  es aus, diesen " logic Level shifter "ab den ersten Buchstaben
> LEDs vorzuschalten, oder sollten da idealerweise alle drüber versorgt
> werden?
>
> Ich selbst habe das Mini Dev shield v1 mit dem stm...103 im Einsatz.
> Die Stromversorgung wird da ja mittels des flachbandkabels realisiert.

Hallo Martin,
zwischen Board und erster LED, somit alle Leds.

wichtig ist ja das das Signal welches vom Board kommt auf den 5V Level 
erhöht wird damit es schon in der ersten LED korrekt verarbeitet werden 
kann und dann korrekt weiter zur nächsten geht.

Wenn du ihn erst später einbaust bringt es nicht viel, ist ja wie bei 
einem Verstärker, kommt Müll an hast du den Müll verstärkt :)

Bisher hat der Shifter wunderbar bei mehreren Uhren funktioniert, bei 
einer war dann allerdings doch mal eine LED defekt und musste getauscht 
werden.

Gruss
Marco

von Martin M. (mastermind1)


Lesenswert?

Marco R. schrieb:
> Martin M. schrieb:
>> Reicht  es aus, diesen " logic Level shifter "ab den ersten Buchstaben
>> LEDs vorzuschalten, oder sollten da idealerweise alle drüber versorgt
>> werden?
>>
>> Ich selbst habe das Mini Dev shield v1 mit dem stm...103 im Einsatz.
>> Die Stromversorgung wird da ja mittels des flachbandkabels realisiert.
>
> Hallo Martin,
> zwischen Board und erster LED, somit alle Leds.
>
> wichtig ist ja das das Signal welches vom Board kommt auf den 5V Level
> erhöht wird damit es schon in der ersten LED korrekt verarbeitet werden
> kann und dann korrekt weiter zur nächsten geht.
>
> Wenn du ihn erst später einbaust bringt es nicht viel, ist ja wie bei
> einem Verstärker, kommt Müll an hast du den Müll verstärkt :)
>
> Bisher hat der Shifter wunderbar bei mehreren Uhren funktioniert, bei
> einer war dann allerdings doch mal eine LED defekt und musste getauscht


Hmm.... Ich speisse mehrere Streifen(Reihen) parallel mit Strom.
Ich habe die WC12h mit 4 minuten punkte.
D.h. die Data Leitung fängt durchläuft alle Minutenpunkte und erst dann 
gehts zu "ES IST"....

Für was ist eigentlich diese WS2812 Schutzschaltung geeignet:


http://www.led-studien.de/2014/06/24/schutzschaltung-fuer-ws2812-pixel/




> werden.


>
> Gruss
> Marco

von Marco R. (majestick)


Lesenswert?

Martin M. schrieb:
> Ich habe die WC12h mit 4 minuten punkte.
> D.h. die Data Leitung fängt durchläuft alle Minutenpunkte und erst dann
> gehts zu "ES IST"....
>
> Für was ist eigentlich diese WS2812 Schutzschaltung geeignet:

> http://www.led-studien.de/2014/06/24/schutzschaltung-fuer-ws2812-pixel/

Richtig deswegen muss der Shifter ja auch direkt nach dem Board vor der 
ersten Minuten LED, und sogar am besten noch VOR dem 220 Ohm Widerstand, 
damit dieser weiterhin seine Schutzwirkung hat.

Sprich auf dem Board den Widerstand durch eine Drahtbrücke ersetzen und 
nach dem Shifter einbauen.


Die Schutzschaltung kannte ich noch nicht. Schaden kann es nicht. Dann 
kannst die den 220 Ohm Widerstand schenken (sitzt ja schon auf dem 
Board) und dein LED Strip ist noch vor Spannungsspitzen geschützt.
Aber da kann vielleicht jemand anderes noch mehr zu sagen.

Gruss
Marco

von Günter H. (gnter_h534)


Lesenswert?

Martin M. schrieb:
> Für was ist eigentlich diese WS2812 Schutzschaltung geeignet:
> http://www.led-studien.de/2014/06/24/schutzschaltung-fuer-ws2812-pixel/


Diese Schutzschaltung sorgt dafür, dass die Spannung am Dateneingang
(V I) max. 0,5 V größer oder kleiner werden kann als die
Versorgungsspannung (V DD) der WS2812B.

Bei diesem Projekt werden beim (optionalen) Abschalten der 
Versorgungsspannung für die WS2812B auch die Daten per Software 
"abgeschaltet", Masse wird gar nicht geschaltet. Somit ist diese 
Schaltung der "Gürtel zum Hosenträger". Ich habe sie bei mir trotzdem 
eingebaut - auch bei den V 2-Versionen der Shields kann zumindest die 
Diode zwischen Versorgungsspannung und Dateneingang bestückt werden.

Günter H. schrieb:
> Bei mir läuft das System MIT 220 Ohm-Widerstand und OHNE Pegelwandler
> einwandfrei.

Das änderte sich schlagartig, als ein anderes 5 V-Netzteil einsetzte: 
LEDs an STM32-Board, DS3231 und ESP8266 leuchten, sonst bleibt alles 
dunkel!

Das zunächst eingesetzte Netzteil lieferte 4,95 V, das andere 5,28 V und 
damit ging zunächst nichts mehr.

(Zwischen)-Lösung bis zum Einbau eines "Logik Level Shifters": Einbau 
einer SB550-Diode (5 A Schottky, war gerade "da") in die 
Spannungsversorgung für die gesamte WordClock; bei der 12h-Version 
fallen ca. 0,3 V ab und die Uhr kann auch mit diesem Netzteil betrieben 
werden.

Gruß
Günter

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Ich hätte noch einen sehr einfachen Alternativvorschlag, um das 
Level-Problem zu lösen:

 - Pullup-Widerstand 4k7 an den WS2812-Eingang "DI"
 - Den entsprechenden Ausgang des STM32 auf Open-Drain umstellen.

Den Pullup-Widerstand könnte man sehr einfach zwischen den 
Schraubklemmen 5V und dem Data-Signal anbringen.

Die Umstellung auf Open-Drain geschieht in ws2812.c, Funktion 
ws2812_init() an zwei Stellen, nämlich einmal für STM32F4XX:

Alt:
1
    gpio.GPIO_OType   = GPIO_OType_PP;

Neu:
1
    gpio.GPIO_OType   = GPIO_OType_OD;

Und dann nochmal für STM32F10X:
Alt:
1
    gpio.GPIO_Mode    = GPIO_Mode_AF_PP;

Neu:
1
    gpio.GPIO_Mode    = GPIO_Mode_AF_OD;

Ich werde das heute mal testen. Der Charme dieser Lösung: sie ist 
einfach und billig, weil sie nur einen zusätzlichen Widerstand braucht.

Wie wäre es, wenn ich das im Web-Interface konfigurierbar mache? Für den 
Großteil der Anwender funktioniert die aktuelle Lösung ja 
"out-of-the-box", so dass das Problem offenbar nur vereinzelt auftritt.

: Bearbeitet durch Moderator
von Martin M. (mastermind1)


Lesenswert?

Bei mir hat sich dasled Problem erledigt, nachdem ich die 
Stromversorgung der Minuten Led bei "Es ist" seperat mit Strom versorgt 
habe.
Ursprünglich habe ich es gemacht wie in dem Beispielfoto in der Doku.
Da wird die Minutenled strommässig von "ES ISt" angezapft.

Mein Netzteil (Pollin 4A) liefert 4.97v

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Bei mir hat sich dasled Problem erledigt, nachdem ich die
> Stromversorgung der Minuten Led bei "Es ist" seperat mit Strom versorgt
> habe.

Was auch wieder zeigt, dass der Level an DIN bei manchen WS2812 auf 
Messers Schneide steht. Offenbar hast Du durch die separate 
Stromversorgung einen minimal größeren Spannungsabfall, der schon 
ausgereicht hat.

von Günter H. (gnter_h534)


Lesenswert?

Frank M. schrieb:
> Ich hätte noch einen sehr einfachen Alternativvorschlag, um das
> Level-Problem zu lösen:
>
>  - Pullup-Widerstand 4k7 an den WS2812-Eingang "DI"
>  - Den entsprechenden Ausgang des STM32 auf Open-Drain umstellen.

Einverstanden, einfacher geht es wohl nicht. Und wenn die Option 
4,7k-Widerstand/Open-Drain-Ausgang im Web-Interface konfigurierbar ist, 
kann jeder seine Option auswählen.

> Was auch wieder zeigt, dass der Level an D IN bei manchen WS2812 auf
> Messers Schneide steht.

Das habe ich ja auch gerade hautnah erlebt.

Gruß
Günter

von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
>  - Pullup-Widerstand 4k7 an den WS2812-Eingang "DI"
>  - Den entsprechenden Ausgang des STM32 auf Open-Drain umstellen.
> [...]
> Ich werde das heute mal testen.

Getestet und für gut befunden. Funktioniert. Ich habe lediglich einen 
Pullup an die Schraubklemmen gehängt und den STM32-Output auf Open-Drain 
umgestellt. Ohne Pullup reagieren die LEDs nun gar nicht mehr, mit 
Pullup an 5V ist alles okay.

(Das Foto zeigt den entsprechenden Ausschnitt an meinem 
Nucleo-Prototyp-Shield, mit dem ich damals das STM32-Projekt begonnen 
habe)

Damit sollte das Pegel-Problem gelöst sein.

Jetzt die finale Frage:

Soll ich das konfigurierbar machen oder sollen wir prinzipiell auf 
Pullup/Open-Drain umstellen? Dann muss aber jeder, der ein 
Software-Update einspielt, den Pullup-Widerstand einlöten/anklemmen.

: Bearbeitet durch Moderator
von Günter H. (gnter_h534)


Lesenswert?

Frank M. schrieb:
> Jetzt die finale Frage:
>
> Soll ich das konfigurierbar machen oder sollen wir prinzipiell auf
> Pullup/Open-Drain umstellen?

Wenn der Aufwand für "konfigurierbar machen" überschaubar ist, würde ich 
diesen Weg vorschlagen: Bei vielen klappt es mit dem 3,3 V-Pegel ja 
problemlos - die müssten dann nach einem Software-Update noch einmal zum 
Lötkolben greifen, weil es bei den Shields dafür keine Schraubklemmen 
gibt.

Mal schauen, was sonst noch an Rückmeldungen kommt.

Gruß
Günter

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Günter H. schrieb:
> Wenn der Aufwand für "konfigurierbar machen" überschaubar ist, würde ich
> diesen Weg vorschlagen

Naja, ist natürlich etwas Aufwand. Zumal braucht es dann eine neue 
ESP-Firmware-Version, ein neues Flag, eine neue EEPROM-Speicherstelle 
und und und...

Mir ist da gerade eine komplett andere Idee durch den Kopf geschossen:

Ich schalte den Pin erstmal mit internem Pulldown auf Input - ja der 
STM32 hat sowas. Dann messe ich, ob trotzdem ein High-Pegel anliegt. 
Wenn ja, ist der externe Pullup angeschlossen (weil mit 4k7 
niederohmiger) und ich schalte anschließend den Output auf Open-Drain. 
Wenn nein, schalte ich den Pin wie bisher auf Push-Pull.

Das klingt erstmal genial, ich werde das mal testen. Aber ich bin mir 
sicher, dass das klappen wird :-)

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Funktioniert perfekt!

Der externe Pullup wird korrekt erkannt, wenn er angeschlossen ist.

Es erscheint dann im Log:
    ws2812: external pullup detected

Oder wenn er nicht angeschlossen ist:
    ws2812: no external pullup detected

Somit kann ich den Pin automatisch in den open-drain- oder 
push-pull-Modus schalten. Damit muss der Anwender nichts konfigurieren, 
er braucht nur den Pullup anzuschließen, wenn die WS2812 Probleme mit 
dem Level haben.

Die Änderung kommt im nächsten Release - heute oder morgen.

: Bearbeitet durch Moderator
von Martin M. (mastermind1)


Lesenswert?

Nach dem heutigen Samstgseinkauf kann ich als diffusor für eine 
Stahlblech Front folgendes empfehlen:

Toppits Butterbrotpapier weiss

Ich hab sie einlagig im Einsatz und bin mit der streuwirkung sehr 
zufrieden.
Evtl. Zweilagig wennan eine Uhr hat bei der man ganz nah davor steht.

von Burkhard D. (burkadius)


Lesenswert?

Hallo Martin
zu deinem Beitrag habe ich eine Anfängerfrage, da ich auch ein Display 
für eine 12Std.Uhr "anpassen " möchte:

Martin M. schrieb:
> Meiner Meinung nach kann jeder die englische Version innerhalb von 15
> Minuten selbst kompilieren. Einfach die layout Datei mit em::Blitz
> anpassen.
>
> Ich hab es ja selbst gemacht da meine Deutsche front das original Layout
> hat. Und das ist anders als das hier verwendete .


reicht es aus, in der Layout datei "display.c -> *tables12h.c bei " 
const struct WordIiiu Illumination (WP_COUNT)  und const char * 
display(WC_ROWS) die entsprechenden Anpassungen für eine 12h Uhr 
vorzunehmen oder gibt es noch andere "Orte" ?
Gruß
Burkhard

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Ich habe gestern nachmittag bereits die Version 2.2.4 hochgeladen,  bin 
aber nicht mehr dazu gekommen, sie hier anzukündigen.

Einziger Punkt:

Automatische Umschaltung auf Open-Drain-Betrieb des Led-Ausgangs bei 
Anbringung eines 4k7 Pullups am WS2812-Eingang zur Erhöhung und 
Stabilisierung des Eingangspegels von 3,3V auf 5V.

Dasselbe gilt für SK6812.

Ich werde das heute noch im Artikel dokumentieren. Damit sollte das 
Pegel-Problem, das einige wenige Leute hatten, behoben sein.

von Martin M. (mastermind1)


Lesenswert?

Burkhard D. schrieb:
> Hallo Martin
> zu deinem Beitrag habe ich eine Anfängerfrage, da ich auch ein Display
> für eine 12Std.Uhr "anpassen " möchte:
>
> Martin M. schrieb:
>> Meiner Meinung nach kann jeder die englische Version innerhalb von 15
>> Minuten selbst kompilieren. Einfach die layout Datei mit em::Blitz
>> anpassen.
>>
>> Ich hab es ja selbst gemacht da meine Deutsche front das original Layout
>> hat. Und das ist anders als das hier verwendete .
>
> reicht es aus, in der Layout datei "display.c -> *tables12h.c bei "
> const struct WordIiiu Illumination (WP_COUNT)  und const char *
> display(WC_ROWS) die entsprechenden Anpassungen für eine 12h Uhr
> vorzunehmen oder gibt es noch andere "Orte" ?
> Gruß
> Burkhard

ist echt recht schnell und einfach gemacht.

für die WC12h - hab ich mir notiert:

Mit der Software "EmBlitz" die "wclock24h-F103.ebp" öffnen
Umschalten auf "WC12h-STM32F103-Release"

Dann in der Baumstruktur:
Sources -> .. -> src -> display -> tables12h.c die LEDS anpassen.
Passend durchzählen "Wortzeile 1 = 0,x,x". "Wortzeile 2 = 1,x,x" usw.

Erzeugen des HEX FILES:
Build >> Compile >> danach befindet sich das HEXFILE dann im 
Projektverzeichnis >> bin>>Release>>

Das ist alles :-)

von Burkhard D. (burkadius)


Lesenswert?

Hallo Martin
Super und danke für die schnelle Antwort. Ich denke mit der Anleitung 
sollte ich es schaffen.
Gruß
Burkhard

von ItsMe (Gast)


Lesenswert?

Frank M. schrieb:
> Ich habe gestern nachmittag bereits die Version 2.2.4 hochgeladen...

Kann das sein, dass die Änderungen in der apa102.c nicht enthalten sind?

von Martin M. (mastermind1)


Lesenswert?

Ich bin mit der ersten wc12h mit dem shield v1 und dem stm.... fertig - 
der Hingucker schlecht hin.

Eine Frage noch, wo müsste ich hinlangen, wenn ich eine weitere 
Animation einbauen möchte (einerseits in das ESP8266 image per arduino 
ide und andererseits in dem stm.....edb File)

Ich möchte an dem Geburtstag meiner Frau stündlich ein herzchen 
einblenden lassen.
Ähnlich der Temperatur ansichtseinstellung.
Das könnte ich am Geburtstag aktivieren mit der zeitintervall 
einstellung - fertig.
Das ganze würde dann vermutlich automatisiert per smarthome (ip-symcon) 
triggern.....

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

ItsMe schrieb:
> Frank M. schrieb:
>> Ich habe gestern nachmittag bereits die Version 2.2.4 hochgeladen...
>
> Kann das sein, dass die Änderungen in der apa102.c nicht enthalten sind?

Korrekt. Bisher hat auch niemand bei den APA102 keine Probleme mit dem 
Daten-Pegel gemeldet. Desweiteren müsste man bei den APA102 auch zwei 
Pullups benutzen, nämlich für Clock und für Data. Theoretisch müsste ich 
da dann auch zwei unabhängige Messungen vornehmen.

Meine eigenen APA102-Stripes funktionierten von Anfang an einwandfrei. 
Wenn man davon ausgeht, dass CMOS-ICs ihre Schaltschwelle in der Regel 
bei U/2, also 2,5V haben, sollten da auch eigentlich keine Probleme 
auftreten. Bei den WS2812 hat sich die Notwendigkeit erst durch die 
Praxis ergeben. Da bei den SK6812 die Software sehr ähnlich ist, habe 
ich die Änderung auch direkt für die SK6812-LEDs eingebaut. Auch wenns 
dort bisher nicht notwendig war: es schadet hier auch nicht.

Fazit: Im Moment sehe ich für die APA102 keinen Handlungsbedarf.

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Niels J. schrieb:
> Mir ist allerdings aufgefallen, dass die Buchstaben bei der Laufschrift
> nach links hin zusammenrutschen.

Den Fehler habe ich gefunden und behoben. Der Bugfix kommt mit dem 
nächsten Release.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Eine Frage noch, wo müsste ich hinlangen, wenn ich eine weitere
> Animation einbauen möchte (einerseits in das ESP8266 image per arduino
> ide und andererseits in dem stm.....edb File)

Auf dem ESP8266 ist dafür keine Änderung notwendig. Die Liste der 
Animationen wird vom STM32 zum ESP8266 nach dem Start übertragen.

> Ich möchte an dem Geburtstag meiner Frau stündlich ein herzchen
> einblenden lassen.

Auf dem STM32 ist eine zusätzliche Animation vorwiegend Handarbeit. Wann 
ist denn der Geburtstag Deiner Frau? Ein Tannenbaum und ein Herz steht 
sowieso auf der TODO-Liste. Diesen Punkt wollte ich noch kurzfristig 
anpacken, da ja Weihnachten bald vor der Tür steht.

P.S.
Die Einblendung von Piktogrammen zu einer festen Zeit passt nicht ins 
Animations-Konzept. Die Animationen werden immer bei Uhrzeitwechseln 
eingeblendet. Die Anzeige der Temperatur in bestimmten Intervallen passt 
da besser, wird aber nicht durch eine Animation implementiert.

: Bearbeitet durch Moderator
von Martin M. (mastermind1)


Lesenswert?

Frank M. schrieb:
> Martin M. schrieb:
>> Eine Frage noch, wo müsste ich hinlangen, wenn ich eine weitere
>> Animation einbauen möchte (einerseits in das ESP8266 image per arduino
>> ide und andererseits in dem stm.....edb File)
>
> Auf dem ESP8266 ist dafür keine Änderung notwendig. Die Liste der
> Animationen wird vom STM32 zum ESP8266 nach dem Start übertragen.
>
>> Ich möchte an dem Geburtstag meiner Frau stündlich ein herzchen
>> einblenden lassen.
>
> Auf dem STM32 ist eine zusätzliche Animation vorwiegend Handarbeit. Wann
> ist denn der Geburtstag Deiner Frau? Ein Tannenbaum und ein Herz steht
> sowieso auf der TODO-Liste. Diesen Punkt wollte ich noch kurzfristig
> anpacken, da ja Weihnachten bald vor der Tür steht.
>
> P.S.
> Die Einblendung von Piktogrammen zu einer festen Zeit passt nicht ins
> Animations-Konzept. Die Animationen werden immer bei Uhrzeitwechseln
> eingeblendet. Die Anzeige der Temperatur in bestimmten Intervallen passt
> da besser, wird aber nicht durch eine Animation implementiert.


Danke für die weitere Planung :-) Das hört sich super an.
Ja ein Weihnachtsbaum oder ein Herzchen wären perfekt.

Meine Frau hat "erst" nächstes Frühjahr Geburtstag.
Wie ein solches Herzchen/und wann es eingeblendet wird ist eigentlich 
egal.
Je nachdem, was sinnvoll einbindbar ist - ohne große Verrenkungen!
Ob das jetzt bei Uhrzeitwechsel passiert, oder wie bei der Temperatur 
mit der Intervallmaske ist Geschmackssache.


Ich müsste dann nur wissen, in den welchen EMBlocks/EM-Blitz 
Projektfiles ich das ganze rauskopieren müsste. Ich habe ja ein anderes 
Frontlayout(tables12h.c), dass ich angepasst habe.


Laut deiner Software-Übersicht ist die STM Version 2.3.x ja nicht mehr 
mit der ESP Version 2.2.1 kompatibel. Darum bin ich derzeit noch auf 
2.2.x (STM) und 2.2.1 (ESP) - die 2.2.1 war das höchste BIN File was ich 
für den ESP gefunden habe....

STM        ESP
2.3.x    2.2.1    inkompatibel

Vielleicht habe ich mich auch verlesen und ich könnte bereits auf STM... 
Version 2.3.x gehen...

Mich freut die Uhr gerade jeden ABEND wenn ich wieder daran bastle...

Demnächst die Montage und dann sehe ich die "grinsenden" Gäste :-)

--------------------------
Falls jemand die MDF Grundplatte an der Schnittkante weiss behandeln 
möchte, kann ich von Schöner Wohnen "Fenster und Türenlackgrundierung" 
empfehlen.
2x streichen/pinseln... zwischendrin evtl. ein wenig anschleifen, 
fertig.

Damit erreicht man als Nicht-Lackierer schnell+dauerhaft eine tragfähige 
weisse Lackschicht auf MDF.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Laut deiner Software-Übersicht ist die STM Version 2.3.x ja nicht mehr
> mit der ESP Version 2.2.1 kompatibel.

Sie wird es dann nicht mehr sein, denn im Moment ist die STM-Version bei 
2.2.4. Die nächste Version wird dann aber tatsächlich 2.3.0 sein - wegen 
den Piktogrammen.

Martin M. schrieb:
> Ich müsste dann nur wissen, in den welchen EMBlocks/EM-Blitz
> Projektfiles ich das ganze rauskopieren müsste.

Diese Vorgehensweise halte ich nicht für zielführend. Da sich in der 
STM32-Software voraussichtlich mehr ändern wird als Du je selbst daran 
geändert hast, ist es eher sinnvoll, dass Du Deine Änderungen wieder in 
eine zukünftige Version einbaust.

von Günter H. (gnter_h534)


Lesenswert?

Martin M. schrieb:
> Falls jemand die MDF Grundplatte an der Schnittkante weiss behandeln
> möchte, kann ich von Schöner Wohnen "Fenster und Türenlackgrundierung"
> empfehlen.
> 2x streichen/pinseln... zwischendrin evtl. ein wenig anschleifen,
> fertig.

Ich habe auf die Kanten einer Grundplatte (Multiplex-Holzplatte) 
Kantenumleimer aufgebügelt. Die gibt es im Baumarkt in großer Auswahl, 
sind auch schnell aufgebracht und haben eine sehr saubere Oberfläche.

von Günter H. (gnter_h534)


Lesenswert?

Frank M. schrieb:
> Ich habe gestern nachmittag bereits die Version 2.2.4 hochgeladen.  bin
>
> Einziger Punkt:
>
> Automatische Umschaltung auf Open-Drain-Betrieb des Led-Ausgangs bei
> Anbringung eines 4k7 Pullups am WS2812-Eingang zur Erhöhung und
> Stabilisierung des Eingangspegels von 3,3V auf 5V.

Heute habe die Version 2.2.4 geflashed und zunächst den 4k7 
Pullup-Widerstand noch nicht eingelötet. Wie zu erwarten gab es mit 
meinem "Problemnetzteil" (Ausgangsspannung knapp 5,3 V) keine 
LED-Anzeige. Nach Einbau des Pullup-Widerstandes ist alles perfekt!

Danke für diese "genial einfache" Lösung.

Gruß
Günter

von Martin M. (mastermind1)


Lesenswert?

Günter H. schrieb:
> Martin M. schrieb:
>> Falls jemand die MDF Grundplatte an der Schnittkante weiss behandeln
>> möchte, kann ich von Schöner Wohnen "Fenster und Türenlackgrundierung"
>> empfehlen.
>> 2x streichen/pinseln... zwischendrin evtl. ein wenig anschleifen,
>> fertig.
>
> Ich habe auf die Kanten einer Grundplatte (Multiplex-Holzplatte)
> Kantenumleimer aufgebügelt. Die gibt es im Baumarkt in großer Auswahl,
> sind auch schnell aufgebracht und haben eine sehr saubere Oberfläche.

Das ist natürlich auch ne gute Idee - vor allem günstiger als meine 
Farbe....
Die Farbe kostet stolze 19€ bei 0,75liter...

von Lu K. (vollesbrot)


Lesenswert?

Hallo,

könntet ihr mir eine Bezugsquelle für die SK6812 RGBW LEDs mit 28,1mm 
Abstand nennen? Bzw. wo ihr diese fertigen lasst.

Danke und Grüße

: Bearbeitet durch User
von Peter G. (ingrimsch)


Lesenswert?

Ich fürchte da wirst du nichts "fertiges" mit dem richtigen Abstand 
finden. Ich hatte mir mal ein paar Streifenplatinen gebastelt (bzw. von 
einem Kollegen basteln lassen), wie Torsten sie früher beim alten 
Wordclock Projekt angeboten hat und diese auf der Arbeit auf ein paar 
Sammelnutzen geschummelt. Für eine einzelne Uhr Streifen zu bestellen 
dürfte aber kostentechnisch eher unattraktiv sein und Jakob hier aus dem 
Forum (http://www.platinensammler.de) ist aus privaten Gründen schon 
länger inaktiv.

Eine günstigere Alternative, die allerdings mit ein wenig Bastelarbeit 
verbunden ist, wären die LEDs, die man schon auf kleinen Boards fertig 
aufgelötet bekommt. Die könntest du frei Platzieren, musst dich dann 
aber halt selbst um die Verkabelung und Befestigung kümmern (im 
Gegensatz zu Platine oder LED Strip, die man einfach aufkleben kann).

Hier ein Link zu einem Händler bei Aliexpress, kann aber durchaus sein, 
dass es die noch günstiger gibt... ich hab jetzt nicht wirklich intensiv 
gesucht und den ersten Treffer genommen:
https://www.aliexpress.com/item/addressable-SK6812-RGBW-warm-white-led-with-alu-base-DC5V-input-5050-SMD-RGBW-with-SK6812/32664750448.html

Und achte genau drauf, dass du nicht versehentlich die RGB Version 
erwischst, sondern eine der RGBW Varianten. Ein Bekannter ist im 
"Sparwahn" mal drauf reingefallen. ;-)

Ich wollte ggf. kommendes Jahr nochmal ein paar von den Streifenplatinen 
fertigen lassen, wird aber wohl vermutlich wegen akutem Zeitmangel erst 
irgendwo im Zeitraum März/April/Mai sein. Und das sind dann nätürlich 
nur die Platinen ohne LEDs. Die LEDs müsstest du dann noch zusätzlich 
selbst beschaffen und auflöten müsstest du sie dann ja auch noch...

von Simon B. (metalcore)


Lesenswert?

Hallo zusammen,

ich fange seit zwei Tagen an den Bau einer 24h Wordclock zu planen. Ich 
würde aber gerne eine Front aus Metall haben, welche hier bisher nicht 
angeboten wird.
Allerdings kann ich weder im zugehörigen Artikel noch hier im Forum eine 
entsprechende Layout / 3d /CAD Datei finden, mit der ich eine 
Frontplatte herstellen lassen könnte.
Ist diese im Gegensatz zu den alten Projekten hier bewusst nicht 
verlinkt?

von Peter G. (ingrimsch)


Lesenswert?

Hi Simon,

schau mal in den ursprünglichen Thread der WordClock24h, da gibt es die 
Front der 24h als SVG und DXF, ich glaube es war sogar ein Stencil Font 
(ein muss wenn du die Front aus Edelstahl fertigen willst). Damit sollte 
sich doch was machen lassen:

https://www.mikrocontroller.net/articles/Datei:WC24h18x16_V3_Stencil_Allround.dxf.zip
https://www.mikrocontroller.net/articles/Datei:WC24h18x16_V3_Stencil_Allround.svg.zip
https://www.mikrocontroller.net/articles/WordClock24h

von Simon B. (metalcore)


Lesenswert?

Hi Peter,

vielen Dank schon Mal.
Ich hatte in dem anderen Thread gar nicht geschaut, da ich hier 
herausgelesen habe, dass das Layout (die Abstände) leicht geändert 
wurden.
Besteht diese Anpassung nicht zu der von dir geposteten Version?

von Lu K. (vollesbrot)


Lesenswert?

Peter G. schrieb:
> Eine günstigere Alternative, die allerdings mit ein wenig Bastelarbeit
> verbunden ist, wären die LEDs, die man schon auf kleinen Boards fertig
> aufgelötet bekommt. Die könntest du frei Platzieren, musst dich dann
> aber halt selbst um die Verkabelung und Befestigung kümmern (im
> Gegensatz zu Platine oder LED Strip, die man einfach aufkleben kann).
>
> Hier ein Link zu einem Händler bei Aliexpress, kann aber durchaus sein,
> dass es die noch günstiger gibt... ich hab jetzt nicht wirklich intensiv
> gesucht und den ersten Treffer genommen:
> 
https://www.aliexpress.com/item/addressable-SK6812-RGBW-warm-white-led-with-alu-base-DC5V-input-5050-SMD-RGBW-with-SK6812/32664750448.html


Mal angenommen ich befestige die LEDs auf einer Trägerplatte aus 
Kunststoff o.ä., wäre es da nicht einfacher anstatt dieser kleinen 
Boards einfach einen LED Streifen zu kaufen und nach jeder LED zu 
trennen?

Bei den Boards befinden sich nämlich die Kontakte auf der Rückseite, 
diese müsste ich ja auch auf die Trägerplatte kleben.
Da ist es doch einfacher wenn ich die einzelnen LED eines Streifens 
aufklebe und dann verkabel, da hier die Kontakte auf der Vorderseite 
sind.
Oder sehe ich das falsch?

: Bearbeitet durch User
von Chris E. (chris2016)


Lesenswert?

Hallo zusammen,

erstmal großen Respekt an den oder die Ersteller des Projekts! Saubere 
Arbeit!

Ich habe Interesse an einer 12h oder 24h, komme allerdings derzeit nicht 
dazu dieses Projekt umzusetzen.

Daher meine Frage: Verkauft hier jemand seine Uhr (neuwertig), oder 
würde jemand sie für mich gegen Endgeld herstellen?


Gruß

von Peter G. (ingrimsch)


Lesenswert?

@Simon,

puh, da bin ich ehrlich gesagt überfragt... vielleicht erinnert sich ja 
Frank daran was genau geändert wurde. Aber ich habe gerade mal auf die 
schnelle das SVG mit dem Foto der roten 24h Front verglichen und bin 
dabei nicht über Ungereimtheiten gestolpert. Kannst du ja vielleicht 
nochmal genau Buchstabe für Buchstabe vergleichen, aber ich glaube die 
passt.

An den horizontalen Abständen kann sich ja nicht wirklich groß was 
verändert haben, es werden ja immernoch 60 LED/m Streifen benutzt und da 
lassen sich die Abstände zwischen den Buchstaben ja einfach ausrechnen: 
1000 / 60 = 16,66mm. Ich habe leider noch keinen Zwischenboden der 24h, 
daher kann ich dir zum Zeilenabstand in Y nichts genaues sagen und X 
auch nicht kontrollieren/nachmessen... vielleicht kann die Infos ja 
jemand ergänzen.

@Lu Ke

Klar, so kannst du das natürlich auch machen! :) Ich persönlich löte 
nicht so gerne an den fitzeligen Lötpunkten der Strips, aber du kannst 
natürlich auch jede LED vom Streifen trennen und aufkleben. Wenn du die 
LEDs auf eine Aluplatte klebst müsstest du dir aber ggf. Gedanken um 
Isolation der Lötpunkte machen und damit rechnen, dass die Aluplatte ja 
ein recht großer Kühlkörper ist und du dir etwas mehr Mühe geben musst 
die einzelnen Lötpunkte heiß zu bekommen. Oder halt erst löten und 
danach auf die Aluplatte kleben. Mit einer Trägerplatte aus Kunststoff 
umgehst du beide Punkte und solltest da keine Probleme haben.

von Günter H. (gnter_h534)


Lesenswert?

@ Simon

Im Artikel der "alten" WordClock24h

https://www.mikrocontroller.net/articles/WordClock24h

ist der Zeilenabstand mit 18,75 mm definiert. Das passt zu der 
angestrebten quadratischen Buchstabenmatrix.


@Lu Ke

Ein Problem sehe ich bei der angedachten Methode: Die Kabel zwischen den 
LEDs verhindern, dass die Trägerplatte mit den LEDs plan aufliegt und es 
kann zu Überstrahlungen kommen, es sei denn, Du passt alle Stege 
zwischen den Bohrungen entsprechend an.

Ich habe mir Gedanken für den Einsatz von SK6812 RGBW LEDs gemacht. Da 
ich meine Zwischenböden selbst aus Multiplex-Platten herstelle, würde 
ich die Löcher auf der Rückseite mit 8 mm bohren - vorne mit 25 mm und 3 
mm von der Plattendicke "stehen lassen". Die SK6812 RGBW LEDs auf 
kleinen Boards liegen dann plan auf der Rückseite auf und können wie 
hier im Forum schon beschrieben mit Cu-Draht verlötet werden. Ist auch 
viel Arbeit...

von Simon B. (metalcore)


Lesenswert?

Danke für eure Antworten. Freut mich dass die Version passt. :)

Meine Annahme basierte aus dem folgenden Teil des ersten Posts hier:
1
Die bisherigen WordClock-Frontplatten müssen wegen des LED-Abstands
2
der WS2812 ein wenig angepasst werden: Die Buchstaben werden etwas größer,
3
damit der Abstand von 30 LEDs/m eingehalten wird. Die 4 Minutenpunkte
4
bleiben jedoch. Auch die bisherigen Zwischenplatten müssen auf das neue
5
Rastermaß angepasst werden.

Für mich als kompletten Neueinsteiger in das Projekt ist es insgesamt 
etwas
schwer die wichtigen Informationen aus allen vorhandenen Artikeln zu 
ziehen und zu bewerten was davon korrekt ist bzw genutzt werden kann.
Die alten Artikel enthalten zum Teil doch noch deutlich detaillierter 
Infos.

Ich werde bei Interesse auch gerne selber Anpassungen vornehmen. Sollte 
ich weiter in das Projekt reinkommen und auf keine zu großen Probleme 
stoßen versteht sich. :D

: Bearbeitet durch User
von Jens L. (geo_poldi)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich baue gerade meine erste Wordclock und bin total gegeistert, was hier 
auf die Beine gestellt wurde! Respekt und vielen Dank für die 
detaillierten Erklärungen.

Meine Verdrahtung steht und es geht zur Inbetriebnahme. Meine Hardware:
- STM32F103C8T6
- RTC / Eeprom
- ESP01
- AMS 1117 3.3
- kein TSOP31238
- kein DCF
- kein LDR

Verdrahtet habe ich alles (ohne Shield) nach diesem Bild 
https://www.mikrocontroller.net/articles/Datei:WordClock24h-an-STM32F103-C8T6.png
Das STM32 habe ich mittels 3,3V UART-Adapter und dem verlinkten 
Demonstrator GUI programmiert. Ohne Probleme.
Das ESP-Modul habe ich mit einem selbst gelötetem Adapter-Kabel auch 
direkt mittels UART-Adapter programmiert (Version 2.2.0). Lief 100% 
durch bis zur Fehlermeldung, wie im Artikel beschrieben.

Beim Starten der Uhr kommen folgende Meldungen:
power_init() called
switching power on

Welcome to WordClock Logger!
----------------------------
Version 2.2.4
rtc is online
ws2812: no external pullup detected
eeprom is online
current eeprom version: 0x00020200
ESP8266 LOGGER
read rtc: Su 2000-01-01 12:06:04

An der Stelle mit "ESP8266 LOGGER" bleibt die Uhr recht lange stehen.

Ich finde jedoch kein WLAN mit der SSID "Wordclock".

Auch das kurzzeitige Verbinden von A6 mit GND ändert nichts und führt zu 
keiner Ausgabe im Terminal.

Wo wird denn der "User-Button" genauer beschrieben?

Bei Betrachtung des Schaltplans des Shields ist mir aufgefallen, dass am 
ESP8266 noch ein 10kOhm Widerstand zwischen GPIO2 und 3,3V ist. Im 
Verdrahtungsbild ist GPIO2 offen.
Aber auch der Widerstand hat nichts geändert.

Wo kann ich ansetzten? Ich habe bereits zwei Stunden hier gelesen, finde 
aber keinen Ansatz mehr.

Ich habe auch schon probiert parallel mit zweiten UART-Adapter auf die 
Rx/Tx-Leitungen am ESP zu gehen, kann hier aber keine Kommunikation 
mithören (115200).

Über einen Tipp wäre ich sehr dankbar.

Vielen Dank im Voraus.
Jens

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jens L. schrieb:
> Ich habe auch schon probiert parallel mit zweiten UART-Adapter auf die
> Rx/Tx-Leitungen am ESP zu gehen, kann hier aber keine Kommunikation
> mithören (115200).

Wie hast Du den ESP-01 geflasht? Über den STM32 - wie im Artikel 
beschrieben - oder direkt mit einem UART-Adapter am ESP?

Vielleicht hast Du RX/TX zwischen STM32 und ESP vertauscht?

EDIT:
> Wo wird denn der "User-Button" genauer beschrieben?

Hier wird er erwähnt:

https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Flash_des_WLAN-Moduls
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Start_als_Access-Point

Aber ich sehe ein, dass man den Ersatz für die blaue Taste vom Nucleo am 
STM32F103 besser beschreiben könnte. Hole ich nach.

: Bearbeitet durch Moderator
von Jens (Gast)


Lesenswert?

Frank M. schrieb:
> Jens L. schrieb:
>> Ich habe auch schon probiert parallel mit zweiten UART-Adapter auf die
>> Rx/Tx-Leitungen am ESP zu gehen, kann hier aber keine Kommunikation
>> mithören (115200).
>
> Wie hast Du den ESP-01 geflasht? Über den STM32 - wie im Artikel
> beschrieben - oder direkt mit einem UART-Adapter am ESP?

Den ESP habe ich direkt über UART geflasht.

> Vielleicht hast Du RX/TX zwischen STM32 und ESP vertauscht?
>
> EDIT:
>> Wo wird denn der "User-Button" genauer beschrieben?
>
> Hier wird er erwähnt:
>
> 
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Flash_des_WLAN-Moduls
> 
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Start_als_Access-Point
>
> Aber ich sehe ein, dass man den Ersatz für die blaue Taste vom Nucleo am
> STM32F103 besser beschreiben könnte. Hole ich nach.

Vielen Dank. Schaue ich mir gleich an.
Müssen die beschriebenen Widerstände beim fehlen von DCF, LDR, IR 
zwingend eingelötet werden? Kann es daran liegen?

von Günter H. (gnter_h534)


Lesenswert?

Jens schrieb im Beitrag:
> Müssen die beschriebenen Widerstände beim Fehlen von DCF, LDR, IR
> zwingend eingelötet werden? Kann es daran liegen?

Glaube ich bei dem beschriebenen Fehler eigentlich nicht. Für einen 
stabilen Betrieb später sollten diese Widerstände aber eingelötet sein - 
warum also nicht gleich?

von Jens L. (geo_poldi)


Lesenswert?

Günter H. schrieb:
> Jens schrieb im Beitrag:
>> Müssen die beschriebenen Widerstände beim Fehlen von DCF, LDR, IR
>> zwingend eingelötet werden? Kann es daran liegen?
>
> Glaube ich bei dem beschriebenen Fehler eigentlich nicht. Für einen
> stabilen Betrieb später sollten diese Widerstände aber eingelötet sein -
> warum also nicht gleich?

Da gebe ich dir natürlich recht.

Ich habe nun:
 - B3 mittels 10kOhm an 3,3V (auch wenn im Text 100k steht)
 - A5 via 10kOhm an 3,3V (der ist auch so angegeben)
 - bzgl. nicht vorhandenem DCF, müssen beide Ports (B8/B9) via PullUp an 
3,3V?

Die Widerstände haben nix geändert.

Auch das Tauschen von Rx/Tx leider nicht.
(Hätte mich auch gewundert, denn dann wäre das seit Feb. veröffentlichte 
Anschlussbild ja falsch).

Ich habe bereits zweimal neu verkabelt und drei ESP-Module geflasht.

Als ich dann nach 2h Suchen das auf meinem Steckboard getestet Projekt 
angesehen habe ist mir aufgefallen, dass dort GPIO0 nicht verbunden ist.

Diesen haben ich also einfach mal von A4 getrennt und schon kann ich 
mittels Taster (A6->GND) in den AP-Modus des ESP wechseln und die WC 
geht dem Anschein nach (Verbindung via Web-Browser und Config der Uhr).

Fällt euch dazu etwas ein? Was ist bei mir anders aufgrund der freien 
Verdrahtung?

Sind beim Shield die 3,3V vom ESP mit 3,3V vom STM32 verbunden? Im 
Schaltplan des Shields kann ich da keinen Unterschied feststellen.

Ich habe die Strips und das STM32 mit den 5V versorgt und mittels 
AMS1117 diese in 3,3V für das ESP gewandelt.

von Günter H. (gnter_h534)


Lesenswert?

Jens L. schrieb:
> Sind beim Shield die 3,3V vom ESP mit 3,3V vom STM32 verbunden? Im
> Schaltplan des Shields kann ich da keinen Unterschied feststellen.

Beim STM32-Shield V1 und bei "meinem" Shield sind 3,3 V für das 
ESP8266-Modul und die 3,3 V vom STM32 (natürlich) getrennt, die Massen 
logischerweise verbunden.

> Ich habe die Strips und das STM32 mit den 5V versorgt und mittels
> AMS1117 diese in 3,3V für das ESP gewandelt.

Das habe ich sinngemäß so auch gemacht.

Zum GPIO0: Suche mal in diesem Forum nach diesem Begriff; so Mitte 
Februar hatte Bernd ebenfalls Probleme beim Flashen des ESP8266. 
Versuchsweise wurde auch GPIO2 über 10k an die 3,3 V des ESP-Moduls 
angeschlossen.

von Enrico F. (0xef)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen.

Ich fasse mich kurz:

 - die Änderung mit dem Pullup ist Klasse, seither habe ich keine 
Probleme mehr mit 'hängenden' LED's
 - Wenn ich auf SK6812 umschalte, bleibt die Matrix dunkel, mit WS2812 
zeigt sie die Farben falsch an (rot und grün vertauscht). Korrektur in 
ws2812.c in der Interruptroutine, welche die Timing werte in den DMA 
buffer schreibt.
 - Compilieren und Linux geht mittels angehängtem Makefile. Getestet auf 
Ubuntu 16.04LTS (arm-none-eabi-* pakete installieren) mit gcc-4.9.3 und 
auf gentoo mit dem Paket von launchpad (gcc-5.3.1).

Kompilat wurde auf meinem Setup getest und läuft. (in beiden Fällen)
( Gcc 5.3.1 braucht ca. 100 Byte weniger ;))

Es passt sogar die WC24h in den F103!

 - Das Makefile compiliert nur für den F103. Für die F4x1 ist zwar 
vieles vorbereitet, aber mangels Hardware ist die Motivation nicht da.

Falls es wer probiert und vom linker angemeckert wird, wchar_t hätte die 
falsche Breite: mal das -fshort_wchar im Makefile weglassen.

Im übrigen muss ich noch ein paar Files anlegen bzw. modifizieren, damit 
es baut.
(Man bekommt es nur in den Flash mit der newlib_nano, sonst zieht einem 
localtime() noch den double-support mit rein (ca. 30K extra!)
Die newlib_nano braucht eine Implementierung von _sbrk() für intern 
verwendetes malloc(). Diese schreibt das Makefile nach src/stubs/sbrk.c.
Außerdem fehlen in den Linkerscripts die ENTRY(Reset_Handler) Einträge, 
das läuft wohl implizit in der IDE (oder über -eb-startup).)
Gelöst wird dies durch erstellen weiterer Linkerscripts, welche den 
ENTRY deklarieren und die originalen Linkerscripte inkludieren.
Dann muss man noch die richtigen Optionen zusammensammeln, make 
beibringen, die Sourcefiles selbst zu finden und dann gehts auch ;)

@Frank:
Gcc mault einige fehlende Prototypen und nicht definierte Symbole an, 
baut es aber korrekt zusammen.
Wenn du willst schicke ich dir mal ein logfile vom bauen per PN (ich 
finde, das muss nicht hier ins Forum).


Fazit:
  - Ich hab viel (u.a.) über Makefiles, Linkerscripts, Newlib und 
implizite Schweinereien gelernt. (explizit ist besser!)
  - Ich habe WS2812 RGB und nicht GRB LED's
  - Die Wordclock und der support hier ist Klasse.
  - Mit (frischem) Nachwuchs hats SEHR wenig Bastelzeit
  - kurz fassen gelingt mir nicht immer...

0xef

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Enrico F. schrieb:

>  - die Änderung mit dem Pullup ist Klasse, seither habe ich keine
> Probleme mehr mit 'hängenden' LED's

Freut mich.

>  - Wenn ich auf SK6812 umschalte, bleibt die Matrix dunkel, mit WS2812
> zeigt sie die Farben falsch an (rot und grün vertauscht). Korrektur in
> ws2812.c in der Interruptroutine, welche die Timing werte in den DMA
> buffer schreibt.

Du hast also WS2812 mit RGB statt GRB... wo hast Du die her?

>  - Compilieren und Linux geht mittels angehängtem Makefile. Getestet auf
> Ubuntu 16.04LTS (arm-none-eabi-* pakete installieren) mit gcc-4.9.3 und
> auf gentoo mit dem Paket von launchpad (gcc-5.3.1).

Gefällt mir :-)

> Falls es wer probiert und vom linker angemeckert wird, wchar_t hätte die
> falsche Breite: mal das -fshort_wchar im Makefile weglassen.

Ich benutze kein wchar_t. Aber vielleicht kommt das aus den ST-Sources.

> Im übrigen muss ich noch ein paar Files anlegen bzw. modifizieren, damit
> es baut.
> (Man bekommt es nur in den Flash mit der newlib_nano, sonst zieht einem
> localtime() noch den double-support mit rein (ca. 30K extra!)

Was hat localtime() mit double zu tun?

> Gcc mault einige fehlende Prototypen und nicht definierte Symbole an,
> baut es aber korrekt zusammen.
> Wenn du willst schicke ich dir mal ein logfile vom bauen per PN (ich
> finde, das muss nicht hier ins Forum).

Ja, kannst Du mir gern schicken. Ich bekomme mit EM:Blocks keine 
derartigen Warnungen.

>   - Ich habe WS2812 RGB und nicht GRB LED's

Das höre ich zum ersten Mal, dass es sowas gibt. Wenn das noch jemandem 
passiert, könnte ich das im Web-Interface konfigurierbar machen.

von Martin M. (mastermind1)


Lesenswert?

Lasst dem Frank hier doch eine kleine Verschnaufpause :-) damit noch ein 
kleines Weihnachtsgeschenk in Form einer 2.3er Version + ESP Version 
drin ist.
Damit auch die Wordclock auf Weihnachten eingestimmt wird ;-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> Lasst dem Frank hier doch eine kleine Verschnaufpause :-)

Naja, oben ging es nur um die Übersetzung des Programms unter Linux, nix 
wildes. :-)

> damit noch ein
> kleines Weihnachtsgeschenk in Form einer 2.3er Version + ESP Version
> drin ist.

Die kommt noch diese Woche.

> Damit auch die Wordclock auf Weihnachten eingestimmt wird ;-)

Bei mir wird der Tannenbaum seit gestern abend auf der schnell 
zusammengebauten WC12h bereits regelmäßig eingeblendet. Sieht besser aus 
als ich dachte. :-)

von Enrico F. (0xef)


Lesenswert?

Frank M. schrieb:
> Du hast also WS2812 mit RGB statt GRB... wo hast Du die her?
Aliexpress

>> Falls es wer probiert und vom linker angemeckert wird, wchar_t hätte die
>> falsche Breite: mal das -fshort_wchar im Makefile weglassen.
> Ich benutze kein wchar_t. Aber vielleicht kommt das aus den ST-Sources.
Ich weiss. Ich vermute eher, dass es in der newlib_nano intern verwendet 
wird.
scheinbar haben sie da diese Flag verwendet und jetzt muss man es beim 
linken angeben, wenn man irgendeine routine benutzt, welche das intern 
vrwendet.
Da das aber intern ist, ist es vmtl. egal, aber Warnungen sollte man 
grundsätzlich ernst nehmen (außer man weiss genau was man tut).

> Was hat localtime() mit double zu tun?
Ich habe keine Ahnung! aber laut listfile zieht localtime ein 
localtime_r nach (die reentrante Version der newlib) und das wiederum 
zieht dann die double-bibliothek nach (schön zu erkennen an den lustgen 
prefixen).
Ich hab jetzt leider kein solches listfile mehr, aber wenn es dich 
interessiert lässt sich das wieder erzeugen (die newlib hacks im 
Makefile auskommentieren sollte schon reichen).

> Ja, kannst Du mir gern schicken. Ich bekomme mit EM:Blocks keine
> derartigen Warnungen.
kommt gleich.

>>   - Ich habe WS2812 RGB und nicht GRB LED's
> Das höre ich zum ersten Mal, dass es sowas gibt. Wenn das noch jemandem
> passiert, könnte ich das im Web-Interface konfigurierbar machen.
Mir würde als option in display-config reichen. so oft wechselt man ja 
die Einstellung nicht.

0xef

von Jan R. (pinguin895)


Lesenswert?

Hey Zusammen!

Ich habe mir vorgenommen als Weihnachtsgeschenk eine 24h-Wordclock zu 
bauen.

Ich benutze dafür das Nucleo Board incl. Shield und wollte alles 
hinzufügen abgesehen von dem IR-Empfänger und dem DCF77-Empfänger.

Inzwischen sind fast alle Teile (außer dem ESP8266 WLAN-Modul) 
angekommmen und ich habe nach Anleitung alles auf das Shield gelötet. 
(Das Nucleo Board habe ich übrigens auch bei Reichelt bestellt, da es 
genau so teuer war, wie bei AliExpress, ich durch die restlichen Teile 
sowieso Versandkosten zahlen musste und es dadurch einfach deutlich 
schneller da war... die Möglichkeit könnte man ja evtl in den Artikel 
mit aufnehmen...)

Das flashen des Boardes hat funktioniert, das WLAN-Modul konnte ich 
natürlich noch nicht flashen, da es noch unterwegs ist... Beim 
einschalten hat man auch sofort etwas gesehen und in PuTTY habe ich auch 
die ersten log-Ausgaben gesehen. Mir ist nur aufgefallen, dass die 
Uhrzeit sich nicht gewechselt hat, sondern immer nur die Uhrzeit beim 
Einschalten gezeigt hat, aber das habe ich erst einmal auf das fehlende 
WLAN-Modul geschoben.

Daraufhin habe ich den ST-Link Teil des Nucleos abgesägt um während der 
Wartezeit auf das WLAN Modul mit dem Rahmen etc. weitermachen zu können. 
Ab diesem Zeitpunkt hat aber leider nichts mehr funktioniert. Ich hatte 
erwartet, dass wenigstens die Uhr an sich noch funktioniert, aber beim 
Einschalten gehen manchmal (nicht immer!) alle LEDs kurz an aber dann 
sofort wieder aus und das wars. Es wird nichts weiteres mehr angezeigt.

Ich habe dann versucht den ST-Link wieder zu verbinden, indem ich die 
Anschlüsse auf dem Shield nutze, aber in PuTTY werden nur unlesbare 
Zeichen angezeigt.

Ich habe die in dem Bild 
https://www.mikrocontroller.net/articles/Datei:Ns-stl1a.JPG genannte 
Brücken hergestellt, ich habe die anderen Verbindungen aus dem Bild 
(Ground, TCK und TMS) hergestellt, ich habe hier 
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#STM32F401RE_Nucleo_und_STM32F411RE_Nucleo 
genannten Brücken hergestellt bzw. entfernt, aber nichts hat 
funktioniert.

Da ich eine C03 Revision von dem Nucleo Board habe, habe ich die beiden 
Kondensatoren und den Quarz aktuell NICHT eingelötet, da ich sie nicht 
mitbestellt habe. Ist dies evtl. das Problem? Wenn ja, kann ich den 
Quarz aus dem ST-Link nehmen, oder funktioniert dieser dann nicht mehr?
Wenn das nicht die Lösung sein würde, hatte jemand schon einmal ein 
ähnliches Problem?

Viele Grüße und vielen Dank im Voraus
Jan

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> Da ich eine C03 Revision von dem Nucleo Board habe, habe ich die beiden
> Kondensatoren und den Quarz aktuell NICHT eingelötet, da ich sie nicht
> mitbestellt habe. Ist dies evtl. das Problem?

Bei der C03 kommt der Takt vom ST-Link. Spätestens, wenn Du ihn abgesägt 
hast, brauchst Du den Quarz und die beiden Kerkos. Steht aber auch schon 
seit Anfang an so im Artikel:

"Es empfiehlt sich jedoch, diese Änderungen auch mit dem Board der 
Revision "MB1136 C02" bzw. C03 durchzuführen, da wir später für die 
endgültige Uhr den ST-Link-Teil der Platine absägen werden."

: Bearbeitet durch Moderator
von Jens L. (geo_poldi)


Lesenswert?

Günter H. schrieb:
> Jens L. schrieb:
>> Sind beim Shield die 3,3V vom ESP mit 3,3V vom STM32 verbunden? Im
>> Schaltplan des Shields kann ich da keinen Unterschied feststellen.
>
> Beim STM32-Shield V1 und bei "meinem" Shield sind 3,3 V für das
> ESP8266-Modul und die 3,3 V vom STM32 (natürlich) getrennt, die Massen
> logischerweise verbunden.
>
>> Ich habe die Strips und das STM32 mit den 5V versorgt und mittels
>> AMS1117 diese in 3,3V für das ESP gewandelt.
>
> Das habe ich sinngemäß so auch gemacht.
>
> Zum GPIO0: Suche mal in diesem Forum nach diesem Begriff; so Mitte
> Februar hatte Bernd ebenfalls Probleme beim Flashen des ESP8266.
> Versuchsweise wurde auch GPIO2 über 10k an die 3,3 V des ESP-Moduls
> angeschlossen.

Hallo Günther,

vielen Dank für den Tipp. Ich hatte "erst" ab Mitte Seite 2 hier gelesen 
(was aber auch mehr als 2h waren).

Da die Uhr erstmal im Wohnzimmer hängt werde ich noch bis zum Wochenende 
warten und dann mal ausprobieren den Pin mit Pullup auszustatten.
Denn in unregelmäßigen Abständen läuft bei mir wieder die IP durch und 
das ESP wechselt in den AP-Modus. Irgendwas stimmt da noch nicht...

von Klaus H. (khilei)


Lesenswert?

Hallo miteinander!
Ich hab gerade meine wc24h auseinandergenommen, nachdem sie 3 Monate 
ohne
irgendwelche probleme durchgelaufen ist. Seit letzten Samstag zeigt sie 
in den oberen fünf Zeilen den Text richtig an, ab Zeile sechs wechseln 
die Buchstaben und die Farben nach belieben. Ich frage mich ob mir da 
der Pullup- widerstand den Frank erwähnt helfen könnte? Wenn ja wo löte 
ich ihn ein. Einen Anschluß an 5V ist klar, den anderen an Din der 
Stripes, aber wo vor oder nach R6 (220 Ohm). Version 2.2.4 habe ich 
bereits geflasht. Kann mir da wer weiterhelfen?
Bin in der Zwischenzeit etwas weiter, habe beim Displaytest 
festgestellt, das zumindest eine Led einen Defekt hat. Mache morgen 
weiter. Gibt es eine bevorzugte Seite, wo ich ein Video vom Displaytest 
hochladen kann? Das wars für heute, jetzt kommt meine Familie dran!

: Bearbeitet durch User
von Enrico F. (0xef)


Lesenswert?

Klaus H. schrieb:
> Einen Anschluß an 5V ist klar, den anderen an Din der
> Stripes, aber wo vor oder nach R6 (220 Ohm).

Hallo Klaus,

ich hab den Pullup 4K7 zwischen R6 und den WS2812 angeschlossen.
Funzt einwandfrei. Vmtl. macht es auch keinen großen Unterschied.

0xef

von Jan R. (pinguin895)


Lesenswert?

Frank M. schrieb:
>
> Bei der C03 kommt der Takt vom ST-Link. Spätestens, wenn Du ihn abgesägt
> hast, brauchst Du den Quarz und die beiden Kerkos. Steht aber auch schon
> seit Anfang an so im Artikel:
>
> "Es empfiehlt sich jedoch, diese Änderungen auch mit dem Board der
> Revision "MB1136 C02" bzw. C03 durchzuführen, da wir später für die
> endgültige Uhr den ST-Link-Teil der Platine absägen werden."

Hallo Frank,

Ja, wer lesen kann ist klar im Vorteil, sorry!

Ich habe die beiden Kondensatoren und den Quarz jetzt eingelötet, aber 
leider funktioniert es immer noch nicht... weder die Uhr an sich, noch 
der ST-Link.

Ich habe nachgemsessen, dass die Lötbrücken wirklich entfernt bzw. 
hinzugefügt sind. Ob die Kondensatoren und der Quarz funktionieren kann 
ich aber glaube ich mit meinem Equipment nicht prüfen. Zumindest wüsste 
ich nicht wie...

Hast du irgendwelche anderen Ideen woran das Problem liegen könnte?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> Ich habe die beiden Kondensatoren und den Quarz jetzt eingelötet, aber
> leider funktioniert es immer noch nicht...

Mach mal bitte ein Foto von der Vorder- und Rückseite.

von Jan R. (pinguin895)


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
> Mach mal bitte ein Foto von der Vorder- und Rückseite.

Klar, gerne!

Da die Beinchen von dem Quarz nicht in die Löcher gepasst haben, habe 
ich den auf der Rückseite angebracht, damit ich damit nicht das Shield 
berühre.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> Da die Beinchen von dem Quarz nicht in die Löcher gepasst haben,

Komisch, die Beinchen hätten eigentlich perfekt durch die Löcher passen 
müssen. Ich habe da schon mehrere Nucleos genau so umgebaut.

Was ist das denn für ein Lötzinn-Knubbel an der Unterseite des Quarz? 
Hast Du da ein Beinchen verlängert? Ist nun etwa das Gehäuse mit dem 
Beinchen verbunden? Normalerweise ist mindestens ein Bein vom Gehäuse 
isoliert.

Ich würde auch an Deiner Stelle die von Dir unterbrochenen Lötbrücken 
mit einem Multimeter (Ohm) nachmessen, ob da wirklich die Verbindung 
unterbrochen ist. Kann man nicht so genau auf dem Foto erkennen.

Was ist denn da mit SB61 passiert?

von Jan R. (pinguin895)


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
> Jan R. schrieb:
>> Da die Beinchen von dem Quarz nicht in die Löcher gepasst haben,
>
> Komisch, die Beinchen hätten eigentlich perfekt durch die Löcher passen
> müssen. Ich habe da schon mehrere Nucleos genau so umgebaut.

Da der Quarz nicht mit in dem Reichelt Einkaufswagen war und ich ja 
bekannter maßen den Teil überlesen habe, habe ich den Quarz gestern in 
einem Conrad Laden bei mir in der Nähe gekauft. Die Beinchen waren aber 
zu breit...

> Was ist das denn für ein Lötzinn-Knubbel an der Unterseite des Quarz?
> Hast Du da ein Beinchen verlängert? Ist nun etwa das Gehäuse mit dem
> Beinchen verbunden? Normalerweise ist mindestens ein Bein vom Gehäuse
> isoliert.

Da die Beinchen nicht nur zu breit waren, sondern auch noch nach innen 
gebogen, musste ich sie zuerst auseinander biegen. Dabei ist eins 
abgebrochen, sodass ich jeweils an der Stellen einen eigenen Draht 
angelötet habe. Beim rumbasteln ist das andere dann auch noch 
abgebrochen, sodass das jetzt auch ein neues Beinchen hat. Kontakt zum 
Gehäuse hat aber keins von beiden. Kabe ich auch mit einem Multimeter 
nachgemessen.

> Ich würde auch an Deiner Stelle die von Dir unterbrochenen Lötbrücken
> mit einem Multimeter (Ohm) nachmessen, ob da wirklich die Verbindung
> unterbrochen ist. Kann man nicht so genau auf dem Foto erkennen.

Habe ich! An den Stellen, an denen keine Verbindung bestehen soll ist 
keine und dort wo eine sein soll ist auch eine.

> Was ist denn da mit SB61 passiert?

Warum da auf einer Seite Lötzinn ist und auf der anderen nicht weiß ich 
gerade nicht genau. Jedenfalls haben die beiden Seiten untereinander 
keinen Kontakt, SB61 zu SB63 auf beiden Seiten auch nicht, genau so 
wenig, wie der Linke SB61 zu SB62. Lediglich der rechte SB61 Teil hat 
mit SB62 Kontakt, wobei das laut den feinen Linien auf der Platine auch 
gewollt aussieht.

von Tim (Gast)


Lesenswert?

Hallo zusammen,

ich habe das STM32F103C8T6 mittels ST-Link v2 und dem St-Link Utility 
geflashed (an 0x08000000).

Übers serielle Interface bekomme ich nur die folgende Ausgabe:

power_init() called
switching power on

und dann passiert nichts mehr. Außer ich drücke den Reset-Button, dann 
komm wieder die obige Nachricht.

Eigentlich wollte ich die ESP-Firmware flashen (ohne das Putty läuft), 
aber das Gerät wird nicht erkannt (trotz Reset-Knopf halten, Taster 
brücken, Reset lösen und nach 2 Sekunden Taster lösen.

Hat jemand eine Idee woran es liegen könnte?

Danke und Grüße
Tim

von Thomas B. (dnw)


Lesenswert?

Hallo Zusammen,

kurze Rückmeldung für alle Interessierten zum Thema Soundmodul.
Hier nochmal meine beiden Posts mit Datenblatt und Ideen zu diesem 
Thema: Beitrag "Re: WordClock mit WS2812"
Beitrag "Re: WordClock mit WS2812"

Die Boards sind mittlerweile bei mir angekommen und ich konnte sie auch 
schon kurz testen.
Als Lautsprecher hab ich die LSM‑S30K verwendet. 
(https://www.conrad.de/de/miniaturlautsprecher-lsm-sk-serie-geraeusch-entwicklung-83-db-8-nennbelastbarkeit-2000-mw-350-hz-inhalt-1-st-335410.html)

Die Klangqualität und Lautstärke ist über den Verstärkerausgang (wohl 
ein LM386-Klon) zur Wiedergabe von Sprache oder sonstiger Soundeffekte 
und evtl. kleiner Musikstücke definitiv mehr als ausreichend. (Kommt 
halt auch stark auf die Einbausituation des/der Lautsprecher(s) an.)

Die Steuerung über die Schalteingänge funktioniert einwandfrei.
Die serielle Schnittstelle konnte ich leider, mangels 
Programmierkenntnisse, nicht testen.


@Frank:
Leider ist von den 5 Boards nur eins voll funktionsfähig. (Eins ist 
komplett tot und bei den anderen 3 funktioniert der Lautsprecherausgang 
nicht, aber der Kopfhörerausgang ist i.O.. Naja dafür warn sie fast 
umsonst. )
Wenn Du nichts dagegen hast, würde ich Dir einfach eins der 3 Boards 
zukommen lassen, wenn Du mir eine kurze Mail oder PN mit Deiner 
Anschrift schickst. (An den KH-Ausgang lässt sich zur Not auch ein 
kleiner Lautsprecher, PC-Speaker o. Ä. anschließen)

Die einzelnen MP3's, zum Testen einer Uhrzeitansage könnte ich am 
Wochenende mal schnell zusammenstellen und dir per Mail zuschicken. Oder 
Du schaust Dir das Teil so erst mal an...

PS: Das Modul hätte gem. Datenblatt auch eine USB-Schnittstelle... Evtl. 
wär es ja auch eine Möglichkeit, auf der SD-Karte später mal 
benutzderdefinierbare Pictogramme abzulegen? (Nur so eine Idee...)

Gruß
Tom

von Thomas B. (dnw)


Lesenswert?

Hallo Jan,

schau dir doch auch mal die Trennstellen zum ST-Link an, evtl. hat sich 
da beim Absägen ein Kurzschluss zwischen den durchtrennten Leiterbahnen 
eingeschlichen. Einfach nochmal mit einem scharfen Messer die 
Trennstelle nachschneiden, so dass das Kupfer nicht "verschmiert".

Gruß Tom

von Jan R. (pinguin895)


Lesenswert?

Thomas B. schrieb:
> Hallo Jan,
>
> schau dir doch auch mal die Trennstellen zum ST-Link an, evtl. hat sich
> da beim Absägen ein Kurzschluss zwischen den durchtrennten Leiterbahnen
> eingeschlichen. Einfach nochmal mit einem scharfen Messer die
> Trennstelle nachschneiden, so dass das Kupfer nicht "verschmiert".
>
> Gruß Tom

Hallo Tom,
habe ich gerade ausprobiert, hat aber leider nichts gebracht...

Dennoch danke für eine Hilfe!
Jan

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> habe ich gerade ausprobiert, hat aber leider nichts gebracht...

Nach dem Foto hast Du den Jumper für die Spannungsversorgung auf E5V - 
also auf externe Spannungsversorgung. Das ist auch richtig so. Aber hast 
Du an Pin E5V (dritter Pin von oben in der linken Steckerleiste rechts) 
auch die externe Spannungsversorgung angeschlossen?

von Jan R. (pinguin895)


Lesenswert?

Frank M. schrieb:
>
> Nach dem Foto hast Du den Jumper für die Spannungsversorgung auf E5V -
> also auf externe Spannungsversorgung. Das ist auch richtig so. Aber hast
> Du an Pin E5V (dritter Pin von oben in der linken Steckerleiste rechts)
> auch die externe Spannungsversorgung angeschlossen?

Ja, das Shield von Torsten verbindet den Pin mit der Stromversorgung. 
Habe ich gerade aber auch noch einmal nachgemessen um sicherzugehen. Der 
Pin direkt darunter ist mit Ground verbunden!

von Tim (Gast)


Lesenswert?

Tim schrieb:
> Hallo zusammen,
>
> ich habe das STM32F103C8T6 mittels ST-Link v2 und dem St-Link Utility
> geflashed (an 0x08000000).
>
> Übers serielle Interface bekomme ich nur die folgende Ausgabe:
>
> power_init() called
> switching power on
>
> und dann passiert nichts mehr. Außer ich drücke den Reset-Button, dann
> komm wieder die obige Nachricht.

Kann mir eventuell jemand einen kompletten Dump des Speichers zukommen 
lassen? Hab das Gefühl, dass der ROM dieses China-Imports nicht 
ordentlich geflashed ist...

von Günter H. (gnter_h534)


Lesenswert?

Frank M. schrieb:
> Jan R. schrieb:
>> habe ich gerade ausprobiert, hat aber leider nichts gebracht...

Hallo Jan,

nach der Vorgeschichte könnte ein (inzwischen) defekter Quarz eine 
Fehlerursache sein.

Bevor Du einen neuen Quarz besorgst: Ich habe kein Nucleo-Board zuhause, 
aber anhand der Gerber-Daten ist das Rastermaß für den Quarz 5,08 mm. 
Die in Frage kommenden Quarze bei C* haben einen Abstand der Drähte von 
4,88 mm – müssten also, wie Frank auch schon erwähnt hat, problemlos 
passen. Messe also bitte den Abstand bei deinem Nucleo-Board nach.

Z. Z. hast Du den Quarz auf der „Rückseite“ des Nucleo-Boards 
eingelötet. Prüfe bei einer eventuellen Neubestückung des Quarzes, ob 
die Bauhöhe des Shields mit "Aufbauten" in den von Dir vorgesehenen 
Rahmen passt.

Und falls Du keine Entlötlitze zuhause hast, besorge Dir für Umbau 
welche, um die Löcher der Lötstellen frei zu bekommen.

Viel Erfolg
Günter

: Bearbeitet durch User
von Jan R. (pinguin895)


Lesenswert?

Günter H. schrieb:
> Hallo Jan,
>
> nach der Vorgeschichte könnte ein (inzwischen) defekter Quarz eine
> Fehlerursache sein.

Hallo Günter,
ja das kann natürlich gut sein. Gibt es eine Möglichkeit das ohne ein 
Oszilloskop (welches ich nicht habe) nachzumessen?
>
> Bevor Du einen neuen Quarz besorgst: Ich habe kein Nucleo-Board zuhause,
> aber anhand der Gerber-Daten ist das Rastermaß für den Quarz 5,08 mm.
> Die in Frage kommenden Quarze bei C* haben einen Abstand der Drähte von
> 4,88 mm – müssten also, wie Frank auch schon erwähnt hat, problemlos
> passen. Messe also bitte den Abstand bei deinem Nucleo-Board nach.

Das Problem ist nicht der Abstand zwischen den Drähten. Das passt ganz 
gut. Das Problem ist die Dicke der Drähte an sich. Deren Breite (die 
waren nicht rund, sondern Oval-ähnlich) hat nicht durch die Löcher 
gepasst.
Aktuell habe ich diesen Quarz:
https://www.conrad.de/de/quarzkristall-445128-hc-49us-smd-8000-mhz-10-pf-115-mm-475-mm-42-mm-445128.html

> Z. Z. hast Du den Quarz auf der „Rückseite“ des Nucleo-Boards
> eingelötet. Prüfe bei einer eventuellen Neubestückung des Quarzes, ob
> die Bauhöhe des Shields mit "Aufbauten" in den von Dir vorgesehenen
> Rahmen passt.

Guter Hinweis! Wobei ich wenn ich einen neuen (passenden) Quarz besorge 
den dann sowieso an die dafür vorgesehende Stelle packen würde.

Dir auch danke für deine Hilfe!
Jan

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> Aktuell habe ich diesen Quarz:

Igitt, der hat tatsächlich eckige Beinchen, damit man ihn für SMD 
einsetzen kann, indem man die Beinchen zur Seite biegt. Kein Wunder, 
dass die bei Dir abgebrochen sind.

Korrekt wäre bei Reichelt der mit der Artikelnr. 8,0000-HC49U-S.
Bei Conrad der mit der Bestellnr. 156453 - 62.

Bei dem Reichelt-Quarz beträgt die Lastkapazität lt. Datenblatt 10 pF 
bis 32 pF, bei dem Conrad-Teil 18 pF. Der Reichelt-Quarz läuft mit den 
22pF-Kerkos garantiert. Genau den setze ich selbst ein. Das Conrad-Teil 
ist mit 18pF auch recht nahe dran an den 22pF-Kerkos.

Dein Quarz hat eine ziemlich niedrige Lastkapazität von 10pF. Keine 
Ahnung, ob der mit den 22pF-Kerkos überhaupt laufen würde. Dazu weiß ich 
zuwenig über Quarz-Lastkapazitäten.

EDIT:

Nach https://www.mikrocontroller.net/articles/Quarze_und_AVR berechnen 
sich die Kapazitäten für die beiden Kerkos wie folgt:

C = 2·CL – (CP+CI)

    CP: Leiterbahnen bedingte Kapazität
    CI: Portbedingte Kapazität
    CL: Datenblatt des Quarzes
    CP+CI ca. 5pF

wobeil gilt C = C1 = C2.

Bei dem obigen Conrad-Quarz ergibt sich: C = 2 x 18 pF - 5pF = 31pF. Der 
sollte mit den beiden 22pF-Kerkos prima laufen. Gröere Abweichungen 
ergeben minimale Frequenzunterschiede, die nicht von Belang sind.

Also von daher sollten eigentlich alle 3 Varianten (Reichelt, Conrad 
rund und Conrad eckig) laufen.

Ich nehme mal an, dass Dein Quarz (mit den eckigen Beinchen) 
mittlerweile durch die "Reparatur" (runde Beinchen anlöten) defekt ist.

: Bearbeitet durch Moderator
von Enrico F. (0xef)


Lesenswert?

Tim schrieb:
> Kann mir eventuell jemand einen kompletten Dump des Speichers zukommen
> lassen? Hab das Gefühl, dass der ROM dieses China-Imports nicht
> ordentlich geflashed ist...
Hallo Tim,

Ich hab mal die aktuelle Version aus dem SVN gebaut, geflasht und wieder 
gedumpt. alles ist hier zu finden:
https://drive.google.com/open?id=0B4V4EIg85NURWlR1aXpUalczRms

Die gebaute Version als wc12h_f1.bin und als wc12h_f1.hex, die gedumpte 
nur als dump.bin.

Ohne angeschlossene Hardware kommt bei mir über den DEBUG-UART 
folgendes:
1
power_init() called
2
switching power on
3
4
Welcome to WordClock Logger!
5
----------------------------
6
Version: 2.2.4
7
rtc is offline
8
ws2812: no external pullup detected
9
eeprom is offline
10
ESP8266 LOGGER

Danach hängt es ein weilchen (sucht den ESP, der ja fehlt).

Ich hoffe, das hilft dir weiter.


0xef

PS.: Da liegen auch noch ein wc12h_f1.list und ein wc12h_f1.map file, 
damit man weiss, was im .bin wo liegt.

: Bearbeitet durch User
von Tim (Gast)


Lesenswert?

Enrico F. schrieb:
> Ich hoffe, das hilft dir weiter.

Vielen Dank! Leider funktioniert es irgendwie noch immer nicht.
Ich erhalte weiterhin nur ein
1
power_init() called
2
switching power on

Wenn ich das DCF Modul weglasse, bekomme ich sogar noch einen 
[/code]DCF77 Error: High pulse >= 25 [/code]. Anscheinend ist die 
Firmware wohl doch richtig angekommen, Checksumme passt auch.

Nur leider erscheint bei mir einfach nicht
1
 Welcome to WordClock Logger!
, sondern es passiert einfach gar nichts mehr (bzw. weitere DCF 
Meldungen).

Hat jemand eine Idee woran es liegen könnte?

Vielen Dank und Grüße
Tim

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Tim schrieb:
> Ich erhalte weiterhin nur ein
> power_init() called
> switching power on
> Wenn ich das DCF Modul weglasse, bekomme ich sogar noch einen
> [/code]DCF77 Error: High pulse >= 25 [/code]. Anscheinend ist die
> Firmware wohl doch richtig angekommen, Checksumme passt auch.
>
> Nur leider erscheint bei mir einfach nicht Welcome to WordClock Logger!
> , sondern es passiert einfach gar nichts mehr (bzw. weitere DCF
> Meldungen).

Das ist ziemlich merkwürdig. Zwischen Power-On und der Welcome-Meldung 
werden folgende Funktionen aufgerufen:
1
    power_init ();                                                          // initialize power port pin
2
    power_on ();                                                            // switch power on
3
    timer2_init ();                                                         // initialize timer2 for IRMP, DCF77, EEPROM etc.
4
    delay_init (DELAY_RESOLUTION_1_US);                                     // initialize delay functions with granularity of 1 us
5
    board_led_init ();                                                      // initialize GPIO for green LED on disco or nucleo board
6
    button_init ();                                                         // initialize GPIO for user button on disco or nucleo board
7
    rtc_init ();                                                            // initialize I2C RTC
8
    eeprom_init ();                                                         // initialize I2C EEPROM
9
10
    if (button_pressed ())                                                  // set ESP8266 into flash mode
11
    {
12
        board_led_on ();
13
        esp8266_flash ();
14
    }
15
16
    log_message ("\r\nWelcome to WordClock Logger!");

Die DCF-Routinen kommen aber erst viel später.

Mit welchem Tool auf dem PC protokollierst Du den Output des UARTs?

von Tim (Gast)


Lesenswert?

Frank M. schrieb:
> Mit welchem Tool auf dem PC protokollierst Du den Output des UARTs?

Mit Putty, 115200 8N1.

Welche LEDs müssten denn leuchten? Eine? Beide?

von Werner A. (homebrew)


Lesenswert?

Frank M. schrieb:
> if (button_pressed ())
> // set ESP8266 into flash mode
>     {
>         board_led_on ();
>         esp8266_flash ();
>     }
>
>     log_message ("\r\nWelcome to WordClock Logger!");

Kann es sein, dass dein Eingang "button_pressed" kurzgeschlossen ist?

von Tim (Gast)


Lesenswert?

> Kann es sein, dass dein Eingang "button_pressed" kurzgeschlossen ist?

Nein ist er leider nicht. Ich hab die Sources mal um etwas Debug-Code 
erweitert und er kommt nicht über den Aufruf von delay_init hinaus.
1
    log_message ("Power init");
2
    power_init ();                                                          // initialize power port pin
3
     log_message ("Power on");
4
    power_on ();                                                            // switch power on
5
     log_message ("timer2 init");
6
    timer2_init ();                                                         // initialize timer2 for IRMP, DCF77, EEPROM etc.
7
     log_message ("delay init");
8
    delay_init (DELAY_RESOLUTION_1_US);                                     // initialize delay functions with granularity of 1 us
9
     log_message ("boardled init");

ergibt bei mir die Ausgaben:
1
Power on
2
switching power on
3
timer2 init
4
delay init
5
DCF77 Error: High pulse <= 5
6
DCF77 Error: High pulse <= 5
7
DCF77 Error: High pulse <= 5
8
DCF77 Error: High pulse <= 5
9
DCF77 Error: High pulse <= 5
10
DCF77 Error: High pulse <= 5

von Tim M. (timmmey)


Lesenswert?

Es folgt natürlich noch ein
1
  log_message ("boardled init");
2
    board_led_init ();
Sonst könnte er ja auch schon weiter sein...

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Tim schrieb:
> Nein ist er leider nicht. Ich hab die Sources mal um etwas Debug-Code
> erweitert und er kommt nicht über den Aufruf von delay_init hinaus.

delay_init() ruft SysTick_Config() auf, um den STM32-Ticker-Timer zu 
konfigurieren. Wenn, dann hängt der µC dort, denn sonst werden lediglich 
Variablen gesetzt.

Aber warum? Du wärest hier der erste, dem so etwas passiert. Okay, einen 
Fall habe über Google gefunden. Das µC hängt nach SysTick_Config(), wenn 
man vergisst, SysTick_Handler() auch zu definieren. Der ist aber in 
delay.c definiert, wenn Du daran nichts geändert hast.

> DCF77 Error: High pulse <= 5

Stimmt, die DCF-Routinen werden seit der letzten WC-Version direkt aus 
dem Timer-Interrupt aufgerufen, daher ist die DCF77-Ausgabe möglich, 
obwohl er in delay_init() hängt.

Fragen:

a) Tritt der Fehler auch bei Einspielen der fertigen HEX-Datei auf?
b) Hast Du an den Sources sonst noch etwas geändert?

: Bearbeitet durch Moderator
von Tim M. (timmmey)


Lesenswert?

Hi,

ja leider tritt der Fehler auch bei der fertigen Hex-File auf.

Wenn ich den DelayInit auskommentiere läuft alles soweit durch. Das 
Flashen des esp8266 funktioniert so aber leider auch nicht.
1
Power init
2
power_init() called
3
Power on
4
switching power on
5
timer2 init
6
delay init
7
boardled init
8
button init
9
rtc init
10
eeprom init
11
button pressed?
12
13
Welcome to WordClock Logger!
14
----------------------------
15
Version: 2.2.4
16
rtc is online
17
ws2812: external pullup detected
18
eeprom is online
19
current eeprom version: 0x00020200

Hier noch n paar Infos zu meinem Board
1
12:14:23 : ST-LINK SN : 54FF6E064984485644341087
2
12:14:23 : ST-LINK Firmware version : V2J27S6
3
12:14:23 : Connected via SWD.
4
12:14:23 : SWD Frequency = 4,0 MHz.
5
12:14:23 : Connection mode : Connect Under Reset.
6
12:14:23 : Debug in Low Power mode enabled.
7
12:14:23 : Device ID:0x410 
8
12:14:23 : Device flash Size : 64KBytes
9
12:14:23 : Device family :STM32F10xx Medium-density

von Tim M. (timmmey)


Lesenswert?

Hallo Frank,

also mit DELAY_RESOLUTION_10_US bootet er durch, jedoch nicht mit 
DELAY_RESOLUTION_1_US. Den ESP8266 konnte ich mittlerweile dank des 
gerade angekommenen USB-mod-prog Flasher mit der Firmware versehen.
Somit sieht der Log nun
1
power_init() called
2
switching power on
3
4
Welcome to WordClock Logger!
5
----------------------------
6
Version: 2.2.4
7
rtc is online
8
ws2812: external pullup detected
9
eeprom is online
10
current eeprom version: 0x00020200
11
ESP8266 LOGGER
12
read rtc: Sa 2000-01-07 01:46:01

Ich kann mich auch mit dem AI-THINKER-AP verbinden, jedoch zeigt die 
WebGui z.B. EEPROM  offline, Temperatur und Lichtsensor sollen auch 
nicht vorhanden sein, obwohl Sie es sind. Ich tippe die Kommunikation 
zwischen den beiden Boards klappt mit dem geänderten Delay nicht? 
Außerdem leuchtet nur Led die erste Led (M1) der WS2812 Stripes weiß, 
der Rest ist aus.

Kann ich das Device irgendwie sinnvoll debuggen oder so? Ich hab langsam 
keine Ideen mehr..

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Tim M. schrieb:
> also mit DELAY_RESOLUTION_10_US bootet er durch, jedoch nicht mit
> DELAY_RESOLUTION_1_US.

Irgendwas stimmt da nicht mit Deinem Board. Okay, mit 
DELAY_RESOLUTION_10_US sollte prinzipiell auch alles laufen. Delays 
werden dann halt mit einer geringeren Auflösung durchgeführt. Diese 
Genauigkeit wird aber nur bei der 1Wire-Kommunikation mit dem 
Temperatursensor DS18xxx benötigt. Da könnte es dann zu Timingproblemen 
konnen, wenn Du einen anschließt.

> Ich kann mich auch mit dem AI-THINKER-AP verbinden, jedoch zeigt die
> WebGui z.B. EEPROM  offline, Temperatur und Lichtsensor sollen auch
> nicht vorhanden sein, obwohl Sie es sind. Ich tippe die Kommunikation
> zwischen den beiden Boards klappt mit dem geänderten Delay nicht?

Glaube ich nicht, weder die I2C- als auch die RTC- und EEPROM-Routinen 
verwenden Delays. Ich gehe mit Delays wirklich sehr sparsam um. 
Normalerweise benutze ich für solche Sachen einen Timer. In onewire.c 
brauche ich aber eine gute Auflösung für den DS18xxx, daher findest Du 
dort Delays. Aber das wars auch schon.

> Außerdem leuchtet nur Led die erste Led (M1) der WS2812 Stripes weiß,
> der Rest ist aus.

Wie ich schon sagte: Mit Deinem Board stimmt was nicht. Ich kann Dir 
gern ein fertig geflashtes Mini-Board zuschicken, ich habe genug von den 
Dingern rumliegen.

> Kann ich das Device irgendwie sinnvoll debuggen oder so? Ich hab langsam
> keine Ideen mehr..

Zum Debuggen des kompletten Programms hat der STM32F103C8T6 leider 
zuwenig Flash. Aber ich weiß durchaus, was ich im Source deaktivieren 
muss, damit das Debuggen klappt.
Du könntest mir das Ding als Gegenleistung schicken. Aber ich werde da 
nicht viel Energie reinstecken, da Dein Board offenbar ein Einzelfall 
und damit höchstwahrscheinlich defekt ist.

Meld Dich einfach per PM. Dann schicke ich Dir ein fertig geflashtes 
Modul.

von Tim (Gast)


Lesenswert?

Danke Frank. Morgen sollte mein neues Board ankommen. Falls es dann noch 
immer nicht geht, komme ich gerne darauf zurück!

von Martin M. (mastermind1)


Lesenswert?

@Tim

für mich hört sich dein Problem an, wie wenn dein ESP nicht richtig 
geflasht wird.

Ich hatte ähnliche Probleme.

Da ich noch mehr mit den ESP8266 machen möchte, habe ich mir so ein ESP 
Flasher mit integriertem Knöpfchen gekauft.

Ebay aus Deutschland 7 - 8€ (aus China mit Lieferzeit 2€)
http://www.ebay.de/itm/ESP8266-ESP-01-Flasher-mod-prog-USB-Programmer-Uploader-fur-Arduino-IDE-IoT-/282244337731?hash=item41b712d043:g:-VQAAOSwayZXjRVS

Ich hab den ESP dann damit geflasht und schon läufts :-)

von Jan R. (pinguin895)


Lesenswert?

Frank M. schrieb:
> Ich nehme mal an, dass Dein Quarz (mit den eckigen Beinchen)
> mittlerweile durch die "Reparatur" (runde Beinchen anlöten) defekt ist.

Hallo zusammen,

Ich habe mir inzwischen einen neuen Quarz besorgt. Leider funktioniert 
das System aber immernoch nicht.

Wenn ich die Stromversorgung anstecken leuchten die LEDs ganz kurz auf 
und das wars. Danach passiert nichts mehr.

Interessant ist, dass wenn ich die Stromversorgung trenne und sofort 
wieder herstelle, bleiben die LEDs dunkel. Wenn ich aber vor dem 
wiederherstellen einige Sekunden warte, leuchten sie wieder kurz auf.

von Enrico F. (0xef)


Lesenswert?

Frank M. schrieb:
> Zum Debuggen des kompletten Programms hat der STM32F103C8T6 leider
> zuwenig Flash.
Hallo Frank,

Wenn ich versuche eine Debug version (-DDEBUG -g3) zu bauen, passt es 
nur mit -O0 nicht in den Flash vom Mini-Board.
Mit -O1 oder -Os geht es gerade noch so bzw. etwas komfortabler rein.
Übersehe ich was, oder klappt das debuggen nur mit -O0?

0xef

von Günter H. (gnter_h534)


Lesenswert?

Jan R. schrieb:
> Ich habe mir inzwischen einen neuen Quarz besorgt. Leider funktioniert
> das System aber immernoch nicht.
>
> Wenn ich die Stromversorgung anstecken leuchten die LEDs ganz kurz auf
> und das wars. Danach passiert nichts mehr.

Ich nehme an, mit den "LEDs" sind die WS2812B-LEDs gemeint.

Ist denn inzwischen das ESP8266-Modul angekommen und eingebaut?

Wenn ich bei meiner WordClock (WC12h, STM32-Mini-Dev.-Board) im 
stromlosen Zustand das WLAN-Modul entferne und dann die 
Spannungsversorgung wieder anschließe, wird die "letzte verfügbare" Zeit 
angezeigt, die Variation der Leuchtstärke der WS2812B-LEDs in 
Abhängigkeit des Umgebungslichtes ist außer Funktion und die 
Displayfarbe bleibt auf Rot.

Ist der pullup-Widerstand 4k7 zwischen "WS2812-Signal" und +5 V 
eingebaut
(Vgl. sinngemäß 
https://www.mikrocontroller.net/articles/Datei:WordClock24h-an-STM32F103-C8T6.png)?

Welche Informationen liefert PuTTY?

Gruß
Günter

: Bearbeitet durch User
von Jan R. (pinguin895)


Lesenswert?

Günter H. schrieb:
> Jan R. schrieb:
>
> Ich nehme an, mit den "LEDs" sind die WS2812B-LEDs gemeint.

Ja genau. Die Status LEDs vom Board, von der RTC und vom ST-Link 
leuchten alle dauerhaft rot (wobei das wenn ich mich recht erinnere auch 
gut so ist)

> Ist denn inzwischen das ESP8266-Modul angekommen und eingebaut?

Nein, leider nicht.

> Wenn ich bei meiner WordClock (WC12h, STM32-Mini-Dev.-Board) im
> stromlosen Zustand das WLAN-Modul entferne und dann die
> Spannungsversorgung wieder anschließe, wird die "letzte verfügbare" Zeit
> angezeigt, die Variation der Leuchtstärke der WS2812B-LEDs in
> Abhängigkeit des Umgebungslichtes ist außer Funktion und die
> Displayfarbe bleibt auf Rot.

Ja genau so war es bevor ich das ST-Link abgesägt habe. Jetzt zeigt er 
aber nichtmals mehr die "letzte verfügbare" Zeit an.

> Ist der pullup-Widerstand 4k7 zwischen "WS2812-Signal" und +5 V
> eingebaut

Nein ist er nicht. Da es vor dem Absägen ohne funktioniert hat, habe ich 
es nicht für nötig gehalten. Sollte ich das mal ausprobieren?

> Welche Informationen liefert PuTTY?

Nichts sinnvolles: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

: Bearbeitet durch User
von Jan R. (pinguin895)


Lesenswert?

Hallo zusammen,
einen Teil des Problems habe ich gerade selber lösen können!

Beim Absägen des ST-Link ist der Jumper JP6 auf dem Nucleo Board wohl 
abgefallen. Als ich diesen wieder draufgesteckt habe haben die WS2812 
LEDs wieder ordnungsgemäß geleuchtet! Somit ist das Board zumindest 
wieder auf dem gleichen Zustand wie vor dem Absägen!

Nur das ST-Link zeigt in PuTTY jetzt überhaupt nichts mehr an. Weder 
diese komischen Zeichen, noch irgendwas anders. Das wäre mir erst einmal 
egal, das Problem ist nur, dass ich ja noch das W-LAN Modul flashen 
muss, wofür ich den ST-Link ja meines Erachtens brauche...

von Günter H. (gnter_h534)


Lesenswert?

Jan R. schrieb:
> Nur das ST-Link zeigt in PuTTY jetzt überhaupt nichts mehr an. Weder
> diese komischen Zeichen, noch irgendwas anders.

Hallo Jan,

nur damit da nichts übersehen wird:

Unter 
https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Logging
den Abschnitt "Wichtig für Nucleo-Board" beachtet?

von Jan R. (pinguin895)


Lesenswert?

Günter H. schrieb:
> Unter
> https://www.mikrocontroller.net/articles/WordClock_mit_WS2812#Logging
> den Abschnitt "Wichtig für Nucleo-Board" beachtet?

Hallo Günter,
ja habe ich! Ich kann den Reset Knopf drücken, wie ich will, die 
Stromversorgung und das USB Kabel in beliebiger Reihenfolge anklemmen, 
sichtbar ist nie etwas.

Mit dem ST-LINK Utility Programm kann ich mich aber interessanter Weise 
verbinden. Dort wird dann auch "Device family :STM32F411xC/E" etc. 
angezeigt. Im Windows Explorer ist auch NODE_F411RE als "Datenspeicher" 
sichtbar. Nur die Debug-Schnittstelle zu PuTTY gibt nichts aus.

TX auf dem Shield habe ich mit TX an dem ST-Link verbunden und bei RX 
das gleiche. Außerdem habe ich wie hier beschrieben 
https://www.mikrocontroller.net/articles/Datei:Ns-stl1a.JPG TCK, TMS und 
GND auch verbunden .

Bei eigener Fehlersuche habe ich diesen Eintrag gefunden, in welchem die 
anderen 3 Pins auf dem ST-Link auch noch verbunden werden: 
http://electronics.stackexchange.com/a/172009
1 (Gelb) ist für 3,3V Stromversorgung - brauche ich also vermutlich 
nicht, da ich die Stromversorgung ja über mein externes Netzteil habe.
5 und 6 (Orange und Grün) habe ich auch nicht verbunden da es hier 
nirgendwo erwähnt wird (oder ich die Erwähnung nicht sehe), aber ob die 
sinnvoll wären weiß ich nicht...

Viele Grüße
Jan

von Peter Z. (flexopete)


Lesenswert?

Moin Jan,
die serielle Schnittstelle auf dem Nucleo-Shield ist erst aktiv,
wenn SB62 und SB63 geschlossen sind. Ich habe hier ein USB to TTL
dran, Rx auf Tx und Tx auf Rx plus GND.

Gruss
Peter

: Bearbeitet durch User
von Jan R. (pinguin895)


Lesenswert?

Peter Z. schrieb:
> Moin Jan,
> die serielle Schnittstelle auf dem Nucleo-Shield ist erst aktiv,
> wenn SB62 und SB63 geschlossen sind. Ich habe hier ein USB to TTL
> dran, Rx auf Tx und Tx auf Rx plus GND.

Hallo Peter,
die beiden SBs hatte ich geschlossen, aber das Vertauschen von Rx und Tx 
war der Fehler! Vielen Dank an euch alle für eure Hilfen!

Jetzt muss ich nur noch auf das WLAN Modul warten und dann sollte ich 
soweit durch sein!

Viele Grüße
Jan

von Klaus H. (khilei)


Lesenswert?

Hi Enrico, habs auch so gemacht. funktioniert einwandfrei :) Außerdem 
mußte ich drei WS2812B-LEDs auswechseln, die einen Defekt hatten seitdem 
läuft sie wieder :D

: Bearbeitet durch User
von N. G. (newgeneration) Benutzerseite


Lesenswert?

Klaus H. schrieb:
> Außerdem
> mußte ich drei WS2812B-LEDs auswechseln, die einen Defekt hatten seitdem
> läuft sie wieder :D

Nur aus Interesse: Wie hat sich dieser Defekt geäußert? Hat nur eine 
(bzw. in deinem Fall 3) LED gesponnen, oder alle nachfolgenden?

N.G.

von Dario C. (dario) Benutzerseite


Lesenswert?

Ich hatte gestern auch einen Ausfall einer LED auf dem Custom-Streifen.
Die sechste Zeile, fünfte LED (das N von eiNs) leuchtete nur noch rot
und blau.

Ich habe die LED ausgelötet und eine neue eingelötet. Das ging auch 
erstmal wieder, aber beim wieder Einsetzen des Streifens (die sind bei 
mir alle
gelötet) habe ich vergessen vor dem Löten den Strom abzustellen.
Danach ging der Streifen darunter (kDREIrhFÜNF )nicht mehr.
Nach kurzer Fehlersuche stellte sich heraus, dass ich mir die letzte
LED im Streifen gekillt habe. Das es die letzte war, habe ich den
Streifen mit der Schere verkürzt und ein neues Stück eingelötet.

Grüße

Dario

von Klaus H. (khilei)


Lesenswert?

Bei mir waren es in der ersten Zeile die zweite LED und in der siebten 
Zeile die 4. und 11. LED. Es ist bei allen drei Leds die Farbe rot 
ausgefallen, was man beim Displaytest super gesehen hat. Ab der 4. Led 
in der siebten Zeile haben dann alle nachfolgenden LEDs bis auf die 11. 
imer die gleichen Farben aber jeweils eine andere als vor der vierten 
angezeigt. Die drei defekten LEDs jeweils die gleiche Farbe ohne 
Rotanteil. Ich habe beim wechseln bei der zweiten LED in der ersten 
zeile angefangen und danach getestet, die Anzeige funktionierte aber 
erst nachdem ich alle drei LEDs gewechselt habe. Ich gehe daher davon 
aus dass auch die Controller bei den einzelnen LEDs etwas abbekommen 
haben weil danach die Farben nicht mehr stimmten. Jetzt hab ich noch 5 
LEDs in Reserve, dann ist schluß mit Austausch!

Downloadlink zum Displaytest mit defekten LEDs:
http://www.filehosting.at/file/details/624921/Displaytest.mp4

khilei

: Bearbeitet durch User
von Martin M. (mastermind1)


Lesenswert?

Ich warte ja schon sehnsüchtig nach ner Veröffentlichung einer 2.3er 
Firmware für stm103... Und esp8266... mit den Piktogrammen ;-)
Zu Weihnachten sollte die Uhr an der Wand hängen (lt. Frau ;-) )

von Adrian G. (bubinsk)


Lesenswert?

HalloHallo,

Erstmal vielen Dank für dieses tolle Projekt und die hervorragende 
Dokumentation! Habe gestern meine erste Wordclock fertiggestellt und ich 
bin begeistert!

Ich habe mich derweil gefragt, ob der Quellcode irgendwo online auf 
Github oder Bitbucket o.ä. steht, wo man ggf. zum Code beitragen kann. 
Ich dachte mir, ich könnte evtl. am Userinterface der Weboberfläche 
schrauben, sodass sie übersichtlicher und schöner aussieht, sowie mit 
dem Smartphone gut erreichbar ist, sodass Nicht-Android-Nutzer nicht 
ganz das Nachsehen haben, weil es nur eine Android-App gibt. Zumal über 
den Webbrowser mehr Funktionen verfügbar sind. Zudem sind mir noch ein 
paar Features eingefallen, die noch nicht auf der ToDo-Liste stehen und 
die möglicherweise einfach in der Umsetzung sind.
Gibt es da eine Möglichkeit sich aktiv zu beteiligen oder bist du, 
Frank, da bisher alleine am tüfteln? (Vielen herzlichen Dank dafür, 
übrigens!!)

adrian

von Chris K. (Gast)


Lesenswert?

Der gesamte Quellcode steht als Tar Ball hier zur Verfügung

von Adrian G. (bubinsk)


Lesenswert?

@Chris K. Das ist mir bewusst. Ich habe auch schon Änderungen daran 
vorgenommen. Ich dachte nur, dass sowas evtl. per git und entsprechendem 
online-dienst wie Github o.ä. vereinfacht werden könnte. Aber dann 
beschränke ich mich eben auf die Tar Balls aus dem Wiki und wenn ich 
etwas bahnbrechendes programmieren sollte melde ich mich einfach bei 
Frank :)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Adrian G. schrieb:
> Gibt es da eine Möglichkeit sich aktiv zu beteiligen oder bist du,
> Frank, da bisher alleine am tüfteln?

Momentan arbeite ich da noch allein am Source. Allerdings bekomme ich ab 
und zu Verbesserungsvorschläge von einzelnen, die ich dann gern im 
Source übernehme. Ich würde das auch erstmal so weiter halten, damit 
sich das alles nicht zu sehr zersplittert. Es gibt hier jedoch die 
Möglichkeit, auch andere mit Schreibzugriff aufs SVN zuzulassen.

Das kann ich auch gern veranlassen, wenn ich sehe, dass da jemand 
ernsthaft mitarbeiten möchte. Voraussetzung ist allerdings dafür, dass 
derjenige nicht den Überblick aufs Ganze verliert. Irgendwelche 
"Spezialitäten", die zum Beispiel nur auf WC12h, aber nicht für WC24h 
lauffähig sind oder nur für einen einzelnen oder eine Spezialschaltung 
sinnvoll sind, möchte ich eigentlich nicht. Dazu ist dann auch eine 
regelmäßige Kommunikation unter den Entwicklern Voraussetzung. Beim 
alten ATmega-WordClock-Projekt gab es da eine interne 
Entwickler-Mailingliste. So eine kann ich auch für das STM32-Projekt 
einrichten.

von Tim (Gast)


Lesenswert?

Hallo zusammen,

endlich ist das neue Board da und es bootet nun auch. Leider leuchten 
nur die vier Ecken + die ersten 8  LEDs im Test-Modus.
Im Log finde ich auch leeider nichts. Dann ist vermutlich mittendrin der 
Streifen kaputt gegangen? Kann ich das irgendwie nachmessen? Die 
Versorgungspannung liegt an allen LEDs an...
1
power_init() called
2
switching power on
3
4
Welcome to WordClock Logger!
5
----------------------------
6
Version: 2.2.4
7
rtc is online
8
ws2812: external pullup detected
9
eeprom is online
10
current eeprom version: 0x00020200
11
ESP8266 LOGGER
12
DCF77 Error: High pulse <= 5
13
(- setup UDP)
14
esp8266 now up
15
read rtc: Tu 2016-12-13 11:53:54
16
(- local port: 2421)
17
(- setup server UDP)
18
(- local port: 2424)
19
(FIRMWARE 2.2.0)
20
(- working as AP)
21
(MODE ap)
22
(IPADDRESS 192.168.4.1)
23
info: ip address = 192.168.4.1
24
esp8266 now online
25
--> time "192.53.103.103"<0d><0a>
26
(OK time)
27
DCF77 Error: High pulse <= 5
28
DCF77 Error: High pulse <= 5
29
DCF77 Error: High pulse <= 5
30
DCF77 Error: High pulse <= 5
31
(- new client)
32
(CMD R05)
33
read rtc: Tu 2016-12-13 11:54:56
34
DS18xxx temperature: 22
35
RTC temperature: 23
36
read rtc: Tu 2016-12-13 11:55:44
37
DS18xxx temperature: 22
38
RTC temperature: 23

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Tim schrieb:
> Dann ist vermutlich mittendrin der Streifen kaputt gegangen?

Ja. Aber wieso jetzt plötzlich? Ich würde mal an der zuletzt leuchtenden 
LED und an der nächsten die jeweils 4 Lötstellen nachlöten. Vielleicht 
hat sich DOUT an der letzten oder DIN an der nächsten LED vom Streifen 
gelöst...

Wenn nicht, hilft nur Auswechseln.

von Tim (Gast)


Lesenswert?

Okay vielen Dank. Scheint ein Controller defekt zu sein, die DO/DI sind 
wunderbar verbunden. Dann hoffe ich mal der Paketbote kommt schnell. So 
langsam rückt Weihnachten immer näher...  :)

von Daniel K. (granturismo)


Lesenswert?

Hallo zusammen

ich habe mit der Version 2.2.3 ein Issue, welches mir bis dato zumindest 
nicht aufgefallen ist:
Bei meiner 12h - Variante mit SK6812 RGBW -  Led-Streifen lässt sich 
über das WebInterface das Weiss nicht mehr steuern. Weiss ist dabei 
immer an (zumindest im Normalbetrieb).
Im Testmodus funktioniert alles perfekt und alle Farben werden sauber an 
und abgeschaltet.
Kennt ihr dieses Issue auch und woran kann dies liegen?

@Frank: Danke für das Bereitstellen des API und ich kann die WC nun über 
das Fibaro HC steuern :-) (Ausser eben dem Weiss ;-) )

Gruss Daniel

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Daniel K. schrieb:
> Bei meiner 12h - Variante mit SK6812 RGBW -  Led-Streifen lässt sich
> über das WebInterface das Weiss nicht mehr steuern. Weiss ist dabei
> immer an (zumindest im Normalbetrieb).
> Im Testmodus funktioniert alles perfekt und alle Farben werden sauber an
> und abgeschaltet.
> Kennt ihr dieses Issue auch und woran kann dies liegen?

Diese Frage hatte ich Dir bereits per Mail vor einer knappen Stunde 
beantwortet :-)

Hier nochmal meine Antwort für alle SK6812-Interessenten:

Ja, mein Fehler. Ich habe beim Einbau des SK6812-RGB-Supports (also ohne 
W) vergessen, in main.c an zwei Stellen
1
  #if DSP_USE_SK6812 == 1

in
1
  #if DSP_USE_SK6812_RGBW == 1

umzuändern. Korrektur kommt im nächsten Release - heute oder morgen 
abend.

> @Frank: Danke für das Bereitstellen des API und ich kann die WC nun über
> das Fibaro HC steuern :-) (Ausser eben dem Weiss ;-) )

Ich muss mir das Teil mal anschauen... :-)

: Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.