WordClock mit WS2812

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Mit diesem Projekt ist 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

WordClock24h:

WordClock24h


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 STM32F4x1 Nucleo, STM32F4x1 BlackPill, und STM32F103 BluePill
  • 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
  • Abspielen von MP3-Dateien zu bestimmten Ereignissen oder zu Alarmzeiten (Wecker) über optionalen Mini-DFPlayer
  • Anbindung von LED-Stripes des Typs WS2812, WS2812B, APA102 und SK6812 (RGB- und RGBW-RLEDs)
  • Sanftes Überblenden der Uhrzeiten oder verschiedene Animationen bei Uhrzeitwechsel, z.B. "Explode" oder "Matrix"
  • Farbanimationen, z.B. Automatischer Farbverlauf durch alle Regenbogenfarben ("Rainbow")
  • Einblendung von Overlays (Icons, Laufschriften) zu bestimmten festen oder beweglichen Kalenderdaten wie Geburtstag/Ostern/Weihnachten/Advent/Silvester etc.
  • Erstellen von eigenen Overlays als dynamische Erweiterung
  • NEU: Hochladen eigener Display-Layouts über das Webinterface
  • 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, auch als Piktogramm (Overlay)
  • 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
  • Einspielen von Updates für ES8266 ESP-12F und STM32 über OTA ("over the air").
  • Spiele: WCtris (Tetris Clone) und Snake zum Spielen auf der Uhranzeige

Features Version 3.x

  • Unterstützung des STM32F407VET6 BlackBoards
  • BlackBoard: Unterstützung von 7" SSD1963 TFT-Displays
  • BlackBoard: Bedienung auch per Touch auf TFT-Display (geplant)
  • BlackBoard: Simulation eines EEPROMs in eigenem Flash-Speicher auf dem Board
  • BlackBoard: Benutzung der CPU-internen RTC als RTC-Ersatz
  • Neues Layout-Tabellen-Format, alte Tabellen sind weiterhin verarbeitbar
  • Ein-/Abschalten von ES-IST nun auch möglich, wenn verschiedene Kombinationen vorliegen - momentan nur relevant für Spanisch ("ES LA" / "SON LAS") und Italienisch ("E L" / "SONO LE")
  • Diverse neue Layouts wie Italienisch (WC12h 10x11), Spanisch (WC12h 10x11), Polnisch (WC24h 20x20)
  • WC24h: Anzeige der Temperatur als Overlay nun auch mit großen Ziffern möglich
  • Bugfix: Automatische Helligkeitssteuerung bei Temperatur-Overlays abschalten
  • Einheitliches Programm für ESP8266, sowohl für WordClock als auch für uClock

Weitere geplante Features

  • Menü Ambilight: Zusätzlicher Haken "Use Display Brightness" für unterschiedliche Farben, aber gleiche Helligkeit
  • Hintergrundfarbe/Helligkeit für Ambilight.
  • Anzahl der leuchtenden LEDs beim Fading im Clock-Modus
  • Daylight Color Animation: fließender Übergang.
  • Timer-Tabelle für DFPlayer
  • Negative Korrekturwerte für die Temperatur
  • WC24h: Digitale Anzeige Uhrzeit und Temperatur
  • Neues Overlay "Time", welches als Ticker "Es ist hh:mm Uhr" durchlaufen lässt...
  • Wetter-Ticker: Mehrere Orte auswählbar.
  • Automatisches Aktivieren eines Anzeigemodus zu einem bestimmten Datum, z.B. Jester am 1. April
  • Overlays: Neben von-bis-Daten auch noch Uhrzeitbereiche, z.B. 10:00 - 12:30
  • Bei Ticker-Texten einen Gong o.ä. per DFPLayer ausgeben.
  • Daylight-Tabelle über Webinterface änderbar.
  • STM32-Logbook im Web-Interface.
  • Export/Import der (EEPROM-)Einstellungen.
  • Optimierung der Rainbow-Animation für SK6812 (Weiß).
  • Harlekin-Farbanimation (jeder Buchstabe hat eine eigene Farbe).
  • Weitere Farbanimation: Jedes Wort hat eine eigene Farbe - evtl. mit Regenbogeneffekt.
  • Neue Animation "Implode".
  • Verschiedene Lautstärken für Alarme, Bell-Mode, Speak Mode, Overlay-DFPlayer
  • Beim Ad-Hoc-Abspielen von MP3s über Web-Interface Lautstärke angebbar
  • Mood-Light-Funktion.
  • Hintergrundfarbe/Helligkeit für Display
  • Demo-Modus: Abspielen aller Gimmicks
  • Vereinfachtes Bedienkonzept für IR-Fernbedienung.
  • WC24h: Einblendung der Punktmatrix "°C" (als Icon?) bei der Temperaturanzeige.
  • Spiele wie TRON 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 A.B.C muss mit der ESP8266-Firmware in den ersten beiden Ziffern A.B übereinstimmen, die dritte Ziffer C darf unterschiedlich sein.

Aktuelle STM32-Version: 2.9.5 vom 09.02.2019
Aktuelle ESP-Version: 2.9.5 vom 16.02.2019

EmBitz-Projekt für STM32 und Sources für ESP8266: Sources auf Github

Achtung: Ab Version 2.9.0 müssen im SPIFFS die Anzeigetabellen zwingend gespeichert werden, siehe SPIFFS. Bei einem Update von 2.8.x oder älter ist sicherzustellen, dass das SPIFFS im ESP8266 korrekt formatiert ist! Im Zweifel flasht man erst den ESP8266, formatiert dann das SPIFFS über das Web-Interface und flasht dann erst den STM32.

Die SPIFFS-Webseite muss dann unter anderem die nebenstehende Dateisystem-Parameter-Übersicht zeigen.

Läuft allerdings bereits eine Version 2.9.0 oder neuer, dann muss das SPIFFS nicht neu formatiert werden.

Web-Interface: SPIFFS

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

Firmware Version Datum Download Alle Versionen
WordClock STM32 Firmware alle Varianten 2.9.5 09.02.2019 Wordclock-hex.zip Versionshistorie
WordClock Icons 2.8.4 28.12.2017 Wordclock-icons.zip Versionshistorie
NEU: WordClock Tables 2.9.5 12.02.2019 Wordclock-tables.zip Versionshistorie
NEU: Quelltexte WordClock Tabellengenerator 2.9.5 12.02.2019 Make-tables.zip Versionshistorie
ESP8266 ESP-01 Firmware 2.9.5 16.02.2019 ESP-WordClock-512K.bin Versionshistorie
ESP8266 ESP-12F Firmware 2.9.5 16.02.2019 ESP-WordClock-4M.bin Versionshistorie
Android App 2.9.4 26.05.2018 WC24h.apk Versionshistorie
WCTris Windows-/Linux-Console-Programm 2.9.4a 02.06.2018 Wctris.zip Versionshistorie
Icon Editor 2.9.4 26.05.2018 icon-editor.zip Versionshistorie

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

Um die App unter Android zu installieren (ausserhalb Google Play Store), muss man zunächst am Handy unter Android die Installation von Apps "aus unbekannten Quellen" freigeben. Über den Webbrowser auf dem Android-Gerät clickt man auf den Download-Link und kann die Installation nach dem download durchführen. Alternativ nutzt man ein APK Installations Programm. Einfach und gut ist APKInstaller für Android, welches man über den Google Play Store leicht installieren kann. Dies unterstützt den Installationsprozess (Informationen über die *.apk-Version, Installation von SD-Karte..), ist aber nicht unbedingt notwendig.

WordClock-Varianten

Es werden folgende Hardware-Varianten unterstützt:

  • Uhrenanzeige WC24h und WC12h
  • Mikrocontroller: STM32F103 (Mini-Development Board aka BluePill), STM32F401 (Nucleo und BlackPill) und STM32F411 (Nucleo und BlackPill)
  • 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 - WordClock

  • wc12h - WordClock 12H
  • wc24h - WordClock 24H

2. Teil - Mikrocontroller Board

  • stm32f103 für STM32F103 BluePill
  • stm32f401 für STM32F401 Nucleo
  • stm32f411 für STM32F411 Nucleo
  • stm32f401cc-8 für STM32F401CC BlackPill mit 8MHz Quarz
  • stm32f401cc-25 für STM32F401CC BlackPill mit 25MHz Quarz
  • stm32f411ce-8 für STM32F411CE BlackPill mit 8MHz Quarz
  • stm32f411ce-25 für STM32F411CE BlackPill mit 25MHz Quarz

3. Teil - LEDs

  • ws2812-grb für WS2812 in der Farbreihenfolge GRB (Standard)
  • ws2812-rgb für WS2812 in der Farbreihenfolge RGB
  • sk6812-rgb für SK6812 in der Farbreihenfolge RGB
  • sk6812-rgbw für SK6812 in der Farbreihenfolge RGBW
  • apa102 für APA102 LEDs

Damit ergeben sich folgende Dateinamen:

Firmware Varianten
Controller Dateiname Eigenschaften
WordClock12h STM32F103 BluePill
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 Nucleo
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 STM32F401 BlackPill 8MHz
wc12h-stm32f401cc-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f401cc-8-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f401cc-8-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f401cc-8-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f401cc-8-apa102.hex APA RGB LEDs
WordClock12h STM32F401 BlackPill 25MHz
wc12h-stm32f401cc-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f401cc-25-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f401cc-25-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f401cc-25-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f401cc-25-apa102.hex APA RGB LEDs
WordClock12h STM32F411 Nucleo
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
WordClock12h STM32F411 BlackPill 8MHz
wc12h-stm32f411ce-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f411ce-8-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f411ce-8-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f411ce-8-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f411ce-8-apa102.hex APA RGB LEDs
WordClock12h STM32F411 BlackPill 25MHz
wc12h-stm32f411ce-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc12h-stm32f411ce-25-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc12h-stm32f411ce-25-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc12h-stm32f411ce-25-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc12h-stm32f411ce-25-apa102.hex APA RGB LEDs
WordClock24h STM32F103 BluePill
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 Nucleo
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 Nucleo
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
WordClock24h STM32F401 BlackPill 8MHz
wc24h-stm32f401cc-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f401cc-8-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f401cc-8-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f401cc-8-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f401cc-8-apa102.hex APA RGB LEDs
WordClock24h STM32F401 BlackPill 25MHz
wc24h-stm32f401cc-25-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f401cc-25-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f401cc-25-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f401cc-25-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f401cc-25-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
WordClock24h STM32F411 BlackPill 8MHz
wc24h-stm32f411ce-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f411ce-8-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f411ce-8-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f411ce-8-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f411ce-8-apa102.hex APA RGB LEDs
WordClock24h STM32F411 BlackPill 25MHz
wc24h-stm32f411ce-8-ws2812-grb.hex WS2812 mit Farb-Reihenfolge GRB (Standard)
wc24h-stm32f411ce-25-ws2812-rgb.hex WS2812 mit abweichender Farb-Reihenfolge RGB
wc24h-stm32f411ce-25-sk6812-rgb.hex SK6812 RGB ohne weiße LED
wc24h-stm32f411ce-25-sk6812-rgbw.hex SK6812 RGBW mit zusätzlicher weißer LED
wc24h-stm32f411ce-25-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: Das Board passt zusammen mit dem Shield in die Aussparungen der Zwischenplatte für die WC12h (siehe Sammelbestellungen).

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.



Bei den Shields ab V3 für das STM32-Mini-Development Board muss noch eine Drahtbrücke eingelötet werden: Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss über eine Drahtbrücke mit dem BOOT0 Pin auf dem Shield verbunden.

STM32F103C8T6 Mini-Development Board
MiniDevBoard Schaltplan
Flashen per ST-Link V2-Clone
Drahtbrücke zu BOOT0

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 und mit einem Draht zu CN6, Pin7 (GND) die nötige Masseverbindung hergestellt, 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. In diesem Falle ist die Masseverbindung bereits im PCB Layout vorhanden und die Drahtbrücke nach CN6, Pin7 (GND) entfällt.

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


Wenn das STM32F411 Nucleo-64 geflasht ist, muß der ST-Link Teil des Nucleo Boards abgetrennt werden,damit die Shield / Nucleo Board Kombination in den Zwischenrahmen der WC24h passt. Folgendes ist dafür zu tun:

ST-Link




A. ST Link absägen

B. die Brücken SB62/SB63 auf dem Nucleo Board einlöten. Damit werden RX/D0 und TX/D1 auf der einreihigen Arduino Pfostenbuchse C9 und die Pins 35 und 37 auf CN10 (Morpho Connector) angebunden.

C. Auf dem ST Link sind die beiden Jumper CN2 zu entfernen. Damit wird der ST Link von interner auf externe Programmierung umgestellt.



ST-Link Rückseite






D. Die Brücken Brücken SB12-SB15 auf dem ST Link sind zu entfernen. Dies dient zum Schutz des ST Links falls beim Absägen die Verbindungsleitungen ST Link - Nucleo Board kurzgeschlossen wurden.










Wie der ST Link wieder an die Shield/Nucleo Board Kombination angeschlossen wird, wird später beschrieben.

STM32F4x1 BlackPill Board

TODO

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

Ambilight:

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 drei 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

Mini-DFPlayer

Mit dem optionalen Mini-DFPlayer können als Reaktion auf bestimmte Ereignisse oder zu bestimmten Uhrzeiten MP3-Dateien abgespielt werden.

Anschlüsse am Shield:

Nucleo:

  • DFPlayer RX an PB6 (STM324xx TX ALT1)
  • DFPlayer TX an PB7 (STM324xx RX ALT1)
  • DFPlayer Vcc an 5V
  • DFPlayer GND an GND

Mini-Shield:

  • DFPlayer RX über 1K Widerstand an PB10 (STM32F103 TX)
  • DFPlayer TX an PB11 (STM32F103 RX)
  • DFPlayer Vcc an 5V
  • DFPlayer GND an GND

In Einzelfällen kann es zu Brummen bei der Versorgung mit 5V kommen. Deshalb sollte man zwischen TX des STM32 und RX des DFPlayers einen 1K-Widerstand zwischenschalten. Dieser ist bereits auf den neueren Shields vorgesehen.

Quelle: https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

Sollte der DFPlayer trotzdem noch im "Standby" durchgehend rauschen, hilft folgender Tipp aus dem Forum weiter: Beitrag: WordClock mit WS2812

Weitere Infos: Konfiguration DFPlayer

Anschluss-DFPlayer.png
DFPlayer-Pinout.png

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.

Neu ab Version 2.8.3: Der DCF77-Empfang wird nur noch ausgewertet, wenn das LED-Display abgeschaltet ist. Grund: Die WS2812-LEDs stören in den meisten Fällen den DCF77-Empfang.

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 WordClock24h 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 1A - 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 - Pin am Shield)
  • USB-UART RX an PA9 (TX - Pin am Shield)
  • USB-UART GND an GND (Pin am Shield)

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

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

STM32 MiniBoard (empfohlen für WC12h)
AliExpress
eBay
Watterott
oder
STM32 Nucleo
Reichelt
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 - es empfiehlt sich aber nochmal ein Abgleich mit der Teileliste im Tutorial (https://www.mikrocontroller.net/articles/Tutorial_-_Aufbau_WordClock_mit_WS2812#Best.C3.BCckung_des_Mini-Dev-Board-Shields_v3.2Fv4_f.C3.BCr_STM32F103):

Reichelt Warenkorb
Zusätzlich wird ca. 1 m 16-poliges Flachbandkabel benötigt. Es empfiehlt sich auch noch eine Buchsenleiste im Warenkorb zu ergänzen.


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

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

Pollin Netzteil 5V 1A

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: DF Player mini (Pins sind ab Shield V5 mit auf dem Shield, sonst separat zu verdrahten) Es gibt verschiedene Versionen/Replika des Originals. Hier sind einige Erfahrungen gesammelt worden bzgl. der verbauten Chips: Welche verschiedenen Versionen gibt es vom „DFPlayer Mini“?


Original DFRobot DFPlayer bei Reichelt:
Reichelt

Replika:
AliExpress
eBay

Zusätzlich werden benötigt:
1 Kleinlautsprecher 8 Ohm, z. B. Reichelt oder Visaton K40 SQ
Reichelt Widerstand 1,0k

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, noch hier oder hier verfügbar.
Ersatz 1: Reichelt A906011
Ersatz 2: Reichelt M996011A
Ersatz 3: Als weitere Alternative wird im Forum mittlerweile auch ein GL5506, GL5516 oder GL5528 genannt (aufgrund der zahlreichen Angebote bitte selbst zu suchen auf Ebay/Aliexpress/Amazon).

Reichelt Widerstand 1,0k (bei Verwendung von LDR07, A906011, M996011A, GL5506, GL5516 oder GL5528)
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


Alternative Lieferanten für dieses Bauteil sind: Darisus GmbH oder auch bei Aliexpress.


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

Das erstmalige Flashen des ESP8266 über UART ist zwingend notwendig. Spätere Updates können über OTA-Flash eingespielt werden, d.h. über WLAN aus der Web-Oberfläche heraus. Siehe dazu: OTA-Flash.

Beim Nucleo wird zum Flash über UART 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 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.

esp8266_flasher.exe

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

Flash Download Tool des Chipherstellers

Achtung: Vom Gebrauch des Flash Download Tools des Chipherstellers ist abzuraten! Wie bereits mehrfach von Anwendern berichtet wurde, ist nach dem Flash des ESP8266 mit diesem Programm die OTA-Update-Fähigkeit nicht mehr gegeben. Auch lässt sich dann der SPIFFS-Speicherbereich für Overlays und Anzeigetabellen nicht nutzen!
NICHT VERWENDEN: ESP FLASH DOWNLOAD TOOL

NODEMCU Firmware Flasher

Alternativprogramm NODEMCU Firmware Flasher von (https://github.com/nodemcu/nodemcu-flasher) herunter laden. Es steht in den Unterordnern ein WIN32 oder Win64 Bit Programm zur Verfügung.

1. Zuerst sollte nach dem Start unter Advanced die Baudrate eingestellt werden. 2. Danach folgt die Auswahl der zu flashenden Firmware unter Config 3. Dann den COM-Port auswählen und 4. Flashen drücken. Ist die Anzeige nicht wie im letzten Teiles des Bildes half bei mir (MockUp) nur das zurücksetzen der Einstellungen auf Default und wieder setzen der Parameter. Das Programm ist auf alle fälle nicht so stabil wie die anderen was den Verbindungsaufbau anbelangt.

NODEMCU Firmware Programmer

esptool.py

Für Linux oder Mac OS (aber auch Windows) bietet sich das Platform-unabhängige Utility esptool.py von der GitHub Seite des ESP8266 Herstellers Espressif. Download / Installation https://github.com/espressif/esptool/

esptool.py --port /dev/[Dein UART Adapter] write_flash -fs 4MB -fm dio 0x0 ESP-WordClock-4M.bin

Flash-Vorgang

  • Eventuell gestartetes PuTTY beenden, um COM-Schnittstelle freizugeben
  • Speziell beim ESP-12F am STM32F103 Mini Development Board:
    • Shield < v3: TX vom USB-USART-Adapter (geht an PA10) abziehen!
    • Shield >= v3: Jumper PROG/RUN auf PROG stellen
  • 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 < v3: 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 Flash-Programm esp8266_flasher.exe (bzw. NODEMCU Firmware Flasher) 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).

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 ignoriert werden. Anschließend startet den STM32 (und damit auch das WLAN-Modul) neu durch kurzes Drücken der Reset-Taste (beim Mini Shield >= v3 stellt man vorher den Jumper PROG/RUN wieder auf RUN).


OTA-Flash

Wurde der ESP8266 einmal über UART geflasht, kann er bei späteren Update über das Netzwerk geflasht werden ("OTA-Flash"). Ein Firmware-Update ist dann möglich ohne erneuten Anschluss der Uhr an irgendwelche Programmier-Module.

Erklärt wird der komplette Vorgang hier: Update

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" (kann beim allerersten Mal auch "ESPxxxx" oder "AI-Thinker_xxxxxx" heißen) und verbindet das Gerät mit diesem Netz. Als Netzwerkschlüssel gibt man "1234567890" ein (meldet sich das Modul als "AI-Thinker_xxxxxx" ist kein Passwort erforderlich). 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.

Hinweis: Ab der ESP-Software 2.9.5 sind ASCII-Sonderzeichen, die vom Browser anders behandelt werden wie z.B. "/", "+" und "&", in SSID oder im Key möglich. Umlaute funktionieren weiterhin nicht in der SSID oder im Key, weil die meisten Router mit UTF8 arbeiten, die WordClock aber nur mit dem ISO8859-Zeichensatz. Da werden Umlaute anders codiert.


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-Maps im Browser ermitteln. Ein Rechtsklick auf den eigenen Standort und dann "Was ist hier?" 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 müssen mit Dezimalpunkt und nicht mit 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 über ein einstellbares Zeitintervall dann auch automatisch erfolgen (siehe Overlays).

Web-Interface: Wetterdaten-Konfiguration

LDR

Mittels Aktivierung von "Automatic Brightness" werden die automatische Helligkeitssteuerung scharf geschaltet und das erweiterte Menü sichtbar.

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

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.

Hinweis2: Der angezeigte LDR Wert wird auf die Min und Max-Werte begrenzt. Sind diese 0 wird auch der LDR-Wert als 0 angezeigt. Dann sollte wie beschrieben kalibriert werden.

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

Ambilight Brightness

Für das Ambilight können ebenso die 16 vorhandenen Helligkeitsstufen an die Gegebenheiten angepasst werden.

Da hier normalerweise kein Diffusor verwendet wird, wird empfohlen, die nebenan gezeigten Helligkeitsstufen zu wählen.

Web-Interface: Ambilight 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.

Web-Interface: Einstellungen des LED-Displays

Overlays

Overlays können in regelmäßigen Abständen eingeblendet werden. Wichtig hierfür sind die Zeitintervalle. Beim Wert 1 wird das Overlay jede Minute eingeblendet, nämlich immer um hh:mm:30 Uhr. Bei Angabe von beispielsweise "5" wird das Overlay dann nur noch alle 5 Minuten eingeblendet.

Folgende Overlays sind derzeit verfügbar:

  • Icon - Einblenden eines Piktogramms
  • Date - Anzeige des aktuellen Datums
  • Temperature - Anzeige der momentanen Temperatur
  • Weather Icon - Einblendung eine Piktogramms passend zum aktuellen Wetter
  • Weather FC Icon - Einblendung eine Piktogramms passend zum Wetter morgen (FC = Forecast)
  • Weather Ticker - Kurzer Wetterbericht als Lauftext (Ticker)
  • Weather FC Ticker - Kurzer Wetterbericht als Lauftext (Ticker) zum Wetter morgen (FC = Forecast)
  • Ticker - Einblenden eines festen Lauftextes (Ticker)
  • DFPlayer - Abspielen eines MP3-Tracks unter der Angabe von Folder und Track

Als Icons sind verfügbar:

  • Heart - Einblenden eines Herzens
  • Xmas Tree - Tannenbaum
  • Fireworks - Anzeige eines Feuerwerks, für Silvester besonders geeignet
  • 1st Advent - Einblenden einer Adventskerze
  • 2nd Advent - Einblenden von zwei Adventskerzen
  • 3rd Advent - Einblenden von drei Adventskerzen
  • 4th Advent - Einblenden von vier Adventskerzen
  • Blue Star - Anzeige eines blauen Sterns (nur WC24h)

Diese Icons befinden sich im SPIFFS des ESP8266 und können durch Bearbeiten der Datei wc12h-icon.txt bzw. wc24h-icon.txt geändert bzw. selbst erweitert werden.

In der Spalte "Duration (sec)" kann angegeben werden, wieviele Sekunden lang ein Icon (Piktogramm) eingeblendet werden soll. Dieser Bereich lässt sich zwischen 5 und 9 Sekunden ändern.

Werden verschiedene Anzeigeintervalle ausgefüllt, gilt folgende Regel bei zeitgleicher Einblendung: Dasjenige Piktogramm, welches seltener erscheinen soll, hat eine höhere Priorität. Bei Overlays, die an beliebigen Tagen gezeigt werden sollen, lässt man Date Code und die Kalender-Tage MM und DD leer. Sobald aber ein Date-Code oder Kalenderdatum eingetragen wird, haben diese Overlays bei zutreffenden Kalender-Daten Vorrang vor denen ohne Kalenderdatum - wenn sie dasselbe Anzeigeinterval benutzen.

Zusätzlich kann man bei verwendeten Kalenderdaten auch eine Dauer in Tagen eingeben, also wieviele Tage lang das Overlay gültig ist. Zu beachten ist hierbei, dass ein Übertrag eines Kalenderzeitraums in das nächste Kalenderjahr (wie zum Beispiel "22.12. für 30 Tage") momentan als fehlerhafter Zeitraum eingestuft wird. In diesem Fall wird das Overlay dann nicht gezeigt. Ab Version 2.8.1 werden auch Überträge ins nächste Kalenderjahr berücksichtigt. Bis dahin kann man sich damit behelfen, zwei Einträge zu machen: den ersten gültig bis 31.12., den zweiten ab 1.1. für X Tage.

Als bewegliche Feiertage kann man auswählen:

  • Rosenmontag
  • Ostersonntag
  • 1. bis 4. Advent

Einfaches Beispiel zur Erläuterung der Anzeigeintervalle:

  • Temperature display interval = 10
  • Icon "Heart" display interval = 1
  • Icon "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. Gleiche Intervalle sollte man vermeiden, wenn sie ohne Kalenderdatum angegeben sind. Denn dann wird konsequent nur noch das erste der beiden definierten Overlays gezeigt.

Für das nebenstehende Beispiel gilt folgendes:

  • Das Icon "Advent1" wird jede Minute ab dem 1. Advent für 7 Tage lang angezeigt.
  • ....
  • Das Icon "Advent4" wird jede Minute ab dem 4. Advent für 7 Tage lang angezeigt.
  • Das Icon "Xmas Tree" wird jede Minute ab Heiligabend bis zum 2. Weihnachtstag angezeigt.
  • Das Icon "Fireworks" wird zu Silvester jede Minute angezeigt.
  • Der Ticker "Happy Birthday" wird jede Minute am 02.02. eines jeden Jahres angezeigt - ein Tag lang.
  • Trifft keine der obigen Kalenderdaten zu, wird jede Minute das aktuelle Datum eingeblendet.
  • Das Wetter-Icon wird jede 2. Minute eingeblendet und hat damit jede zweite Minute eine höhere Priorität als alle vorangehenden Overlays.
  • Der Wetterbericht als Lauftext wird jede 5. Minute eingeblendet und hat dann eine höhere Priorität als alle vorher aufgeführten Overlays.

Speziell für das Jahr 2017 muss man hier noch anmerken, dass Heiligabend und der 4. Advent auf denselben Tag fallen. Hier hat dann das zuerst genannte Overlay Vorrang. Im obigen Beispiel ist das also die Adventsanzeige. Der Tannenbaum erscheint also speziell im Jahr 2017 erst am 1. Weihnachachtstag - jedenfalls, wenn man ebenso die obige Reihenfolge wählt.

Web-Interface: Overlays

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 - in der aktuellen Anzeigefarbe
  • GreenMatrix - Matrix-Animation aus dem gleichnamigen Film - in der Farbe grün, also unabhängig von der aktuellen Anzeigefarbe
  • 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.

Abhängigkeiten Display-Timer und Ambilight-Timer:

Ereignis Display Ambilight
Display Timer off off off
Display Timer on on ---
Ambi Timer off --- off
Ambi Timer on --- on

Es gilt daher die Sonderregel: Wenn der Timer das Display ausschalten soll, wird beides ausgeschaltet.

Alle anderen Ereignisse sind unabhängig voneinander. Wenn man das Ambilight gesondert ausschalten will, sollte man den Ambi-Timer verwenden. So ist jedenfalls gewährleistet, dass das Ambilight nicht versehentlich die ganze Nacht brennt.

Siehe auch: Ambilight Timers

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.

Abhängigkeiten Display-Timer und Ambilight-Timer:

Ereignis Display Ambilight
Display Timer off off off
Display Timer on on ---
Ambi Timer off --- off
Ambi Timer on --- on

Es gilt daher die Sonderregel: Wenn der Timer das Display ausschalten soll, wird das Ambilight ebenso ausgeschaltet.

Siehe auch: Timers

Web-Interface: Ambilight Timer

DFPlayer

Hier können MP3-Tracks konfiguriert werden, die zu bestimmten Zeiten oder Ereignissen von einem Mini-DFPlayer abgespielt werden.

Auf der SD-Card (FAT16 oder FAT32-Dateisystem, max. 32GB microSD(HC)-Card) müssen 3 Unterverzeichnisse angelegt werden:

  • Ordner "01" - Bell-Mode: Hier werden MP3-Dateien abgelegt, die zu jeder vollen Stunde oder auch Viertelstunde abgespielt werden sollen.
  • Ordner "02" - Speak-Mode: Hier können MP3-Dateien abgelegt werden, welche die auf der Uhr angezeigten Wörter "vorlesen".
  • Ordner "03" - Alarm: Die hier gespeicherten MP3-Dateien werden zu den eingetragenen Weckzeiten abgespielt.

Ordner "01"

"Bell Mode"

  • 000.mp3 - wird um 00:00 Uhr (Mitternacht) abgespielt
  • 001.mp3 - wird um 01:00 und 13:00 Uhr abgespielt
  • 002.mp3 - wird um 02:00 und 14:00 Uhr abgespielt
  • ...
  • 012.mp3 - wird um 12:00 Uhr mittags abgespielt
  • 013.mp3 - wird jede Stunde um xx:15 Uhr abgespielt, falls xx:15 aktiviert wurde
  • 014.mp3 - wird jede Stunde um xx:30 Uhr abgespielt, falls xx:30 aktiviert wurde
  • 015.mp3 - wird jede Stunde um xx:45 Uhr abgespielt, falls xx:45 aktiviert wurde

Beispielsweise können das Aufnahmen von BigBen oder auch Zeitansagen sein.

Zu den angegebenen Ruhezeiten (von Silence Start bis Silence Stop, im Beispiel von 22:01 Uhr bis 7:00 Uhr) wird das Abspielen der MP3-Dateien unterdrückt.

Ordner "02"

"Speak Mode"

Ist der Speak Mode aktiviert, werden die Wörter auf dem Display einzeln vorgelesen. Wie oft, wird mit dem "Speak Cycle" eingestellt, z.B. 1 = jede Minute, 5 = alle 5 Minuten. Je nachdem, welche "Sprache" man für das Display eingestellt hat, wird dann auch die Uhrzeit vorgelesen - also z.B. "Es ist dreiviertel neun" (Ossi-Modus) vs. "Es ist viertel vor neun" (Wessi-Modus).

Dafür muss jedes mögliche Wort auf dem Display als MP3-Datei vorhanden sein.

Hier die Tabelle für die WC24h und WC12h:

Datei Wort WC24h Wort WC12h
001.mp3 ES ES
002.mp3 IT IST
003.mp3 IST FUENF
004.mp3 IS ZEHN
005.mp3 VIERTEL ZWANZIG
006.mp3 EIN DREI
007.mp3 EINS VIER
008.mp3 IN VIERTEL
009.mp3 DREI DREIVIERTEL
010.mp3 EIN NACH
011.mp3 EINE VOR
012.mp3 EINER HALB
013.mp3 SECH ZWOELF
014.mp3 SECHS ZWEI
015.mp3 SIEB EIN
016.mp3 SIEBEN EINS
017.mp3 ELF SIEBEN
018.mp3 FUENF DREI
019.mp3 NEUN FUENF
020.mp3 VIER ELF
021.mp3 ACHT NEUN
022.mp3 NULL VIER
023.mp3 ZWEI ACHT
024.mp3 ZWOELF ZEHN
025.mp3 ZEHN SECHS
026.mp3 UND UHR
027.mp3 ZWANZIG
028.mp3 VIERZIG
029.mp3 DREISSIG
030.mp3 FUENFZIG
031.mp3 UHR
032.mp3 MINUTE
033.mp3 MINUTEN
034.mp3 VOR
035.mp3 UND
036.mp3 NACH
037.mp3 EIN
038.mp3 DREIVIERTEL
039.mp3 VIERTEL
040.mp3 HALB
041.mp3 SIEB
042.mp3 SIEBEN
043.mp3 NEUN
044.mp3 NULL
045.mp3 ZWEI
046.mp3 EIN
047.mp3 EINE
048.mp3 FUENF
049.mp3 SECH
050.mp3 SECHS
051.mp3 ACHT
052.mp3 VIER
053.mp3 DREI
054.mp3 EIN
055.mp3 EINS
056.mp3 UND
057.mp3 ELF
058.mp3 ZEHN
059.mp3 ZWANZIG
060.mp3 GRAD
061.mp3 DREISSIG
062.mp3 VIERZIG
063.mp3 ZWOELF
064.mp3 FUENFZIG
065.mp3 MINUTE
066.mp3 MINUTEN
067.mp3 UHR
068.mp3 FRUEH
069.mp3 VOR
070.mp3 ABENDS
071.mp3 MITTERNACHT
072.mp3 NACH
073.mp3 NACHTS
074.mp3 MORGENS
075.mp3 WARM
076.mp3 MITTAGS

Beispiel-Dateien für das Verzeichnis 02 - sowohl für WC12h als auch WC24h: Datei:WordClock24-mp3.zip.

Der jeweils gewünschte Ordner muss auf die SD-Karte kopiert und dann das Verzeichnis 02-WC12h bzw. 02-WC24h in 02 umbenannt werden. Die MP3-Dateien wurden mit dem Programm Balabolka erzeugt.

(Kleiner Fehler im Ordner für die WC24: Datei 60.mp3 muss in 060.mp3 umbenannt werden).

Auch hier gilt: Zu den angegebenen Ruhezeiten (von Silence Start bis Silence Stop) wird das Abspielen der MP3-Dateien unterdrückt.

Ordner "03"

"Wecker"

Unabhängig von den oben angegebenen Modi und Ruhezeiten können bis zu acht Alarm-Zeiten (Wecker) eingestellt werden.

Dabei wird die auf der Webseite in der aufgeführten Tabelle angegebene MP3-Datei abgespielt. Im nebenstehenden Beispiel wird die Datei 001.mp3 im Verzeichnis 03 Montags bis Freitags morgens um 06:30 Uhr abgespielt. Die darüber angegebenen Ruhezeiten spielen hier ausnahmsweise keine Rolle.

Als letztes kann hier noch ein Track per Klick abgespielt werden. Auszuwählen sind hier das Unterverzeichnis, also z.B. "03" und die Tracknummer, z.B. "4" zum Abspielen von "004.mp3".

Web-Interface: DFPlayer

SPIFFS

Hier werden Kenndaten zum SPIFFS-Dateisystem des ESP8266 ausgegeben. Dies ist ein virtuelles Dateisystem im Flash des ESP8266.

Ab Version 2.9.0 müssen die Anzeige-Tabellen in das SPIFFS des ESP8266 geladen werden. Solange diese nicht geladen werden, leuchten die Minuten-LEDs bzw. die Status-LED blau und es wird nichts auf dem Display angezeigt.

Wird die nebenstehende Dateisystem-Parameter-Übersicht im Bild rechts nicht gezeigt, muss das SPIFFS über die Schaltfläche "Format ESP8266 SPIFFS" zunächst formatiert werden.

Wichtig: Es muss genau eine der folgenden Dateien in das SPIFFS des ESP8266 geladen werden.

Verfügbar sind

für WC12h:

 wc12h-tables-de.txt   - Deutsches Layout
 wc12h-tables-de2.txt  - Deutsches Layout Variante 2 (Neu!)
 wc12h-tables-ch1.txt  - Schweizer Layout Variante 1
 wc12h-tables-ch2.txt  - Schweizer Layout Variante 2
 wc12h-tables-en1.txt  - Englisches Layout Variante 1
 wc12h-tables-en2.txt  - Englisches Layout Variante 2
 wc12h-tables-es.txt   - Spanisches Layout (Neu!)
 wc12h-tables-fr.txt   - Französisches Layout
 wc12h-tables-se.txt   - Schwedisches Layout

für WC24h:

 wc24h-tables-de.txt   - Deutsches Layout 16x18
 wc24h-tables-de2.txt  - Deutsches Layout 15x15 (Neu!)

Die Layouts sind im Kapitel Layouts einzeln aufgeführt.

Die gewünschte Datei kann entweder vom Update-Server herunter- oder vom lokalen PC aus hochgeladen werden.

Zum Einblenden von Icons und Wetter-Icons müssen zwei Dateien im SPIFFS des ESP8266 installiert werden:

WordClock24h:

  • wc24h-icon.txt
  • wc24h-weather.txt

WordClock12h:

  • wc12h-icon.txt
  • wc12h-weather.txt

Diese kann man entweder durch einfachen Download vom Update-Server installieren oder durch einen Upload vom lokalen PC. Die Icons können mit einem Text-Editor selbst geändert und erweitert werden. In diesem Fall muss man dann den Upload vom lokalen PC wählen.

Die Dokumentation des Formats der ICON-Dateien folgt demnächst.

Web-Interface: SPIFFS

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.

Neu: Durch Klick auf die Schaltfläche "Format ESP8266 SPIFFS" kann der Flash-Speicherbereich, wo der ESP8266 die Update-Images sowohl für ESP8266 als auch für STM32 ablegt, neu formatiert werden. Das kann dann notwendig werden, wenn die Images nur unvollständig heruntergeladen werden.

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.

Fehler beim OTA Update: In Einzelfällen kam es beim OTA Update zu einem Fehler, der auf ein Problem mit dem im ESP enthaltenen Dateisystem hinweist. Dieses Dateisystem wird normalerweise beim Flash der Software in das ESP Modul automatisch erstellt und kann dann z.B. als Zwischenspeicher für OTA Updates von ESP und STM32 genutzt werden. Taucht im OTA-Log ein Fehler wie z.B. error: cannot open file auf, dann hilft es ggf. die Software mit einem anderen Programm in das ESP Modul zu schreiben oder das vorhandene Programm in einer aktuelleren Version zu testen. Alternativ dazu kann man den Flashspeicherbereich des ESP8266 durch Betätigen der Schaltfläche "Format ESP8266 SPIFFS" auf der Seite "SPIFFS" neu formatieren und das OTA-Update anschließend neu durchführen.

Sollte die aktuelle Version der ESP8266 Flash Download Tools (http://espressif.com/en/support/download/other-tools) Probleme bereiten, könnte man z.B. den NodeMCU Flasher (https://github.com/nodemcu/nodemcu-flasher) testen. Dort einfach unter "Config" das .BIN File laden und dann im Reiter "Operation" den entsprechenden COM Port auswählen und auf "Flash" klicken.

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
Web-Interface: Update STM32

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.


Soll nur das Display an- und ausgeschaltet werden, können Einkanal-IR-Fernbedienungen eingesetzt werden.

Beispiele für geeignete Fernbedienungen sind:

FB1 verwendet den NEC Code und kann mit der aktuellen Software angelernt werden. FB1
FB2 verwendet den Nikon Code, dessen Aktivierung geplant ist. FB2

Zum Anlernen wird die Taste so oft gedrückt, bis am Ende der Anlernroutine „Thank you“ als Laufschrift erscheint.


Die Zweikanal-Fernbedienung (FB3, Sony Code) kann mit der aktuellen Software angelernt werden.
Auf die zweite Taste kann z. B. „get temperature“ gelegt werden.
FB3

Bezugsquellen:
FB1
FB2
FB3


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 die Einträge "Tetris" und "Snake". Damit wird eine Art "Gamepad" eingeblendet, mit dem man auf der Uhr WCtris - einen Tetris-Clone - bzw. den Spiele-Klassiker Snake spielen kann. Viel Spaß!

WC24h Android App

FAQ

OTA

Bootloader

STM32F103 Mini-Dev-Board, Flash STM32 über OTA: Es kommt die Meldung: "Trying to enter Bootloader Mode... Failed!"

Beachte Shield für STM32 MiniDevBoard:

"Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss mit dem BOOT0 Pin auf dem Shield verbunden." Außerdem sollte der Pulldown-Widerstand R14 (10K) eingelötet sein.

HEX-Datei

Flash STM32 über OTA: Es kommt die Meldung: "Checking HEX file... Error: no EOF record found. HEX file may be incomplete."

Entweder hat der Up-/Download der Hex-Datei nicht funktioniert oder das SPIFFS des ESP8266 ist nicht korrekt formatiert. Letzteres kann man über die Schaltfläche "Format ESP866 SPIFFS" auf der Web-Seite "SPIFFS" formatieren.


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, s. Schema. Die angedachte Platzierung der Status-LED im Zwischenboden wird im Zwischenboden-Kapitel gezeigt. Da bei der WC24h alle 8 Kabelpaare des Flachbandkabels bereits durch die Streifen belegt sind, kann man sich die Spannung für die Status-LED bequem von den freien +5V- und GND-Anschlüsse des letzten LED-Streifens 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.

Alternativer Anschluss der LED-Streifen mittels Platinenstreifen:

Deutlich schneller, einfacher und aufgeräumter ist der Anschluss der WS2812 LED-Streifen mit den Platinenstreifen aus diesem GitHub Projekt. Die Ausrichtung auf dem Aluminiumblech und die Abstände zwischen den LED-Streifen sind dabei automatisch vorgegeben.

Anschluss der LEDs der WordClock12h mit Platinenstreifen

Zwischenböden

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

Word Clock 12h

Die Word Clock 12h verwendet 4 Eckpunkte für die Minutenanzeige und zeitgleich auch zur Statusanzeige.

Variante 1: WordClock 12h OHNE Ambilight Aussparungen
Rückseite
Vorderseite
Variante 2: WordClock 12h MIT Ambilight Aussparungen
Rückseite
Vorderseite

Word Clock 24h

Die WC24h-Frontplatte besitzt unten drei Punkte. Diese sind ursprünglich für folgende Bauteile vorgesehen (bei Betrachtung der Zwischenplatte von vorne):

  • Links: LDR/Fotowiderstand zur Helligkeitsmessung (Optional)
  • Mitte: (nur eine) Status-LED
  • Rechts: IR-TSOP-Empfänger für die Steuerung per Infrarotfernbedienung (Optional).
Variante 1: WordClock 24h v2 OHNE Ambilight
Rückseite
Vorderseite
Rückseite schräg
Variante 2: WordClock 24h v2 mit Ambilight
Rückseite
Vorderseite

Frontplatten

WC12h Edelstahl Frontplatten

Edelstahl126.jpg
Edelstahl139.jpg
Loch
Buchstabe

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-(

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


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 5 - OTA - DPF.

Die v5 enthält folgende Anpassungen:
  • DFP, R17, JP14 und JP15 wurde neu hinzugefügt
  • Über JP14 dann direkt ein Lautsprecher an den Ausgang des DFPlayer angeschlossen werden
  • Über JP15 kann ein Stereo Verstärker an den Low-Ausgang des DFPlayer angeschlossen werden


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

Das MiniDev Shield V5 ohne bestückten STM.

20180428 085916(2).jpg
Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss mit dem BOOT0 Pin auf dem Shield verbunden. Das Bild zeigt die V5 mit AMS1117, ESP12, Spannungsabschaltung und DF-Player mini.
MiniDev V5 bestueckt.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 V5:
WC MiniDev Shield v5 Schaltplan.png
Die Gerber Dateien des MiniDev Shield als v5 liegen hier: Medium:WC MiniDev Shield v5 20180226.zip

Shield für STM32F411 Nucleo Board

Vorgestellt wird hier das Shield für das Nucleo Board in der aktuellen Version 5 - OTA - DPF.

Die v5 enthält folgende Anpassungen:
  • DFP, R16, JP8 und JP12 wurde neu hinzugefügt
  • JP13 für SWD wurde neu hinzugefügt
  • Über JP8 dann direkt ein Lautsprecher an den Ausgang des DFPlayer angeschlossen werden
  • Über JP12 kann ein Stereo Verstärker an den Low-Ausgang des DFPlayer angeschlossen werden


WC Nucleo Shield v5 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 V5:
WC Nucleo Shield v5 Schaltplan.png
Die Gerber Dateien des Nucleo Shields als V5 liegen hier: Medium:WC_Nucleo_Shield_v5_20180206.zip

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.
Update 10/2017: Wegen der mittlerweile schlechten Verfügbarkeit der 90LED/m habe ich Modelle für 96LED/m Streifen ergänzt.

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

Aufgrund der Tatsache das die Anfragen zu Sammelbestellungen bzgl LED Stripes, Zwischenböden und Shields komplett weggefallen ist, werden keine neuen Sammelbestellungen mehr angeboten.


WC12h Sammelbestellung Frontplatten

Die Patent- und Rechtsanwälte, welche die Biegert & Funk Product GmbH & Co KG vertreten, haben wegen möglicher Verletzung von angemeldeten Geschmacksmustern eine Unterlassungs- und Verpflichtungserklärung übersandt, die kurzfristig zu unterschreiben ist.

Daher werden keine Bestellungen mehr angenommen, d.h. es werden auch keine Frontplatten mehr angeboten.


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

Auch für die WC24 Zwischenböden werden keine Sammelbestellungen mehr angeboten.


WC24h Sammelbestellung Frontplatten

Die Patent- und Rechtsanwälte, welche die Biegert & Funk Product GmbH & Co KG vertreten, haben wegen möglicher Verletzung von angemeldeten Geschmacksmustern eine Unterlassungs- und Verpflichtungserklärung übersandt, die kurzfristig zu unterschreiben ist.

Daher werden keine Bestellungen mehr angenommen, d.h. es werden auch keine Frontplatten mehr angeboten.


Anhang

Layouts

Folgende Layouts werden unterstützt:

WC12h (10x11):

  • wc12h-tables-de - Deutsches Layout
     ESKISTLFÜNF
     ZEHNZWANZIG
     DREIVIERTEL
     TGNACHVORJM
     HALBQZWÖLFP
     ZWEINSIEBEN
     KDREIRHFÜNF
     ELFNEUNVIER
     WACHTZEHNRS
     BSECHSFMUHR
  • wc12h-tables-de2 - Deutsches Layout Variante 2 (Neu!)
     ES#IST#FÜNF
     ZEHNZWANZIG
     DREIVIERTEL
     VOR####NACH
     HALB#ELFÜNF
     EINS###ZWEI
     DREI###VIER
     SECHS##ACHT
     SIEBENZWÖLF
     ZEHN####UHR
  • wc12h-tables-ch1 - Schweizer Layout Variante 1
     ESKISCHAFÜF
     VIERTUBFZÄÄ
     ZWÄNZGSIVOR
     ABOHAUBIEPM
     EISZWÖISDRÜ
     VIERIFÜFIQT
     SÄCHSISIBNI
     ACHTINÜNIEL
     ZÄNIERBEUFI
     ZWÖUFIAMUHR
  • wc12h-tables-ch2 - Schweizer Layout Variante 2
     ESKESCHAZÄÄ
     FÖIFCVIERTU
     ZWÄNZGSIVOR
     ABOHAUBIEGE
     EISZWÖISDRÜ
     VIERITFÖIFI
     SÄCHSISEBNI
     ACHTIENÜNIL
     ZÄNIERBRLFI
     ZWÖLFINAUHR
  • wc12h-tables-en1 - Englisches Layout Variante 1
     ITLISASAMPM
     ACQUARTERDC
     TWENTYFIVEX
     HALFSTENFTO
     PASTERUNINE
     ONESIXTHREE
     FOURFIVETWO
     EIGHTELEVEN
     SEVENTWELVE
     TENSEOCLOCK
  • wc12h-tables-en2 - Englisches Layout Variante 2
     ITKISGHALFE
     TENYQUARTER
     DTWENTYFIVE
     TOPASTEFOUR
     FIVETWONINE
     THREETWELVE
     BELEVENONES
     SEVENWEIGHT
     ITENSIXTIES
     TINEOICLOCK
  • wc12h-tables-es - Spanisches Layout (Neu!)
     ESONELASUNA
     DOSITRESOAM
     CUATROCINCO
     SEISASIETEN
     OCHONUEVEPM
     LADIEZSONCE
     DOCELYMENOS
     OVEINTEDIEZ
     VEINTICINCO
     MEDIACUARTO
  • wc12h-tables-fr - Französisches Layout
     ILNESTODEUX
     QUATRETROIS
     NEUFUNESEPT
     HUITSIXCINQ
     MIDIXMINUIT
     ONZERHEURES
     MOINSOLEDIX
     ETRQUARTPMD
     VINGT-CINQU
     ETSDEMIEPAM
  • wc12h-tables-se - Schwedisches Layout
     KLOCKANTÄRK
     FEMYISTIONI
     KVARTQIENZO
     TJUGOLIVIPM
     ÖVERKAMHALV
     ETTUSVLXTVA
     TREMYKYFYRA
     FEMSFLORSEX
     SJUÄTTAINIO
     TIOELVATOLV
  • wc12h-tables-it - Italienisches Layout (ab Version 3.0 verfügbar)
     SONORLEBORE
     ERLUNASDUEZ
     TREOTTONOVE
     DIECIUNDICI
     DODICISETTE
     QUATTROCSEI
     CINQUEAMENO
     EKUNLQUARTO
     VENTICINQUE
     DIECILMEZZA

WC24h:

  • wc24h-tables-de - Deutsches Layout 16x18
     ES#IST#VIERTELEINS
     DREINERSECHSIEBEN#
     ELFÜNFNEUNVIERACHT
     NULLZWEI#ZWÖLFZEHN
     UND#ZWANZIGVIERZIG
     DREISSIGFÜNFZIGUHR
     MINUTEN#VORUNDNACH
     EINDREIVIERTELHALB
     SIEBENEUNULLZWEINE
     FÜNFSECHSNACHTVIER
     DREINSUND#ELF#ZEHN
     ZWANZIGGRADREISSIG
     VIERZIGZWÖLFÜNFZIG
     MINUTENUHR#FRÜHVOR
     ABENDSMITTERNACHTS
     MORGENSWARMMITTAGS
  • wc24h-tables-de2 - Deutsches Layout 15x15
     ES#IST#NULL#EIN
     ZWEI#DREI#VIER#
     #FÜNF###SECHS##
     SIEBEN###ACHT##
     NEUN##ZEHN##ELF
     #ZWÖLF###UND###
     ZWANZIG#UHR#UND
     EINE#ZWEI#DREI#
     VIER#FÜNF#SECHS
     ##SIEBEN#ACHT##
     #NEUN#ZEHN#ELF#
     ###ZWÖLF##UND##
     ZWANZIG#DREIßIG
     #VIERZIG##NULL#
     FÜNFZIG#MINUTEN
  • wc24h-tables-pl - Polnisches Layout 18x18
     JEST#TRZECIASZOSTA
     DZIEWIATADZIESIATA
     SIODMACZWARTAOSMA#
     PIATADRUGAPIERWSZA
     DWUNASTAJEDENASTA#
     #PIECDZIESIAT#####
     ####DWADZIESCIA###
     ZEROCZTERDZIESCI##
     #TRZYDZIESCI#ZERO#
     DZIESIECTRZYNASCIE
     JEDENASCIEDZIEWIEC
     #####SZESNASCIE###
     ###DZIEWIETNASCIE#
     CZTERNASCIE#SZESC#
     ######PIETNASCIE##
     OSIEMNASCIE#CZTERY
     PIECDWANASCIE#####
     SIEDEMNASCIE#PM#AM
  • wc24h-tables-pl2 - Polnisches Layout 20x20 (Neu!)
     JEST#SIEDEMNASTAZERO
     SIODMADZIESIATA#OSMA
     #CZWARTA#DWUDZIESTA#
     DRUGA#SZOSTA#TRZECIA
     TRZYNASTA##DWUNASTA#
     OSIEMNASTA#PIETNASTA
     JEDENASTA#SZESNASTA#
     #DZIEWIETNASTA#PIATA
     PIERWSZA#CZTERNASTA#
     DZIEWIATA#SZESNASCIE
     TRZYDZIESCI#DZIESIEC
     ZERO###DWADZIESCIA##
     PIETNASCIEJEDENASCIE
     ###CZTERDZIESCI#ZERO
     #PIECDZIESIAT##JEDEN
     OSIEMNASCIEPIECSZESC
     #CZTERY###TRZYNASCIE
     SIEDEMNASCIEDZIEWIEC
     CZTERNASCIEDWANASCIE
     ###DZIEWIETNASCIE#C#

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
Ab Version 2.9.4:
gS x           - Snake
                   x = s                Snake starten
                   x = l                Links
                   x = r                Rechts
                   x = d                Unten
                   x = u                Hoch
                   x = q                Quit: Beenden
f f t          - MP3-Track über DFPlayer abspielen
                   f = 0 ...  99        Ordner, 0 = 00, 1 = 01 usw.
                   t = 0 ... 255        Track, 0 = 000.mp3, 1 = 001.mp3 usw.
o n            - Overlay anzeigen
                   n = 0 ... 7          Overlay 0 bis 7 anzeigen

WEB-Fernsteuerung

Die meisten Konfigurationen oder Kommandos, die per Webbrowser bedient werden, können auch durch einfache HTTP-Aufrufe ausgeführt werden. Anbei eine Liste der typischen Web-Kommandos - ohne Anspruch auf Vollständigkeit.

Funktion URL Bemerkungen
Einschalten Display http://x.x.x.x/?action=poweron
Ausschalten Display http://x.x.x.x/?action=poweroff
Einschalten Ambilight http://x.x.x.x/?action=apoweron
Ausschalten Ambilight http://x.x.x.x/?action=apoweroff
Zeit holen vom Timeserver http://x.x.x.x/network?action=nettime
Anzeigen Temperatur http://x.x.x.x/temperature?action=displaytemperature
Wetter anzeigen http://x.x.x.x/weather?action=getweather
Test Display http://x.x.x.x/display?action=testdisplay
Overlay N anzeigen http://x.x.x.x/overlays?action=dispN (N=0,1,2...)
MP3-Track abspielen http://x.x.x.x/dfplayer?plfolder=FF&pltrack=TTT&action=play FF=folder, TTT=track

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.

Bei dieser Version (März 2016) sind die Anschlüsse für den UART auf dem Shield so beschriftet, dass (ausnahmsweise) TX -> TX und RX -> RX verbunden werden müssen.

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


Version 4:
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:
Bild fehlt noch
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 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


Version 4:
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

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

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)
Anschlussbelegung ESP8266 ESP-01 - Bauteilseite!

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

Ressourcen (.DXF, CAD/.STEP)

WordClock 12h

.DXF Vorlagen - Zwischenböden

.STEP Dateien - Zwischenböden

Hinweis: Die Zwischenböden aus den Sammelbestellungen basieren auf einer anderen Zeichnung und sind nicht komplett identisch. Für jemanden mit CNC Fräse, Lasercutter oder 3D Drucker hier aber eine DIY Grundlage, mit der auch Anpassungen schnell umsetzbar sind.

Historie der Software-Versionen

STM32 WordClock Software

STM32 Version 3.1.0

  • Portierung auf STM32F4x1 BlackPill

STM32 Version 3.0.1

  • Bugfix Advent-Berechnung.
  • Neues Webinterface.
  • Neue Datenstruktur für WC-tables.
  • Neue WC-Tabellen
  • Diverse kleinere Bugfixes

STM32 Version 2.9.5

  • Bugfix Speak-Modus: Temperatur wurde im Speak-Modus falsch vorgelesen.
  • Bugfix Overlays: Monat und Tag waren in der Anzeige der Weboberfläche vertauscht.

STM32 Version 2.9.4b

  • Neue Layout-Dateien, u.a. wc12h-tables-de2 als alternatives deutsches Layout für WC12h-Anzeigen

STM32 Version 2.9.4

  • Neues Spiel: Snake
  • Bugfix: Marker-Colors wurden nicht mehr berücksichtigt, wenn "Sync Display Colors" für Ambilight eingestellt war.
  • Bugfix: Mitternachtsberechnung (nur relevant für französisches WC12-Layout)

STM32 Version 2.9.3

  • Diverse Bugfixes in der Ambilight-Helligkeitsberechnung

STM32 Version 2.9.2

  • Fading der Ambilight-LEDs im Clock- & Clock2-Modus ein- und ausschaltbar
  • Marker Colors in der Clock-Animation: Zusätzliche Einstellung "Use Display Colors"
  • Optimierung der SK6812-Timings für längere Zuleitungen
  • WC12h: Fading der Minutenpunkte
  • Umstellung der Wettervorhersage von Tages-Vorhersage ("daily forecast") auf 24h-Vorhersage ("hour forecast")
  • Bugfix Timer: Display schaltet sich erst beim nächsten Overlay ein

STM32 Version 2.9.1

  • Bugfix: Makefile: STM32F4xx-Varianten (2.9.0) waren nicht lauffähig.
  • Bugfix: Berücksichtigung des Weiß-Kanals der SK6812 für Clock & Clock2
  • Logging des Boot-Vorgangs ausführlicher
  • Standard-Werte für Ambilight-Brightness auf lineare Werte 0-15 gesetzt.

STM32 Version 2.9.0

  • Neu: Auslagerung der Display-Layouts in das SPIFFS des ESP8266.
  • Neu: Hochladen eigener Display-Layouts über das Webinterface möglich.
  • Neu: Ambilight Modes "CLOCK" und "CLOCK2": beliebige Anzahl von Ambilight-LEDs möglich.
  • Neu: Ambilight Mode Clock: Farbe der 5-Sekunden-Marker einstellbar.
  • Neu: Ambilight Mode Clock und Clock2: Fading der Ambilight-LEDs
  • Neu: Ambilight-Helligkeitskurve.
  • Neu: Icons in Overlays: Gezieltes Ausblenden von LEDs.
  • Neu: Angabe eines Ausgabeformats für die Ticker-Datumsanzeige.
  • Neu: Zusätzlicher Ambilight-Timer.
  • Neu: Animation "Matrix" in aktueller Displayfarbe, bisherige Matrix-Animation: "GreenMatrix".
  • Neu: Snake Animation: Schlange baut nun die neue Uhrzeit gleichzeitig wieder hinter sich auf.
  • Neu: Display-Modus "Tirol": Anzeige von DREIVIERTEL um hh:45, jedoch VIERTEL NACH um hh:15 - wie Rhein/Ruhr.
  • Neu: Display-Modus "Jester" (1. April): Unorthodoxe Anzeige für den 1. April oder andere Anlässe.
  • Neu: Color- bzw. Ambilight-Animation "Daylight": gesteuert nach Uhrzeit (von morgens rot nach abends blau)
  • Neu: Wetter: Unterscheidung aktuelles Wetter und Vorhersage - auch in den Overlays (FC = Forecast = Vorhersage).
  • Neu: Wetterticker: Temperaturwerte werden nun gerundet.
  • Neu: Webinterface: Neuer Button "Reset EEPROM" im Hauptmenü.
  • Neu: Webinterface: Neuer Button "Reset STM32" im Hauptmenü - funktioniert nur mit ESP-12F.
  • Bugfix: LDR-Startwerte für MIN und MAX auf sinnvolle Werte geändert.
  • Bugfix: Ende-Kennung von DFPLayer mit Firmware 0008 statt 0005.

STM32 Version 2.8.4

  • Bugfix: Icons wurden bei aktivierter Helligkeitsanpassung teilweise nach sehr kurzer Zeit wieder ausgeblendet.

STM32 Version 2.8.3

  • Bugfix: Daten für openweather.org wurden beim Boot versehentlich gelöscht, wenn LON & LAT leer sind.

STM32 Version 2.8.2

  • Neues Overlay "DFPlayer": Abspielen von MP3-Dateien.
  • Overlays: Display-Button wieder eingebaut.
  • WordClock24h: Countdown-Modus vervollständigt für Silvester.
  • DCF77-Empfang wird nun abgeschaltet, solange das Display eingeschaltet ist.
  • Daten für openweather.org werden bei nicht-initialisierten EEPROM-Speicherbereichen auf 0 zurückgesetzt.

STM32 Version 2.8.1

  • Timer-Tabellen werden nun auf 0 zurückgesetzt bei nicht-initialisierten EEPROM-Speicherbereichen.
  • Kommunikationsprobleme zwischen ESP8266 und STM32 bei automatischer Helligkeitsregelung beseitigt.
  • Änderungen der Brightness Tabellen wirken sich nun unmittelbar auf die Anzeige aus.
  • Automatische Helligkeitsregelung: Sprünge bei der Raumhelligkeit werden nun weich angepasst.

STM32 Version 2.8.0

  • Neue Konfigurationsseiten im Webinterface: Overlays und SPIFFS
  • Neu: Datumsabhängiges Einblenden von Overlays
  • Neu: Einbindung von Wetter-Icons als Overlays
  • Neu: Ticker-Text als Overlay
  • Neu: Wetter-Ticker als Overlay
  • Neu: Geänderte Menüanordnung der Weboberfläche
  • Neu: Rotes Flackern der Status-LED bzw. der Minuten-LEDs beim Upgrade der EEPROM-Version
  • Auslagerung der Overlay-Icons ins SPIFFS des ESP8266
  • Diverse Optimierungen zwecks Einsparung von Flash
  • Einige kleinere Bugfixes
  • Neue Sprachvarianten für WC12h: Französisch und Schwedisch

STM32 Version 2.7.3

  • Neu: Web-Interface: Abspielen eines Tracks per Button "Play".
  • Neu: Neue API-Funktion über UDP: Abspielen eines Tracks.
  • Neu: Einblenden eines Overlays per Button "Display".
  • Neu: Neue API-Funktion über UDP: Einblenden eines Overlays.
  • Bugfix: Im Bell-Modus wurden die Tracks zu jeder Viertelstunde unabhängig zur Einstellung abgespielt.

STM32 Version 2.7.2

  • WC12h: Korrektur Englisch-Layout: Wort PAST fehlte um xx:30 Uhr.
  • NEU: Reset des I2C-Bus, wenn EEPROM und RTC nicht erkannt werden.
  • Bugfix: Wetterdaten wurden nicht mehr angezeigt.

STM32 Version 2.7.0

  • Neu: Abspielen von MP3-Tracks über Mini DFPlayer bei ausgewählten Ereignissen.
  • Neu: Sprechende Uhr.
  • Neu: Bis zu acht Weckzeiten konfigurierbar.
  • Neu: Advent (1-4) Overlays.
  • Bugfix Timer-Tabellen: Bei gleichem Wochentag wurde der Timer nicht erkannt.
  • Bugfix: Schweizerdeutsch-Layouts (WC12h)
  • Bugfix: Board-LED leuchtet nun wieder, wenn ESP8266 über STM32 geflasht wird.
  • Takt des STM32F411RE von 84MHz auf 100MHz erhöht.
  • Webinterface: Neu: Power-Status Anzeige
  • Webinterface: Neu: DFPlayer-Status-Anzeige
  • Webinterface: Neu: Formatieren des ESP8266-SPIFFS Dateisystems
  • ESP8266: Mehrere Bugfixes und mehr Fehlerbehandlungen im Source-Code.
  • Vorbereitung Unterstützung der Interpretersprache NIC.
  • Neu: Unterstützung für Nucleo STM32F446RE eingebaut - ungetestet.

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

ESP8266 Firmware

ESP Version 3.0.0T5

  • Neues Web-Interface.
  • Zahlreiche Änderungen gegenüber 2.9.x

ESP Version 2.9.5

  • Behandlung von eingegebenen Sonderzeichen wie "&+/" in Web-Oberfläche. Relevant für SSID, KEY, Ticker-Texte.

ESP Version 2.9.2

  • Fehlerbehandlung bei korrupter Anzeigetabelle im ESP-SPIFFS

ESP Version 2.9.0

  • Webinterface: Auslagerung der Display-Layouts in das SPIFFS des ESP8266.
  • Webinterface: Hochladen eigener Display-Layouts über das Webinterface möglich.
  • Webinterface: Ambilight Mode Clock: Farbe der 5-Sekunden-Marker einstellbar.
  • Webinterface: Ambilight-Helligkeitskurve.
  • Webinterface: Angabe eines Ausgabeformats für die Ticker-Datumsanzeige.
  • Webinterface: Zusätzlicher Ambilight-Timer.
  • Webinterface: Animation "Matrix" in aktueller Displayfarbe, bisherige Matrix-Animation: "GreenMatrix".
  • Webinterface: Wetter: Unterscheidung aktuelles Wetter und Vorhersage - auch in den Overlays (FC = Forecast = Vorhersage).
  • Webinterface: Webinterface: Neuer Button "Reset EEPROM" im Hauptmenü.
  • Webinterface: Webinterface: Neuer Button "Reset STM32" im Hauptmenü - funktioniert nur mit ESP-12F.

ESP Version 2.8.3

  • Overlays: Display-Button wieder eingebaut.

ESP Version 2.8.2

  • Änderungen der Brightness Tabellen wirken sich nun unmittelbar auf die Anzeige aus.

ESP Version 2.8.1

  • Bugfix: Fehler bei Local Update behoben.

ESP Version 2.8.0

  • Neue Konfigurationsseiten im Webinterface: Overlays und SPIFFS.
  • Neu: Geänderte Menüanordnung der Weboberfläche.
  • Auslagerung der Overlay-Icons ins SPIFFS des ESP8266.
  • Einige kleinere Bugfixes.

ESP Version 2.7.3

  • Neu: Web-Interface: Abspielen eines Tracks per Button "Play".
  • Neu: Neue API-Funktion über UDP: Abspielen eines Tracks.
  • Neu: Einblenden eines Overlays per Button "Display".
  • Neu: Neue API-Funktion über UDP: Einblenden eines Overlays.
  • Neu: Seite "SPIFFS" - Vorbereitung für Version 2.8.0

ESP Version 2.7.2

  • Bugfix: Wetterdaten wurden nicht mehr ausgegeben.

ESP Version 2.7.1

  • Bugfix: Formatieren des Flashs resultierte in Endlosschleife der Weboberfläche

ESP Version 2.7.0

  • Neue Web-Seite: "DFPlayer" zum Abspielen von MP3-Tracks bei vordefinierten Ereignissen.
  • Webinterface: Neu: Power-Status Anzeige
  • Webinterface: Neu: DFPlayer-Status-Anzeige
  • Webinterface: Neu: Formatieren des ESP8266-SPIFFS Dateisystems
  • Mehrere Bugfixes und mehr Fehlerbehandlungen im Source-Code.

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

Android App

APP Version 2.9.4

Änderungen:

  • Snake-Steuerung hinzugefügt

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