LEDura - Analog LED Clock

11K9853

Intro: LEDura - Analog LED Clock

After a long time of just making various project I decided to make an instructable myself. For the first one, I will guide you through process of making your own analog clock made with awesome addressable LED ring. The inner ring shows the hours, outer ring shows minutes and seconds.

Beside showing the time, clock can also display the room temperature and it can be a very nice decoration in the room. Every 15 minutes, clock also makes some special effects – video shows them all, make sure to check it out. With the help of 2 buttons and potentiometer, user can chose between different mode and modifie colors by his own desire. I also upgraded it to automatically dim the LEDs if the room goes dark, so the user won’t be disturbed during night.

The clock can be placed on the desk, bed table or hanged from the wall.

Note: Pictures are not as good as the view in the reality because of high brightness.

STEP 1: How to Read It?

Clock has 2 rings - smaller one for displaying hours and bigger one for displaying minutes and seconds. Some LEDs glow all the time - a so called compass that indicates main clock positions. On hour ring it represents 3, 6, 9 and 12'o clock, on minute ring it represents 15, 30, 45 and 0 minutes.

STEP 2: What Will You Need

Materials:

  • 1x Arduino Nano (you can use any other Arduino as well)
  • 1x DS3231 RealTimeClock module
  • 1x Addressable led ring - 60 LEDs
  • 1x Addressable led ring - 24 LEDs
  • 2x Buttons (NO - normaly open)
  • 1x 100kOhm potentiometter
  • 1x 5V power supply (capable of delivering 1 Amp)
  • 1x Supply connector
  • Some wires
  • 1x 10kOhm resistor
  • 1x Photoresistor

  • Prefboard(optional)
  • Terminal block wire connectors (optional)
  • 25mm thick wood, size at least of 22cmx22cm
  • 1mm thin mat PVC plastic size 20cmx20xm

Tools:

  • Basic tools for building electronics (soldering iron, pliers, screwdriver, ...)
  • Drill machine
  • Hot glue gun
  • Sand paper and some wood varnish
  • CNC machine (maybe some friend has it)

STEP 3: Electronics Components - Background

DS3231

We could determine the time using Arduinos build in oscillator and a timer, but I decided to use dedicated Real Time Clock (RTC) module, which can keep track of time even if we disconnect the clock from its power source. DS3231 board has a battery, which provides power when module is not connected to power supply. It is also more precise on longer periods of time than Arduinos clock source.

DS3231 RTC uses I2C interface to communicate with micro-controller – very simple to use and we need only 2 wires to communicate with it. Module also provides temperature sensor, which will be used in this project.

Important: If you are planing to use non-rechargeable battery for the RTC module, you should de-solder the 200 ohm resistor or 1N4148 diode. Otherwise your battery might blow up. More information can be found on this link.


WS2812 LED ring

I decided to use 60 LED ring to keep track of minutes and 24 LED ring for hours. You can find them on Adafruit (neoPixel ring) or some cheap versions on eBay, Aliexpress or other web shops. There is a big diversity among the addressable led strips and if it is your first time to play around with them, I recommend you to read through some usage descriptions – here are some useful links:

Addressable LED strip has 3 connectors: 5V, GND and DI/DO. First two are for powering the LEDs, last one is for the data. Be careful while connecting ring to Arduino – your data line must be connected to DI (data IN) pin.

Arduino

I am using Arduino Nano because it is small and sufficient enough for this project. You can use nearly any other Arduino, but then you must be careful while connecting everything to it. The buttons and LED rings can be on the same pins, but I2C connectors (for RTC module) may differ from platform to platform – check out their datasheet.

STEP 4: Electronics - Power Supply

Arduino and LED strip must both be supplied with 5V power source so we know which voltage is needed. Since the LED rings it draws quite a lot of amps we can’t power it directly with Arduino, which can withstand max 20mA on its digital output. By my measurements, LED rings can together draw up to 500 mA. That’s why I bought an adapter which is capable of supplying up to 1A.

With the same power supply we want to power Arduino and LEDs - here you have to be careful.

Warning! Be extra careful when you are testing the LED strip – power adapter must NOT be connected to Arduino, when Arduino is also connected to PC with USB connector (you can damage your computer USB port).

Note: In the schematics below I used normal switch to select if Arduino is powered via power supply or via USB connector. But on the perfboard you can see that I added a pin header to select from which power source Arduino is powered.

STEP 5: Electronics - Soldering

When you gather all the parts it is time to solder them together.

Because I wanted to make the wiring neat, I used perfboard and some terminal block connector for wires, so I can unplug them in case of modifications. This is optional - you can also solder the wires directly to the Arduino.

A tip: it is easier if you print the schematics so you have it in-front of you while soldering. And double check everything before connecting to power supply.

STEP 6: Software - Background

Arduino IDE

We are going to program Arduino with its dedicated software: Arduino IDE. If you are playing with Arduino for the first time, I recommend you to check some instructables on how to do it. There is already plenty tutorials in the web, so I won’t go to details.

Library

I decided to use FastLED library instead of popular Adafruit. It has some neat math functions with which you can do great effects (Thumbs up to the developers!). You can find the library on their GitHub repository, but I added the .zip file of version that I am using in my code.

If you are wondering, how to add external library to Arduino IDE you can check some already made instructions

For the clock module I used Arduino library for the DS3231 real-time clock (RTC) (link), which you can easily install in Arduino IDE. When you are in IDE, click to Sketch → Include library → Manage libraries… and then filter your search with the name above.

Note: For some reason I currently can't add .zip files. You can find the library on my GitHub repository.

STEP 7: Software - Code

Structure

The application is constructed with 4 files:

  • LEDclokc.ino --> This is main Arduino application, where you can find functions for controlling the whole clock – they start with prefix CLOCK_.
  • LEDclokc.h --> here are pin connection defines and some clock configurations.
  • ring.cpp and ring.h --> here is my code for controlling the LED rings.

LEDclock.h

Here you will find all the clock definitions. In the beginning, there are definitions for wiring. Make sure they are the same as your connections. Then there are clock configurations – here you can find the macro for number of modes that the clock has.

LEDclock.ino

On the diagram, main loop is represented. Code first checks if any button is pressed. Because of the nature of switches, we must use debbouncing method to read their values (you can read more about this on the link).

When button 1 is pressed, variable mode is raised by 1, if button 2 is pressed, variable type is raised. We use these variables to determine, which clock mode we want to see. If both buttons are pressed at the same time, function CLOCK_setTime() is called so you can change the time of the clock.

Later code reads the value of potentiometer and stores it into variable – whit this variable user can change the colors of the clock, brightness etc.

Then there is a switch-case statement. Here we determine in which mode clock is currently in, and by that mode, corresponding function is called, which sets up the LEDs colors. You can add your own clock modes and re-write or modify the functions.

As described in FastLED library, you have to call function FastLED.show() on the end, which turns the LEDs to the color we previously set them up to.

You can find much more detailed descriptions between the code lines.

Whole code is attached below in the files below.

TIP: you can find whole project on my GitHub repository. Here the code will also be updated if I will add any changes to it.

STEP 8: Make the Clock

Clock frame

I built the clock frame using CNC machine and 25mm thick wood. You can find the sketch drawn in ProgeCAD attached bellow. The slots for LED ring are a bit larger, because manufactures only provide the measurements of outer diameter – inner may vary quite a lot… In the back of the clock, there is a lot of space for electronics and wires.

PVC rings

Because LEDs are quite bright it is good to diffuse them somehow. First I tried with transparent silicone, which does the job of diffusing, but it is quite messy and it is hard to get it smooth on top. That is why I ordered a 20x20 cm piece of “milk” PVC plastics and cut two rings in it with CNC machine. You can use sandpaper to soften the edges so the rings slip in the slots.

Side holes

Then it is time to drill the holes for buttons, potentiometer and power supply connector. Firstly, draw every position with a pencil, then drill in the hole. Here it depends what type of buttons you have – I went with push buttons with slightly curved head. They have 16mm of diameter so I used wood drill of that size. Same goes for potentiometer and power connector. Be sure to erase all the pencil drawings afterwards.

STEP 9: Draw in the Wood

I decided to draw some clock indicators in the wood – here you can use your imagination and design your own. I burned the wood using soldering iron, heated to max temperature.

For the circles to be nicely round, I used a piece of aluminum, drilled a hole into it and followed the edges of the hole with soldering iron (look at the picture). Make sure that you are holding aluminum firmly, so it doesn’t slip while drawing. And be cautious while doing it to prevent injuries.

If you are making drawings and want them to be nicely aligned to the clock pixels, you can use “Maintenance mode” which will show you where the pixels are going to be located (go to chapter Assemble).

Protect the wood

When you are satisfied with the clock it is time to sand it and protect it with wood varnish. I used very soft sandpaper (value of 500) to soften the edges. I recommend you to use transparent wood varnish, so the color of the wood doesn’t change. Put a small amount of varnish on the brush and pull it in the direction of the annuals in the wood. Repeat it at least 2 times.

STEP 10: Assamble

Firs put the buttons and potentiometer on their positions – if your holes are too big, you can use some hot glue to fix them in place. Then put the ring strip in its slots and connect its wires to the Arduino. Before you glue the LED ring into its place it is good to be sure, that LED pixels are in right place – centered and aligned with the drawing. For that purpose I added so called Maintenance mode which will display all the important pixels (0, 5, 10, 15, … on minute ring and 3, 6, 9 and 12 on hour ring). You can enter this mode by pressing and holding both buttons, before plugging the power supply to the connector. You can exit this mode by pressing any button.

When you have your LED rings aligned, apply some hot glue and hold them while glue gets firm. Then take your PVC rings and again: apply some hot glue to the LEDs, quickly position them and hold them for a couple of seconds. In the end, when you are sure that everything works you can hot glue the per board (or Arduino) to the wood. Tip: do not apply to much glue. Just a small amount so it holds in one place but you can easily remove it if you would like to change something later.

On the very end, insert coin cell battery to its holder.

STEP 11: Upgrade - Photoresistor

The clock effects are especially nice in the dark. But this can disturb its user during the night, while he or she sleeps. That is why I decided to upgrade the clock with the feature of automatic brightness correction – when the room goes dark; the clock turns off its LEDs.

For that purpose, I used the light sensor - photo resistor. Its resistance will significantly rise; up to few mega ohms when it is dark and it will have only few hundred ohms when there is light shining on it. Together with a normal resistor they form the voltage divider. So when the resistance of the light sensor changes, so does the voltage on Arduino analogue pin (which we can measure).

Before soldering and assembling any circuit, it is wise to simulate it first, so you can see the behavior and make corrections. Whit the help of Autocad Tinkercad you can do exactly that! With just a few clicks I added the components, connected them and wrote the code. In the simulation you can see how the LEDs brightness is changed according to the value of photo resistor. It is very simple and straightforward - you are welcome to play with the circuit.

After simulation it was time to add the feature to the clock. I drilled a hole in the centre of the clock, glued the photo resistor, connected it like it can be seen on the circuit and added few lines of code. In the file LEDclock.h you have to enable this feature by declaring USE_PHOTO_RESISTOR as 1. You can also change at which room brightness the clock will dim the LEDs by changing the CLOCK_PHOTO_TRESHOLD value.

STEP 12: Enjoy!

When you will power it for the first time, the clock will show some random time. You can set it up by pressing both buttons at the same time. Turn the knob to select the right time and confirm it with the press of any button.

I found inspiration in some very neat project on the internet. If you decide to build the clock on your own, check them out as well! (NeoClock, Wol Clock, Arduino Colorful Clock) If you ever decide to try to follow instructables, I hope you find making it as enjoyable as I did.

If you stumble across any trouble along the process of making it, feel free to ask me any question in the comments – I will gladly try to answer it!

40 Comments

Hello, thanks for sharing. Would you be ready to make me a code for a simplified watch application ? just 3 points, 1 for the hours and 1 for the minutes on big circle, 1 point for the seconds on the smaller cercle. and just some little details more. Thanks so much. Wverything based on your hardware i already have (just a 60 led cercle and a 24 Led circle as a difference). regards Florian

Hi Florian!

I can try to help you develop your own application. Send me your e-mail address in a private message and we can continue from there :)

Sorry to be back on this post, m a beginner and zero coding experience. I tried to replicate the same but potentiometer gives me full white when I turn it.. not sure what causes it
Hi
I am glad to hear that you are trying to replicate the clock! :)
I can try to help you, but first please give me more information about what you have already done, or describe the problem in more detail.

If you have problems with the clock brightens, you can first check if the photoresistor is the cause of problems - you can simply disable it in the LEDclock.h file by setting the definition USE_PHOTO_RESISTOR to 0.

Hi, first of all I wanted to thank you for sharing the project.
I am also making a digital clock following your guide but I have problems with the
installation of the code on arduino nano.
When I try to verify the code, before uploading it, I get this message:

_In file
incluso da sketch\LEDclock.h:10:0,
da sketch\ring.h:10,
da sketch\ring.cpp:10:

C :\Users\Administrator\Documents\Arduino\libraries\FastLED\src/FastLED.h:14:21:
nota: #pragma message: FastLED version 3.004.000

#
pragma message "FastLED version 3.004.000"

^

Nel file incluso da schizzo\LEDclock.h:10:0,

da C:\Users\Administrator\Desktop\ELETTRONICA
OROLOGIO\LEDura-Instructables\LEDclock\LEDclock.ino:49:

C:\Users\Administrator\Documents\Arduino\libraries\FastLED\src/FastLED.h:14:21:
note : messaggio #pragma: versione FastLED 3.004.000

# pragma
messaggio "FastLED versione 3.004.000" _

It could help me understand where I went wrong, I have little experience with Arduino and
programming.
Thanks
Searching the internet I read that the message:

#pragma message: FastLED version 3.004.000

it is not an error but a warning about the library version so I tried to load the code on Arduino nano but the installation crashes giving me the following error:

Arduino:1.8.14 (Windows 10), Scheda:"Arduino Nano, ATmega328P"
In file included from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\LEDclock.h:10:0,
from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:10,
from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.cpp:10:
C:\Users\ABC\Documents\Arduino\libraries\FastLED\src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000
# pragma message "FastLED version 3.004.000"
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\LEDclock.h:10:0,
from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\LEDclock.ino:49:
C:\Users\ABC\Documents\Arduino\libraries\FastLED\src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000
# pragma message "FastLED version 3.004.000"
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.cpp:10:0:
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:25:1: warning: 'typedef' was ignored in this declaration
typedef struct myTime{
^~~~~~~
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:31:1: warning: 'typedef' was ignored in this declaration
typedef struct user_color{
^~~~~~~
In file included from C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\LEDclock.ino:50:0:
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:25:1: warning: 'typedef' was ignored in this declaration
typedef struct myTime{
^~~~~~~
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:31:1: warning: 'typedef' was ignored in this declaration
typedef struct user_color{
^~~~~~~
Lo sketch usa 20368 byte (66%) dello spazio disponibile per i programmi. Il massimo è 30720 byte.
Le variabili globali usano 1043 byte (50%) di memoria dinamica, lasciando altri 1005 byte liberi per le variabili locali. Il massimo è 2048 byte.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x54
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x54
Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/3600... for suggestions.
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

can someone help me to solve the problem?
Hi there! :)
Great to see that you decided to build your own clock :)

Like you said, that "pragma message ... " is just a warning you can ignore - I get it as well :) There are some other warnings but those are not relevant for your case :)

The program is compiled successfully which is confirmed with lines:

Lo sketch usa 20368 byte (66%) dello .........

So it seems that you have a problem with uploading the program to the Arduino. If you Google the error you have got:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x54

you can find many suggestion on what may be the problem and how to solve it. Here is an example of things you can try: https://arduino.stackexchange.com/questions/17/avr...

Hope that helps :)
Salve, grazie per la risposta, il problema di caricamento era dovuto alla porta COM selezionata su cui avevo collegato l'arduino.
Sono riuscito a caricare il codice.

Per quanto riguarda l'avviso:

Nel file incluso da C:\Users\ABC\Desktop\led-clock-master\led-clock-master\ LEDclock\ring.cpp:10:0:
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:25:1: avviso: 'typedef'è stato ignorato in questa dichiarazione
typedef struct myTime{
^~~~~~~
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:31:1: avviso: 'typedef' è stato ignorato in questa dichiarazione
typedef struct user_color{
^~~~~~~
Nel file incluso da C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\LEDclock.ino:50:0:
C: \Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:25:1: avviso: 'typedef' è stato ignorato in questa dichiarazione
typedef struct myTime{
^~~~~~~
C:\Users\ABC\Desktop\led-clock-master\led-clock-master\LEDclock\ring.h:31:1: avviso: 'typedef' è stato ignorato in questa dichiarazione
typedef struct user_color{

ho letto in rete che era meglio rimuovere la sintassi "typedef" nel file ring.h, lasciando solo "struct myTime" e "struct user_color"

Una volta caricato il codice su arduino, l'orologio si accende solo alla pressione del primo pulsante, mostrando l'effetto arcobaleno su tutti i led ma non visualizza l'ora di default:

// Default hour set at powerupp - you can change it
#define CLOCK_DEFAULT_HOUR1
#define CLOCK_DEFAULT_MIN20
#define CLOCK_DEFAULT_SEC5


questo può essere dovuto all'eliminazione del "typedef" sintassi.

Thank you very much for your help and I hope to be able to fix the problem and get the watch working
Hi!
Great to hear that you solved the first problem :)

Regarding the visualization of the clock - I am guessing that your brightness is on minimum, therefore the LEDs are off. (But you can see the rainbow effect because the brightness of the LEDs in that effect is set to maximum). You can ignore those typedef warnings ;)

First check the brightness of the LEDs, which is set up by the potentiometer. Try the following:
* restart the clock
* press the BTN2 (so called "type" button) - now you should be able to configure the brightness by turning the potentiometter knob.

If this doesn't work, check the photoresistor wiring - it is also responsible to change the brightness. Firstly you can try to simply disable it in the file LEDclock.h by setting the definition USE_PHOTO_RESISTOR to 0.
Ciao e grazie per le utili info, ho disabilitato la fotoresistenza (impostando la definizione a 0) anche perchè non ho bisogno di usarla.

Il caricamento è andato a buon fine e l'orologio sembra funzionare, l'unico problema che mi è rimasto è che non ho usato gli anelli Neopixel, ma i singoli led ws2812b che ho dovuto saldare ognuno per creare l'anello delle ore e l'anello dei minuti- secondi.

Inserisco un'immagine per farvi capire come ho fatto le saldature per creare i due anelli e come li ho collegati all'arduino nano.

Il mio problema quando accendo l'orologio è che sulle ore i led fissi accesi sono a 1-4-7-10 invece che 3-6-9-12 quindi trovo l'orologio ruotato di un'ora sull'anello delle ore e dei minuti-secondo sull'anello min-sec.

Suppongo di aver sbagliato la saldatura dei dati di input sul primo led di ogni anello.
Spero di essermi fatto capire.

Mi consigliate di rifare la saldatura o è possibile agire direttamente dal codice in modo semplice?

Grazie ancora per il prezioso aiuto che mi stai dando
Hi! Nice to hear that! :)

Unfortunately, the clock pixel positions are hard-coded. You could manually change all of the wrong positions, but I think that re-soldering may be easier thing to do (if you still can).

I edited your picture, hoping that this wiring will work :)
Note that
* for minutes: the first led in the strip (LED number 0) should be located at the top position, representing 0 min (=60min)
* for hours: first two leds in the strip (LEDs number 0 and 1 ) should be located at the top position, representing 12'o clock.

Happy to help :)
Hi I wanted to thank you for all the useful advice you gave me, in the end I managed to make it work and I am very happy.



The last problem I have left is that I placed the 2 buttons and the potentiometer on the back of the watch but having made it quite large, about 65cm in diameter, and having to fix it to the wall I don't have easy access to the controls, my mistake design.


Not being able to move the electronics and therefore the buttons, I was wondering if it was possible to set from the code which type of effect I want to start first?

Also because once set I will not change it anymore.



I am looking for a solution to this problem in all cases I leave you a photo of the watch that I made thanks to your invaluable contribution.
Wooow, it looks spectacular! Really nice work! :)

There is a simple way to solve it:
If you take a look at the file LEDclock.ino, lines 69 - here you can change the initial clock mode by changing the variable clock_mode. There are 5 different modes (variables from 0 to 4) .. so for example, if you assign the value 1, the clock will start with the "mode 2".
Later on, each time you press a button, the value is incremented by 1 (line 203), changing the mode to the next one.
sir i made the clock when i power off the power supply . I am getting the wrong time. I am using ds 3231 RTC module. Sir please help me to solve the problem
Hi binods7!
Happy to hear that you made the clock! :)

I presume, that when you turn the power supply off and then plug it in back again, you get the time 1 hour, 20 min and 5 second. If that is the case, then you must comment out (delete) the following lines in the setup() function (lines 127 - 132):

Clock.setYear(2020);
Clock.setMonth(6);
Clock.setDate(1);
Clock.setHour(CLOCK_DEFAULT_HOUR);
Clock.setMinute(CLOCK_DEFAULT_MIN);
Clock.setSecond(CLOCK_DEFAULT_SEC);

Those lines are executed each time the setup() function is called = each time the Arduino restarts (CLOCK_DEFAULT_HOUR is defined in file LEDclock.h ). And those functions will overwrite the time stored in DS3231 RTC module ... so, to avoid this, just delete them, and your time should be correct the next time you plug the clock to the power supply :)

If that is not the case, check or change the battery of your RTC module. ESP3231 must have some power source to store the time in its memory.

Hope that this solves your problem :)
Many many thanks the problem was solved sir .Again thank you very much.
Great! Happy to help! :)
Olá boa tarde, tudo bom ?
Parabéns pelo projeto.
Estou com este erro durante a compilação.
Tem alguma sugestão do que pode ser ?
Obs: a biblioteca está instalada e atualizada.
Obrigado
Resolvido, a biblioteca estava corrompida.
Apaguei e instalei novamente, resolveu.

Great to her that you solved the problem! :)
More Comments