• Several clock use something like 1000 - (Date.now() % 1000) to calculate the time to wait for the next full second.
    You should be able to do something like

    setTimeout(()=>{
      setInterval(draw, 1000);
    }, 1000 - (Date.now() % 1000));
    

    to get somewhat precise second long intervals starting on the next full second according to internal Bangle time.

  • That's only accurate for first draw. It's better to use this at end of each draw so that every draw will be accurate:

    setTimeout(()=>{
      draw();
    }, 1000 - (Date.now() % 1000));
    
About

Avatar for halemmerich @halemmerich started