I found out that smartwatch has been stucking because of BLE and Ticker. These 2 events are interfacing with the display where the while loops and delays are used. So I added a boolean variable for drawing state. If the ticker wants to refresh time after 60 seconds it first set drawing = true then it begins to draw, so if it got BLE event, it can wait while the ticker is drawing with while(drawing); loop. This solution works also vice versa. Another problem was that I had to use custom shiftOut function instead of hardware SPI, it doesn’t work for me ?.
The next issue was the battery life. Smartwatch lasted only few hours. I found out that the sleep function in library wasn’t complete. Sending data after command was missing, so I added it. Smartwatch could survive for 1 day then. But, that wasn’t surprising. I expected one week! I have been using my smartwatch few days and discharging the battery to the 3.35V. This time, as I am writing this article the display shows 4.03V after 8 hours of use. This sounds much better. Besides that, I am running LiPo discharge logger which writes voltage of 100mAh LiPo battery to the file in SD card. It’s simple. I use 10kOhm resistor as drain. By the Ohm’s law 3.7V / 10kOhm = 370uA which is average power consumption of the smartwatch. I will write an article about How to determine battery percentage from voltage.
If You want to know about something another, please feel free and leave me a commen. I can write tutorial or anything for you which may help you.