== Download ==
=== SW V0.10 ===
Hier eine '''Vorabversion''' des Projektes:

[[Datei:Wordclock-0.10.zip]]

Bitte README.txt lesen!

nderungen:
* abschaltbares "ES IST" via Sprach-Wahl-Taste fr beide deutsche Front Designs 
** (bernommen von wichtel - aber Reihenfolge gendert -> Handbuch)
* Bootloader Support:
**Wenn 'R' ber die UART empfangen wird, wird ein Watchdog-Reset ausgelst.
**Der Watchdog wird direkt nach Systemstart deaktiviert.
* Indikator fr Zeiteingabe definiert -> blinkendes 'Uhr', wenn keine Mintenwrter aktiv
* Helligkeit fr Nachtstunden bei Zeiteingabe reduziert.
* Sicherung des Hauptmodus (Einfarb-, Farbwechsel- und Pulse-Modus) und des aktiven Farbprofils im EEPROM
* BAUD_ERROR Makro aktualisiert
* atmega88 Konfiguration entfernt
* DCF77 gendert, zwei erfolgreich empfangene Frames vor Zeitbernahme notwendig
* IRMP-Version 1.7.2:
** Bugfix: Timeout vor NEC repetition frames um "Geister-Kommandos" zu vermeiden
** einige weniger wichtige Protokolle hinzugefgt
* gefixt BUG09_018 (Zeitupdate whrend Zeiteingabe beintrchtigt Anzeige)
* gefixt BUG09_019 (gemeldet von Wichtel) ("Gesiter-Kommandos" siehe neue IRMP-Version)
* gefixt BUG09_020 (gemeldet von Roman) DCF-Initialisierung <=6 anstatt <=7
* gefixt BUG09_021 (Ambilight in SW an OUTG2 anstatt OUTG1)
* gefixt Fehler der in Mono-Color-Variante: zurckschalten in Normal-Mode forciert kein Display-Update


----

=== ltere Versionen ===

==== SW V0.9 ====
Hier eine '''Vorabversion''' des Quellcodes zum Projekt:

[[Datei:Wordclock-09.zip]]

Bitte README.txt lesen!


zustzliche Features:
* Untersttzung fr neue (3 sprachige) deutsche Front
* Untersttzung fr TIX-Clock
* kurze Anzeige von Submodi (Farbprofilauswahl, Sprachvariante)
* Helligkeits-Offset wird abgespeichert
* 24h Zeiteingabe (8-20Uhr: hell, 20-8Uhr: dunkel)
* Standardeeprom-Werte im Flash
* Ein/Aus-Schalt-Zeiten
* Pulsierender Modus
* neue IRMP-Version

Das Benutzerhandbuch kann auch als doc / docx geladen werden:

[[Datei:WordClock_Benutzerhandbuch.zip]]

Die wichtigsten Einstellungen knnen in der Main.h gendert werden.

''Anmerkung: die vorkompilierten Hexfiles enthalten die 3-sprachig-deutsche Version. Wer noch eine alte Frontplatte hat, muss das Binary nach ndern der Konfiguration (in der main.h) selbst kompilieren.''

===== Bugfixes =====
Zum Anwenden der .patch-Files gibt es das patch-Tool, das mit dem AVR-GCC kommt und von der Kommandozeile aus erreichbar ist. Manual-Page zu patch: [http://linux.die.net/man/1/patch hier].
* V0.9 Patch 1 ([[Media:BUG09_008_hourbug_display_wc_ger3.c.patch|Patchfile]])
** fixt BUG09_008 (falsche Zeitanzeige)
** Hexfiles:
*** dreisprachige Front: [[Datei:wordclock_V0.9_Patch_1_ger3_mega168.hex]]
*** alte zweisprachige Front: [[Datei:wordclock_V0.9_Patch_1_ger_mega168.hex]]
* V0.9 Patch 2 ([[Media:BUG09_010_hourbug_display_wc_ger3.c.patch|Patchfile]] - basierend auf vorherigen patches)
** fixt BUG09_010 (EIN <-> EINS)
** Hexfiles (enthalten vorherige Patches)
*** dreisprachige Front: [[Datei:wordclock_V0.9_Patch_2_ger3_mega168.hex]]
*** alte zweisprachige Front: [[Datei:wordclock_V0.9_Patch_2_ger_mega168.hex]]
* V0.9 Patch 3 ([[Media:V0.9_patch3.patch|Patchfile]] - basierend auf vorherigen patches)
** fixed BUG09_009 (crashes after IR-Kommands) 
** fixed BUG09_011 (training bug)
** fixed BUG09_012 (casing on include usermodes.c)
** fixed BUG09_013 (1:00 - 1:04  and 1:05-1:09  's')
** fixed BUG09_014 (brightness control does not work after setting time)
** fixed wrong command handler in display_x-header
** fixed default values for color profiles
** extracted inits of states from user_init to own routine in usermodes.c
** Hexfiles:
*** dreisprachige Front: [[Datei:wordclock_V0.9_Patch_3_ger3_mega168.hex]]
*** alte zweisprachige Front: [[Datei:wordclock_V0.9_Patch_3_ger_mega168.hex]]
* V0.9 Patch 4 ([[Media:BUG09_015_BUG09_016.patch|Patchfile]] - basierend auf vorherigen patches, [[Media:wcFirmware_v0.9_patch4.zip|komplette Sourcen]])
** fixed BUG09_015 (after enter OnOff-Time no further action is possible)
** fixed BUG09_016 (last Ir-Command is ignored in training)
** Hexfiles (enthalten vorherige Patches)
*** dreisprachige Front: [[Datei:wordclock_V0.9_Patch_4_ger3_mega168.hex]]
*** alte zweisprachige Front: [[Datei:wordclock_V0.9_Patch_4_ger_mega168.hex]]
* V0.9 Patch 5 ([[Media:DCF77_BUG09_017.patch|Patchfile]] - basierend auf vorherige Patches)
** fixed BUG09_017 (set second to 0, when new DCF77 time will take over - prevent a minute jump)
==== V0.8 ====
[[Datei:Wordclock-08-src.zip]]
Bitte 00README.txt lesen!
----
=== Bugs ===
;[besttigt] 
: der Bug konnte von den Entwicklern reproduziert werden
;[gefixt] 
: der Bug wurde bereits gefixt, der Fix ist aber in noch keinem Release enthalten.
;<span style="color:#006f00;">[gefixt - Vx.y] </span> 
: der Bug wurde in Version x.y gefixt
;<span style="color:#8f8f8f;"><s>[widerlegt]</s></span> 
: der Bug konnte nicht besttigt werden, oder es wurde eine andere Ursache gefunden

==== Version 0.8 ====
* <span style="color:#006f00;">BUG08_001 - [besttigt] [gefixt - V0.9]
** Helligkeitssteuerung per FB funktioniert nicht richtig</span> 
* BUG08_002 - [besttigt]
** Helligkeitssteuerung per LDR funktioniert nicht richtig
** [Ergnzt 22.5.10 von Wichtel] In pwm.c wird pwm_idx innerhalb pwm_set_brightness_step() falsch normiert:
**     pwm_idx % MAX_PWM_STEPS; ersetzen durch:
**     else if (pwm_idx >= MAX_PWM_STEPS ) pwm_idx = MAX_PWM_STEPS - 1;
* <span style="color:#006f00;">BUG08_003 - [besttigt] [gefixt - V0.9]
** OUT23 wird immer mit OUTL1 geschalten</span> 
* <span style="color:#006f00;">BUG08_004 - [besttigt] [gefixt - V0.9]
** Helligkeitssteuerung: genderter Wert wird nicht gespeichert
** nach Power-ON-Reset immer 100%</span> 
* <span style="color:#8f8f8f;"><s>BUG08_005</s> [widerlegt] (Fehler lag woanders)
** die Kommandos der FB gehen nach einem Power-ON-Reset manchmal verloren</span> 
* <span style="color:#8f8f8f;"><s>BUG08_006 (reportet von panik)</s> [widerlegt] (Fehler lag woanders)
** Die Uhr zeigt nach mehr als 10 Stunden Betrieb fr wenige Minuten ein falsches Word mit halber Helligkeit (auf und abschwellend) an.
** Anzeige korrekt: FNF NACH DREI (Ossi-Modus ist permanent aktiv)
** jetzt beginnt zustzlich das Word VIERTEL zu leuchten (halber Helligkeit auf und abschwellend)
** Nach wenigen Minuten ist wieder alles normal.</span> 
* <span style="color:#8f8f8f;"><s>BUG08_007</s> [widerlegt] (Fehler lag woanders)
** nach mehr als 12 Stunden Betrieb oft zustzliche Anzeige der Wrter VIERTEL und NACH (jetzt mit voller Helligkeit bis zum nchsten Bildwechsel)
** z.B 20:15 Uhr --> Anzeige: ES IST VIERTEL NACH NEUN (Ossimodus aktiv)
** 20:05 Uhr --> Anzeige: ES IST FNF VIERTEL NACH ACHT(Ossimodus aktiv)
** 09:35 Uhr --> Anzeige: ES IST FNF VIERTEL NACH HALB ZEHN(Ossimodus aktiv)</span>

==== Version 0.9 ====
* <span style="color:#006f00;">BUG09_008 - [besttigt] [gefixt V0.9 Patch 1]
** in der 3-sprachigen deutschen Frontplatte wird die Stunde wird in allen Sprachmodi 5min zu spt hochgezhlt</span> 
** <span style="color:#006f00;">Der Fehler liegt in display_wc_ger3.c Zeile 127: das > muss durch ein >= ersetzt werden ([[Media:BUG09_008_hourbug_display_wc_ger3.c.patch|Patchfile]])</span>
* <span style="color:#006f00;">BUG09_009 - [besttigt] [gefixt V0.9 Patch 3]
** nach Systemstart (nach Ende des Blinken) fhrt Bettigung des Einfarbmodus-Knopfes (-> Farbprofilwahl) zum Absturz
** Workaround: zuerst in anderen Modus wechseln (zB. Demo)</span> 
* <span style="color:#006f00;">BUG09_010 - [besttigt] [gefixt V0.9 Patch 2] 
** Anzeige von EIN oder EINS vertauscht ('eins' wird angezeigt, wenn 'ein' dastehen; vice versa) bei 3 sprachiger Front</span> 
* <span style="color:#006f00;">BUG09_011 - [besttigt] [gefixt V0.9 Patch 3]
** IR-Training - bei falsch erkannten Kommandos (falsche Adresse) wird trotzdem hochgezhlt.</span> 
* <span style="color:#006f00;">BUG09_012 - [besttigt] [gefixt V0.9 Patch 3]
**Der Compiler meint: user.c:164:23: error: userModes.c: No such file or directory - Sollte das nicht usermodes.c heien?</span> 
* <span style="color:#006f00;">BUG09_013 (gemeldet von Wichtel) - [besttigt] [gefixt V0.9 Patch 3]
** Anzeige von EIN und EINS im Bereich von 0-4 und 5-9 min vertauscht, Zeile 153 in display_wc_ger3.c (mit Patch 2) muss lauten:
** if((hour==1 || hour==13) && minutes==0){  // if "Es ist ein Uhr" <- remove 's' from "eins"</span> 
* <span style="color:#006f00;">BUG09_014 (gemeldet von Wichtel) - [besttigt] [gefixt V0.9 Patch 3]
** Nach manueller Uhrzeiteinstellung keine bernahme der manuell eingestellten Helligkeit, nach einmal Pulsmodus ein/aus wird sie wieder bernommen</span> 
* <span style="color:#006f00;">BUG09_015 (gemeldet von Wichtel) - [besttigt] [gefixt V0.9 Patch 4]
**Nach einstellen von Ein/Ausschaltzeit keine Helligkeitssteuerung (Anmerkung von Vlad: -->BUG09_014), keine Modusumschaltung mehr mglich und keine Einblendung des Farbprofilnamens mehr</span> 
* <span style="color:#006f00;">BUG09_016 (gemeldet von Wichtel) - [besttigt] [gefixt V0.9 Patch 4]
** Trainingsmodus erreicht letztes Kommando nicht, da curkey vor Schlussabfrage incrementiert wird.
** durch BUG09_011-fix entstanden</span>
* <span style="color:#006f00;">BUG09_017 (gemeldet von Wichtel) - [besttigt] [gefixt V0.9 Patch 5]
** Uhr geht bis zu einer Minute vor, da die Sekunden durch DCF77-Empfang nicht beeinflusst werden, zur Abhilfe in dcf77.c als Zeile 379 einfgen: (die derzeitige Zeile 379 wird entsprechend nach unten geschoben)
**  DateTime_p->ss  = 0;</span>
* <span style="color:#000000;">BUG09_018 (gemeldet von Wichtel) - [besttigt] [gefixt]
** Bei manueller Zeiteinstellung und abwarten des realen Minutenwechsels kehrt die Anzeige zur Uhrzeit zurck ohne den Einstellmodus zu beenden</span>
* <span style="color:#000000;">BUG09_019 (gemeldet von Wichtel)
** Zuletzt erfolgreich erkanntes Fernbedienkommando wird sporadisch mehrere Minuten nach dem letzten tatschlichen Empfang erneut erkannt</span>
* <span style="color:#000000;">BUG09_020 (gemeldet von Roman) - [besttigt] [gefixt]
** Fehler in der Initialisierung der DCF77 Struct. Zeile 106 muss wie folgt lauten:
**   for (i=0; i < 6; i++)</span>
* <span style="color:#000000;">BUG09_021 - [besttigt] [gefixt]
** Ambilight ist in SW an OUTG2, anstatt OUTG1</span>



=== Flashen mittels Bootloader ===
Um den ATmega168 mit dem Fastboot von Peter Dannegger zu flashen, muss vorab das FastBoot.hex eingespielt werden. Ebenso muss dann die eFuse auf 0xF8 eingestellt werden.

Um dann spter eine neue SW zu flashen, muss dann nur noch das neue Hexfile mittels FBOOT bertragen werden.

Im angehngten ZIP ist der FBOOT von Peter Dannegger und das HEX-File fr den ATmega168 einfgt. '''>> [[Datei:WordClock_FastBoot.zip?]] <<'''

Ist diese einmal auf dem uC, kann jederzeit einfach ber die serielle Schnittstelle (COM 1) mittels einem RS-232/TTL Pegelwandler die neue Firmware eingespielt werden.

'''Wichtig:''' FBOOT.exe und die neue Firmware mssen in einem Verzeichnis liegen. Dann kann mittels ''FBOOT /Pwordcl~1.hex'' geflasht werden. FBOOT kann nicht mit langen Dateinamen umgehen!

Ein '''bootloader-client''' fr '''Linux''' ist [https://trac.fs.ei.tum.de/elektronik/browser/ventilator/userspace/lboot hier] zu finden. Credits: Bernhard Michler, Andreas Butti, [http://www.mikrocontroller.net/user/show/ad-rem ad-rem].

Bootloaden ber Bluetooth wurde in diesem [http://www.mikrocontroller.net/topic/156661?goto=1710183#1710183 Post] erfolgreich implementiert, siehe auch [http://www.mikrocontroller.net/articles/Diskussion:Word_Clock_Variante_1 hier].

----
