WordClock mit WS2812

Wechseln zu: Navigation, Suche

Dieser Artikel ist der Nachfolger der beiden Projekte Word_Clock und WordClock24h. Diese Projekte werden hier zusammengefasst und mit ein- und derselben Hard- und Software realisiert. Es ist damit der Bau einer 12-Stunden WordClock und einer minutengenauen 24-Stunden WordClock möglich.

Um die beiden Varianten zu unterscheiden, wird die 12-Stunden-Variante im folgenden WordClock12h und die 24-Stunden-Variante WordClock24h genannt.

Zugehöriger Thread im Forum: https://www.mikrocontroller.net/topic/385955

Tutorial zum Aufbau der WordClock: Tutorial - Aufbau WordClock mit WS2812 - im Moment noch in der Entstehung

WordClock12h und WordClock24h:

WordClock12h
WordClock24h


Inhaltsverzeichnis

Software

Die Software ist sowohl auf dem STM32F401RE oder STM32F411RE Nucleo-Board als auch auf einem STM32F103-Mini-Development-Board lauffähig.

Features

Die Software wird ständig weiterentwickelt. Folgende Punkte wurden bereits umgesetzt:

  • Lauffähig auf STM32F401 Nucleo, STM32F411 Nucleo und STM32F103-Mini-Development-Board
  • Anbindung eines ESP8266-WLAN-Moduls mit speziell abgestimmter Firmware
  • WPS-Button zum schnellen Anbinden des ESP8266-WLAN-Moduls an das vorhandene Netzwerk
  • Konfiguration über Webserver-Interface
  • Holen der Uhrzeit per NTP-Protokoll aus dem Internet
  • Fernsteuerung über IR-Fernbedienung mittels IRMP
  • Fernsteuerung per Android App
  • Einstellen des Anzeigemodus ("Sprache"), Helligkeit und der Farbe per IR-Fernbedienung/App/Web
  • Konfigurierbare Nachtschaltzeiten - d.h. automatisches Abschalten zur Nachtzeit, separat auch für das Ambilight
  • Anbindung von LED-Stripes des Typs WS2812 und WS2812B
  • Optionale Unterstützung von LED-Stripes des Typs APA102
  • Optionale Unterstützung von LED-Stripes des Typs SK6812 (RGBW-LEDs)
  • Sanftes Überblenden der Uhrzeiten oder verschiedene Animationen bei Uhrzeitwechsel, z.B. "Explode" oder "Matrix"
  • Farbanimationen, z.B. Automatischer Farbverlauf durch alle Regenbogenfarben ("Rainbow")
  • Anzeigen von teilweise animierten Piktogrammen an bestimmten Tagen wie Geburtstag/Weihnachten/Silvester etc.
  • Automatische Helligkeitsregelung mittels LDR (optional)
  • Anbindung einer externen DS3231-RTC
  • Anbindung eines externen I2C-EEPROM
  • Optionaler Anschluss eines DCF77-Moduls
  • Manuelles Stellen der Uhrzeit per Webserver-Interface oder Android App, wenn kein Internet/DCF77 verfügbar
  • Optionale Temperaturmessung und -Anzeige mit DS18xxx-Sensor
  • Optionale Wetteranzeige über openweathermap.org
  • Separate Farbauswahl für Display und Ambilight
  • Separat einschaltbares Ambilight mit auswählbaren Animationen: Keine, "Clock" (Umlaufende Sekundenanzeige) und "Rainbow"
  • Konfiguration einer "Zeitschaltuhr" für das Ambilight, um dieses zum Beispiel generell nachts abzuschalten
  • Laufschriften - eigene Texte und Wettermeldungen
  • Optionale Steuerung der Stromversorgung für die LED-Stripes
  • NEU: Einspielen von Updates für ES8266 ESP-12F und STM32 über OTA ("over the air").
  • NEU: WCtris - Tetris Clone zum Spielen auf der Uhranzeige

Geplante Features für Version 2.7.0

  • Anzeige von Wetterdaten über Piktogramme, Einblendung automatisch zu konfigurierbaren Zeiten.
  • Ausblenden einzelner LEDs bei animierten Piktogrammen
  • Konfiguration der Anzeigedauer von Piktogrammen
  • Automatische Helligkeit separat auch für Ambilight (alle Modi) - mit Offset-Regler im Vergleich zum Display
  • Ambilight Mode Clock: Sekundenzeiger mit Fading über mehrere LEDs
  • Ambilight Mode Clock: Farbe der 5-Sekunden-Marker einstellbar
  • FIR-Filter für automatische Helligkeitsregelung.
  • Animation "Matrix": Einstellung: In aktueller Displayfarbe oder in grün.
  • Animation "Matrix": Ausblenden der Buchstaben per Strahl, Einblenden der Buchstaben durch 2. Strahl
  • Snake Animation frisst nicht nur die alte Uhrzeit, sondern baut die neue Uhrzeit gleichzeitig oder in 2. Durchlauf hinter sich auf
  • Angabe eines Ausgabeformats für die Datumsanzeige
  • Anzeige des On-/Off-Zustands im Webinterface
  • Harlekin-Farbanimation (jeder Buchstabe hat eine eigene Farbe)
  • Jester-Modus (1. April): Unorthodoxe Anzeige am 1. April.

Weitere geplante Features

  • Webinterface: zusätzliche Infos, z.B. Link auf Liste der Timeserver.
  • STM32-Logbook im Web-Interface
  • Geburtstagsreminder: An einem Geburtstag scrollt der Name und das Alter zu einer vordefinierten Uhrzeit durch.
  • Farbe von Ambilight und Display gesteuert nach Uhrzeit (z.B. von morgens rot nach abends blau)
  • Optimierung der Rainbow-Animation für SK6812 (Weiß)
  • Feinere Unterscheidungen bei Änderung der Display-Helligkeit über Schieberegler (ist momentan nur bei jedem zweiten Schritt erkennbar).
  • Neue Animation "Implode"
  • Mood-Light-Funktion
  • Hintergrundfarbe/Helligkeit für Display bzw. Ambilight
  • Vereinfachtes Bedienkonzept für IR-Fernbedienung
  • Spiele wie TRON, SNAKE und PONG

Download

WICHTIG

Es ist unbedingt erforderlich, dass die passende ESP8266-Firmware zur STM32-Firmware eingespielt wird! Ältere ESP8266-Firmware-Versionen führen auf jeden Fall zu Fehlverhalten!

Regel ist dabei: Die STM32-Version muss mit der ESP8266-Firmware in den ersten beiden Ziffern A.B übereinstimmen, die dritte Ziffer C darf unterschiedlich sein.

Aktuelle STM32-Version: 2.6.6 vom 03.06.2017
Aktuelle ESP-Version: 2.6.6 vom 03.06.2017

EmBitz-Projekt: Tarball
SVN hier auf µc.net: svn://mikrocontroller.net/wordclock24h/
Repo-Browser: WordClock24h im SVN

Hex- und Bin-Dateien, wenn man - ohne zu compilieren - direkt flashen will:

Firmware Version Datum Datei
WordClock STM32 Firmware alle Varianten 2.6.6 03.06.2017 Datei:Wordclock-hex.zip
ESP8266 ESP-01 Firmware 2.6.2 12.03.2017 Datei:ESP-WordClock-512K.bin
ESP8266 ESP-12F Firmware - Neu! 2.6.6 03.06.2017 Datei:ESP-WordClock-4M.bin
Android App 2.6.6 15.06.2017 Datei:WC24h.apk
WCTris Windows-Console-Programm 2.6.0 11.03.2017 Datei:Wctris.zip

Welche WordClock STM32 Firmware für die jeweilige Hardware zu verwenden ist, wird hier erklärt: WordClock-Varianten

Wie man die App unter Android installiert, kann man hier nachlesen:

http://www.pcwelt.de/ratgeber/Android-Smartphones-Apps-ausserhalb-des-Android-Market-installieren-1929591.html

Am einfachsten erlaubt man die Installation von Apps "aus unbekannten Quellen" und klickt anschließend direkt auf dem Android-Gerät auf den Download-Link. Dann kann man das Programm direkt nach dem Download installieren.

WordClock-Varianten

Es werden folgende Hardware-Varianten unterstützt:

  • Uhrenanzeige WC24h und WC12h
  • Mikrocontroller: STM32F103 (Mini-Development Board), STM32F401 (Nucleo) und STM32F411 (Nucleo)
  • LED-Streifen: WS2812-GRB, WS2812-RGB, SK6812-RGB, SK6812-RGBW und APA102

Für jede dieser Kombinationen gibt es eine spezielle Hex-Datei zum Flashen des STM32. Der Dateiname setzt sich aus den oben genannten drei Teilen zusammen.

  • 1. Teil: wc12h oder wc24h
  • 2. Teil: stm32f103, stm32f401 oder stm32f411
  • 3. Teil: ws2812-grb, ws2812-rgb, sk6812-rgb, sk6812-rgbw oder apa102

Damit ergeben sich folgende Dateinamen:

Firmware Varianten
Controller Dateiname Eigenschaften
WordClock12h STM32F103 wc12h-stm32f103-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f103-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f103-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f103-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f103-apa102.hex APA RGB LEDs
WordClock12h STM32F401 wc12h-stm32f401-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f401-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f401-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f401-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f401-apa102.hex APA RGB LEDs
WordClock12h STM32F411 wc12h-stm32f411-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f411-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f411-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f411-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f411-apa102.hex APA RGB LEDs
WordClock24h STM32F103 wc24h-stm32f103-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f103-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f103-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f103-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f103-apa102.hex APA RGB LEDs
WordClock24h STM32F401 wc24h-stm32f401-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f401-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f401-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f401-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f401-apa102.hex APA RGB LEDs
WordClock24h STM32F411 wc24h-stm32f411-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f411-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f411-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f411-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f411-apa102.hex APA RGB LEDs

Zu beachten: Die normalen WS2812-LED-Streifen benutzen die Farbreihenfolge GRB (Grün-Rot-Blau)!

Software für Windows

Die Software zum Flashen des Programms:

Alternativ kann das STM32MiniBoard (nicht Nucleo!) auch über UART geflashed werden. Dann braucht man keinen ST-Link und verwendet folgende Software: http://www.st.com/web/en/catalog/tools/PF257525

Alternativer Link:

http://www2.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html

Zum Flashen des STM32MiniBoard über UART muss beim Einschalten des STM Boot0 über einen Jumper auf „1“ gesetzt sein. Bei Verwendung eines ESP8266-ESP12F-WLAN-Moduls ist aber der mittlere Anschluss von Boot0 schon durch eine Drahtverbindung für das OTA-Flashen belegt – deshalb wird für das Flashen ein ST-Link-Adapter über die SWD-Schnittstelle des STM32MiniBoard empfohlen.

Die Software für das Flashen über UART wird auch zum Aufspielen der ESP8266 Firmware des WLAN-Moduls benötigt.


Möchte man die Sources selber übersetzen:

Möchte man die Debug- und Log-Meldungen als Entwickler oder zur Diagnose verfolgen, braucht man noch

WordClock-Quellcode selbst übersetzen

Dieser Vorgang ist nur notwendig, wenn man an den Quellen etwas ändern möchte. Im Normalfall braucht man lediglich eine der oben im Download-Kapitel angegebenen Hex-Dateien auszuwählen und diese auf den Prozessor flashen.

Wenn man an dem Programm etwas ändern oder erweitern möchte, dann startet man die zuvor installierte EmBitz-IDE. Aus dem SVN lädt man sich den Tarball (Link siehe Kapitel Download) und entpackt diesen unter C:\EmBitzProjects.

Nach dem Entpacken findet man dann im Unterverzeichnis wclock24h die Projekt-Datei wclock24h.ebp, um den Quellcode für ein Nucleo-Board zu compilieren. In der EmBitz-Ide kann man nun mit File -> Open die Projekt-Datei laden.

Möchte man jedoch den Quellcode für das STM32F103-Mini-Board übersetzen, dann lädt man die Projektdatei wclock24h-F103.ebp aus dem Unterverzeichnis wclock24h-F103.

Anschließend wählt man in der oberen Zeile in der Mitte das Ziel aus, wofür man den Quellcode übersetzen möchte.

Beim Nucleo-Projekt werden folgende Alternativen angeboten:

WC24h:

  • WC24h-Nucleo401-Debug
  • WC24h-Nucleo401-Release
  • WC24h-Nucleo411-Debug
  • WC24h-Nucleo411-Release

WC12h:

  • WC12h-Nucleo401-Debug
  • WC12h-Nucleo401-Release
  • WC12h-Nucleo411-Debug
  • WC12h-Nucleo411-Release

In der F103-Projektdatei können folgende Varianten ausgewählt werden:

WC24h:

  • WC24h-STM32F103-Debug
  • WC24h-STM32F103-Release

WC12h:

  • WC12h-STM32F103-Debug
  • WC12h-STM32F103-Release

Die Debug-Varianten sind lediglich für die Bugsuche im Programm vonnöten. Es empfiehlt sich daher im Normalfall, die entsprechende Release-Variante auszuwählen.

Nach der Auswahl kann man dann unter Build -> Rebuild all target files den Übersetzungsvorgang starten. Danach findet man im Unterverzeichnis bin\\Release die dazugehörige Hex-Datei mit dem ST-Link-Programm dann auf dem Ziel geflasht werden kann. Das wars!


Hardware

STM32F103C8T6 Mini-Development Board

Dieses Board wird für die "klassische" 10x11 WordClock12h empfohlen.

Dies ist ein kleines, platzsparendes Board mit ausreichendem 32Bit-Mikrocontroller. Der STM32F103C8T6 hat 64 KB Flash und 20KB RAM. Bei ebay ist er für kleines Geld (unter 4 EUR) zu haben: Einfach dort nach "STM32F103C8T6" suchen. Die Anbieter sind meist in China. Aber es gibt auch Anbieter aus Deutschland, wo das bestellte Board dann auch schon nach 2 Tagen im Briefkasten steckt. Meist sind die deutschen Anbieter aber etwas teurer.

Während die Nucleo-Boards bereits den "Programmer" ST-Link-V2 zum Programmieren des Flashs on-Board haben, ist dies hier nicht der Fall. Hier muss ein separates ST-Link-V2 zum einmaligen Programmieren verwendet werden. Hat man schon ein Nucleo-Board zuhause, kann der darauf befindliche ST-Link verwendet werden. Oder man beschafft sich einen eigenen Programmer. Bei eBay erhält man sie bereits im einstelligen Euro-Bereich, wenn man nach "ST-Link V2" sucht.

Der Vorteil dieses Boards gegenüber dem Nucleo ist der geringe Platzbedarf. Rechts sind der Anschluss eines ST-Link V2-Clones zum Flashen und die Anschluss-Skizze der WordClock an das STM32F103-Mini-Development-Board zu sehen.

STM32F103C8T6 Mini-Development Board
MiniDevBoard Schaltplan
Flashen per ST-Link V2-Clone

STM32F401RE Nucleo und STM32F411RE Nucleo

Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden identisch genutzt.

Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte man die überstehenden Enden der Steckerleisten auf der Unterseite mit einer Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil) können dabei auf die Oberseite gesteckt werden.

Es gibt mittlerweile vier verschiedene Revisionen von den Nucleo-Boards:

  • "MB1136 C01": Der STM32F4x1 läuft nur mit dem ungenauen internen Oszillator
  • "MB1136 C02 bis C04": Der STM32F4x1 erhält seinen 8MHz Takt vom ST-Link-Device

Damit auch das Board mit der Revision "MB1136 C01" zuverlässig im HSE-Modus mit 84MHz läuft, sind folgende Hardware-Änderungen notwendig:

  • Lötbrücken SB54 und SB55 entfernen (mit Lötkolben erhitzen und wegschnippen)
  • Lötbrücken SB16 und SB50 entfernen (dito)
  • R35 und R37 jeweils mit einem Stück Draht oder 0R-Widerstand bestücken
  • Quarz X3 (8 MHz) einlöten
  • C33 und C34 mit jeweils 22pF bestücken.

C33 und C34 können auch normale THT-Bauteile sein, wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-Anschlüssen angebracht, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren.

Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 & R37 einlöten, bevor man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-)

Es empfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision "MB1136 C02" und höher durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt.

Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene stellt also den gewünschten Endzustand dar.

Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht.

Damit das Board (nach dem Abtrennen des ST-Link) über die Stiftleiste mit Spannung versorgt werden kann (z.B. durch das Nucleo-Shield), muss "JP5" noch von "U5V" auf "E5V" umgesteckt werden. (Zusätzlich auf dem ST-Link "JP1" entfernen, falls noch nicht abgetrennt.)

Bevor man den ST-Link-Teil abtrennt, sollte man den STM32F4xx und das ESP8266-Modul flashen und auch testen. Nach dem Abtrennen werden dann Updates über OTA geflasht.

Nucleo: Zusätzliche Drahtbrücken R35 + R37 + 8MHz Quarz
Nucleo: Zu entfernende Lötbrücken + anzulötende 22pf Kondensatoren
Prototyp-Shield für das Nucleo-Board mit TSOP, ESP8266 und 3,3V Spannungsregler, später noch Anschluss für EEPROM/RTC

TSOP31238

Zum optionalen Steuern per IR-Fernbedienung.

Anschlüsse am Mini-Shield bzw. Nucleo-Shield:

  TSOP-Pin1 an GND, TSOP-Pin2 an 3V3, TSOP-Pin3 an Data

Dabei wird zusätzlich ein Tiefpassfilter (C/R) - wie auch im Datenblatt angegeben - verwendet.

Es kann auch der kleinere Bruder TSOP4838 angeschlossen werden. Dieser hat den Vorteil, dass er besser hinter einem "Loch" im Zwischenboden untergebracht werden kann, weil er einfach vom Gehäuse her kleiner ist. Allerdings ist dann die Anschlussreihenfolge anders:

  TSOP-Pin1 an DATA, TSOP-Pin2 an GND, TSOP-Pin3 an 3V3

Der TSOP4838 kann also nicht direkt 1:1 an einem der beiden Shields angeschlossen werden. Da aber sowieso ein 3-poliges Kabel an die Pin-Header geführt wird, sollte das kein Problem sein.

Schaltplan
Anschluß des TSOP31238 am Mini-Shield
Wird kein IRMP-Empfänger benutzt, sollte R5 (siehe Schaltplan rechts) mit 100k Ohm statt 100 Ohm auf dem Shield bestückt werden. Der zum Tiefpass gehörende Kondensator C1 entfällt dann. Zwischen den Pins 3V3 und Data wird schlussendlich eine Drahtbrücke eingelötet, um einen stabilen Zustand am Daten-Pin des µCs zu gewährleisten.
Ersatz TSOP
Ersatz des TSOP31238 am Mini-Shield
Ab der Shield Version 4 wird ohne TSOP R5/C1 nicht bestückt und stattdessen R15 (NucleoShield) bzw R16 (MiniDevShield) mit 100k bestückt. Damit wir ein stabilen Zustand am Daten-Pin des µCs gewährleistet.
Ersatz TSOP

WS2812

Bei der WordClock24h wird eine 16x18-Matrix verwendet plus eine Status LED, bei der WordClock12h eine 10x11-Matrix plus 4 Stück Minuten LED.

Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:

Anschluss WS2812-Streifen für WordClock12h

Hier wird eine Spezialanfertigung von WS2812-Stripes eingesetzt - nämlich mit einem Rastermaß von 28,1mm. Damit ist die WordClock12h von den Maßen her kompatibel zum bisherigen Word_Clock-Projekt. Das hat den Vorteil, dass bisherige Frontplatten und Zwischenböden weiterverwendet werden können.

Bei der Wordclock12h steht jeder zweite Streifen "auf dem Kopf". Folgende Zeichnung ist von der Vorderseite der Uhr aus gesehen, beim Verkabeln von Hinten muss man es natürlich gedanklich umdrehen.

         M4                                                    M1
          O---------+              µC Data --------------------O
          |         |                                          |
          |         |                                          |
          |         1  2  3  4  ...              11            |
          |         O--O--O--O--O--O--O--O--O--O--O--+         |
          |                                          |         |
          |        22                            12  |         |
          |         O--O--O--O--O--O--O--O--O--O--O--+         |
          |         |                                          |
          |         |                                          |
          |         O--O--O--O--O--O--O--O--O--O--O--          |
          |       23 24 ....                                   |
          |                                                    |
          |                                                    |
          O----------------------------------------------------O
         M3                                                    M2
Dabei sind M1-M4 die 4 Minutenpunkte in den Ecken. Es wird keine Status-LED wie bei der WordClock24 verwendet. Tatsächlich werden hier dafür die Minutenpunkte zur zusätzlichen Statusausgabe mitbenutzt.

Beim Nucleo-Board und beim STM32-Mini-Board werden bis zu 120 weitere LEDs als Ambilight hinter der Buchstabenkette unterstützt (ab Software-Version 2.6.6). Diese müssen einfach hinter der LED für den letzten Buchstaben in der Kette angeschlossen werden. Am besten unten links beginnend (da ist man mit LED 114 ja eh) und dann im Uhrzeigersinn. Die Anzahl der Ambilight-LEDs ist variabel, maximal 120 sind möglich. Wegen des Ambilight-Modus' "Clock" (ab Software-Version 2.0.0) sind exakt 60 LEDs als Ambilight sinnvoll - auf jeder Seite 15. Dann können diese nämlich zur Sekunden-Anzeige verwendet werden.

Die zusätzlichen Ambilight LED müssen bei der Dimensionierung des Netzteils berücksichtigt werden.

LEDS-Datakabel.jpg

Anschluss WS2812-Streifen für WordClock24h

Verwendet werden Standard-WS2812-Stripes mit 60 LEDs pro Meter. Dabei steht - wie bei der WC12h - jeder zweite Streifen "auf dem Kopf":

              +-------------------------------------------------------+
              |                                                       |
              1  2  3  4  ...                              18         |
              O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--+       |
                                                              |       |
              36                                       20  19 |       |
              O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--+       |
              |                                                       |
              |                                                       |
              O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--        |
             37 38 ....                                               |
                                                                      |
                                                                      |
                                 Status-LED                           |
 µC Data -----------------------------O-------------------------------+


Auch für die WC24h gilt: Beim (für die WC24 primär empfohlenen) Nucleo-Board und beim (ebenfalls für die WC24h nutzbaren) STM32-Mini-Board werden ab Software-Version 2.6.6 bis zu 120 weitere LEDs als Ambilight hinter der Buchstabenkette unterstützt. Diese müssen einfach hinter der LED für den letzten Buchstaben in der Kette angeschlossen werden. Am besten unten links beginnend (da ist man mit LED 289 ja eh) und dann im Uhrzeigersinn. Die Anzahl der Ambilight-LEDs ist variabel, maximal 120 sind möglich. Wegen des Ambilight-Modus' "Clock" (ab Software-Version 2.0.0) sind exakt 60 LEDs als Ambilight sinnvoll - auf jeder Seite 15. Dann können diese nämlich zur Sekunden-Anzeige verwendet werden.

Die zusätzlichen Ambilight LED müssen bei der Dimensionierung des Netzteils berücksichtigt werden.

WS2812-Anschlüsse am Shield

Der DI-Eingang des LED-Streifens wird per möglichst kurzem Kabel am WS2812-Pin des Shields verbunden, siehe Bild rechts.

In seltenen Fällen kommen die WS2812-LEDs mit einem 3,3V-Pegel an ihrem Eingang nicht zurecht. Die Folge sind dann Falsch-Farben bzw. Ausfälle bei einzelnen LEDs. Für diesen Fall ist auf den Shields ab Version v3 zwischen DI und 5V ein 1k8 Pullup-Widerstand angebracht. Die STM32-Software erkennt beim Boot den Pullup-Widerstand automatisch und schaltet dann den Daten-Ausgang auf Open-Drain-Betrieb um. Damit ist dann der High-Pegel an der ersten angeschlossenen LED nahezu 5V statt 3,3V.

Data Anschluss WS2812 auf Mini-Shield
Jede zweite Reihe (1., 3., 5. usw.) der Streifen wird per Flachbandkabel an die Spannungsversorgung der WS2812-Streifen angeschlossen. Dafür dient der Flachbandkabel-Stecker auf dem Shield. Hier werden 16 mal jeweils +5V und GND zur Verfügung gestellt, siehe nebenstehendes Bild.

Die 1 und damit die obere Reihe ist 5V, die 2 und damit untere Reihe GND. Werden zusätzlich Ambilight LED verwendet, wird ebenfalls jede Seite separat an die Spannungsversorgung angeschlossen um den Spannungsabfall entgegenzuwirken.

Bei der WC12 können dazu die 6 noch freien Pin Pärchen des Pfostensteckers genutzt werden. Bei der WC24h muss die Spannung anderweitig abgegriffen werden.

Spannungsversorgung der WS2812 auf dem Mini-Shield

DS18xx

Optional: DS18xxx als Temperatur-Sensor

Es werden unterstützt:

  • DS1820
  • DS18S20
  • DS1822
  • DS18B20

Anschlüsse am Shield:

  • DS18xx-GND (Pin 1) an GND
  • DS18xx-DQ (Pin 2) an B5 (Mini) bzw. D2 (Nucleo)
  • DS18xx-VDD (Pin 3) an 3V3

Ein 4,7k Pullup-Widerstand ist zum sicheren Betrieb des One-Wire-Busses auf den Shields vorgesehen. Der DS18xx sollte nicht in der Nähe von Wärmequellen angebracht werden, am besten also nicht direkt an das Shield löten, sondern in der unteren Tasche des Zwischenbodens anbringen. Die Litze am DS18XX dabei, z.B. mit Hilfe von Schrumpfschlauch, isolieren, damit es nicht zum Kurzschluss am Kühlkörper kommen kann. Weiterhin wird aufgrund der geringen Eigenerwärmung der DS18XX Sensoren empfohlen, den Sensor mit Wärmeleitpad/-kleber auf ein kleines Kühlblech zu kleben.

Ist kein DS18xx Temperatur-Sensor angeschlossen, wird die Temperatur über die RTC (DS3231) ermittelt.

DS1820 am Mini-Shield

LDR

Optional: Fotowiderstand (LDR) zur Lichtstärkenmessung, welche die Leuchtstärke der LEDs in Abhängigkeit des Umgebungslichtes automatisch steuert.

Als LDR sollte der LDR07 von Reichelt, ggf. der Ersatz "A 906011" verwendet werden. Wird noch der zwischenzeitlich empfohlene "A 906032" von Reichelt eingesetzt, ist R1 = 10K besser.

Wird kein LDR benutzt, muss auf dem Shield der 10k-Pullup (R2) eingelötet werden, R1 wird dann nicht bestückt.

Wird der LDR benutzt, darf der Widerstand R2 nicht eingelötet werden!

Schaltplan LDR am Mini-Shield
LDR-Anschluss am Mini-Shield

DCF77

Optional: DCF77 Modul

Anschlüsse am Shield:

  • DCF77 GND an GND
  • DCF77 V+ an 3,3V
  • DCF77 Out an Data
  • DCF77 PON an PON

Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein befriedigendes Empfangsverhalten hat. PON kann beim Reichelt-Modul offen bleiben, beim Pollin DFCF77-1 sollte man PON jedoch anschließen.

Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang verwendet, muss an Data noch ein 100k Pullup (zu 3,3V) angeschlossen werden.

DCF77 am Mini-Shield

Wird KEIN DCF-Modul verwendet, muss der 100k Widerstand R3 eingelötet werden, um den µC-Eingang auf stabilem Niveau zu halten - aber nur dann! Die sonstigen Komponenten auf dem nebenstehenden Schaltplan entfallen ersatzlos.

Schaltplan DCF77 am Mini-Shield

ESP8266

Ab der Software-Version 2.5.0 ist das Aktualisieren der ESP- und STM32-Firmware auch über OTA ("over the air", also WLAN) möglich. Damit entfällt ein erneutes Anschließen der Uhr an entsprechende Programmiergeräte bei einem Update. Allerdings müssen dafür die bisher eingesetzten ESP8266 ESP-01 durch ein ESP-12F ersetzt werden. Deshalb wird generell ab der Version v3 der Nucleo- bzw. Mini-Shields das ESP8266 ESP-12F Modul statt ESP-01 verwendet.

Es werden nun 2 USARTs vom STM32 benutzt: Das erste für die Kommunikation der beiden µCs zum Datenaustausch, das zweite zum Flashen des STM32 über OTA. Die Bedienung von 2 USARTs des STM32 geschieht durch eine Software-Umschaltung der ESP-UART-Pins.

ESP-12F an Nucleo-Shield
ESP-12F an Mini-Shield

User-Taste

Die User-Taste wird für mehrere Funktionen genutzt.

Auf dem Nucleo-Board ist sie bereits vorhanden. Sie ist blau und mit "User" beschriftet. Wird das Mini-Development-Board benutzt, ist die Taste auf dem dazugehörenden Shield (ab v3). Bei älteren Mini-Shields ist die Taste nicht vorhanden, sondern lediglich als Jumper-Pin mit der Bezeichnung "Flash" (PA6) vorhanden. Hier kann man entweder eine Taste anschließen oder mit einem Jumper den Flash-Pin mit dem danebenliegenden Pin "GND" kurzschließen, was derselben Funktion entspricht.

Die User-Taste wird für zwei Fälle benutzt:

  • Im Reset-Zustand des STM32 zum Flashen des ESP8266 über UART
  • Im Betriebszustand zum Versetzen des ESP8266 in den AP-Modus mit SSID "wordclock"

Diese beiden Funktionen werden in den Kapiteln Flash des WLAN-Moduls und Start als Access-Point näher erläutert.

User- und WPS-Taste

WPS-Taste

Ab Software-Version 2.6.0 wird auch WPS unterstützt. Dann kann die Verbindung des ESP8266 über diese Taste vorgenommen werden. Ab der Shield-Version v3 ist dafür eine eigene Taste auf den Shields vorgesehen. Ältere Shields kann man aber auch nachrüsten.

Dazu schließt man an:

STM32F4xx Nucleo:

  • Taste Pin1 an GND
  • Taste Pin2 an PC5

STM32F103C8T6 Mini-Development Board:

  • Taste Pin1 an GND
  • Taste Pin2 an PA7

Wie dann die Verbindung zum WLAN-Gateway aufgebaut wird, ist hier beschrieben: Start per WPS-Button.

User- und WPS-Taste

RTC und EEPROM

I2C-Modul mit DS3231 als RTC und EEPROM

Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als Suchbegriff "DS3231 EEPROM" eingibt. Es wird als Echtzeituhr und für die Speicherung der Konfigurationsparameter verwendet. Ist kein DS18xx als Temperatursensor angeschlossen, wird die RTC auch zur Temperaturmessung genutzt.

Anschlüsse am Shield:

  • 32K Anschluss auf Pin-Header, z. Z. nicht beschaltet
  • SQW Anschluss auf Pin-Header, z. Z. nicht beschaltet
  • SCL an SCL
  • SDA an SDA
  • VCC an 3V3
  • GND an GND

Von der Software werden auch ältere RTC/EEPROM-Module mit DS1307 erkannt, dennoch sollte man aus Kompatibilitätsgründen auf die Verwendung dieser älteren Module verzichten.

Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut.

Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss das Modul aber mit +5V statt 3,3V betreiben, damit der Akku überhaupt geladen wird. Sonst ist er aufgrund der Selbstendladung irgendwann leer.

Sinnvollerweise sollte man das Modul eher mit einer CR2032 Batterie betreiben. Dann sollte man aber sicherheitshalber die Diode oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild), damit keine Ladung (und Überhitzung) der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht eine CR2032 Batterie für 5-10 Jahre.

DS3231 RTC + EEPROM
Anschluss am Mini-Shield

AMS1117-3,3V-Spannungsregler-Modul

Zur 3,3V-Versorgung des ESP8266-WLAN- Moduls sowie weiterer Peripherie wird ein AMS1117-3,3V-Spannungsregler-Modul eingesetzt. Die Shields aus der Sammelbestellung sind für die Spannungsregler-Module wie in der Abbildung rechts ausgelegt. Beispiele für Bezugsquellen sind in der Teileliste aufgeführt.

Die leuchtende rote LED (D1) zeigt an, das die Ausgangsspannung von 3,3V vorhanden ist.

AMS1117-Spannungsregler-Modul
Anschluss am Mini-Shield

Schalten der 5V-Versorgungsspannung für die LED-Stripes

Beim Abschalten der LED-Stripes kann neben den Daten, wenn gewünscht, auch die 5V-Versorgungsspannung abgeschaltet werden. Je nach Zahl des LEDs sinkt der Verbrauch um 1 W bis 2 W (--> ca. 3 - 5 EUR im Jahr). Ansonsten wird dem Controller auf den WS2812 nur mitgeteilt, dass gerade alle Kanäle aus sein sollen.

Die Abschaltung der Versorgungsspannung erfolgt dann mit Hilfe der im Schaltplanauszug rechts gezeigten Bauteile. Die Diode begrenzt die Spannung an D IN auf 0,3 V, falls bei abgeschalteter Versorgungsspannung Datenimpulse anliegen – das wird auch durch die Software verhindert.

Ab V3 der Shields muss bei Nichtverwendung der Spannungsabschaltung eine Drahtbrücke eingelötet werden.

Schaltplanauszug: Schalten Versorgungsspannung

Netzteil

Zur Spannungsversorgung der WordClock wird ein (Stecker-)Netzteil mit einer Ausgangsspannung von 5V und einer Belastbarkeit von 4A benötigt.

Ein Beispiel ist in der Teileliste aufgeführt – vergleichbare Netzteile anderer Lieferanten wie eBay oder AliExpress usw. können ebenfalls verwendet werden.

Wichtig ist, schon vor der Inbetriebnahme der WordClock die Ausgangsspannung des Netzteils zu messen, da in seltenen Fällen die Ausgangsspannung des Netzteils höher ist als die für die WS2812B-LEDs maximal zulässige Spannung von 5,3V.

Für eine Wordclock12h ohne Ambilight reicht ein Netzteil mit einer Belastbarkeit von 2A.

Der Querschnitt der Verkabelung vom Netzteil zur WordClock ist so zu wählen, dass an den Anschlussklemmen des Shields auch bei angeschalteten LEDs eine Spannung von mindestens 4,75V anliegt.

Bei einer WordClock12h ohne Ambilight und einer Kabellänge 2m reicht ein Querschnitt von 2x0,5mm².

Der für eine WordClock24h, ggf. mit Ambilight, notwendige Querschnitt kann mit einem Tool wie z. B.

https://www.opendcc.de/info/verdrahtung/wiring.html

abgeschätzt werden.

Wer nicht über entsprechende Kenntnisse und Erfahrungen im Umgang mit 230V-Netzspannung verfügt, sollte unbedingt ein Stecker- oder Tischnetzteil verwenden.

Anschluss USB-UART-Adapter

Man benötigt in folgenden Fällen einen USB-UART-Adapter:

  • Logging der Meldungen auf dem PC
  • Flashen des ESP8266 über das verwendete STM32-Board

Beim Nucleo ist ein USB-UART-Adapter bereits integriert - und zwar im oberen ST-Link-V2-Teil des Boards. Hier ist also kein weiterer Anschluss notwendig. Erst wenn das ST-Link-V2-Teil vom Rest des Boards abgetrennt wird, müssen RX und TX wieder verbunden werden, wenn man den UART-Adapter nutzen will. Also einfach das Board mit dem PC über USB verbinden - fertig. Eventuell muss man noch den STM32 Virtual COM Port Driver installieren. Der entsprechende Link zum Herunterladen steht unter Download.

Beim Mini-Development Board wird ein externer USB-UART-Adapter benötigt. Dabei schließt man ihn folgendermaßen an:

  • USB-UART TX an PA10 (RX)
  • USB-UART RX an PA9 (TX)
  • UAB-UART GND an GND

Solche Adapter (am besten einen, der mit 3,3V-Pegeln arbeitet) gibt es bei eBay oder Amazon für unter 5 EUR.
Bei USB-UART-Adaptern mit FTDI-Chip oder Prolific PL2303-Chip sind Fakes im Handel, die von der Original-Treibersoftware nicht korrekt unterstützt werden. Besser sind Adapter mit CH340G- oder CP2102-Chip.

Anschlusstabelle

Anschlüsse
Device Nucleo-Board STM32F103-Mini-Development-Board
TSOP31238 (IRMP) GPIO: PC10 GPIO: PB3
DS18xxx GPIO: PD2 GPIO: PB5
LDR GPIO: PC4 GPIO: PA5
WordClock-Logger (USB) USART2: TX=PA2 RX=PA3 (bereits integriert) USART1: TX=PA9 RX=PA10 (externer USB-UART-Adapter)
User Button GPIO: USER=PC13 (on-board) GPIO: USER=PA6 (auf dem Shield ab v3)
WPS Button GPIO: WPS=PC5 (auf dem Shield ab v3) GPIO: WPS=PA7 (auf dem Shield ab v3)
ESP8266 Rx/Tx USART6: TX=PA11 RX=PA12 USART2: TX=PA2 RX=PA3
ESP8266 RST/CH_PD GPIO: RST=PA7 CH_PD=PA6 GPIO: RST=PA0 CH_PD=PA1
ESP8266 GPIO0 GPIO: GPIO0=PA4 GPIO: GPIO0=PA4
ESP8266 GPIO13/15 USART1: GPIO13=PA9 GPIO15=PA10 USART1: GPIO13=PA9 GPIO15=PA10
DCF77 GPIO: DATA=PC11 PON=PC12 GPIO: DATA=PB8 PON=PB9
RTC / EEPROM I2C3: SCL=PA8 SDA=PC9 I2C1: SCL=PB6 SDA=PB7
WS2812 DMA1: PC6 DMA1: PA8
WS2812 Power On/Off PC8 PB0

Auf dem Nucleo-Board ist USART2 bereits fest mit dem auf dem ST-Link-V2-Teil des Boards integrierten UART-USB-Adapter verbunden. Hier sind also keine extra Verbindungen mehr notwendig - erst wenn das ST-Link-V2-Teil abgesägt wird. Und auch dann kann man den USB-UART-Adapter vom ST-Link-V2 weiterverwenden.

Beim Mini-Development Board benötigt man allerdings einen externen USB-UART-Adapter - am besten einen, der mit 3,3V-Pegeln arbeitet. Diese findet man zuhauf bei Amazon oder eBay für ca. 5 EUR.


Teileliste für WC12h oder WC24h und Bezugsquellen

Bezeichnung Bezugsquelle
Board

STM32 MiniBoard (empfohlen für WC12h)
AliExpress
eBay
Watterott
oder
STM32 Nucleo
AliExpress
eBay
Watterott

USB-UART-Adapter - NUR für Logging und (erstmaliges) Flashen des ESP8266-Moduls am MiniDevBoard notwendig
AliExpress

eBay

STM32 ST-Link - NUR für MiniBoard notwendig

Prinzipiell reicht USB-UART-Adapter aus aber ein ST-Link wird zusätzlich empfohlen:
AliExpress
eBay

STM32 MiniBoard Shield v3 OTA
NUR für MiniBoard notwendig

Das per Sammelbestellung erhältliche Shield enthält sämtliche Anschlüsse um alle benötigten Module mit einander zu verbinden. Der STM32F103 wird direkt in das Shield gesteckt und verlötet - er wird nicht gesockelt!

Die zusätzlich für den Aufbau des Shield benötigten Komponenten sind in einem Reichelt Warenkorb zusammengefasst:
Reichelt Warenkorb

ohne IRMP (TSOP31238) wird folgender Widerstand als PullUp empfohlen:
Reichelt Widerstand 100 kOhm

ohne DCF wird folgender Widerstand als PullUp benötigt:
Reichelt Widerstand 100 kOhm

ohne LDR wird folgender Widerstand als PullUp benötigt:
Reichelt Widerstand 10 kOhm

Bitte auch die optionalen Warenkörbe / Teileliste am Ende dieser Tabelle beachten!

STM32 Nucleo Shield v3 OTA
NUR für Nucleo-Board notwendig

Diese per Sammelbestellung erhältliche Adapterplatine wird auf das Nucleo-Board aufgesteckt. Sie enthält sämtliche Anschlüsse für alle vorgesehen Module.

Die zusätzlich für den Aufbau des Shield benötigten Komponenten sind in einem Reichelt Warenkorb zusammengefasst:
Reichelt Warenkorb

ohne IRMP (TSOP31238) wird folgender Widerstand als PullUp empfohlen:
Reichelt Widerstand 100 kOhm

ohne DCF wird folgender Widerstand als PullUp benötigt:
Reichelt Widerstand 100 kOhm

ohne LDR wird folgender Widerstand als PullUp benötigt:
Reichelt Widerstand 10 kOhm

Bitte auch die optionalen Warenkörbe / Teileliste am Ende dieser Tabelle beachten!

WS2812 LED Stripes
Für die WC12h sind Stripes mit einem Sonderformat über die Sammelbestellung erhältlich.

Für die WC24h können Standard Stiles mit 60 LEDs / Meter verwendet werden.

AliExpress

eBay

Frontplatte
Für die WC12h sind Frontplatten über eine Sammelbestellung aus Plexiglas oder Edelstahl erhältlich.

Für die WC24h gibt es eine Sammelbestellung von Frontplatten aus Plexiglas.

Wird kein Rahmen (siehe unten) verwendet werden zusätzliche Teile (z.B. Magnete) zur Befestigung der Frontplatte benötigt.

Zwischenboden
Für die WC12h und WC24h sind Zwischenböden über eine Sammelbestellung erhältlich.

Alu-Platte
Aluminiumblech, 1 mm Stärke. Für WC24h mit neuem Zwischenbodens ("V2") und alle WC12h Maße 310mmx310mm, für WC24h mit "altem" Zwischenboden 300mmx300mm

ebay

DS3231 RTC und EEPROM
AliExpress

eBay

Falls bei dem Modul keine Batterie mitgeliefert wird, wird zusätzlich folgende Knopfzelle benötigt: Reichelt CR2032

Netzteil
Pollin Netzteil 5V 4A

ESP8266 ESP-01 (WLAN-Modul) bis Shield V2
AliExpress

eBay
Watterott

Zum Anschließen des ESP8266 ESP-01 wird zusätzlich ein AMS1117 3,3 V Drop Down Spannungsregler benötigt:
AliExpress
eBay

ESP8266 ESP-12F (WLAN-Modul) ab Shield V3 (OTA)
AliExpress

eBay
Watterott

Zum Anschließen des ESP8266 ESP-12 wird zusätzlich ein AMS1117 3,3 V Drop Down Spannungsregler benötigt:
AliExpress
eBay

Optional: Infrarot-Decoder (IRMP)
mit IRMP Fernbedienungsensor werden folgende Teile benötigt:

Reichelt Warenkorb
Zusätzlich wird noch eine IR-Fernbedienung benötigt, die optional mit einer Folie versehen werden kann.

Optional: Rahmen
Innenmaße 450x450 mm

Funktioniert nicht zusammen mit Ambilight
Z. B. Alurahmen

Optional: Ambilight
Mittels zusätzlicher WS2812 LED Stripes per
Sammelbestellung

Funktioniert nicht zusammen mit einem Rahmen. Erfordert Zwischenboden mit entsprechender Ausfräsung (bisher nur für WC12 per Sammelbestellung verfügbar)

Optional: Fotowiderstand (LDR) zur Lichtmessung
Reichelt LDR07
Ggf. Ersatz: Reichelt A906011

Reichelt Widerstand 1,0k (bei Verwendung von LDR07 oder A906011)
Reichelt Widerstand 10k (bei Verwendung des zwischenzeitlich empfohlenen A906032 und auch bei Nicht-Anschluss des LDRs)

Optional: Temperatur-Sensor
mit DS1820 Temperatur-Sensor werden folgende Teile benötigt:

Reichelt Warenkorb

Optional: DCF77-Empfänger
mit DCF werden folgende Teile benötigt:
Pollin DCF77 Empfänger

Reichelt Warenkorb
ggf. IC-Sockel für den OP (Reichelt GS 8P)

Optional: WS2812 Spannungsabschaltung
mit WS2812 Spannungsabschaltung werden folgende Teile benötigt:

Reichelt Warenkorb


Start

Dieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration.

Geflasht wird mit dem ST-Link-Programm, siehe oben.

Zur Überprüfung sämtlicher Funktionen und zur Konfiguration dient die Web-Oberfläche. Dazu nimmt man eine WLAN-Verbindung mit dem ESP8266-Modul auf. Für die erste Konfiguration wird das ESP8266 zunächst als eigener Access-Point gestartet. Anschließend kann man über das Web-Interface die Zugangsdaten zu dem eigenen WLAN-Router einstellen. Im Folgenden läuft das ESP8266-Modul dann als WLAN-Client.

Für Entwickler und zur Diagnose kann man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) verwenden, um über ein Mini-USB-Kabel Debug- und Log-Meldungen mitzuschneiden. Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die "blauen" USB3.0-Buchsen möglichst meiden.

Ablauf


Flashen des STM32 MiniDevBoards

Hier eine ausführliche Schritt für Schritt Anleitung um die Software vom .HEX File aus dem Artikel in das STM32 MiniDevBoard zu bekommen:

Benötigt werden neben dem STM32 MiniDevBoard:

Danach im Geräte-Manager von Windows unter „USB-Geräte“ kontrollieren, ob die Installation erfolgreich war.

Gerätemanager

ST-Link v2 mit STM32 MiniDevBoard verbinden (Achtung: Die Anschlussbelegung an ST-Link v2 und die Beschriftung am MiniDevBoard ist nicht immer einheitlich, daher bitte immer auf die Beschriftung achten!). Verbunden werden folgende Pins:

  • St-Link v2 "VCC" mit "3.3" oder "3.3V" des MiniDevBoard
  • St-Link v2 "SWDIO" mit "DIO" oder "SWDIO" des MiniDevBoard
  • St-Link v2 "SWCLK" mit "CLK" oder "SWCLK" des MiniDevBoard
  • St-Link v2 "GND" mit "GND" des MiniDevBoard
Anschluss des ST-Link v2 Adapters

Das STM32 ST-Link Utility öffnen und im Reiter „Target“ den Punkt „Connect“ anklicken, damit die Software eine Verbindung zum ST-Link v2 USB Modul herstellen kann.

Verbindung zum STM Board im STM32 ST-Link Utility herstellen

Im STM32 ST-Link Utility im Reiter „Target“ den Punkt „Program & Verify“ anklicken. Dadurch wird automatisch kontrolliert, ob die Daten im STM32 MiniDevBoard konsistent zu den Informationen im .HEX File sind

Reiter "Target"

Die gewünschte Hex-Datei passend zur Hardware auswählen (im Beispiel: WordClock 12h mit „Standard“-WS2812) und auf „Öffnen“ klicken

Auswahl der Firmware / des .HEX Files

Den Flashvorgang mit „Start“ beginnen. An den standardmäßig gesetzten Optionen muss nichts weiter verändert werden

Start des Flashvorgangs

Erfolgreiches Flashen wird anschließend im Logbereich des STM32 ST-Link Utility (unten im Fenster) angezeigt. Sollten im Log Fehlermeldungen auftauchen ist beim Flashen etwas schiefgelaufen. Verkabelung prüfen (z.B. DIO und CLK vertauscht?) und wenn das Problem weiterhin besteht im Forum (https://www.mikrocontroller.net/topic/385955) nach Hilfe fragen.

Logbeispiel: Flashen erfolgreich!

Zum Abschluss noch in der Software unter „Target“ die Verbindung der Software zum ST-Link v2 mit „Disconnect“ trennen. Jetzt kannst du auch das ST-Link V2 USB Modul aus dem Port entfernen und die Verkabelung vom STM32 MiniDevBoard trennen. Im Speicher des Boards ist jetzt die zuvor ausgewählte Software und du hast dein Modul erfolgreich geflasht!

ST-Link v2 trennen

Upgrade der Firmware des ST-Link v2 - DFU mode

Wenn versucht wird die Firmware des ST-Link v2 zu aktualisieren und dies scheitert mit der Meldung "Not in DFU Mode", so kann folgende Vorgehensweise helfen:

  1. ST-Link Utility schließen und ST-Link v2 vom USB Port entfernen.
  2. Miniboard vom ST-Link trennen.
  3. ST-Link Utility starten aber noch nichts anschließen.
  4. Firmware Upgrade Dialog öffnen.
  5. Nun ST-Link am USB Port anschließen. MiniBoard nicht anschließen.
  6. Update starten.

Logging

Dieser Ablauf ist nur notwendig, wenn man die Log-Meldungen aus Diagnose-Zwecken mitschneiden möchte.

  • PuTTY starten
  • PuTTY einstellen: Auswahl "Serial", Serial Line: COM11 (kann abweichen, s.u.), Speed: 115200
  • Einen Session-Namen eingeben, z.B. "Nucleo"
  • Auf SAVE klicken, dann kann man die Session später wieder auswählen
  • Open anklicken
  • RESET-Button am Nucleo-Board drücken

Wichtig für Nucleo-Board: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nicht die bereits ausgegebenen Log-Meldungen. Um den Ablauf des Programms von Anfang an zu verfolgen, drückt man auf dem Board einfach den Reset-Knopf. Dann beginnt die Ausgabe ganz von vorn.

Wichtig für STM32F103-Mini-Development-Board: Für das Logging sollten lediglich RX und GND des externen USB-UART-Adapters angeschlossen werden. TX vom Adapter bzw. RX auf dem STM32F103-Mini-Development-Board sollten offen bleiben. Sonst kann es bei Verwendung des ESP8266 ESP-12F dazu kommen, dass dieser nicht mehr bootet.

Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter.

Der Hintergrund im PuTTY ist normalerweise schwarz. Möchte man lieber eine Ausgabe in schwarz auf weiß, kann man das folgendermaßen umstellen:

  Change Settings -> Window -> Colours:
     Default Foreground: 2 2 2
     Default Bold Foreground: 0 0 0
     Default Background: 245 245 245
     Default Bold Background: 255 255 255
     Cursor Text: 0 0 0
     Cursor Color: 255 0 0
     (Rest kann man so lassen)

Anschließend zurück über "Session" oben links und: "Save".


Konfiguration des WLAN-Moduls

Flash des WLAN-Moduls

Für das ESP8266-Wlan-Modul wird aus Stabilitäts- und Geschwindigkeitsgründen eine spezielle auf die WordClock-Anwendung abgestimmte Firmware benutzt (siehe Download), die über das STM32-Board geflasht werden kann. Das ESP8266 kann also während des Flashens in der WordClock-Schaltung verbleiben.

Beim Nucleo wird der integrierte USB-UART-Adapter verwendet. Beim Anschluss des Nucleo-Board per USB an den PC wird automatisch ein COM-Device angelegt, z.B. COM12. Dafür braucht man aber den entsprechenden Virtual COM Port Driver, siehe Software für Windows.

Beim STM32F103 Mini Development Board wird ein externer USB-UART-Adapter, welcher mit 3,3V-Pegeln arbeitet, verwendet. Wie er angeschlossen wird, sieht man in der Anschluss-Skizze und auch in obiger Anschlusstabelle. Das Shield muss außerdem extern mit +5V versorgt werden. Anderenfalls ist zumindest das ESP-Modul ohne Spannungsversorgung.

Wichtig: Handelt es sich hier um ein ESP8266 ESP-12F am STM32F103 Mini Development Board, darf TX vom USB-UART-Wandler erst dann angeschlossen werden, wenn der ESP8266 sich bereits im Flash-Modus befindet - nicht früher. Siehe Beschreibung unten.

Zum eigentlichen Flashen lädt man am besten das sehr einfach gehaltene Programm esp8266_flasher.exe herunter.

esp8266_flasher.exe für das ESP8266-Modul
Alternativ dazu kann man auch von der Espressif-Seite zunächst die ESP8266-Flash-Software FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar (http://bbs.espressif.com/download/file.php?id=856) herunterladen und das Archiv an geeigneter Stelle entpacken. Es müssen dann als Einstellungen die im Bild rechts markierten Einstellungen vorgenommen werden.

Dann ist das weitere Vorgehen:

  • Eventuell gestartetes PuTTY beenden, um COM-Schnittstelle freizugeben
  • Speziell beim ESP-12F am STM32F103 Mini Development Board: TX vom USB-USART-Adapter (geht an PA10) abziehen!
  • Reset-Taste drücken und festhalten
  • User-Taste auf dem Nucleo-Board bzw. Mini-Shield (v3) drücken und festhalten. Auf älteren Mini-Shields gibt es diese Taste nicht, sondern ist lediglich als Jumper-Pin "Flash" (PA6) bezeichnet. Hier muss man mittels eines Jumpers eine Verbindung zu GND daneben herstellen.
  • Reset-Taste loslassen
  • User-Taste nach 2 Sekunden loslassen bzw. Jumper ziehen
  • Speziell beim ESP-12F am STM32F103 Mini Development Board: TX vom USB-USART-Adapter (geht an PA10) wieder anschließen.

Das WordClock-Programm auf dem STM32 versetzt dann das ESP8266-Modul in den Flash-Modus und verbindet dann die beiden UARTs softwaremäßig 1:1, d.h. die Daten werden vom USB-Anschluss transparent an das ESP8266-Modul weitergegeben.

Nun startet man das Programm esp8266_flasher.exe (bzw. ESP_DOWNLOAD_TOOL_V2.4.exe) und wählt durch Klick auf die Schaltfläche Bin die Datei ESP-WordClock.bin aus - siehe Download. Außerdem muss der COM-Port an den tatsächlichen Anschluss angepasst werden. Beim ESP-01 stellt man die Flash-Size auf 4MBit (=512KB), beim ESP-12F auf 32MBit (=4MB).

Alternative: ESP FLASH DOWNLOAD TOOL

Nach Drücken auf Download (bzw. Start beim Alternativprogramm) sollte nun das Flashen des ESP8266-Moduls beginnen. Eine eventuell am Ende auftretende Fehlermeldung "Failed to leave Flash mode" kann dabei getrost ignoriert werden. Anschließend startet man den STM32 (und damit auch das WLAN-Modul) neu durch kurzes Drücken der Reset-Taste.

Start als Access-Point

Folgender Ablauf ist nur notwendig, wenn die Software-Version älter als 2.5.0 ist oder keine WPS-Taste (ab Shield v3) angeschlossen ist. Sonst kann direkt zu Start per WPS-Button gewechselt werden.

Um für die Konfiguration der WLAN-Daten (Zugang zum WLAN-Router oder -Gateway) mit dem ESP8266 Kontakt aufzunehmen, muss man zunächst dafür sorgen, dass das ESP8266-Modul als Access-Point arbeitet. Dafür drückt man die User-Taste auf dem Nucleo-Board (blau) bzw. die User-Taste auf dem Mini-Shield (v3). Bei älteren Mini-Shields verbindet man den Jumper-Pin "Flash" (PA6) kurz mit dem danebenliegenden GND-Pin.

Unmittelbar nach dem Drücken der Taste erscheint die IP-Adresse des ESP8266-Moduls als Laufschrift - und auch im Log. Nun sucht man auf dem PC oder Tablet nach dem WLAN-Netz mit dem Namen "wordclock" und verbindet das Gerät mit diesem Netz. Als Netzwerkschlüssel gibt man "1234567890" ein. Sobald die Verbindung hergestellt ist, startet man einen Browser und gibt als URL die ausgegebene IP-Adresse ein, z.B. http://192.168.4.1/ .

Sobald die Web-Oberfläche erscheint, wählt man den Menüpunkt "Network" aus, wählt "Wlan-Client" aus und gibt die SSID ("AP") und den Key des WLAN-Routers ein und bestätigt die Eingabe mit "Save". Das ESP8266-WLAN-Modul wird nun als WLAN-Client umkonfiguriert. War das erfolgreich, erscheint nun auf dem Display die neue IP-Adresse. Die Browser-Seite wird dann ungültig. Man kann seinen PC nun wieder mit dem bisherigen WLAN-Gateway verbinden und im Folgenden die neue IP-Adresse verwenden.

Gibt es an dem Ort, wo die Uhr betrieben werden soll, kein WLAN, kann das ESP8266-WLAN-Modul auch weiterhin als Accesspoint ("AP") betrieben werden, damit man es über WLAN fernsteuern kann. In diesem Fall sollte nicht "WLAN-Client", sondern "AP" ausgewählt werden, eine entsprechende SSID und einen mindestens 10 Zeichen langen Key einstellen. Anschließend kann man sich mit PC/Handy/Tablet in das neue WLAN einklinken, um die Uhr per Browser oder Android-App fernzusteuern. Ein Zugriff auf einen externen Timeserver ist dann selbstverständlich nicht mehr möglich.

Start per WPS-Button

Ab Software-Version 2.6.0 wird WPS unterstützt. Dazu drückt man die auf dem Shield (ab Shield-Version v3) befindliche WPS-Taste für einen kurzen Moment und anschließend auf dem WLAN-Gateway (bzw. Router). Bei der Fritzbox muss man die Taste solange drücken, bis die WLAN-LED blinkt. Im Normalfall wird dann die Verbindung innerhalb weniger Sekunden aufgenommen - erkennbar daran, dass auf dem LED-Display die vergebene IP-Adresse als Laufschrift ausgegeben wird.

Befindet der ESP8266 bereits im AP-Modus, kann WPS auch im Browser über den Klick auf die Schaltfläche "WPS" im Reiter Network gestartet werden.

Start als WLAN-Client

Bei jedem folgenden Start wird nur noch die Einstellung "WLAN-Client" verwendet. Sobald sich das ESP8266-WLAN-Modul mit dem gewünschten Access-Point ("AP") verbunden hat, wird auf dem LED-Display die neue IP-Adresse des Moduls in Laufschrift ausgegeben.

Tipp: Viele WLAN-Router sorgen automatisch dafür, dass ein WLAN-Client auch noch nach Tagen dieselbe IP-Adresse hat. Wenn das nicht der Fall sein sollte, kann man meist in den Router-Einstellungen dafür sorgen, dass der Client mit der MAC-Adresse xx-xx-xx-xx-xx-xx immer dieselbe IP-Adresse vom WLAN-Router zugeteilt bekommt.


Web-Interface

Main

Neben der Ausgabe der installierten Firmware-Version sieht man hier unter anderem auch, ob das EEPROM erkannt wurde. Es wird entweder "online" oder "offline" ausgegeben.

Hat man keine Verbindung zum Internet, kann man auf der Hauptseite Datum und Uhrzeit auch manuell eingeben. Außerdem kann man hier einen Ticker-Text angeben, welcher dann auf dem Display als Laufschrift ausgegeben wird.

Mit den Schaltflächen "Power on" bzw. "Power off" kann das LED-Display ein- und ausgeschaltet werden. Die Power-Buttons schalten erstmal generell auch das Ambilight ein bzw. aus. Es kann aber über die entsprechenden Schaltflächen separat ein- und ausgeschaltet werden. Diese wirken aber nur, wenn die Uhr selbst im eingeschalteten Zustand ("Power on") ist. Sonst werden sie ignoriert.

Mit dem Klick auf "Learn IR remote control" kann eine IR-Fernbedienung angelernt werden.

Web-Interface: Hauptmenü

Network

Hier werden die aktuelle IP-Adresse und die Firmware-Version des ESP8266-Moduls angezeigt. Auch kann man hier die Verbindung zu einem WLAN-Gateway oder -Router angeben. In diesem Fall wählt man in der Zeile "WLAN-Client" den gewünschten Accesspoint aus und gibt dann noch den korrekten Key ein. Wichtig: Enthält der Key internationale Sonderzeichen wie zum Beispiel Umlaute, kann die WLAN-Anwendung fehlschlagen, weil das Web-Interface einen anderen Zeichensatz als der Accesspoint verwendet. In diesem Fall sollte man den Key im Accesspoint ändern oder die Möglichkeit einer Verbindung per WPS wählen. Nach erfolgter Einstellung wird die gewünschte Verbindung aufgebaut und die evtl. neue IP-Adresse auf dem LED-Display als Laufschrift eingeblendet.

Neu ist die alternative Möglichkeit, das ESP8266-Modul über WPS ins Netz einzubinden. Dafür drückt man zuerst die WPS-Taste am Router (bei der FritzBox solange, bis die WLAN-LED blinkt) und anschließend die WPS-Taste auf dem Shield - oder die WPS-Schaltfläche im Web-Interface.

Ebenso kann man hier den Timeserver und die Zeitzone konfigurieren, siehe entsprechendes Kapitel.

Mit der Schaltfläche "Get net time" kann die aktuelle Uhrzeit von dem konfigurierten Timeserver ad hoc abgerufen werden. Das ist aber im Normalfall nicht notwendig, da dies ohnehin alle 3800 Sekunden automatisch geschieht.

Web-Interface: Netzwerk-Konfiguration

Temperature

Hier wird die aktuelle Temperatur von RTC und DS18xx (sofern vorhanden) ausgegeben.

Wegen der Selbsterwärmung der Sensoren werden meist zu hohe Werte gemessen. Dagegen hilft beim DS18xx zum Beispiel ein Kühlkörper. Sollte das nicht möglich oder nicht gewünscht sein, kann hier sowohl für RTC als auch für DS18xx eine Korrektur in 0,5°C Schritten angegeben werden. Bei Eingabe von beispielsweise "5" werden 2,5°C von der Messung abgezogen. Die Korrekturwerte sollte man frühestens nach einigen Minuten Betrieb wählen, damit RTC/DS18xx auch die endgültige Betriebstemperatur erreicht haben.

Beim Betätigen der Schaltfläche "Display temperature" wird die aktuelle Temperatur auf dem LED-Display entweder als Laufschrift (WordClock12h) oder als Wort-Anzeige (Word-Clock24h) eingeblendet. Diese Anzeige kann in einem gewissen Zeitintervall auch automatisch erfolgen, siehe Display.

Web-Interface: Temperatur-Konfiguration

Weather

Um Wetterdaten auf der Uhr ausgeben zu können, braucht man eine sogenannte APPID (auch API-Id genannt), die man durch eine Registrierung bei http://openweathermap.org kostenlos beziehen kann. Am einfachsten findet man sie über den Menü-Eintrag "Price". Dort kann man dann eine API-Id in der Free-Version generieren lassen.

Diese APPID wird dann hier eingetragen. Des Weiteren ist notwendig:

  • entweder die Angabe eines Ortes
  • oder die Angabe von Geo-Koordinaten (Longitude/Lattitude)

Gerade bei Großstädten ist es sinnvoll, die genauen Koordinaten des eigenen Wohnorts anzugeben, da das Wetter bereits lokal unterschiedlich sein kann. Werden sowohl Ort als auch die Geo-Koordinaten angegeben, haben die Koordinaten Priorität. Auch kann es sein, dass bei kleineren Ortschaften der Ort selbst bei openweathermap.org unbekannt ist. Im Zweifel sollte man sich besser für die Koordinaten-Variante entscheiden. Wichtig bei der Angabe eines Ortes ist es, die Stadt in der eigenen Landessprache anzugeben, also z.B. "Koeln" oder "Muenchen". Die Angabe von z.B. "Cologne" ist nicht zielführend, weil dies ein kleiner Ort in Italien ist ;-)

Kennt man die Geo-Koordinaten vom gewünschten Standort nicht, kann man sie über Google-Earth ermitteln. Dafür muss man nicht unbedingt Google-Earth herunterladen, es reicht das Aufrufen von Google-Maps im Browser. Anschließend kann man dann unten links auf die Web-Version von Google-Earth wechseln. Ein Klick auf den eigenen Standort lässt dann die gewünschten Koordinaten erscheinen. Dabei ist die erste Zahl (irgendetwas um die 50) die Lattitude und die zweite Zahl (in der Größenordnung 7) die Longitude. Die Zahlen sollen mit Dezimalpunkt und nicht Dezimalkomma eingetragen werden.

Ein abschließender Klick auf die Schaltfläche "Get weather" bezieht dann von openweathermap.org das aktuelle Wetter vom gewünschten Standort. Die Wetterdaten (Temperatur und Wetterlage) werden dann als Laufschrift auf dem Display ausgegeben. Diese Anzeige kann in einer kommenden Version über ein einstellbares Zeitintervall dann auch automatisch erfolgen.

Web-Interface: Wetterdaten-Konfiguration

LDR

Mittels Aktivierung von "Automatic Brightness" werden die automatische Helligkeitssteuerung scharfgeschaltet und das erweiterte Menu sichtbar.

Die Seite zeigt den aktuellen Wert an, den der ADC am LDR misst. Um den Helligkeitsbereich bei der automatischen Helligkeitssteuerung komplett auszunutzen, kann hier eine Kalibrierung vorgenommen werden. Dazu betätigt man einmal die Minimum-Schaltfläche bei verdunkeltem Raum, einmal die Maximum-Schaltfläche bei maximaler Raumhelligkeit und speichert alles durch Drücken der Save-Schaltfläche. Die automatische Helligkeitssteuerung verwendet dann bei einer Helligkeitsmessung diese Min-/Max-Werte zum Vergleich.

Hinweis: Es ist nicht sinnvoll, bei der Max-Messung einfach eine Taschenlampe direkt vor den LDR zu halten. Da der LDR normalerweise hinter der Frontplatte sitzt, wird so eine Helligkeit in der Praxis niemals erreicht. Die Folge wäre, dass die LEDs der Uhr dann zu dunkel leuchten würden.

Web-Interface: LDR-Kalibrierung

Brightness

Hier können die 16 vorhandenen Helligkeitsstufen an die Gegebenheiten angepasst werden. Je nach Transparenz der verwendeten Frontplatte bzw. des Diffusors kann man hier nachjustieren.

Standardmäßig sind die Helligkeitsstufen hier so gewählt, dass immer eine gewisse Grundhelligkeit eingestellt ist. Erscheinen die unteren Helligkeitsstufen zu hell, kann man das durch Verschieben der entsprechenden Regler nach links anpassen.

Web-Interface: Helligkeitskurve

Display

Unter "Display Mode" können unter anderem verschiedene Sprachvarianten, die regionale Unterschiede beim Gebrauch der Uhrzeit berücksichtigen, ausgewählt werden. Die Anzeige von "Es ist" kann hier generell ein- oder ausgeschaltet werden.

Mit dem Schieberegler "Brightness" kann die Grundhelligkeit eingestellt werden. Dieser wird deaktiviert, wenn die automatische Helligkeitssteuerung aktiviert wurde. Die eigentlichen Farben des Displays stellt man dann mit den Schiebereglern "R", "G" und "B" ein. Diese erscheinen jedoch nur dann, wenn nicht die Animation "Rainbow" eingestellt ist. Die Rainbow-Animation kontrolliert die Farben nämlich selbst.

Durch Wahl einer Ticker-Verzögerung kann die Geschwindigkeit der "Ticker-Messages" (Laufschriftanzeige) kontrolliert werden. 3 ist hier der Standardwert. Niedrigere Werte ergeben eine höhere Geschwindigkeit (bis zur Unleserlichkeit), höhere Werte verzögern die Geschwindigkeit der Laufschriften.

Stellt man für das Ambilight "Use Display Colors" ein, dann werden die Einstellungen für Helligkeit und Farben auch für das Ambilight verwendet, das heißt die Farben laufen synchron.

Auch hier gibt es nochmal die Schaltflächen zum Ein- und Ausschalten des LED-Displays. Mit der Schaltfläche "Test Display" werden sämtliche LEDs bei halber (subjektiver) Helligkeit eingeschaltet (benötigt ca. 1/4 des theoretisch möglichen Maximalstroms) und einige Farben zur Kontrolle der Funktionsfähigkeit aller LEDs durchprobiert.

Bei "Temp Display Interval" lässt sich ein Zeitintervall wählen, bei welchem die aktuell gemessene Temperatur eingeblendet werden soll. Bei Angabe von "1" passiert das jede Minute, nämlich immer bei hh:mm:30 Uhr. Bei Angabe von beispielsweise "5" wird die Temperatur dann nur noch alle 5 Minuten eingeblendet.

Für "Heart Display interval" gilt dasselbe. Hier wird ein Herz als Piktogramm eingeblendet - z.B. für Geburtstage. Ebenso kann man in der vorweihnachtlichen Zeit einen Weihnachtsbaum einblenden unter Angabe eines Wertes für "XMas tree display interval".

Werden mehrere Intervalle ausgefüllt, gilt folgende Regel bei zeitgleicher Einblendung: Dasjenige Piktogramm, welches seltener erscheinen soll, hat eine höhere Priorität.

Beispiel (siehe auch Bild rechts):

  • Temp display interval = 10
  • Heart display interval = 1
  • XMas tree display interval 5

Dann ergibt sich:

  • 09:01 Uhr bis 09:04 Uhr: Herz
  • 09:05 Uhr: Tannenbaum
  • 09:06 Uhr bis 09:09 Uhr: Herz
  • 09:10 Uhr: Temperatur
  • 09:11 Uhr bis 09:14 Uhr: Herz
  • 09:15 Uhr: Tannenbaum

usw. Die Einblendungen geschehen grundsätzlich 30 Sekunden nach der vollen Minute. Intervalle gleicher Dauer sollte man vermeiden. Dann wird konsequent nur noch eins der beiden Piktogramme gezeigt.

Web-Interface: Einstellungen des LED-Displays

Animations

Animationen werden immer dann ausgeführt, wenn sich die Anzeige ändert, zum Beispiel bei einem Uhrzeitwechsel. Hier kann man sich die gewünschte Animation aussuchen und auch die dazugehörige Geschwindigkeit eingestellt werden.

Folgende Animationen sind verfügbar:

  • None - Keine Animation
  • Fade - Langsames Überblenden der Buchstaben
  • Roll - Rollen der Wörter von links/rechts/oben/unten
  • Explode - Die Wörter wandern schnell vom Mittelpunkt sternförmig auf ihren Platz
  • Snake - Eine Schlange "frisst" die zuletzt angezeigten Wörter weg
  • Teletype - Die Wörter werden in "Schreibmaschinen-Geschwindigkeit" ausgegeben
  • Cube - Ein Rahmen "fällt" von außen nach innen, um die Anzeige zu löschen
  • Matrix - Matrix-Animation aus dem gleichnamigen Film
  • Drop - Buchstaben alter Wörter fallen aus der Anzeige, Buchstaben neuer Wörter fallen von oben in die Anzeige hinein
  • Squeeze - Die Wörter werden einmal kurz "gequetscht"
  • Flicker - Die Wörter "flackern", danach erscheint die neue Anzeige

Eine Besonderheit ist die Animation "Random". Hier wird mit Hilfe eines Zufallsgenerators jedes Mal eine andere Animation ausgewählt. Deklariert man eine Animation als Favoriten, dann wird diese von der Zufallsanimation "Random" genutzt. Anderenfalls wird sie von "Random" ignoriert.

Die Geschwindigkeit kann man in 15 Stufen einstellen. Bei Klick auf die Schaltfläche "Default" wird die Geschwindigkeit auf einen sinnvollen Standardwert gesetzt.

Als zusätzliche Farbanimation kann noch "Rainbow" ausgewählt und konfiguriert werden. Dann wechselt das Display fließend die Farben der LEDs.

Web-Interface: Einstellungen der Animationen

Ambilight

Hier kann eine separate Animation für das Ambilight eingestellt werden.

Bei dem Ambilight-Modus "Clock" werden 20, 30 oder 60 Ambilight-LEDs als umlaufende Sekundenanzeige verwendet. Mit "#LEDs" kann man einstellen, wie viele Ambilight-LEDs sich im "Kreis" befinden. Sinnvoll sind hier 20, 30 oder 60. Ausserdem lässt sich mit "Offset of second = 0" diejenige LED einstellen, die mittig oben als Sekunde 0 angebracht ist.

Beispiel: Beginnt das Ambilight mit 60 LEDs links unten und ist im Uhrzeigersinn angebracht, dann wäre die LED mit Sekunde 0 die Nr. 22. Diese Zahl ist dann hier einzutragen.

Der Ambilight-Modus "Clock2" entspricht dem Modus "Clock". Jedoch wird hier ein zu-/abnehmender Vollkreis dargestellt.

Bei dem Ambilight-Modus "Rainbow" durchlaufen die Ambilight-LEDs langsam (über mehrere Minuten hinweg) alle Farben des Regenbogens. Dieser läuft unabhängig von der Farbanimation "Rainbow" des Displays.

Ist auf der Display-Webseite eingestellt, dass die Ambilight-Farben nicht synchronisiert werden sollen, dann kann man hier auch unabhängig von dem Display eine eigene Helligkeit und einen anderen RGB-Wert wählen.

Web-Interface: Ambilight

Timers

Mit bis zu acht Timern kann man einstellen, wann die Uhr aus- bzw. eingeschaltet werden soll. Die Einstellung kann in Abhängigkeit der Wochentage eingestellt werden.

Im Beispiel rechts wird in der Woche abends die Uhr um 22:30 Uhr abgeschaltet. Eingeschaltet wird dann morgens wieder um 07:00 Uhr. Nach dem Frühstück wird die Uhr dann um 08:00 Uhr wieder abgeschaltet, um dann abends um 17:00 Uhr wieder eingeschaltet zu werden.

Am Wochenende sieht das dann anders aus: Hier ist die Uhr abends länger eingeschaltet, nämlich bis 23:30 Uhr. Morgens geht es erst dann um 09:00 Uhr wieder weiter.

Web-Interface: Timer

Ambilight Timers

Hier können Timer speziell für das Ambilight eingestellt werden, um zum Beispiel nachts das Ambilight separat abzuschalten. Umschaltzeiten, während die Uhr selbst abgeschaltet ist, werden ignoriert. Sonst gelten dieselben Bemerkungen wie im vorangehenden Kapitel.
Web-Interface: Ambilight Timer

Update

Updates für den ESP8266 als auch für den STM32 können über das WLAN eingespielt werden. Dazu ist eine Internet-Verbindung notwendig. Für OTA-Updates ("Over The Air") ist zwingend ein ESP8266 ESP-12F notwendig. Mit den bisher eingesetzten ESP-01 kann kein OTA-Update eingespielt werden. Jedoch können alte Shields mit ESP-01 auf ESP-12F umgebaut werden: Umbau von ESP-01 auf ESP-12F

Es wird jeweils die benutzte und die verfügbare Firmware-Version angezeigt. Sind diese gleich, ist ein Update nicht notwendig. Wenn sowohl die ESP- als auch die STM32-Firmware abweichen, sollte immer zunächst der ESP8266 aktualisiert werden und danach der STM32. Durch Klick auf die Schaltfläche "Update ESP Firmware" wird das Update gestartet. Dieses dauert ca. 30 Sekunden.

Anschließend kann der STM32 aktualisiert werden. Dazu muss zunächst die richtige Firmware-Variante (HEX-Datei) ausgewählt werden. Welche WordClock STM32 Firmware für die jeweilige Hardware zu verwenden ist, ist hier erklärt: WordClock-Varianten. Ab installierter Version 2.6.0 ermittelt die Software selbst anhand der Hardware-Konfiguration den Namen der passenden HEX-Datei und schlägt diesen dann automatisch vor.

Durch Klick auf die Schaltfläche "Flash STM32" wird der STM32 zunächst in den Bootloader-Modus gebracht, danach wird er neu programmiert. Der STM32 verbleibt solange im Bootloader-Modus, bis die Schaltfläche "Reset STM32" betätigt wird.

WICHTIG: Beim STM32F103-Mini-Board darf während des OTA-Updates der STM32-Firmware KEIN USB-UART-Adapter, welcher sonst zum Logging benutzt werden kann, angeschlossen sein!

Web-Interface: Update

Local Update

Während das normale Update über einen Host im Internet durchgeführt wird, kann man über das lokale Update den STM32 vom lokalen PC aus flashen. Das lokale Flashen des ESP8266 ist noch nicht möglich, ist aber für ein späteres Release geplant. Sonst gelten dieselben Bemerkungen wie zum vorhergehenden Kapitel "Update".

Auch hier gilt: Beim STM32F103-Mini-Board darf während des OTA-Updates der STM32-Firmware KEIN USB-UART-Adapter, welcher sonst zum Logging benutzt werden kann, angeschlossen sein!

Web-Interface: Local Update

Timeserver

Der Timeserver muss ein RFC 958 konformer NTP-Server sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Alternative Timeserver sind zum Beispiel ntp1.ptb.de (192.53.103.108), ntp2.ptb.de (192.53.103.104) oder time.nist.gov (216.229.0.179).

Eine Liste von europäischen Timeservern findet man u.a. hier: http://www.pool.ntp.org/zone/europe

Den Timeserver konfiguriert man folgendermaßen:

Im Browser gibt man als URL die ausgegebene IP-Adresse ein, also z.B. http://192.168.10.1/ . Anschließend wählt man den Menüpunkt "Network" an und gibt in der entsprechenden Zeile die IP-Adresse des Wunsch-Timeservers ein und bestätigt mit "Save". Nun wird zunächst geprüft, ob der Timeserver das NTP-Protokoll unterstützt.

Die aktuelle Uhrzeit wird alle 3800 Sekunden vom Timeserver geholt. Im Web-Interface kann man die Übertragung auch jederzeit per Mausklick starten. Das funktioniert auch mit einer angelernten IR-Fernbedienung.

Zeitzone

Im Web-Interface Menüpunkt "Network" auswählen, in der Zeile "Timezone" die Abweichung von GMT eingeben. Für die mitteleuropäische Zeitzone wäre das einfach eine 1. Dies entspricht dann GMT+1. Bei einer negativen Abweichung wie GMT-1 muss dann entsprechend -1 eingegeben werden.


IR-Fernbedienung

In den ersten 3 Sekunden leuchtet die Status-LED mit der Farbe Weiß, um zu signalisieren, dass nun eine IR-Fernbedienung angelernt werden kann. Wird währenddessen irgendein gültiger IR-Code empfangen, wechselt die Status-LED für eine Sekunde auf rot (FB-Knopf loslassen!) und es wird in die Anlernroutine gesprungen. Wird kein IR-Signal empfangen, startet das Programm wie gewohnt. Die Anlernroutine kann auch über die Web-Oberfläche (Menü "Main") gestartet werden.

Man wird nun über eine Laufschrift auf dem LED-Display aufgefordert, folgende FB-Tasten zu drücken:

Tasten für IR-Fernbedienung
Taste Funktion Laufschrift
Power Anzeige ein/aus power off/on
OK Speichern der Einstellungen ok
MODE- Anzeigemodus erniedrigen decrement display mode
MODE+ Anzeigemodus erhöhen increment display mode
ANIM- Animation erniedrigen decrement animation mode
ANIM+ Animation erhöhen increment animation mode
HOUR- Stunde erniedrigen decrement hour
HOUR+ Stunde erhöhen increment hour
MIN- Minute erniedrigen decrement minute
MIN+ Minute erhöhen increment minute
RED- Helligkeit der Farbe Rot erniedrigen decrement red brightness
RED+ Helligkeit der Farbe Rot erhöhen increment red brightness
GREEN- Helligkeit der Farbe Grün erniedrigen decrement green brightness
GREEN+ Helligkeit der Farbe Grün erhöhen increment green brightness
BLUE- Helligkeit der Farbe Blau erniedrigen decrement blue brightness
BLUE+ Helligkeit der Farbe Blau erhöhen increment blue brightness
BRIGHT- Grundhelligkeit erniedrigen decrement global brightness
BRIGHT+ Grundhelligkeit erhöhen increment global brightness
AUTO+ Automatische Helligkeitsregelung ein/aus toggle auto brightness
TEMP Anzeige der Temperatur für 5 Sekunden get temperature

Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen.

Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:

  • SIRCS (Sony)
  • NEC (Viele Hersteller, sehr verbreitet)
  • SAMSUNG
  • MATSUSHITA
  • KASEIKYO

IRMP "versteht" jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des IRMP-Artikels.


Eine passende Fernbedienung gibt es bei DX .

Passend beschriftet werden kann die Fernbedienung mit einem der folgenden Labels
Datei:Fernbedienung Folie ZW.pdf
Datei:Fernbedienung Folie ZW2.pdf
(sie unterscheiden sich in der Anordnung des Power- und Save-Knopfes). Einfach auf eine selbstklebende Folie drucken, ausschneiden und aufkleben. Die unterste Reihe ist für weitere zusätzliche Optionen (z.B. Ambilight, usw.) noch offen.


Android App

Ist ein ESP8266-Modul angeschlossen und korrekt konfiguriert, kann die Uhr per Android App ferngesteuert werden.

Momentan können folgende Einstellungen vorgenommen werden:

  • Ein-/Ausschalten der Uhr
  • Manuelles Stellen von Datum/Uhrzeit über Menü -> Synchronisieren
  • Anzeige der WordClock-Temperatur
  • Einstellen der Farben (Neu: nun auch RGBW)
  • Manuelle Einstellung einer Grundhelligkeit
  • Automatische Helligkeitsregelung per LDR ein/aus
  • Einstellung des Anzeigemodus
  • Einstellung der Farbanimation, z.B. "Rainbow" (Neu)
  • Einstellung der Animation (Überblenden, Rollen, Explosion etc.)

Es können bis zu 4 Profile konfiguriert und damit auch bis zu 4 unterschiedliche WordClocks gesteuert werden. Den Wechsel der Profile nimmt man mit der Schaltfläche "Laden" vor, das Speichern der Profile mit dem Button "Speichern".

Bevor man mit der App Daten senden kann, muss man die IP-Adresse, die das ESP8266-Modul bekommen hat, in der App einstellen. Dies geht über den Menü-Eintrag "Einstellungen". Bei älteren Android-Versionen ist dafür zunächst die spezielle Menü-Taste zu drücken, bei neueren Android-Versionen geht das auch über die Menüschaltfläche mit den drei übereinanderliegenden Punkten - siehe Bild rechts oben. Die IP-Adresse wird dann dem aktuell ausgewählten Profil zugeordnet.

Unter den Menüpunkten findet man nun auch einen mit dem Eintrag "Tetris". Damit wird eine Art "Gamepad" eingeblendet, mit dem man auf der Uhr WCtris - einen Tetris-Clone - spielen kann. Viel Spaß!

WC24h Android App

Tutorial zum Aufbau

Ein Tutorial zum Aufbau der WordClock findet man hier: Tutorial - Aufbau WordClock mit WS2812 - im Moment noch in der Entstehung.

Mechanik

Anbringung der WS2812-Streifen

WordClock24h:

Am besten verwendet man eine 1mm starke Alu-Platte (für WC24h mit neuem Zwischenbodens ("V2") Maße 310mmx310mm, für WC24h mit "altem" Zwischenboden 300mmx300mm). Darauf lassen sich nicht nur einfach die WS2812-LED-Streifen aufkleben, auch dient die Alu-Platte der Wärmeabfuhr. Die Alu-Platte kann man sich von einem der eBay-Händler entweder direkt erstehen oder für ca. 3,50 Euro zurechtschneiden lassen.

Den LED-Streifen schneidet man 16 Streifen à 18 LEDs. Bevor man sie auf die LED-Platte klebt, sollte man senkrecht je einen Tesa-Streifen links und rechts auf die Alu-Platte kleben, da sich gezeigt hat, dass die Schnittkanten der Streifen gern einen Kurzschluss mit der Alu-Platte bilden.

Die LED-Streifen werden dann im Ziehharmonika-Verfahren aufgeklebt. Dabei steht jeder 2. Streifen auf dem Kopf. Das hat den Vorteil, dass die Verbindungen zwischen den Streifen möglichst kurz sind. Auf der rechten Seite verbindet man dann die Anschlüsse +5V mit +5V, GND mit GND und DO mit DI - siehe Bild. Man verbindet also den ersten mit dem zweiten Streifen, den dritten mit dem vierten Streifen usw.

Auf der linken Seite verbindet man lediglich DO mit DI, also den zweiten Streifen mit dem dritten, den vierten mit dem fünften usw. An den verbleibenden Lötpunkten +5V und GND lötet man an jedem *zweiten* Streifen (1, 3, 5 usw.) die Spannungsversorgung an. Praktisch ist die Verwendung eines 16-poligen Flachbandkabels, welches man auf einen Flachbandkabel-Stecker aufquetscht. Pin 1 und 2 gehen dann an 5V/GND des ersten Streifens, 3 und 4 an 5V/GND des dritten Streifens usw. Mit ca. 2 m Flachbandkabel kann die komplette Uhr verkabelt werden.

Dann kann man mittels 16-poligem Wannenstecker, den man auf eine Lochrasterplatine lötet, die Spannungsversorgung einfach verpolungssicher anstecken. Unter der Lochrasterplatine werden die geradzahligen Pins und die ungeraden Pins je mit einem Kupferdraht verbunden. Mit einer 2-poligen Schraubklemme auf der Lochrasterplatine kann dann das Netzteil angeschlossen werden - siehe Bild rechts. Bei Verwendung eines der Shields aus der Sammelbestellung wird die Lochrasterplatine nicht benötigt - die Spannungsversorgung für die Stripes ist auf den Shields mit eingeplant.

Beim Anschluss des Datensignals sollte beachtet werden, dass zuerst die Status-LED angeschlossen wird und das Signal dann von dieser weiter zur Platte geht. Spannung für die Status-LED kann man sich bequem vom letzten Streifen der Platte holen.

16 WS2812-Streifen auf Alu-Platte
16pol Wanne zum Verbinden des Netzteils und der Streifen
Anschluss der Streifen an die Spannungsversorgung
WordClock12h:

Am besten verwendet man eine Alu-Platte (1mmx310mmx310mm). Der Aufbau ist analog zu der WordClock 24h zu betrachten. Der Unterschied liegt darin, dass bei der WC12h die LED Streifen mit dem Sonderabstand benutzt werden und dieser in 10 Streifen a 11 LEDs geteilt wird. Sowie in 4 Einzel LEDs für die Minutenanzeigen in den Ecken.
Die Verbindung der Streifen erfolgt dann analog zu der oben beschriebenen Weise.

Aufbau WC12h WS2812.jpg

Aufgebaute WC12h mit WS2812 Streifen.

Zwischenböden

Es gibt insgesamt 3 Varianten der Zwischenböden.
Zwei Varianten für die WordClock 12h (mit und ohne Ambilight Aussparungen) und eine Variante für die WordClock 24h

WordClock 12h OHNE Ambilight Aussparungen
Rückseite
Vorderseite
WordClock 12h MIT Ambilight Aussparungen
Rückseite
Vorderseite
WordClock 24h v2
Rückseite
Vorderseite
Rückseite schräg

Frontplatten

(in Arbeit)


Shields für STM32 MiniDev und Nucleo Board

Hier werden nur die aktuellen Versionen der Shields beschrieben.
Ältere HW Versionen sind im Anhang aufgeführt

Shield für STM32 MiniDevBoard

Vorgestellt wird hier das Shield für das MiniDevBoard in der aktuellen Version 4 - OTA.

Die v4 enthält folgende Anpassungen:
  • R16 wurde neu hinzugefügt - Pull-Up Widerstand wenn kein TSOP verbaut wird
  • JP13 wurde neu hinzugefügt - Damit sind vom DS3231 die Pins 32K und SQW auf einen Pin-Header geführt und können so für ggf spätere Erweiterungen genutzt werden. Derzeit ohne Funktion und braucht nicht bestückt zu werden.
  • JP6 (UART) und JP12 (Prog/Run) wurde um 90° gedreht
  • ENIG Ausführung


WC MiniDev Shield v4 Bestueckung.png
Das bestückte MiniDev Shield:

Das MiniDev Shield ohne bestückten STM. Ein Bild folgt noch.

BILD FOLGT
Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss mit dem BOOT0 Pin auf dem Shield verbunden. Bild zeigt die v4 mit RTC, TSOP, AMS1117, ESP12, Spannungsabschaltung, LDR
MiniDev v4 02.jpg
Im Lieferzustand ist die Abschaltschaltung nicht mehr gebrückt. Daher ist nun folgendes zu beachten:
  • Wird die Abschaltschaltung eingebaut, muss nur die zusätzlich notwendigen Bauteile bestückt werden. Hierbei zeigt die abgeflachte Kante des IRF9310 zum Stromstecker (Pin 1 ist durch den Punkt markiert im Bestückungsdruck).
  • Wird die Abschaltschaltung nicht eingebaut, muss eine Drahtbrücke gesetzt werden (als Draht kann z.B. das abgeknipste Ende eines Widerstandes genutzt werden, für die WC24h dann ggf. zwei Drähte nutzen).
MiniDev v3 03.jpg
Der Schaltplan des MiniDev Shields als V4:
WC MiniDev Shield v4 Schaltplan.png

Shield für STM32F411 Nucleo Board

Vorgestellt wird hier das Shield für das Nucleo Board in der aktuellen Version 4 - OTA.
Im Aufdruck des v4 hat sich der Fehlerteufel eingeschlichen. Der Aufdruck spricht noch von der Version3. Version 4 ist aber gut an den vergoldeten Lötpads zu erkennen. V3 hat die Lötpäds versilbert.

Die v4 enthält folgende Anpassungen:
  • R15 wurde neu hinzugefügt - Pull-Up Widerstand wenn kein TSOP verbaut wird
  • JP11 wurde neu hinzugefügt - Damit sind vom DS3231 die Pins 32K und SQW auf einen Pin-Header geführt und können so für ggf spätere Erweiterungen genutzt werden. Derzeit ohne Funktion und braucht nicht bestückt zu werden.
  • JP6 (UART) wurde neu positioniert und liegt nun nicht mehr unter dem Nucleo Board
  • JP8 (SWD) wurde neu hinzugefügt
  • ENIG Ausführung


WC Nucleo Shield v4 Bestueckung.png
Das bestückte Board:

Das Nucleo Shield ohne bestückten STM. Bild folgt noch

BILD FOLGT
Das Nucleo Shield mit bestücktem Nucleo-Board. Bild zeigt noch die v3
Nucleo v3 02.jpg
Im Lieferzustand ist die Abschaltschaltung nicht mehr gebrückt. Daher ist nun folgendes zu beachten:
  • Wird die Abschaltschaltung eingebaut, müssen nur die zusätzlich notwendigen Bauteile bestückt werden. Hierbei zeigt die abgeflachte Kante des IRF9310 zur Platinenkante (Pin 1 ist durch den Punkt markiert im Bestückungsdruck).
  • Wird die Abschaltschaltung nicht eingebaut, muss eine Drahtbrücke gesetzt werden.
Nucleo v3 03.jpg
Der Schaltplan des Nucleo Shields als V4:
WC Nucleo Shield v4 Schaltplan.png

Tischversion der WC12h aus dem 3D Drucker

WC12h desk printed.JPG

Wer Zugriff auf einen 3D Drucker mit einem Druckbereich >= 180x190mm hat, der findet bei Thingiverse 3D Modelle für alle unterstützten Sprachversionen der Software. Die Modelle der WC12h sind recht einfach zu drucken und sollten sich eigentlich mit so ziemlich jedem Gerät realisieren lassen. Wenn eine Version mit eingebautem Diffusor gedruckt werden soll, steht und fällt das Vorhaben mit der Ausrichtung des Druckbetts. Schon ein Versatz von 0.1mm über die gesamte Fläche kann hier das Druckergebnis ziemlich negativ beeinträchtigen. Aber in der Regel kennen die Besitzer solcher Geräte ja die Stolpersteine. Falls euer Druckbett nicht wirklich gerade, oder nicht sauber ausgerichtet ist, könnt ihr zur Not einfach eine Version ohne Diffusor drucken und diesen dann in Eigenregie erstellen (Butterbrotpapier, Milchglasfolie, usw.).

WC12h desk beleuchtet.jpg


Die Displaymatrix der 3D Modelle ist wegen der kleinen Größe der Uhr für den Abstand eines 90LED/m Streifens (11.11mm) ausgelegt, die man z.B. bei eBay, Aliexpress und Konsorten kaufen kann. Ich habe Anfang des Jahres ca. 12 USD inkl. Versand für einen Meter WS2812B mit 90 LEDs pro Meter bei Aliexpress bezahlt, bei 2 Metern habt ihr also Kosten von etwas über 22 Euro für die Streifen.

In Sachen Ambilight gibt es hier 2 verschiedene Deckel zur Auswahl, mit denen ihr z.B. den Sekundenzeiger der Uhr oder das Ambilight als Gehäusebeleuchtung benutzen könnt. Im Deckel ist jeweils ein Kreis für die Anbringung der Streifen vorhanden. Der Umfang der Kreise ist berechnet für den Einsatz von 30 LEDs eines 60 LED pro Meter Streifens, bzw. 60 LEDs eines 144 LED pro Meter Streifens. Achtet darauf hier nicht unterschiedliche LED Typen zu mischen (z.B. SK6812 für die Matrix und WS2812 für das Ambilight)! Ich persönlich habe gute Erfahrungen mit den LEDs von "BTF Lighting" bei Aliexpress gemacht.

Hier geht es zur WordClock 12h (desk clock edition) bei Thingiverse


Sammelbestellungen

Sammelbestellung LED Stripes, Zwischenböden, Shields

Für die WC12h Variante der WordClock werden WS2812 Stripes als Spezialanfertigung mit einem Rastermaß von 28,1mm eingesetzt.

Es werden folgende WS2812 Pakete angeboten (WC12h):

  • Paket 5 (Uhr - STM32 Basis - WS2812) - 40,80Eur : 120 WS2812-LEDs als Stripe im Sonderabstand
  • Paket 6 (Ambilight - STM32 Basis - WS2812) - 20,40Eur : 60 WS2812-LEDs als Stripe im Sonderabstand

(durch die Umstellung des Ambilight Paketes auf 60 LEDs, kann die umlaufende Sekundenanzeige realisiert werden)

Für die WC24h werden die WS2812 Stripes nicht über eine Sammelbestellung bestellt, da hier das Standardformat genutzt wird.

Es werden folgende Zwischenböden angeboten:

  • Zwischenboden (WC12h) mit Ambilightausfräsung (MDF 19mm gefräst) - 39,50Eur
  • Zwischenboden (WC12h) ohne Ambilightausfräsung (MDF 19mm gefräst) - 39,50Eur
  • Zwischenboden (WC24h) ohne Ambilightausfräsung (MDF 19mm gefräst) - 62,50Eur

Es werden folgende Shields angeboten:

  • Shield für STM32 MiniDevBoard - 3,50Eur
  • Shield für STM32 NucleoBoard - 5,50Eur

Der Versand der Shields erfolgt als Großbrief:

  • innerhalb BRD – 4,00Eur
  • Österreich – 6,00Eur
  • Schweiz - 6,00Eur

Der Versand der WS2812-Stripes erfolgt als kleines Paket:

  • innerhalb BRD (ohne Inseln) – 6,50Eur
  • Österreich – 15,50Eur
  • Schweiz – in die Schweiz kann nur als normales Paket versendet werden, Kosten hierzu siehe unten

Der Versand mit Zwischenboden erfolgt als normales Paket:

  • innerhalb BRD (ohne Inseln) - 10,00Eur (bis 2 Böden)
  • innerhalb BRD (ohne Inseln) - 12,00Eur (bis 4 Böden)
  • innerhalb BRD (ohne Inseln) - 18,00Eur (ab 5 Böden)
  • Österreich – 20,00Eur (bis 2 Böden)
  • Österreich – 25,00Eur (bis 4 Böden)
  • Schweiz - 31,00Eur (bis 2 Böden)
  • Schweiz - 40,00Eur (bis 4 Böden)


Es fallen jeweils nur die höheren Versandkosten an.
Werden mehrere Pakete bestellt, können die tatsächlichen Versandkosten von den hier gezeigten Versandkosten abweichen. Diese ist dann von der bestellten Menge und dem Gewicht abhängig und wird dann entsprechend mitgeteilt.

Bei Interesse bitte per PN melden (Benutzer wawibu)

An Google-Mail-Benutzer:
gmail scheint in letzter Zeit Antwort-Mails mit µc.net im Betreff gerne in den Spam-Ordner zu schieben. Schaut also ab und zu in Euren Spam-Ordner, wenn Ihr auf eine Antwort wartet.


Zeitplanung

DatumAktion
bis 06.Oktober 2017Sammeln der Bestellungen
09.Oktober 2017Bestellung geht raus
~10.November 2017Anlieferung bei mir
~17.November 2017Versand

WC12h Sammelbestellung Frontplatten

Frontplatte: Dia
Frontplatte: Vollansicht
4-sprachige Frontplatte

Die Frontplatten bleiben identisch zu denen aus dem früheren WordClock-Projekt.

Die aktuelle Version, die auch für die Sammelbestellung gilt:

E S K I S T L F Ü N F    ==> ES IST FÜNF
Z E H N Z W A N Z I G    ==> ZEHN ZWANZIG
D R E I V I E R T E L    ==> DREI|VIERTEL
T G N A C H V O R J M    ==> NACH VOR
H A L B Q Z W Ö L F P    ==> HALB ZWÖLF
Z W E I N S I E B E N    ==> ZW|EI|N|S|IEBEN
K D R E I R H F Ü N F    ==> DREI FÜNF
E L F N E U N V I E R    ==> ELF NEUN VIER
W A C H T Z E H N R S    ==> ACHT ZEHN
B S E C H S F M U H R    ==> SECHS UHR

Damit ist es möglich, vier regionale Sprechweisen darzustellen:

Wessi-Modus:

 es ist ein uhr
 es ist fünf nach eins
 es ist zehn nach eins
 es ist viertel nach eins
 es ist zehn vor halb zwei
 es ist fünf vor halb zwei
 es ist halb zwei
 es ist fünf nach halb zwei
 es ist zehn nach halb zwei
 es ist viertel vor zwei
 es ist zehn vor zwei
 es ist fünf vor zwei

Rhein-Ruhr-Modus:

 es ist ein uhr
 es ist fünf nach eins
 es ist zehn nach eins
 es ist viertel nach eins
 es ist zwanzig nach eins
 es ist fünf vor halb zwei
 es ist halb zwei
 es ist fünf nach halb zwei
 es ist zwanzig vor zwei
 es ist viertel vor zwei
 es ist zehn vor zwei
 es ist fünf vor zwei

Ossi-Modus:

 es ist ein uhr
 es ist fünf nach eins
 es ist zehn nach eins
 es ist viertel zwei
 es ist zehn vor halb zwei
 es ist fünf vor halb zwei
 es ist halb zwei
 es ist fünf nach halb zwei
 es ist zehn nach halb zwei
 es ist dreiviertel zwei
 es ist zehn vor zwei
 es ist fünf vor zwei

Schwaben-Modus:

 es ist ein uhr
 es ist fünf nach eins
 es ist zehn nach eins
 es ist viertel zwei
 es ist zwanzig nach zwei
 es ist fünf vor halb zwei
 es ist halb zwei
 es ist fünf nach halb zwei
 es ist zwanzig vor halb zwei
 es ist dreiviertel zwei
 es ist zehn vor zwei
 es ist fünf vor zwei

Sammelbestellung Stand Juni 2017:

Es sind noch WC12h-Frontplatten in schwarz, rot und weiß aus der letzten Sammelbestellung übrig. Interessenten können sich bei mir (Benutzer ukw) melden.

An Google-Mail-Benutzer:
gmail scheint in letzter Zeit Antwort-Mails mit µc.net im Betreff gerne in den Spam-Ordner zu schieben. Schaut also bitte auch in Euren Spam-Ordner, wenn Ihr auf eine Antwort wartet.

Die Platten bestehen aus einer Plexi-Scheibe (3mm) in der Größe 45cm x 45cm und werden im Siebdruckverfahren (schwarz) bzw. im Digitaldruck (rot bzw. weiß) bedruckt. Die Lichtdichtigkeit wird durch das Auftragen mehrerer Farbschichten hergestellt. Für die Buchstaben und Minutenpunkte wird eine dünne weiße Schicht als Diffusor (Milchglaseffekt) verwendet.

Während bei den schwarzen Frontplatten die Buchstaben sehr gut optisch isoliert voneinander sind, bildet sich bei den weißen Platten prinzipbedingt um die leuchtenden Buchstaben herum eine Art "Halo". Das liegt daran, dass das Licht sich beim Eintritt in die Acrylglasplatte nach allen Seiten ausbreitet. Bei den schwarzen sieht man das wegen des schwarzen "Hintergrundes" nicht, bei den weißen jedoch schon. Dieser Effekt kann aber auch als Vorteil angesehen werden. Das ist eher Geschmackssache. Bei den roten Platten ist dieser Halo-Effekt weit weniger zu sehen, aber vorhanden.

Diese Variante heisst 'WC12h':

 - WC12h: 45cm x 45cm schwarze Grundfarbe mit weißer Schicht als Diffusor
 - WC12h-R: 45cm x 45cm rote Grundfarbe mit weißer Schicht als Diffusor
 - WC12h-W: 45cm x 45cm weiße Grundfarbe mit weißer Schicht als Diffusor

Preise pro Stück:

  - schwarz: 42,- EUR.
  - rot: 49,- EUR.
  - weiß: 49,- EUR.

Der höhere Preis für die roten und weißen Frontplatten kommt durch die geringere Auflage zustande.

Aus der letzten Sammelbestellung sind aufgrund einer Fehlproduktion der Druckerei von den schwarzen WC12h noch WC12h-Frontplatten übrig, welche 3,5mm kleiner sind, also lediglich 446,5mm x 446,5mm statt 450mm x 450mm groß sind. Diese lassen sich nur mit einem Rahmen - wie z.B. dem im Artikel empfohlenen Alu-Rahmen einsetzen. Für den rahmenlosen Einsatz eignen sie sich eher nicht, weil dann der Zwischenboden leicht übersteht. Auf diese Frontplatten gebe ich einen Preisnachlass von 10,- EUR.

Hinzu kommen noch 10 EUR Versandkosten für bis zu 4 Stück in einem Paket. Bei Versand in ein EU-Land kommen weitere 10 EUR hinzu, also insgesamt 20 EUR.

Die Frontplatte beinhaltet alle 4 Sprachversionen:

  • Wessi-Modus (viertel nach/vor)
  • Ossi-Modus (viertel/dreiviertel)
  • Rhein-Ruhr-Modus (viertel nach/vor, zwanzig nach/vor)
  • Schwaben-Modus (viertel/dreiviertel, zwanzig nach/vor)

WICHTIG:

Die Frontplatte wird mit einer kaum wahrnehmbaren Schutzfolie auf der Vorder- und Rückseite geliefert. Wenn man das nicht weiß, kann es so aussehen, als ob die Frontplatte "verkratzt" sei. Diese "Kratzer" sind aber nur auf der Schutzfolie, nicht auf der Platte selbst. Daher hier nochmal der ausdrückliche Hinweis: Bitte die Schutzfolie unmittelbar vor der Montage abziehen und sich dann freuen :-)

Kleber welcher den Aufdruck nicht beschädigt:

- UHU plus endfest 300 2K-Epoxidkleber


WC12h Sammelbestellung Edelstahl Frontplatten

Edelstahl126.jpg
Edelstahl139.jpg
Loch
Buchstabe

Eckdaten der Edelstahlblende:

 - Abmessungen: ca. 450x450x1 mm 
 - gelasert gem. dxf Vorgabe, 
 - Material 1.4301-2G, 
 - eins. K320 geschliffen/gebürstet, 
 - ohne weitere Nachbearbeitung, 
 - Layout unterscheidet sich von der Originaluhr

Verwendet wird hierbei die Schriftart Lucida Console allerdings erweitert. Die Schriftart hat Stege, so dass freie Inselteile (z. B. Innenteil O) nicht lose sind. Jeder Steg hat eine Breite von mind. 2mm.

Edelstahlfront V2.png

Die Buchstaben werden entsprechend ausgelasert und müssen von hinten noch mit einem Diffusor versehen werden. Der Diffusor ist nicht Bestandteil des Angebots.

Hinweise zum Diffusor findet ihr hier:
http://christians-bastel-leben.blogspot.de/2012/04/diffusorfolien.html

Er hat die Folien mit der schwarzen Platte getestet. Er sagt die besten Ergebnisse hatte er mit folgender Folie:
http://www.plexiglas-shop.com/DE/de/plexiglas-folie-5m9m5apyxic/plexiglas-folie-weiss-99532-gt-1-0-mm-iqq6a1wurpd~p.html

Eine Plexiglasplatte hatte ich auch getestet, doch war meine zu breit und sah dann nicht gut aus.


Aktueller Stand: 11.06.2017: Sammelbestellung ist abgeschlossen und Pakete auf der Post. Wer noch Interesse an einer Blende hat, bitte eine Nachricht hinterlassen. lch habe noch ein paar in Reserve (Benutzer hansa).

An Google-Mail-Benutzer:
gmail scheint in letzter Zeit Antwort-Mails mit µc.net im Betreff gerne in den Spam-Ordner zu schieben. Schaut also ab und zu in Euren Spam-Ordner, wenn Ihr auf eine Antwort wartet.

Preise der Blenden (31.01.2017):

 Frontblende:                  44 Euro (inkl.MwSt)
 Verpackung :                   5,-  Euro (2 x 3mm MDF, als Rückwand verwendbar)
 Versand per GLS: 5 Euro
 Versand in die Schweiz: 8 Euro (wird direkt in der Schweiz verschickt)


Für den Selbstnachbau hier die DXF-Datei Datei:EdelstahlFrontV2.dxf

ACHTUNG: Diese Dateidaten müssen um Faktor 10 vergrössert werden! Sonst kommt eine 45x45mm Platte an. 8-(


WC24h Sammelbestellung LED Stripes

Eine Sammelbestellung der LED-Stripes für die WC24h ist derzeit nicht geplant, da hier WS2812-Stripes mit dem Standard-Rastermaß von 60 LEDs/m benötigt werden. Diese sind sehr einfach bei eBay oder Amazon erhältlich.


WC24h Sammelbestellung Zwischenböden

Wir können nun auch die WC24h Zwischenböden über die Sammelbestellung anbieten.

  • Zwischenboden für Wordclock 24h (MDF 19mm gefräst) - 62,50Eur

Alle Details zu der Sammelbestellung ist weiter oben bei der WC12h Sammelbestellung beschrieben.



WC24h Sammelbestellung Frontplatten

WordClock24h
WordClock24h-rot

Die Frontplatte beinhaltet über ein Dutzend Sprachvarianten:

  • hh mm (12)
  • hh mm (24)
  • hh und mm (12)
  • hh und mm (24)
  • mm nach hh (12+)
  • mm nach hh (24)
  • Ossi/Berlin (12)
  • Ossi/Berlin (12+)
  • Oesi (12)
  • Oesi (12+)
  • Rhein/Ruhr (12)
  • Rhein/Ruhr (12+)
  • Schwaben (12)
  • Schwaben (12+)
  • Wessi (12)
  • Wessi (12+)
  • Countdown bis Mitternacht
  • Temperatur

Stand Juni 2017:

Aus der letzten Sammelbestellung sind noch schwarze, rote und weiße WC24h-Frontplatten übrig. Interessenten können sich bei mir (Benutzer ukw) melden.

An Google-Mail-Benutzer:
gmail scheint in letzter Zeit Antwort-Mails mit µc.net im Betreff gerne in den Spam-Ordner zu schieben. Schaut also ab und zu in Euren Spam-Ordner, wenn Ihr auf eine Antwort wartet.

Die Platten bestehen aus einer Plexi-Scheibe (3mm) in der Größe 45cm x 45cm und werden im Siebdruckverfahren (schwarz) bzw. im Digitaldruck (rot bzw. weiß) bedruckt. Die Lichtdichtigkeit wird durch das Auftragen mehrerer Farbschichten hergestellt. Für die Buchstaben und Punkte wird eine dünne weiße Schicht als Diffusor (Milchglaseffekt) verwendet.

Während bei den schwarzen Frontplatten die Buchstaben sehr gut optisch isoliert voneinander sind, bildet sich bei den weißen Platten prinzipbedingt um die leuchtenden Buchstaben herum eine Art "Halo". Das liegt daran, dass das Licht sich beim Eintritt in die Acrylglasplatte nach allen Seiten ausbreitet. Bei den schwarzen sieht man das wegen des schwarzen "Hintergrundes" nicht, bei den weißen jedoch schon. Dieser Effekt kann aber auch als Vorteil angesehen werden. Das ist eher Geschmackssache. Bei den roten Platten ist dieser Halo-Effekt weit weniger zu sehen, aber vorhanden.

Diese Variante heisst 'W24h':

 - WC24h: 45cm x 45cm schwarze Grundfarbe mit weißer Schicht als Diffusor
 - WC24h-R: 45cm x 45cm rote Grundfarbe mit weißer Schicht als Diffusor
 - WC24h-W: 45cm x 45cm weiße Grundfarbe mit weißer Schicht als Diffusor

Preise:

  - schwarz: 44,- EUR
  - rot: 49,- EUR
  - weiß: 49,- EUR

Der höhere Preis für die roten und weißen Frontplatten kommt durch die geringere Auflage zustande.

Hinzu kommen noch 10 EUR für Verpackungs- und Versandkosten für bis zu 4 Stück in einem Paket. Bei Versand in ein EU-Land kommen weitere 10 EUR hinzu, also insgesamt 20 EUR.

WICHTIG:

Die Frontplatte wird mit einer kaum wahrnehmbaren Schutzfolie auf der Vorder- und Rückseite geliefert. Wenn man das nicht weiß, kann es so aussehen, als ob die Frontplatte "verkratzt" sei. Diese "Kratzer" sind aber nur auf der Schutzfolie, nicht auf der Platte selbst. Daher hier nochmal der ausdrückliche Hinweis: Bitte die Schutzfolie unmittelbar vor der Montage abziehen und sich dann freuen :-)

Kleber welcher den Aufdruck nicht beschädigt:

- UHU plus endfest 300 2K-Epoxidkleber


Anhang

API

Die ESP8266-Firmware bietet eine API, über welche die Uhr konfiguriert werden kann. Diese API wird zum Beispiel von der Android-App genutzt, um die wichtigsten Einstellungen vorzunehmen. Allerdings ist die Kommunikation über die API momentan nur "One-Way", d.h. es können nur Befehle gesandt werden, aber keine momentanen Einstellungen abgerufen werden. Das wird zukünftig noch geändert, so dass auch sämtliche Konfigurationsparameter abgerufen und eingestellt werden können - analog zum Webinterface.

Der ESP8266 horcht auf UDP-Port 2424, die UDP-Messages sind zwischen 1 und 7 Bytes lang. Das erste Zeichen ist immer ein Buchstabe, z.B. 'C'. Die weiteren Parameter sind jeweils Bytes, welche binär codiert sind, also 1 Parameter = 1 Byte. Es wird KEIN Abschluss-Zeichen, etwa ein '\n' oder sonstiges gesandt.

API Kommandotabelle

C r g b [w]    - Farben (Colors) setzen
                   r =  0 ... 63        Rot
                   g =  0 ... 63        Grün
                   b =  0 ... 63        Blau
                   w =  0 ... 63        Weiß (nur bei SK6812-RGBW)
D m            - Anzeigemodus (Display-Mode) setzen
                 WC12h:
                   m =  0               Wessi
                   m =  1               Ossi
                   m =  2               Rhein-Ruhr
                   m =  3               Schwaben
                   m =  4               Schweizerdeutsch 1
                   m =  5               Schweizerdeutsch 2
                   m =  4               Englisch 1
                   m =  5               Englisch 2


                 WC24h:
                   m =  0               hh mm (12)
                   m =  1               hh mm (24)
                   m =  2               hh und mm (12)
                   m =  3               hh und mm (24)
                   m =  4               mm nach hh (12+)
                   m =  5               mm nach hh (24)
                   m =  6               Ossi/Berlin (12)
                   m =  7               Ossi/Berlin (12+)
                   m =  8               Oesi (12)
                   m =  9               Oesi (12+)
                   m = 10               Rhein/Ruhr (12)
                   m = 11               Rhein/Ruhr (12+)
                   m = 12               Schwaben (12)
                   m = 13               Schwaben (12+)
                   m = 14               Wessi (12)
                   m = 15               Wessi (12+)
A a            - Animation setzen
                   a =  0               Keine Animation
                   a =  1               Keine
                   a =  2               Fade
                   a =  3               Roll
                   a =  4               Explode
                   a =  5               Random
                   a =  6               Snake
                   a =  7               Teletype
                   a =  8               Cube
                   a =  9               Matrix
                   a = 10               Drop
                   a = 11               Squeeze
                   a = 12               Flicker
F f            - Farbanimation setzen
                   f =  0               Farbanimation aus
                   f =  1               Farbanimation Rainbow
B b            - Helligkeit (Britghtness) setzen
                   b =  0 ... 15        Helligkeit
L l            - Automatische Helligkeitsregelung
                   l =  0               Regelung aus
                   l =  1               Regelung an
P p            - Power
                   p =  0               Power off
                   p =  1               Power on
W              - Temperaturanzeige aktivieren
T y m d h i s  - Datum/Zeit (Time) setzen:
                   y =  0 ... 99        Jahr seit 2000
                   m =  1 ... 12        Monat
                   d =  1 ... 31        Tag im Monat
                   h =  0 ... 23        Stunde
                   i =  0 ... 59        Minute
                   s =  0 ... 59        Sekunde
gT x           - Tetris
                   x = s                Tetris starten
                   x = l                Links
                   x = r                Rechts
                   x = d                Unten
                   x = u                Hoch (hier: Drehen)
                   x = m                Fallenlassen
                   x = q                Quit: Beenden

Historie der Hardware-Versionen

Shield für STM32 MiniDevBoard (ältere Versionen)

Vorgestellt werden hier ältere Versionen des MiniDev Shields.



Version 1:
Das Board ist 38x110mm und verbindet alle Komponenten miteinander.
Dieses Board ist die optimale Variante für die klassische 10x11 WordClock. Es enthält alle Schnittstellen für die WordClock und ist für die WC12 als auch für die WC24 Variante geeignet.
MiniShield Vorderseite.jpg
Das Board von der Rückseite
MiniShield Rueckseite.jpg
Das Board soweit bestückt - es fehlt hier noch das STM32. Das STM32 MiniDevBoard sollte direkt ohne weiteren Sockel auf das Shield gelötet werden.
MiniShield Bestueckt.jpg
Hier nun das vollbestückte Shield, incl STM32, ESP8266, RTC, DS1820, AMS1117
MiniShield Bestueckt incl STM32.jpg
Der Schaltplan des MiniDevBoards:
Einzige Abweichung: +5V ist an die UART Schnittstelle mit raus geführt.
MiniShield Schaltplan.jpg


Version 2:
Die v2 enthält folgende Anpassungen:
  • am UART ist nun auch +5V ausgeführt
  • Rastabstand bei DS3231, TSOP, LDR, Data sind nun einheitlich und können somit mit einem durchgehenden PinHeader bestückt werden
  • die Pins für das DS3231 sind gespiegelt. Damit liegt die Batterie nun oben und steht nicht mehr nach unten über
  • Es wurde die Abschaltschaltung für die 5V Versorgung der WS2812 Streifen eingebaut. Somit kann optional die Versorgungsspannung geschaltet werden.
MiniDev v2 TOP.jpg
Das Board von der Rückseite.

Im Lieferzustand ist die Abschaltschaltung gebrückt. Wird die Abschaltschaltung eingebaut, muss auf der Unterseite eine Leiterbahn durchtrennt werden! Diese ist hier rot umrandet!

MiniDev v2 BOTTOM.jpg
Bestückte Bilder folgen noch.
Der Schaltplan des MiniDevBoards als V2:
MiniDev v2 Schematic.jpg


Version 3:
Die v3 enthält folgende Anpassungen:
  • Es wurden CI / DI für APA102 Stripes rausgeführt
  • Es wurden zwei Taster (WPS / User) hinzugefügt
  • Im Bestückungsdruck sind nun auch die Bauteilbezeichnungen aufgeführt
  • Wechsel auf ESP12-F


WC MiniDev Shield v3 Bestueckung.png
Das bestückte MiniDev Shield:

Das MiniDev Shield ohne bestückten STM. Auf dem Bild sind die Bauteile für folgenden Ausbau bestückt:

  • ohne TSOP
  • ohne LDR
  • ohne DCF
MiniDev v3 01.jpg
Bei bestückten STM32 kann man gut erkennen, dass leider der 4-Pin-Header für den UART Anschluss sowie der 3-Pin-Header für PROG/RUN jeweils mit einem Pin unter dem Shield liegen.
  • Beim UART Anschluss wird einfach nur ein 3-Pin-Header verwendet und +5V nicht angeschlossen. Was keine Funktionsbeeinträchtigung bedeutet.
  • Der 3-Pin-Header für PROG/RUN kann nicht direkt bestückt werden. Stattdessen muss hier mit einer 3-adrigen-Verlängerung gearbeitet werden.

Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss mit dem BOOT0 Pin auf dem Shield verbunden.

MiniDev v3 02.jpg
Im Lieferzustand ist die Abschaltschaltung nicht mehr gebrückt. Daher ist nun folgendes zu beachten:
  • Wird die Abschaltschaltung eingebaut, muss nur die zusätzlich notwendigen Bauteile bestückt werden
  • Wird die Abschaltschaltung nicht eingebaut, muss eine Drahtbrücke gesetzt werden (als Draht kann z.B. das abgeknipste Ende eines Widerstandes genutzt werden, für die WC24h dann ggf. zwei Drähte nutzen).
MiniDev v3 03.jpg
Der Schaltplan des MiniDev Shields als V3:
WC MiniDev Shield v3 Schaltplan.png

Shield für STM32 Nucleo-Board (ältere Versionen)

Vorgestellt werden hier ältere Versionen des Nucleo Shields.



Version 1:
Das Shield ist 90mm*55mm klein und wird auf das nucleo-Board aufgesteckt. Es enthält alle bekannten Schnittstellen für die WordClock (egal ob 12h oder 24h) und ist zusammengebaut ca 19mm hoch.

Es passt somit problemlos in eine Aussparung des Zwischenbodens.

Ns-Bild1.JPG
Ebenfalls integriert sind Anschlüsse, um den abgesägten ST-Link zur Programmierung oder Kommunikation über UART mit dem PC zu verbinden. Dabei muss der abgesägte ST-Link von interner auf externe Programmierung umgestellt werden. Dazu zieht man beide Jumper an CN2 auf dem ST-Link (rechts neben dem SWD-Header) ab. Wichtig ist, auch noch eine Verbindung vom SWD-Header Pin1 (VDD ganz oben) zu 3V3 des Nucleo-Teils herzustellen. Das ST-Link misst über VDD -> 3V3 die Betriebsspannung des STM32.
STLink-to-Nucleo.png
Beschreibung der Schnittstellen:

Die Belegung der meisten Schnittstellen ergibt sich aus den nebenstehenden Bildern. Um das RTC Modul, welches entweder ein DS3231 oder ein DS1307 sein kann, mit Spannung zu versorgen, gibt es die Stiftleiste St-07, welche mit einem Jumper die Spannung am RTC Modul auf 3,3V oder 5V einstellt. Die Stiftleiste St-04 kann per Pfostenfeldbuchse und Flachbandkabel insgesamt 8 mal die Spannung in die WS2812 Streifen einspeisen (siehe Beispiel weiter oben im Artikel).

Ns-sh2.JPG
In dem nebenstehenden Bild ist das bestückte Nucleo Board zu sehen. Die einzelnen Module werden hier rechts und links an den überstehenden Pins angebracht.
Nucleo bestueckt.JPG


Version 2:
Seit Juli 2016 wird das Nucleo-Shield in der Version V2.1a ausgeliefert.

Es enthält jetzt auch die Möglichkeit, die Abschaltung der WS2812 LEDs per Hardware vorzunehmen. Dazu wurden die entsprechenden Bauteile auf das Board gepackt. Außer dem Leistungs MOSFET IRF9310 wurde alles in bedrahteter Technik ausgeführt. Wer die Bauteile für die Abschaltung (T1, T2, D1, R7, R8 und R9) NICHT einbaut, muss, wie in nebenstehendem Bild gezeigt, vier Lötbrücken einbauen.

Analog dazu muss derjenige, der die Abschaltung einbaut, die Lötbrücken offen lassen (siehe unteres Bild, roter Kreis).

IMG 0366mod.jpg
Der Anschluss der externen Komponenten erfolgt nach neben stehendem Schaltplan an das nucleo Board.
Nucleo-Shield.jpg
Leider haben sich zwei Bugs in den Platinenentwurf eingeschlichen.

Zum einen gibt es Kurzschlüsse an den Pluspolen der Kondensatoren C1 und C3. Der Workaround besteht darin, das Bohrloch etwas aufzuweiten, um die ungewünschte Verbindung zu Masse zu trennen (siehe Bild)

NS Bug-1.jpg
Der zweite Bug betrifft nur diejenigen, die die hardwaremäßige Abschaltung der WS2812 LEDs einbauen.

Hier muss, wie im nebenstehenden Bild gezeigt, eine kleine Verbindung mit einem Stück Kabel hergestellt werden.

NS Bug-2.jpg

Das Shield muss über St-08 mit 5V versorgt werden. Die für die Schnittstellen benötigten 3,3V wird auf dem Shield selbst mit einem LM3940-3.3 erzeugt.

Hier findet ihr die Stückliste zum Nucleo-Board und den Link zum öffentlichen Reichelt Warenkorb (noch ohne T1, T2, D1, R7, R8 und R9).

Datei:Wc24wk.pdf


Version 3:
Die v3 enthält folgende Anpassungen:
  • Es wurden CI / DI für APA102 Stripes rausgeführt
  • Es wurde ein Taster (WPS) hinzugefügt
  • Im Bestückungsdruck sind nun auch die Bauteilbezeichnungen aufgeführt
  • Wechsel auf ESP12-F
  • Komplettes Redesign


WC Nucleo Shield v3 Bestueckung.png
Das bestückte Board:

Das Nucleo Shield ohne bestückten STM. Auf dem Bild sind die Bauteile für folgenden Ausbau bestückt:

  • ohne TSOP
  • ohne LDR
  • ohne DCF
Nucleo v3 01.jpg
Das Nucleo Shield mit bestücktem Nucleo-Board.
Nucleo v3 02.jpg
Im Lieferzustand ist die Abschaltschaltung nicht mehr gebrückt. Daher ist nun folgendes zu beachten:
  • Wird die Abschaltschaltung eingebaut, müssen nur die zusätzlich notwendigen Bauteile bestückt werden. Hierbei zeigt die abgeflachte Kante des IRF9310 zur Platinenkante (Pin 1 befindet sich also bei "IRF" des Bestückungsdrucks).
  • Wird die Abschaltschaltung nicht eingebaut, muss eine Drahtbrücke gesetzt werden.
Nucleo v3 03.jpg
Der Schaltplan des Nucleo Shields als V3:
WC Nucleo Shield v3 Schaltplan.png

Anschluss ESP8266 ESP-01

Das ESP-01 Modul wurde lediglich bei den älteren Shields verwendet. Mittlerweile (ab Shield v3) wird es nicht mehr verwendet, weil es durch das ESP-12F ersetzt wurde.

ESP8266 ESP-01: WLAN Modul

Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!

Anschlüsse Nucleo-Board:

  • ESP8266 GND an GND
  • ESP8266 VCC an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)
  • ESP8266 CH_PD an PA6
  • ESP8266 RST an PA7
  • ESP8266 GPIO0 an PA4 (NEU!)
  • ESP8266 TXD an USART6 RX (PA12)
  • ESP8266 RXD an USART6 TX (PA11)

Anschlüsse STM32F103-Mini-Development-Board:

  • ESP8266 GND an GND
  • ESP8266 VCC an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)
  • ESP8266 CH_PD an PA1
  • ESP8266 RST an PA0
  • ESP8266 GPIO0 an PA4
  • ESP8266 GPIO2 via 10k an externe 3,3V
  • ESP8266 TXD an USART2 RX (PA3)
  • ESP8266 RXD an USART2 TX (PA2)

Ab der Software Version 2.1.0 sind der HTML-Codegenerator und die Schnittstelle zu Android-Geräten (Kommando-Interpreter) auf den ESP8266 ausgelagert. Deshalb ist ein ESP-Modul für das Betreiben der WordClock unbedingt erforderlich.

Umbau von ESP-01 auf ESP-12F

Die älteren Shields, welche noch den Anschluss für den ESP-01 haben, können auf das ESP-12F umgebaut werden. Dafür besorgt man sich zusätzlich zum ESP-12F einen Adapter wie diesen hier:

http://www.ebay.de/itm/PCB-Adapter-ESP-07-12-Board-fuer-ESP8266-WIFI-Wlan-Serial-Modul-ESP-12E-E-/252713824790

Dieser hat die Widerstände R2 und R3 auch schon direkt auf dem Adapter. Lediglich die Widerstände R1 und R4 (siehe Schaltbilder rechts) müssen beim STM32F103-Mini-Board zusätzlich angebracht werden, siehe unten. Beim Nucleo-Board ist der Pulldown an BOOT0 bereits auf der Nucleo-Platine integriert.

Prinzipschaltbild für Mini-Board

Steckverbinder K1 - Dieser entspricht dem bisherigen ESP-01-Steckverbinder:

  • ESP8266 GND an GND
  • ESP8266 VCC an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)
  • ESP8266 CH_PD über 10k Pullup an 3,3V
  • ESP8266 RST an PA0
  • ESP8266 GPIO0 an PA4
  • ESP8266 TXD an USART2 RX (PA3)
  • ESP8266 RXD an USART2 TX (PA2)

Steckverbinder K2 - Zusätzliche Verbindungen:

  • ESP8266 GPIO13 an USART1 TX (Pa9)
  • ESP8266 GPIO15 an USART1 RX (Pa10) und an Pulldown 10k
  • ESP8266 GPIO14 an R (STM32F103-Mini-Development-Board RESET)
  • ESP8266 GPIO4 an BOOT0-Jumper (Mittlerer Anschluss) und an Pulldown 10k

Die Anschlüsse, die zu K1 im Prinzipschaltbild führen, können per Kabel an die 8-pol. Buchse, welche für den ESP-01 vorgesehen ist, herangeführt werden. Die Anschlüsse, die zu K2 im Schaltplan führen, müssen direkt an die entsprechenden Pins des Mini-Board-Shields per zusätzlichem Kabel gelötet werden.

Prinzipschaltbild ESP8266 ESP-12F an MiniBoard STM32F103
Prinzipschaltbild für Nucleo

Steckverbinder K1 - Dieser entspricht dem bisherigen ESP-01-Steckverbinder:

  • ESP8266 GND an GND
  • ESP8266 VCC an externe 3,3V (Vorsicht: Modul zieht bis zu 200mA!)
  • ESP8266 CH_PD über 10k Pullup an 3,3V
  • ESP8266 RST an PA7
  • ESP8266 GPIO0 an PA4
  • ESP8266 TXD an USART6 RX (PA12)
  • ESP8266 RXD an USART6 TX (PA11)

Steckverbinder K2 - Zusätzliche Verbindungen:

  • ESP8266 GPIO13 an USART1 TX (Pa9)
  • ESP8266 GPIO15 an USART1 RX (Pa10) und an Pulldown 10k
  • ESP8266 GPIO14 an Nucleo RESET
  • ESP8266 GPIO4 an Nucleo BOOT0

Die Anschlüsse, die zu K1 im Prinzipschaltbild führen, können per Kabel an die 8-pol. Buchse, welche für den ESP-01 vorgesehen ist, herangeführt werden. Die Anschlüsse, die zu K2 im Schaltplan führen, müssen direkt an die entsprechenden Pins des Nucleo-Shields per zusätzlichem Kabel gelötet werden.

Prinzipschaltbild ESP8266 ESP-12F an Nucleo STM32F4xx
Beim Mini-Board findet man den Pin BOOT0 verborgen unter dem oberen Jumper - siehe Bild rechts. Dieser muss entfernt werden. Anschließend verbindet man den ESP-12F-Anschluss D16 (GPIO16, ab Version 2.6.0: D4, also GPIO4) mit dem mittleren Pin des Jumper-Anschlusses. Bei der Gelegenheit kann dann auch der Pulldown-Widerstand R1 zwischen B00T0 und dem Nachbar-Pin ("0") angebracht werden.

Beim Nucleo-Board wird der Pin BOOT0 bereits per 10k Pulldown auf Low-Pegel gezogen. Hier kann der ESP-Pin GPIO16 (ab Version 2.6.0: GPIO4) direkt ohne zusätzlichen Pulldown an BOOT0 angeschlossen werden. Zu beachten ist hier lediglich, dass kein Jumper auf Pin5-7 von CN7 steckt. Dies ist aber standardmäßig sowieso nicht der Fall.

Anschluss ESP8266 ESP-12F an BOOT0 des STM32F103-MiniBoards

Historie der Software-Versionen

Android App

APP Version 2.6.1

Behobene Fehler:

  • Animations- und Anzeigelisten konnten nicht gescrollt werden
  • Titel der Animations- und Modus-Dialoge war falsch (%d wählen)
  • Display Ein und Aus zeigten als Meldung immer "Display Ein gesendet!"

Änderungen:

  • Farbregler automatisch verbergen, wenn Regenbogen-Farbanimation gewählt wurde
  • Automatische IP-Suche
  • Laden und Speichern der Profile in einem Dialog zusammengefasst
  • Info anzeigen, wenn beim Starten keine Netzwerkverbindung besteht

APP Version 2.6.0

  • Neu: Beim Start (oder auf Knopfdruck) werden die aktuellen Einstellungen von der Uhr geladen.
  • Neu: Es können bis zu vier Profile angelegt werden, um die Einstellungen für bis zu vier Uhren zu steuern.
  • Neu: Gamepad für Spiele wie z.B. Tetris

APP Version 2.1.0

  • Alle aktuell vorgesehenen Animationen können nun vollständig über die App ausgewählt werden
  • RGBW-LED-Unterstützung: Unter dem Menü "Einstellungen" kann nun eingestellt werden, dass RGBW-LEDs eingesetzt werden.
  • Die Oberfläche ist nun "scrollable", kann also bei kleineren Mobilgeräten, wo nicht alles draufpasst, gerollt werden.

APP Version 1.9.0

  • Neue Animationen Snake, Teletype und Cube nun auch über die App einstellbar

APP Version 1.8.0

  • Manuelles Stellen von Datum/Uhrzeit über Menü -> Synchronisieren
  • Auswählen der Farbanimation "Rainbow"

APP Version 1.7.0

  • Button für Temperaturanzeige eingebaut

ESP8266 Firmware

ESP Version 2.6.6

  • OTA-Flash des STM32: Der Flash-Inhalt wird nun erst unmittelbar vor dem eigentlichen Flash-Vorgang gelöscht, d.h. nach allen Konsistenzprüfungen.

ESP Version 2.6.4

  • Bugfix in Local Update über OTA: Es wurde in V2.6.3 immer diejenige Datei geflasht, die zuletzt über das Remote Update heruntergeladen wurde.

ESP Version 2.6.3

  • Diverse Korrekturen in den STM32-OTA-Flash-Routinen.

ESP Version 2.6.2

  • Anpassung des Bootloaders an Nucleo STM32F4xx.
  • Ambilight-Mode Clock: 5 Sekunden Marker nun an- und abschaltbar.

ESP Version 2.6.1

  • Bugfix: Das aktuelle Datum/Uhrzeit wurde im Webinterface nicht angezeigt.

ESP Version 2.6.0

  • Neu: WPS Button im Webinterface
  • Neu: Liste der verfügbaren Access-Points im Webinterface.
  • Neu: Abschaltbares Ambilight per WebInterface - ungetestet.
  • Neu: Ein-/Ausschalten des Ambilights über Timer - ungetestet.
  • Neu: Konfigurierbare Helligkeitskurve bei automatischer oder manueller Regelung.
  • Neu: Geschwindigkeitsregelung der Ticker-Texte
  • Neu: OTA-Update des STM32 nun auch mit Upload vom lokalen PC aus möglich.
  • Neu: Konfigurierbarer Host und Pfad für OTA-Updates - geplant für die zukünftige Herausgabe von Pre-Testversionen im neuen Pfad "test".

ESP Version 2.5.0

  • Neu: Unterstützung des ESP8266 ESP-12F
  • Neu: Einspielen von Updates für ES8266 und STM32 über OTA ("over the air").
  • Bugfix: Eingabe einer negativen Temperatur-Korrektur wird in einen positiven Wert geändert.

ESP Version 2.4.0

  • Neue Animation "Flicker"
  • Neues Piktogramm "Fireworks"

ESP Version 2.3.0

  • Auswahl der Piktogramme "Heart" und "Xmas Tree".

ESP Version 2.2.0

  • Diverse Verbesserungen bei der Kommunikation zwischen STM32 und ESP8266

ESP Version 2.1.0b

  • Bugfix - Umlaute in Wettertexten wurden nicht korrekt gezeigt. Konvertierung der Umlaute von openweathermap-Inhalten von UTF8 nach ISO8859 nachgeholt.

ESP Version 2.1.0a

  • Bugfix - beim Wechseln in den AP-Modus wurde fälschlicherweise "0.0.0.0" als IP-Adresse statt 192.168.4.1 ausgegeben.

ESP Version 2.1.0

  • Auslagerung des HTML-Codegenerators auf den ESP8266
  • Auslagerung der Schnittstelle zu Android-Geräten (Kommando-Interpreter) auf den ESP8266

ESP Version 1.2.0

  • Neu: Ausgabe des WLAN-Modus: WLAN-Client oder AP

ESP Version 1.1.0

  • Fehler im NTP-Client behoben: Bei vorherigen Timeouts kann eine alte Uhrzeit ausgegeben werden

STM32 WordClock Software

STM32 Version 2.6.6

  • Anzahl der möglichen Ambilight-LEDs einheitlich auf 120 erhöht.
  • Bugfix: Ermittlung der Hardware-Konfiguration für HEX-Datei-Vorschlag beim OTA-Update korrigiert.
  • Maximal möglichen Wert für Ticker-Verögerung ("Deceleration") auf 16 beschränkt.
  • Bugfix I2C-Treiber (betrifft RTC & EEPROM): Busy-Condition nach StopBit-Generierung wurde bisher nicht beachtet.
  • Plausibilitäts-Tests auf EEPROM-Werte verbessert.

STM32 Version 2.6.5

  • Optimierung: Double-Buffering für SK6812-DMA-Transfer - analog zu WS2812 in Version 2.6.4.
  • Bugfix: Update von undefinierten EEPROM-Inhalten, welche in 2.6.x zu Hangups führen konnten.
  • Bugfix: Nach Spielen von Tetris wurde nicht immer die aktuelle Uhrzeit wieder eingeblendet

STM32 Version 2.6.4

  • Verlängerung der Pausen für WS2812 auf 300us.
  • Verschäfte Plausibilitätsprüfungen für EEPROM-Inhalte, ggfls. RESET auf Standardwerte.

STM32 Version 2.6.3

  • Bugfix: Flackern bzw. versetztes Ausgabe der Display-LEDs durch Double-Buffering behoben.

STM32 Version 2.6.2

  • Änderung: 5-Sekunden-Marker für Ambilight-Modus "Clock" ist nun ein-/abschaltbar.

STM32 Version 2.6.1

  • Bugfix: Ein-/Ausschalten des Ambilights inkl. Timer funktioniert nun.
  • Bugfix: Anzeige von Datum und Uhrzeit im Webinterface.
  • Änderung: Schweizerdeutsch 2: Unterdrückung der Anzeige von "UHR".
  • EmBitz: Compiler-Optimierung von -O2 auf -Os gesetzt

STM32 Version 2.6.0

  • Neu: WPS Button, damit ESP8266 sich per WPS mit dem Router (AccessPoint) verbinden kann.
  • Neu: Liste der verfügbaren Access-Points im Webinterface.
  • Neu: Abschaltbares Ambilight per WebInterface.
  • Neu: Ein-/Ausschalten des Ambilights über Timer.
  • Neu: Ambilight-Animation "Clock" jetzt mit 5-Sekunden-Marker.
  • Neu: Konfigurierbare Helligkeitskurve bei automatischer oder manueller Regelung.
  • Neu: Geschwindigkeitsregelung der Ticker-Texte
  • Neu: OTA-Update des STM32 nun auch mit Upload vom lokalen PC aus möglich.
  • Neu: Konfigurierbarer Host und Pfad für OTA-Updates - geplant für die zukünftige Herausgabe von Pre-Testversionen im neuen Pfad "test".
  • Optimierung der DS18xx/OneWire/Delay-Funktionen, um die Prozessorlast zu minimieren.
  • Bugfix: Falsche Berechnung von Überläufen in CLOCK2-Animation für Ambilight (Anzahl Ambilight-LEDs = 30) korrigiert.
  • Bugfix: Diverse Korrekturen in Layout English2 für WC12h.
  • Neu: Zusätzliches Layout für WC12h: "Schweizerdeutsch 2".
  • Neu: WCtris, noch ein Tetris-Clone ;-)
  • Änderung Verbindung zwischen ESP-12F und STM32: GPIO4 (und nicht mehr GPIO16) muss nun mit BOOT0 des STM32 verbunden werden
  • Umstellung der IDE von EmBlocks 2.3.0 auf EMBitz 1.11.

STM32 Version 2.5.0

  • Neu: Einspielen von Updates für ES8266 und STM32 über OTA ("over the air").
  • Bugfix: Eingabe einer negativen Temperatur-Korrektur wird in einen positiven Wert geändert.
  • Optimierungen der LED-Treiber zwecks Minimierung des RAM-Speicherverbrauchs.

STM32 Version 2.4.2

  • Neu: Hochauflösendes animiertes Piktogramm "Fireworks" für WC24h.
  • Bugfix: Auftretendes Glimmen nach Anzeige eines Piktogramms eliminiert.
  • Bugfix WC24h: Anzeige Ossi-Modus: ES IST EINE MINUTE(N) NACH NEUN.
  • Bugfix WC24h: Nach Anzeige des Datums wurde die Uhrzeit nicht vollständig aktualisiert.

STM32 Version 2.4.1

  • Bugfix: Date-Intervall wurde fälschlicherweise als Fireworks-Interval gespeichert.

STM32 Version 2.4.0

  • Variable Größen der Piktogramme.
  • Sanftes Ein- und Ausblenden (Fading) der Piktogramme.
  • Piktogramme können nun animiert werden.
  • Neues animiertes Piktogramm "Feuerwerk" für Silvester.
  • Neue Animation "Flicker".
  • Anzeige des aktuellen Datums als Laufschrift.
  • Optimiertes Auslesen des DS18xx, um Verzögerungen in der Sekundenanzeige (Ambilight Clock) zu vermeiden.
  • UART-Ringbuffer vergrößert zwecks Stabilisierung des ESP8266-Flashvorgangs.
  • Unterstützung von neuen Layouts für Schweizerdeutsch und Englisch (nur WC12h).

STM32 Version 2.3.5

  • Erkennung des (nicht existenten) externen Pullups verbessert durch Delay vor Messung.
  • Piktogramme Heart und Xmas-Tree werden nun in einer höheren Auflösung (16x16) auf der WC24h angezeigt.

STM32 Version 2.3.4

  • Bugfix: Piktogrammanzeige bei automatischer Helligkeitsregelung korrigiert.
  • Bugfix: Piktogramme werden bei Power-Off nicht mehr angezeigt.

STM32 Version 2.3.3

  • Bugfix: Compiler-Warnungen für SK6812-RGBW beseitigt.

STM32 Version 2.3.2

  • Bugfix: Anzeigefehler von Piktogrammen auf WC24h behoben.

STM32 Version 2.3.1

  • Bugfix: Anzeige von Piktogrammen bei gleichzeitiger Rainbow-Animation zu kurz.

STM32 Version 2.3.0

  • Bugfix: Ineinanderschieben von Buchstaben bei Ticker-Anzeige behoben.
  • Bugfix: Änderungen von Weiß-Werten bei SK6812-RGBW wurden nicht mehr übernommen.
  • Piktogramme "Heart" und "Xmas Tree" eingebaut.
  • Unterstützung für WS2812 mit Reihenfolge RGB statt GRB.
  • Spezielle Compiler-Warnungen bei erhöhter Warnstufe beseitigt.

STM32 Version 2.2.4

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

STM32 Version 2.2.3

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

STM32 Version 2.2.2

  • Bugfix: Regeln der weißen SK6812-RGBW-LED im Browser funktionierte in Version 2.2.1 nicht mehr.

STM32 Version 2.2.1

  • 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.

STM32 Version 2.2.0

  • Bugfix: Die Anzeigedauer der Temperatur ist nun nicht mehr von der Dauer der Animation abhängig.
  • Bugfix Ambilight: Nach "Test Display" wurde die ursprüngliche Helligkeit des Ambilight nicht wieder hergestellt.
  • Bugfix AP-Mode: Durch einen Timeout bei der ESP8266-Kommmunikation wurden die Vorgabewerte fürs Web-Interface nicht übertragen.
  • RX-Ringbuffer ESP8266 -> STM32 von 128 auf 256 vergrößert.
  • Timeout-Behandlung bei der Kommunikation zwischen STM32 und ESP8266 verbessert.
  • Web-Interface: Checkbox "Use display colors" wurde auf die Seite "Ambilight" verschoben.
  • WC12h Bugfix: Umlaute werden in der Laufschrift immer als Großbuchstaben angezeigt.
  • WC12h: Font zur Laufschriftanzeige durch besser lesbaren Font ersetzt.
  • WC24h: Korrektur der Anzeige von "ES IST EINS UHR" nach "ES IST EIN UHR" in bestimmten Anzeigemodi.
  • Bugfix SK6812: Rot und Grün vertauscht.
  • Bugfix LDR: Nach dem Setzen eines neuen LDR-Max-Wertes wurde dieser nicht zurück an das Web-Interface übertragen und deshalb dort (bis zum nächsten Reboot) ein alter Max-Wert angezeigt.

STM32 Version 2.1.0

  • Auslagerung des HTML-Codegenerators auf den ESP8266, damit Code-Ersparnis auf dem STM32 von 14KB Flash.
  • Auslagerung der Schnittstelle zu Android-Geräten (Kommando-Interpreter) auf den ESP8266
  • Optional: Laufschrift mit dem aktuellen Wetter (über openweathermap.org)
  • Unterstützung SK6812 (optional, RGBW-LEDs)
  • Verbesserungen bei der LDR-Umgebungshelligkeitsmessung
  • Wegfall der Schaltfläche "Save all" im Web-Interface. Nun werden sämtliche geänderten Konfigurationsdaten sofort auch im EPROM neu gespeichert.
  • Bugfix: DS18xx-Temperatur-Korrekturwert wurde bisher als RTC-Temperatur-Korrekturwert im EEPROM gespeichert.
  • Bugfix: Bei der manuellen Eingabe des aktuellen Datums/Uhrzeit im Webinterface wurde das Jahr bisher als "Zufallszahl" gespeichert, wenn der ESP8266 im AP-Modus läuft, weil kein WLAN vorhanden ist.

STM32 Version 2.0.7

  • URL-Fehler im Web-Interface korrigiert für Rainbow-Geschwindigkeit und Temperatur-Anzeige-Intervall
  • Fehlende Berücksichtigung der Animation-Geschwindigkeiten in "Random" eingebaut
  • Default-Werte für einstellbare Verzögerungen der Animationen auf WC12h verdoppelt

STM32 Version 2.0.6

  • Neue Animation "Drop"
  • Neue Animation "Squeeze"
  • Geschwindigkeitsregler für sämtliche Animationen
  • Angaben von Favoriten für die Animationen, die dann bei der Random-Animation ausgewählt werden sollen
  • Geschwindigkeitsregler für Rainbow - sowohl für Display als auch für Ambilight
  • Angabe von Temperaturkorrekturen für DS18xx als auch für RTC in Schritten von 0,5°C bei Selbsterwärmung
  • LED-Kalibrierung durch Messen vom dunkelsten und hellsten Wert manuell im Web-Interface möglich - ungetestet!
  • Clock und Clock2 auf dem Ambilight laufen nun je nach Einstellung in der Display-Farbe oder selbstständig in der Ambilight-Farbe
  • Temperatur-Anzeige auf der WC12h nun nicht mehr als Laufschrift, sondern durch zwei große Ziffern auf dem Display. Wenn die Temperatur xx,5°C und nicht xx,0°C beträgt, wird das "standesgemäß" auf der WC12h durch zwei leuchtende Minuten-LEDs angezeigt. Die Anzeige der Minuten-LEDs ist ungetestet.
  • Angabe eines Intervalls, wie oft die Temperatur automatisch eingeblendet werden soll. Bei "1" wird die Temperatur einmal pro Minute eingeblendet, nämlich immer um hh:mm:30. Bei Angabe von z.B. "5" passiert das dann halt nur noch alle 5 Minuten. Wird 0 oder nichts eingegeben, wird keine Temperatur automatisch eingeblendet.

STM32 Version 2.0.5

  • Neue Animation: "Matrix".
  • Bugfix: Fehler in Timerfunktion am Wochenende behoben.
  • Bugfix: Fehlerhafte Offset-Berechnung in Ambilight-Animation "Clock2" korrigiert.

STM32 Version 2.0.4

  • Bugfix: Ambilight leuchtete im Synchronmodus in Rainbow-Animation nach Abschalten durch Timer weiter. Die LEDs werden nun komplett abgeschaltet.
  • Bugfix: Getrennte Helligkeitssteuerung des Ambilights wurde durch Helligkeitssteuerung des Displays beeinträchtigt. Nun sind beide Helligkeiten komplett unabhängig.
  • Bugfix: Wenn die Uhr gem. Timer aus ist, liefen einige Animationen teilweise trotzdem alle 5 Minuten. Ist nun behoben.
  • Bugfix: Keine Webserver-Kommunikation möglich, wenn der ESP-01 im AP-Modus ist und in der RTC die Uhrzeit noch nicht initialisiert wurde. Ist nun behoben.
  • Neu: Anzeige von Laufschriften
  • Ambilight: Sekundenzeiger nun auch für 20 oder 30 LEDs, die Zahl der Ambilight-LEDs ist nun im Webinterface konfigurierbar.
  • Ambilight: Neue Sekundenanzeige mit zunehmendem/abnehmendem Vollkreis.
  • Ambilight: Sekundenzeiger-Animationen: Start-LED nun über Webinterface konfigurierbar
  • Web-Konfiguration: Erweiterung der Schieberegler um numerische Anzeige (zwecks besserer Reproduzierfähigkeit von RGB-Werten)

STM32 Version 2.0.3

  • Bugfix: einminütiges Abschalten des Displays nach Cube-Animation behoben.

STM32 Version 2.0.2

  • Um unnötige Animationen zur vollen Minute bei der WC12h zu vermeiden, wird die DCF77-Zeit nun um hh:mm:15 verzögert ausgeliefert. Timeserver-Zugriffe pendeln sich im Laufe der Zeit auf hh:mm:30 (alle 3780 Sekunden) ein, RTC-Zugriffe werden jede Minute um hh:mm:45 ausgeführt.
  • Power-Taste auf der IR-Fernbedienung kann nun beim Anlernen als Skip-Taste verwendet werden.
  • DCF77-Messung: Die Zeit der vorherigen Minute wird nun als zusätzliche Plausibilitätsprüfung herangezogen
  • Snake-Animation: Es werden nun gezielt die Wörter der alten Uhrzeit "gefressen".

STM32 Version 2.0.1

  • Konfiguration von "ES IST"-Anzeige korrigiert: nun auch jede halbe Stunde.
  • Bugfix bei der "ES IST"-Anzeige auf WC12h: Die Anzeige wird nun 5 Minuten lang beibehalten - und nicht nur ein Minute.
  • Bugfix: Farbanimationen bzw. Ambilight-Animationen verhinderten das Abschalten des Ambilights bei Power-Off.
  • Umgebungs-Helligkeitsmessungen werden nun nur noch durchgeführt, wenn keine Übergangs-Animation läuft.
  • Anzahl der möglichen Ambilight-LEDs nun bei Verwendung eines Nucleo-Board gleich 100, sonst 60.
  • Power-Off-Signal, um LED-Spannungsversorgung abzuschalten, nun beim Mini-Board (STM32F103) auf Pin PB0.
  • Fading-Effekt durch kleinere Farbänderungsschritte verstärkt.

STM32 Version 2.0.0

  • Bugfix: Abschalten des Ambilights bei Power-Off-Befehl funktionierte bisher nicht.
  • Bugfix: Ein-/Ausschalten der Spannungsversorgung für LED-Stripe.
  • Anzeige des Wortes "UHR" zur vollen Stunde hinzugefügt - dort, wo es bisher fehlte. Betrifft nur WC24h.
  • Neue Einstellung, ob "ES IST" permanent leuchten soll oder nur zur vollen Stunde.
  • Verbesserung der Rainbow-Animation (Dank an Ralf Hammeran).
  • Dynamische Anpassung der automatischen Helligkeitssteuerung an die Umgebungshelligkeit (Dank an Ralf Hammeran).
  • Neue Übergangs-Animationen: "Snake", "Teletype" und "Cube".
  • Anzahl der möglichen Ambilight-LEDs auf 60 Stück begrenzt, siehe auch Ambilight-Modus "Clock" (umlaufende Sekundenanzeige).
  • Neue Seite "Ambilight" in der Web-Konfiguration.
  • Neue Einstellung, ob Ambilight-Farben synchron zu den Display-Farben angepasst werden sollen oder separat gesteuert werden sollen.
  • Neue separate Farbauswahl und Helligkeitssteuerung für Ambilight.
  • Neuer Ambilight-Modus "Clock": Umlaufende Sekundenanzeige.
  • Neuer Ambilight-Modus "Rainbow": Regenbogenfarben-Animation jetzt auch im Ambilight möglich.
  • Diverse kleinere Bugfixes

STM32 Version 1.9.0

  • Neu: Automatischer Farbwechselmodus: Rainbow

STM32 Version 1.8.9

  • Stellen der Uhrzeit über Web-Interface
  • Konfiguration über Web-Interface, ob ESP8266 im AP- oder WLan-Client-Modus arbeiten soll
  • Einstellung SSID und Key für AP-Modus
  • Steuerung der LED-Stripe-Spannungsversorgung (ungetestet)

STM32 Version 1.8.8

  • Für WC12h kleineren Font (5x8) für Laufschriften zwecks besserer Lesbarkeit integriert
  • Auswertung des Temperatur-Anzeige-Kommandos per Android App (ab Version 1.7.0)

STM32 Version 1.8.7

  • Fehler in der Wochentagsberechnung korrigiert

STM32 Version 1.8.6

  • Verzögerte Reaktion der Minuten-LEDs (WC12h) bei Farbwechsel behoben

STM32 Version 1.8.5

  • STM32F103 Mini Development Board: Abschalten des JTAGS, um PB3 u.a. als GPIO für z.B. IRMP nutzen zu können (nicht relevant für Nucleo-Variante)

STM32 Version 1.8.4

  • Korrektur der ESP8266 Flash-Pin-Definition für das STM32F103 Mini Development Board (nicht relevant für Nucleo-Variante)

STM32 Version 1.8.3

  • Bugfix bei der Temperatur-Anzeige: Es wurde immer die DS3231-Temperatur statt der DS128xx-Temperatur gezeigt
  • Falsche Temperatur-Anzeige im Modus "Temperatur"
  • Bezeichnungen der Anzeigemodi für WC24 gekürzt
  • Manuelle Aktivierung des LDRs aus Weboberfläche entfernt. LDR-Messung ist nun immer aktiv, egal ob angeschlossen oder nicht
  • Unterstützung des DCF77-Moduls wieder eingebaut
  • Anzahl der Nachtschaltzeiten auf 8 erhöht - unter Berücksichtigung der Wochentage

STM32 Version 1.8.2

  • Hangup-Problem bei Aktivieren des LDRs beseitigt
  • Neu: Nachtschaltzeiten in der Weboberfläche
  • Optimierung des HTML-Code-Generators

STM32 Version 1.8.1

  • Fehler bei HTTP-Get-Parameter-Übergabe von Leerzeichen in SSID behoben

STM32 Version 1.8.0

  • Spezielle Firmware für ESP8266-Modul, da die Espressif-Firmware zu instabil ist und zu viele Varianten existieren
  • Kommunikationsprotokoll an neue ESP-Firmware angepasst
  • Direktes Flashen des ESP8266 in der WordClock-Schaltung über das verwendete STM32-Board
  • Diverse kleinere Bugfixes

Änderung: Damit das ESP8266-Modul direkt über das STM32-Board geflasht werden kann, ist die Verbindung ESP8266-GPIO0 zu STM32 PA4 herzustellen, siehe auch: Anschluss ESP8266

STM32 Version 1.7.0

  • MCURSES-Monitor durch WEB-Server ersetzt
  • Laufschriften-Ausgabe der aktuellen IP-Adresse
  • Kleinere Änderungen/Optimierungen
  • DCF77-Decoder mangels Interesse/Notwendigkeit entfernt
  • Laufschriften-Ausgabe auf dem LED-Display beim Anlernen einer IR-Fernbedienung

STM32 Version 1.6.3

  • WordClock12h: Anzeige der Temperatur durch Laufschrift
  • Neue Anschlusspins für TSOP und DS18xxx am STM32F103
  • Optimierung des WS2812-DMA-Transfers für STM32F103
  • Temperaturmessung mit DS3231, wenn kein DS18xx angeschlossen
  • Umstrukturierung der C-Sources

STM32 Version 1.6.2

  • Problem beim Verbindungsaufbau Android App -> WordClock behoben

STM32 Version 1.6.1

  • Zusätzliche Unterstützung der "klassischen" WordClock12h mit 10x11 LEDs
  • Anpassung der MCURSES-Monitor-Oberfläche an WordClock12h-Variante
  • Portierung auf STM32F103 abgeschlossen (IDE-Projekt folgt mit 1.6.2)
  • Zusätzliche Unterstützung von neueren ESP8266-Firmware-Versionen 1.0.1, 1.4.0 und 1.5.0.
  • Optionales ESP8266-Debugging auf zusätzlichem USART - nur für Entwickler

STM32 Version 1.6.0

  • Neben dem TIME-Protokoll (TCP) wird nun auch NTP (UDP) unterstützt - für ESP-Firmware-Versionen ab 0018000902.

STM32 Version 1.5.9

  • Unterstützung der neueren ESP Versionen 0020000903 und AT 0.21.0.0
  • Vergrößerung der UART-FIFOs
  • Verallgemeinerung der UART-Funktionen zwecks besserer Konfiguration
  • Überarbeitung der MCURSES-Monitor-Oberfläche

STM32 Version 1.5.8

  • Bugfix: Fehler in 1.5.7 (Falsche Behandlung des DMA-Buffers) wurde behoben
  • Neu: Bis zu 100 weitere LEDs hinter der Buchstabenkette werden als Ambilight angesteuert

STM32 Version 1.5.7

  • Bug in uart-Code für STM32F103 beseitigt - irrelevant für Nucleo STM324xx
  • Timing für WS2812B angepasst, es werden nun WS2812 und WS2812B unterstützt
  • Anzahl der möglichen WS2812-LEDs ist nun variabel gehalten. Das ist Voraussetzung für das demnächst verfügbare Ambilight.

STM32 Version 1.5.6

  • Unterstützung von ESP8266 mit neuerer Firmware, welche \r\n statt \r erwartet
  • Unterstützung von verschiedenen Baudraten des ESP8266-Moduls
  • Automatische Umschaltung von 9600Bd auf 115200Bd beim ESP8266

STM32 Version 1.5.5

  • Optimierungen im LED-Display-Code
  • Diverse Anpassungen an STM32F103

STM32 Version 1.5.4

  • Automatische IR-Anlernroutine in den ersten 3 Sekunden ab Programmstart
  • Kleiner Bugfix bei den möglichen Helligkeitsstufen (Dimmer)

STM32 Version 1.5.2

  • Anzeige der Firmware-Version des ESP8266-Moduls im MCURSES-Monitor
  • Korrektur in den Worttabellen für die Wörter ACHT und VIER in der zehnten Reihe

STM32 Version 1.5.1

  • Manuelle Helligkeitsregelung per MCURSES-Monitor / IR-Fernbedienung / Android App eingebaut
  • Automatische Helligkeitsregelung per LDR nun über MCURSES-Monitor / IR-Fernbedienung / Android App ein-/ausschaltbar

STM32 Version 1.4.2

  • Die geladenen aus dem EEPROM RGB-Werte wurden nach dem Boot nicht mehr sofort übernommen. Ist korrigiert.

STM32 Version 1.4.1

  • Initialisierung des ADC korrigiert
  • Automatische Helligkeitsregelung dunkelt nicht mehr so stark ab.

STM32 Version 1.4.0

  • Automatische Helligkeitsregelung mittels LDR
  • Helligkeitsstufen von 32 auf 64 erhöht
  • LED-Testprogramm eingebaut (Taste 'T' im MCURSES-Monitor)
  • Anzeige des DS18xxx-Typs im MCURSES-Monitor)
  • Unterstützung für Status-LED (beachte geändertes LED-Anschluss-Schema!)
  • Android App an 64 Helligkeitsstufen angepasst

STM32 Version 1.3.1

  • Sporadisches Hangup-Problem nach Auslesen der Temperatur behoben
  • Fehler bei der Erkennung des Family-Codes für DS18xxx beseitigt
  • Optimierung des Zeitverhaltens beim Zugriff auf OneWire-Bus
  • Optimierung des WS2812-Codes

STM32 Version 1.3.0

  • Unterstützung von DS18xxx-Temperatursensoren
  • Temperatur-Anzeige innerhalb +10°C und 39,5°C
  • Korrektur Sommerzeitumstellung
  • Keine Unterstützung mehr von STM32F4-Discovery

STM32 Version 1.2.0

  • IRMP-Konfigurationsfehler behoben

STM32 Version 1.1.0

  • Animationen hinzugefügt
  • Neue Tabellen für Uhrzeit und Temperatur

STM32 Version 1.0.0

  • Test auf verschiedene Adressen des I2C-EEPROMs
  • EEPROM-Speicherplatzverbrauch minimiert
  • RTC DS3231-Routinen auf DS1307 verallgemeinert
  • Network Listener (UDP) zum Fernsteuern der Uhr über WLAN
  • Android App zum Fernsteuern der Uhr (Ein/Aus, Farben, Anzeigemodus)

STM32 Version 0.9.1

STM32 Version 0.9

  • Zusätzlicher Anschluss von RST und CH_PD des ESP8266-Moduls
  • Verbesserung der ESP8266-Konfiguration dank Hardware-Reset
  • Nutzung des Stromsparmodus im ESP8266, wenn die Anzeige abgeschaltet wird
  • Konfiguration der Zeitzone über MCURSES-Monitor
  • Test und Überarbeitung der EEPROM und RTC-Funktionen
  • Synchronisation der RTC-Zeit mit dem µC-Timer
  • Speichern folgender Daten im EEPROM:
    EEPROM-Version
    IRMP-Daten einer angelernten IR-Fernbedienung
    Aktuell eingestellte Farben und Anzeigemodus
    IP-Adresse des Timeservers
    Zeitzone

STM32 Version 0.8

  • Neue IR-Fernbedienungs-Tasten POWER und OK
  • Einbau einer konfigurierbaren "Nachtzeit", in der sich die Uhr selbstständig abschaltet
  • Konfiguration des Timeservers über MCURSES-Monitor
  • Speichern/Laden sämtlicher Konfigurations-Daten in externem EEPROM
  • Initialisierung des ESP8266 verbessert (warten, bis nach PowerOn eine WLAN-Verbindung besteht)
  • Aufteilung der Anzeige-Logik und des MCURSES-Monitors auf dsp.c und monitor.c
  • Aufteilung der ESP8266-Routinen auf esp8266.c (low-level) und timeserver.c (high-level)
  • Diverse Optimierungen - u.a. durch Einsatz von uint_fast8_t
  • Diverse Bugfixes

STM32 Version 0.7.1

STM32 Version 0.7

  • Portierung der Software auf STM32F401RE Nucleo-Board
  • uart2.c generalisiert auf uart.c (verschiedene UARTs möglich)
  • Bugfix im UART-Ringbuffer-Code (Interrupt-Sperre)
  • Anzeige der Online-Devices (ESP8266, DCF77, EEPROM, RTC) im Terminal
  • Verschiedene Optimierungen

STM32 Version 0.6

  • Konfiguration des WLAN-Moduls (SSID & Key) nun über Terminal statt fest im Code verdrahtet.
  • Einstellung der Zeitzone möglich. Standard ist GMT+1, also mitteleuropäische Zeit.
  • DCF77- und ESP8266-Modul-Aktivierung automatisch - keine Einstellung mehr im Code notwendig.
  • I2C-Lib hinzugefügt (noch ungetestet und daher noch nicht verwendet).
  • I2C-EEPROM-Modul hinzugefügt (noch ungetestet und daher noch nicht verwendet).
  • I2C-RTC-Modul (DS3231) hinzugefügt (noch ungetestet und daher noch nicht verwendet).