• Okay, now I mixed up a sample of your two suggestions. But now I have heavy flickering again:

    require("FontDylex7x13").add(Graphics);
    
    let fnt = 'Dylex7x13';
    
    let pal2color = new Uint16Array([0x0000,0xffff,0x07ff,0xC618­],0,2);
    let buf = Graphics.createArrayBuffer(240,192,2,{ms­b:true});
    
    const pad = (number, length) => {
        let str = '' + number;
        while (str.length < length) {
            str = '0' + str;
        }
    
        return str;
    };
    
    const printClock = ts => {
      if(ts === undefined) {
        ts = new Date();
      }
      
      h = ts.getHours();
      m = ts.getMinutes();
      s = ts.getSeconds();
      
      return `${pad(h,2)}:${pad(m,2)}:${pad(s,2)}`;
    };
    
    const renderMain = () => {
      g.clear();
    
      buf.clear();
      buf.setColor(1);
      buf.setFontAlign(0,-1);
      buf.setFont(fnt,5);
      buf.drawLine(0,0,240,0);
      buf.drawString("Hello",120,0);
    
      buf.setFont(fnt,3);
      buf.setColor(2);
      buf.drawString(printClock(),120,60);
    
      g.drawImage({width:buf.getWidth(),height­:buf.getHeight(),bpp:2,buffer:buf.buffer­,palette:pal2color},0,48);
    };
    
    const ticker = () => {
      renderMain();
      // g.flip();
    };
    
    setInterval(ticker,1000);
    

    I guess I have still a big misunderstanding of the usage of rendering with the Bangle.js.

  • You don't need to call g.clear(), since you're just going to overwrite the entire screen with the contents of the buffer. If you remove that line the flicker should go away.

About