diff --git a/preload/apps/g_watch/__init__.py b/preload/apps/g_watch/__init__.py
index bef8807e7ef02c910cbf69d6d8bfa292529ecebd..eae7bb6e87d182c9da45f619d0eb19d2ed4f45ef 100644
--- a/preload/apps/g_watch/__init__.py
+++ b/preload/apps/g_watch/__init__.py
@@ -156,7 +156,9 @@ with display.open() as disp:
     p_leds_on = 0
 
     while True:
+        time.sleep(0.1)
         millis = time.monotonic_ms()
+        # print("loop", millis)
         lt = time.localtime()
         dow = lt[6]
 
@@ -187,6 +189,7 @@ with display.open() as disp:
             disp.backlight(brightness=0)
             for led in range(led_count):
                 leds.prep_hsv(led, [0, 0, 0])
+            leds.update()
             disp.update()
 
         if pressed & buttons.BOTTOM_RIGHT != 0:
@@ -200,9 +203,7 @@ with display.open() as disp:
 
         # ---------------------------------------- read orientation sensor
         samples = sensors[sensor]["sensor"].read()
-        if len(samples) > 0:  # get orientation sensor samples
-            sample = samples[0]
-
+        for sample in samples:
             yo = yn  # calculate absolute wrist rotation since last check
             yn = sample.y + 360
             yd = abs(yn - yo)
@@ -235,10 +236,11 @@ with display.open() as disp:
                     leds.prep_hsv(10 - led, [hue, 100, ledbri])  # led=0
                 else:
                     leds.prep_hsv(10 - led, [0, 0, 0])
+            leds.update()
 
         # ---------------------------------------- display clock
-        disp.clear()
         if clock_off >= millis:
+            disp.clear()
 
             # .................................... time
             lt = time.localtime()
@@ -297,8 +299,4 @@ with display.open() as disp:
             disp.rect(
                 8, 60, int(pwrpercent * 1.43 + 8), 63, col=c
             )  # draw charge bar in battery bar
-
-        # ---------------------------------------- do not display clock
-
-        leds.update()
-        disp.update()
+            disp.update()