Sunday, February 14, 2016

New Wise Clock 4 software release

The latest release of the Wise Clock 4 software can be found here.

It includes a few new features:
The WiFi settings are configured in the SD card file message.txt, and they look like this:

#### ESP8266 configuration
#
# Esp8266.ssid Wireless SSID to connect to
# Esp8266.phrase pass phrase to use (WPA authentication)
# Esp8266.sntp optional SNTP server IP address (not hostname) for time synchronization
# Esp8266.rssurl optional URL of an RSS feed, like http://w1.weather.gov/xml/current_obs/KMYF.rss

Esp8266.ssid   BELL475
Esp8266.phrase 7xyz1E9F6
Esp8266.sntp   
Esp8266.rssurl 

This feature is enabled in the code by the following line in file UserConf.h:
#define WANT_ESP8266
  • support for GPSBee (from seeedstudio): only the minutes and seconds are set from the GPS data, the hours remain as set from the buttons; synchronization is performed once a day and/or when the clock is reset (powered off-on);
To enable this feature, make sure the following line in UserConf.h is not commented out:
#define WANT_GPS
  • "Night" mode: turns the display off at night, between the hours set in message.txt file, as shown:
#### turn display off at night (in conjunction with menu "NIGHT");
#### formatted as HHMM (military time);
Night.start 1030
Night.end   600

This feature is enabled/disabled from the NIGHT+/- option in the SETUP menu. In Night mode, the display shows just a random dot. The implementation is in AppNight.class, and can be changed to display any desired effect (e.g. Bezier splines, Lissajous curve etc).
  • "Unix time" mode: displays advancing Unix time (passing seconds from Jan 1, 1970); accessed through the "UNIX" menu option.
Also, debugging (sending messages to Serial port) is now controlled by a single line in UserConf.h:
#define _DEBUG_

Before compiling and uploading the software, make sure the debug macro above is commented out (since it is not in the code you just downloaded). With the debug disabled, the code runs faster and takes less memory space.


8 comments:

  1. Woohoo! Timed on and off...nice! May even have a go at the GPSBee too...

    ReplyDelete
    Replies
    1. I didn't forget. It's just that everything takes longer these days.

      Delete
  2. Didn't think that for a moment Florin....life just gets in the way! ;-)

    ReplyDelete
  3. Hi Florin I am having a bit of a problem, just updated the software and the clock has stopped working, I am getting a couple of beeps but no display, any idea

    ReplyDelete
    Replies
    1. Andy, please refresh my memory, what version of the Wise Clock did you have working? Did you check UserConf.h file for the correct settings (e.g. _WISE_CLOCK_VER, NUM_DISPLAYS etc)?

      Delete
    2. I had the wise clock 4, and I did check the UserConf all looked good, the board I am using is your Black Friday one where I needed to solder an extra wire and using the atmega 1284 pu.

      Delete
    3. It's ok I have sorted it out, had programmed as a wise clock 3 not 4

      Delete
  4. Hi Florin, I have a bit of a problem trying to get the #define WANT_ESP8266 to work, I keep getting error compiling, maybe it the version of arduino I am using, which version did you use?
    this is what I am getting
    Arduino: 1.7.11 (Windows 8.1), Board: "Sanguino, ATmega1284 or ATmega1284P (8 MHz)"

    WiseClock.cpp: In member function 'boolean WiseClock::getMessageAndReminder(byte)':

    WiseClock.cpp:1249:10: error: 'class CEsp8266' has no member named 'configInit'

    esp8266.configInit();

    ^

    WiseClock.cpp:1271:14: error: 'class CEsp8266' has no member named 'config'

    esp8266.config();

    ^

    WiseClock.cpp:1444:25: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

    Ptr1 = monthName[m];

    ^

    WiseClock.cpp:1479:10: error: 'class CEsp8266' has no member named 'parseConfig'

    esp8266.parseConfig(tmpBuffer);

    ^

    WiseClock.cpp: In member function 'int16_t WiseClock::runappStats()':

    WiseClock.cpp:2830:11: error: 'class CEsp8266' has no member named 'getNet'

    esp8266.getNet();

    ^

    WiseClock.cpp:2898:15: error: 'class CEsp8266' has no member named 'addr'

    if (esp8266.addr[0] != 0) {

    ^

    WiseClock.cpp:2900:54: error: 'class CEsp8266' has no member named 'addr'

    sprintf_P(&crtBuffer[l], PSTR(" IP %s"), esp8266.addr);

    ^

    Error compiling.

    I would be gateful of any help
    thanks Andy

    ReplyDelete