diff --git a/preload/main.py b/preload/main.py
index 2c04cb273af42e7f6e3d3511693fb36138eccf47..c679a82ec20191acec37fa99519f1cb81e52fc71 100644
--- a/preload/main.py
+++ b/preload/main.py
@@ -10,8 +10,9 @@ import os
 
 CONFIG_NAME = "clock.json"
 
+
 class Time:
-    def __init__(self, start = 0):
+    def __init__(self, start=0):
         self.time = start
         self.wait_time = 0.95
 
@@ -31,19 +32,32 @@ class Time:
     def hour(self):
         return (self.time / 3600) % 24
 
+
 class Clock:
-    def __init__(self, sizex = 80, sizey = 80, radius = 38, offsetx = 30,
-            hour_hand = True, minute_hand = True, second_hand = True, console_out = False,
-            run_once = False, update_interval = 0):
+    def __init__(
+        self,
+        sizex=80,
+        sizey=80,
+        radius=38,
+        offsetx=30,
+        hour_hand=True,
+        minute_hand=True,
+        second_hand=True,
+        console_out=False,
+        run_once=False,
+        update_interval=0,
+    ):
         self.sizex = sizex
         self.sizey = sizey
         self.radius = radius
-        self.center = (int(self.sizex/2), int(self.sizey/2))
+        self.center = (int(self.sizex / 2), int(self.sizey / 2))
         self.hour_hand = hour_hand
         self.minute_hand = minute_hand
         self.second_hand = second_hand
         self.console_out = console_out
-        self.update_interval = update_interval if update_interval != 0 else (1 if self.second_hand else 30)
+        self.update_interval = (
+            update_interval if update_interval != 0 else (1 if self.second_hand else 30)
+        )
         self.run_once = run_once
         self.offsetx = offsetx
         self.time = Time()
@@ -107,10 +121,14 @@ class Clock:
         self.setTheme(self.theme)
 
     def readConfig(self):
-        with open(CONFIG_NAME, 'r') as f:
+        with open(CONFIG_NAME, "r") as f:
             try:
                 c = ujson.loads(f.read())
-                if "themes" in c and len(c["themes"]) > 0 and isinstance(c["themes"], list):
+                if (
+                    "themes" in c
+                    and len(c["themes"]) > 0
+                    and isinstance(c["themes"], list)
+                ):
                     self.themes = c["themes"]
                 if "theme" and isinstance(c["theme"], int):
                     self.theme = c["theme"]
@@ -118,48 +136,45 @@ class Clock:
                 print("parsing %s failed" % CONFIG_NAME)
 
     def writeConfig(self):
-        with open(CONFIG_NAME, 'w') as f:
-            f.write(ujson.dumps({
-                "theme": self.theme,
-                "themes": self.themes,
-            }))
+        with open(CONFIG_NAME, "w") as f:
+            f.write(ujson.dumps({"theme": self.theme, "themes": self.themes}))
 
     def setTheme(self, theme):
         self.theme = theme % len(self.themes)
         self.background_col = (
-            self.themes[self.theme]['background']
-            if 'background' in self.themes[self.theme]
-            else self.default_themes[0]['background']
+            self.themes[self.theme]["background"]
+            if "background" in self.themes[self.theme]
+            else self.default_themes[0]["background"]
         )
         self.center_col = (
-            self.themes[self.theme]['center']
-            if 'center' in self.themes[self.theme]
-            else self.default_themes[0]['center']
+            self.themes[self.theme]["center"]
+            if "center" in self.themes[self.theme]
+            else self.default_themes[0]["center"]
         )
         self.m1_col = (
-            self.themes[self.theme]['m1']
-            if 'm1' in self.themes[self.theme]
-            else self.default_themes[0]['m1']
+            self.themes[self.theme]["m1"]
+            if "m1" in self.themes[self.theme]
+            else self.default_themes[0]["m1"]
         )
         self.m5_col = (
-            self.themes[self.theme]['m5']
-            if 'm5' in self.themes[self.theme]
-            else self.default_themes[0]['m5']
+            self.themes[self.theme]["m5"]
+            if "m5" in self.themes[self.theme]
+            else self.default_themes[0]["m5"]
         )
         self.hour_hand_col = (
-            self.themes[self.theme]['hour_hand']
-            if 'hour_hand' in self.themes[self.theme]
-            else self.default_themes[0]['hour_hand']
+            self.themes[self.theme]["hour_hand"]
+            if "hour_hand" in self.themes[self.theme]
+            else self.default_themes[0]["hour_hand"]
         )
         self.minute_hand_col = (
-            self.themes[self.theme]['minute_hand']
-            if 'minute_hand' in self.themes[self.theme]
-            else self.default_themes[0]['minute_hand']
+            self.themes[self.theme]["minute_hand"]
+            if "minute_hand" in self.themes[self.theme]
+            else self.default_themes[0]["minute_hand"]
         )
         self.second_hand_col = (
-            self.themes[self.theme]['second_hand']
-            if 'second_hand' in self.themes[self.theme]
-            else self.default_themes[0]['second_hand']
+            self.themes[self.theme]["second_hand"]
+            if "second_hand" in self.themes[self.theme]
+            else self.default_themes[0]["second_hand"]
         )
 
     def loop(self):
@@ -196,75 +211,121 @@ class Clock:
             d.clear()
             for x in range(len(image)):
                 for y in range(len(image[x])):
-                    d.pixel(x + self.offsetx, y, col = (255, 255, 255) if image[x][y] else (0, 0, 0))
+                    d.pixel(
+                        x + self.offsetx,
+                        y,
+                        col=(255, 255, 255) if image[x][y] else (0, 0, 0),
+                    )
             d.update()
 
     def updateClock(self, disp):
         disp.clear(self.background_col)
         localtime = utime.localtime()
 
-        disp.pixel(self.center[0] + self.offsetx, self.center[1], col = self.center_col)
-        hour_coords = self.circlePoint(math.radians((((localtime[3]%12)/12.) if localtime[3] else 0)*360 + 270 + (localtime[4]/2)))
-        minute_coords = self.circlePoint(math.radians(localtime[4]*6+270))
-        second_coords = self.circlePoint(math.radians(localtime[5]*6+270))
+        disp.pixel(self.center[0] + self.offsetx, self.center[1], col=self.center_col)
+        hour_coords = self.circlePoint(
+            math.radians(
+                (((localtime[3] % 12) / 12.0) if localtime[3] else 0) * 360
+                + 270
+                + (localtime[4] / 2)
+            )
+        )
+        minute_coords = self.circlePoint(math.radians(localtime[4] * 6 + 270))
+        second_coords = self.circlePoint(math.radians(localtime[5] * 6 + 270))
 
         for i in range(60):
-            degree = i*6 + 90
-            radian = - math.radians(degree)
+            degree = i * 6 + 90
+            radian = -math.radians(degree)
             coords = self.circlePoint(radian)
 
             if not i % 5:
-                self.addLine(disp, coords, self.center, 3, 1, col = self.m5_col)
+                self.addLine(disp, coords, self.center, 3, 1, col=self.m5_col)
             else:
-                self.addLine(disp, coords, self.center, 1, col = self.m1_col)
+                self.addLine(disp, coords, self.center, 1, col=self.m1_col)
 
         if self.hour_hand:
-            self.addLine(disp, self.center, hour_coords, int(self.radius / 3), 1, col = self.hour_hand_col)
+            self.addLine(
+                disp,
+                self.center,
+                hour_coords,
+                int(self.radius / 3),
+                1,
+                col=self.hour_hand_col,
+            )
         if self.minute_hand:
-            self.addLine(disp, self.center, minute_coords, int(self.radius / 2), col = self.minute_hand_col)
+            self.addLine(
+                disp,
+                self.center,
+                minute_coords,
+                int(self.radius / 2),
+                col=self.minute_hand_col,
+            )
         if self.second_hand:
-            self.addLine(disp, self.center, second_coords, self.radius - int(self.radius/8.), col = self.second_hand_col)
+            self.addLine(
+                disp,
+                self.center,
+                second_coords,
+                self.radius - int(self.radius / 8.0),
+                col=self.second_hand_col,
+            )
 
         if self.console_out:
-            for y in range(self.radius*2):
+            for y in range(self.radius * 2):
                 line = ""
-                for x in range(self.radius*2):
-                    line = line + ("." if image[(self.center[1]-self.radius)+y][(self.center[0]-self.radius)+x] else " ")
+                for x in range(self.radius * 2):
+                    line = line + (
+                        "."
+                        if image[(self.center[1] - self.radius) + y][
+                            (self.center[0] - self.radius) + x
+                        ]
+                        else " "
+                    )
                 print(line)
 
         disp.update()
 
     def circlePoint(self, t):
-        return (int(round(self.radius*math.cos(t))) + self.center[0], int(round(self.radius*math.sin(t))) + self.center[1])
+        return (
+            int(round(self.radius * math.cos(t))) + self.center[0],
+            int(round(self.radius * math.sin(t))) + self.center[1],
+        )
 
-    def addLine(self, disp, source, aim, length, thickness = 1, col = (255, 255, 255)):
+    def addLine(self, disp, source, aim, length, thickness=1, col=(255, 255, 255)):
         vector = self.subVector(aim, source)
         vector = self.normVector(vector)
         destination = self.addVector(source, self.multiplyVector(vector, length))
 
-        disp.line(round(source[0]) + self.offsetx, round(source[1]), round(destination[0]) + self.offsetx, round(destination[1]), col=col, size=thickness)
+        disp.line(
+            round(source[0]) + self.offsetx,
+            round(source[1]),
+            round(destination[0]) + self.offsetx,
+            round(destination[1]),
+            col=col,
+            size=thickness,
+        )
 
     def normVector(self, v):
-        length = math.sqrt(sum([i**2 for i in v]))
+        length = math.sqrt(sum([i ** 2 for i in v]))
         new_v = []
         for i in range(len(v)):
-            new_v.append(v[i]/length)
+            new_v.append(v[i] / length)
         return tuple(new_v)
 
     def subVector(self, v1, v2):
         res = []
         for i in range(len(v1)):
-            res.append(v1[i]-v2[i])
+            res.append(v1[i] - v2[i])
         return tuple(res)
 
     def addVector(self, v1, v2):
         res = []
         for i in range(len(v1)):
-            res.append(v1[i]+v2[i])
+            res.append(v1[i] + v2[i])
         return tuple(res)
 
     def multiplyVector(self, v, multiplier):
-        return tuple([i*multiplier for i in v])
+        return tuple([i * multiplier for i in v])
+
 
 clock = Clock()
 clock.loop()