[discontinued] Need help for a clock with Parola Double Height

Try using a fixed width font instead of a variable spaced font. when you invert the top section variable spaced may not line up. You can also try left or right justify rather than centered so that the time lines up on one edge.

Thanks to both for the support. I have no idea of programming, but will try. Is there any finished fonts I can test?

If the font was only slightly narrower, it would fit. And if I knew how I could shorten the code in the "Font_Data.h" I would do that. Is there an online tool where I can create the ones and it me the values which I can then enter or replace?

Look at the documentation for MD_Max72xx library, especially around fonts. There is a font builder with the library.

Also look at the blog site next to my ID block on the left and search for "Parola A to Z", there are a few articles on how to use and also about double height displays.

OK Thank you. I will search and look at your hints.

So is there a newer Parola MD_MAX72xx Font Builder v1 In my missing the "Double Height Enabled" Checkbox. There is in Work Sheet only Project:, Show all and Copy to Clipboard


Sorry i found the V2 :-) But it is only for Windows! and i am a Mac user :-) And yes! Windows, because it is Activ X required. So i must search these days a windows PC in my Office and hope i have rights for Activ X

Where did you get the library from? Please download the latest copy from my distribution site on Github. Or use the library manager in the ide to download.

OK I looked at it and realized that it is too high for me. I do not understand that. So this has been done and I give up. Maybe I'll find another solution. I thank you for your support.

Sorry to hear that but if you are a beginner maybe you should start with a single height display first.

news :: news :: news :: news

I wrote: Maybe I'll find another solution. And I found one. I have buy two more modules and now i have room for the whole time.

But i will maybe soon still need your help ;-)

I have a clock built with 8Dig7Segment which takes itself by Wlan and Ntp the time and brings into the RTC. If no Wlan is on then it takes the time from the RTC. This works excellently. So! And now I would like this with my big clock. If I do not go further I ask here :-)

regards Robert

So that I do not spend nights with it for free, is there a chance to implement the code from Post1 into this sketch without great programing? This I also use for my 8dig7segment display. But there runs with LedControl :frowning:
Thanks Robert

weg-set-rtc-via-wifi_Deutsch_matrix.ino (1.68 KB)

search_connect_network.ino (1.43 KB)

ntp_functions.ino (3.83 KB)

1 week no answer!
Nobody can help me?

I can't understand the question and I suppose others cannot either.

Oh sorry! My english is bad. So one more try.

I have built a watch with 8Dig7Segment LED, the time it takes from the RTC. The RTC is updated with Wlan and Ntp. If no Wlan is present, it continues to take the time out of the RTC. This works excellently. The 3 used ino files I have attached. And now I want this with my big clock.

And now the question! How can I install the code from my 1 post, for the double height clock in this way-set-rtc-via-wifi-german-matrix.ino?


That depends entirely on how well the code is written. If is is well structured and has isolation between the different parts (ie, the display part is quite separate from the clock/time/internet parts) then it will be a straightforward job. If the code is 'spaghetti' this will be more complex and take longer.

Hello Marco, exactly what I meant, since I am no programmer would be nice if someone tells me whether the code is spaghetti or it is relatively easy to implement. Then I would also dare to try. In my post no.14 I attached the sketch. That would be the weg-set-rtc-via-wifi_Deutsch_matrix.ino, in which should be installed. If you could look at this and give me a tip would be great. Thank you Robert

There is very little in the code you pointed me to (2 functions), so I would guess that including the matrix should be a straightforward job.

Thanks, I'll try it. My only problem is that in my sketch the DS3231 is used and in the Parola Sketch the DS1307

Those 2 clock modules are interchangeable for the basic RTC function.

DS3231 has built-in alarms that are not in the other. If you are worried get the DS3231 library from my libraries repo. Function calls are the same so it should be a drop in replacement with minimal changes.

You mean the MD DS3231.h instead of the MD DS1307.h? So i have changed the DS1307 to MD_DS3231

and become this error: Arduino: 1.8.5 Hourly Build 2017/08/28 06:12 (Mac OS X), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"

Build-Optionen wurden verändert, alles wird neu kompiliert Archiving built core (caching) in: /var/folders/l9/27pqv_zs4zd0xmpx_03blk_m0000gn/T/arduino_cache_641022/core/core_esp8266_esp8266_nodemcuv2_CpuFrequency_80,UploadSpeed_115200,FlashSize_4M3M_e66f26f0b9de883465923b4da1419c23.a libraries/MD_DS3231-master/MD_DS3231.cpp.o:(.bss.bufRTC+0x0): multiple definition of bufRTC' libraries/MD_Parola-master/MD_DS1307.cpp.o:(.bss.bufRTC+0x0): first defined here libraries/MD_DS3231-master/MD_DS3231.cpp.o:(.bss.RTC+0x0): multiple definition ofRTC' libraries/MD_Parola-master/MD_DS1307.cpp.o:(.bss.RTC+0x0): first defined here /Users/robi/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: Warning: size of symbol `RTC' changed from 10 in libraries/MD_Parola-master/MD_DS1307.cpp.o to 24 in libraries/MD_DS3231-master/MD_DS3231.cpp.o collect2: error: ld returned 1 exit status exit status 1 Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

The Sketch:

/ Use the DS3231 clock module
#define  USE_DS3231  1

// Header file includes
#include "Font_Data.h"


// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define MAX_ZONES 2
#define ZONE_SIZE 12
//#define MAX_DEVICES 16

#define ZONE_UPPER  1
#define ZONE_LOWER  0

#define CLK_PIN  14 // D6
#define DIN_PIN  13 // D8
#define CS_PIN   15 // D7

#if USE_DS3231

// Hardware SPI connection / Arbitrary output pins

#define SPEED_TIME  75
#define PAUSE_TIME  0

#define MAX_MESG  10

// Turn on debug statements to the serial output
#define  DEBUG  0

// Global variables
char  szTimeL[MAX_MESG];    // mm:ss\0
char  szTimeH[MAX_MESG];

void getTime(char *psz, bool f = true)
// Code for reading clock time

// HH:MM:SS Von mir !
#if USE_DS3231
  sprintf(psz, "%02d%c%02d%c%02d", RTC.h, (f ? ':' : ' '), RTC.m, (f ? ':' : ' '), RTC.s);
  uint16_t  h, m, s;
  m = millis()/1000;
  h = (m/60) % 24;
  m %= 60;
  sprintf(psz, "%02d%c%02d%c%02d", h, (f ? ':' : ' '), m, (f ? ':' : ' '), s);

void createHString(char *pH, char *pL)
  for (; *pL != '\0'; pL++)
    *pH++ = *pL | 0x80;   // offset character

  *pH = '\0'; // terminate the string

void setup(void)
  // initialise the LED display

  // Set up zones for 2 halves of the display
  P.setZone(ZONE_LOWER, 0, ZONE_SIZE - 1);
//  P.setFont(BigFontBottom);
  P.setCharSpacing(P.getCharSpacing() * 2); // double height --> double spacing

  P.setZoneEffect(ZONE_UPPER, true, PA_FLIP_UD);
  P.setZoneEffect(ZONE_UPPER, true, PA_FLIP_LR);


#if USE_DS3231
  RTC.control(DS3231_CLOCK_HALT, DS3231_OFF);
  RTC.control(DS3231_12H, DS3231_OFF);

void loop(void)
  static uint32_t lastTime = 0; // millis() memory
  static bool flasher = false;  // seconds passing flasher

  P.setIntensity(1); // Display Intensity
  if (P.getZoneStatus(ZONE_LOWER) && P.getZoneStatus(ZONE_UPPER))
    // Adjust the time string if we have to. It will be adjusted
    // every second at least for the flashing colon separator.
    if (millis() - lastTime >= 1000)
      lastTime = millis();
      getTime(szTimeL, flasher);
      createHString(szTimeH, szTimeL);
      flasher = !flasher;


      // synchronise the start

If you can't resolve those errors yourself, then please just use the DS1307 library.