diff --git a/epicardium/modules/leds.c b/epicardium/modules/leds.c
index ed1ca2a61720d6f0ffecda97531e5790e4eb2062..b16a10227c516d22784e415654e48875d49bcfa5 100644
--- a/epicardium/modules/leds.c
+++ b/epicardium/modules/leds.c
@@ -7,79 +7,80 @@
 
 void epic_leds_set(int led, uint8_t r, uint8_t g, uint8_t b)
 {
-    leds_prep(led, r, g, b);
-    leds_update_power();    
-    leds_update();
+	leds_prep(led, r, g, b);
+	leds_update_power();
+	leds_update();
 }
 
 void epic_leds_set_hsv(int led, float h, float s, float v)
 {
-    leds_prep_hsv(led, h, s, v);
-    leds_update_power();    
-    leds_update();
+	leds_prep_hsv(led, h, s, v);
+	leds_update_power();
+	leds_update();
 }
 
 void epic_leds_prep(int led, uint8_t r, uint8_t g, uint8_t b)
 {
-    leds_prep(led, r, g, b);
+	leds_prep(led, r, g, b);
 }
 
 void epic_leds_prep_hsv(int led, float h, float s, float v)
 {
-    leds_prep_hsv(led, h, s, v);
+	leds_prep_hsv(led, h, s, v);
 }
 
 void epic_leds_set_all(uint8_t *pattern_ptr, uint8_t len)
 {
-    uint8_t (*pattern)[3] = (uint8_t(*)[3])pattern_ptr;
-    for(int i=0;i<len;i++){
-        leds_prep(i, pattern[i][0], pattern[i][1], pattern[i][2]);
-    }
-    leds_update_power();
-    leds_update();
+	uint8_t(*pattern)[3] = (uint8_t(*)[3])pattern_ptr;
+	for (int i = 0; i < len; i++) {
+		leds_prep(i, pattern[i][0], pattern[i][1], pattern[i][2]);
+	}
+	leds_update_power();
+	leds_update();
 }
 
 void epic_leds_set_all_hsv(float *pattern_ptr, uint8_t len)
 {
-    float (*pattern)[3] = (float(*)[3])pattern_ptr;
-    for(int i=0;i<len;i++){
-        leds_prep_hsv(i, pattern[i][0], pattern[i][1], pattern[i][2]);
-    }
-    leds_update_power();
-    leds_update();
+	float(*pattern)[3] = (float(*)[3])pattern_ptr;
+	for (int i = 0; i < len; i++) {
+		leds_prep_hsv(i, pattern[i][0], pattern[i][1], pattern[i][2]);
+	}
+	leds_update_power();
+	leds_update();
 }
 
 void epic_leds_dim_top(uint8_t value)
 {
-    leds_set_dim_top(value);
+	leds_set_dim_top(value);
 }
 
 void epic_leds_dim_bottom(uint8_t value)
 {
-    leds_set_dim_bottom(value);
+	leds_set_dim_bottom(value);
 }
 
 void epic_leds_rocket_set(int led, uint8_t value)
 {
-    pmic_set_led(led, value);
+	pmic_set_led(led, value);
 }
 
-void epic_flashlight(bool power){
-    leds_flashlight(power);
+void epic_flashlight(bool power)
+{
+	leds_flashlight(power);
 }
 
 void epic_leds_update(void)
 {
-    leds_update_power();
-    leds_update();
+	leds_update_power();
+	leds_update();
 }
 
 void epic_leds_powersave(bool eco)
 {
-    leds_powersave(eco);
+	leds_powersave(eco);
 }
 
 void epic_leds_set_gamma_table(uint8_t rgb_channel, uint8_t gamma_table[256])
 {
-    leds_set_gamma_table(rgb_channel, gamma_table);
+	leds_set_gamma_table(rgb_channel, gamma_table);
 }
diff --git a/hw-tests/dual-core/main.c b/hw-tests/dual-core/main.c
index a63c4f38aec1522b7955a6fb4fe0cce64b80a874..5c27950215bd835ce488ba17225ab309b0f0468c 100644
--- a/hw-tests/dual-core/main.c
+++ b/hw-tests/dual-core/main.c
@@ -26,7 +26,7 @@ int main(void)
 
 	// Release core1
 	core1_start((void *)0x10080000);
-    int h = 0;
+	int h = 0;
 
 	while (1) {
 #define NUM 15
diff --git a/hw-tests/hello-world/main.c b/hw-tests/hello-world/main.c
index 0741bae621cd13e574627dbc35d73aca35e53c7f..b797233be16784476f33da9201ecd1cab2b70a32 100644
--- a/hw-tests/hello-world/main.c
+++ b/hw-tests/hello-world/main.c
@@ -32,9 +32,9 @@ int main(void)
 	Paint_DrawImage(Heart, 0, 0, 160, 80);
 	LCD_Update();
 
-    for(int i=0; i<11; i++) {
-//        leds_set_dim(i, 1);
-    }
+	for (int i = 0; i < 11; i++) {
+		//        leds_set_dim(i, 1);
+	}
 
 	int __attribute__((unused)) h = 0;
 	while (1) {
diff --git a/lib/card10/leds.c b/lib/card10/leds.c
index 01a8352150b8b52cf83e0d020ccec88b3b8cd9de..44684a9e208eec68e3ea14c4b00a3f96f6a97a9b 100644
--- a/lib/card10/leds.c
+++ b/lib/card10/leds.c
@@ -4,21 +4,26 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdbool.h>
-#include <stdio.h> 
-#define NUM_LEDS    15
+#include <stdio.h>
+#define NUM_LEDS 15
 #define DEFAULT_DIM_TOP 1
 #define DEFAULT_DIM_BOTTOM 8
-#define MAX_DIM     8
-
-static const gpio_cfg_t rgb_dat_pin = {PORT_1, PIN_14, GPIO_FUNC_OUT, GPIO_PAD_NONE};
-static const gpio_cfg_t rgb_clk_pin = {PORT_1, PIN_15, GPIO_FUNC_OUT, GPIO_PAD_NONE};
+#define MAX_DIM 8
+
+static const gpio_cfg_t rgb_dat_pin = {
+	PORT_1, PIN_14, GPIO_FUNC_OUT, GPIO_PAD_NONE
+};
+static const gpio_cfg_t rgb_clk_pin = {
+	PORT_1, PIN_15, GPIO_FUNC_OUT, GPIO_PAD_NONE
+};
 static uint8_t leds[NUM_LEDS][3];
 static uint8_t gamma_table[3][256];
 static uint8_t active_groups;
 static uint8_t bottom_dim; //index 11-14
-static uint8_t top_dim; //index 0-10
+static uint8_t top_dim;    //index 0-10
 static bool powersave;
-static long powerup_wait_cycles = 500; //ugly hack, remove at nearest convenience
+static long powerup_wait_cycles =
+	500; //ugly hack, remove at nearest convenience
 
 /***** Functions *****/
 // *****************************************************************************
@@ -182,17 +187,17 @@ static void leds_stop(void)
 
 uint8_t led_to_dim_value(uint8_t led)
 {
-    return (led < 11) ? top_dim : bottom_dim;
+	return (led < 11) ? top_dim : bottom_dim;
 }
 
 void leds_set_dim_top(uint8_t value)
 {
-    top_dim = (value > MAX_DIM) ? MAX_DIM : value;
+	top_dim = (value > MAX_DIM) ? MAX_DIM : value;
 }
 
 void leds_set_dim_bottom(uint8_t value)
 {
-    bottom_dim = (value > MAX_DIM) ? MAX_DIM : value;
+	bottom_dim = (value > MAX_DIM) ? MAX_DIM : value;
 }
 
 void leds_prep(uint8_t led, uint8_t r, uint8_t g, uint8_t b)
@@ -229,84 +234,117 @@ void leds_prep_hsv(uint8_t led, float h, float s, float v)
 
 bool is_led_on(uint8_t led) // scheduled to be on after next update
 {
-    if(!led_to_dim_value(led)){return false;}
-    for(int i=0;i<3;i++){
-        if(leds[led][i] != 0){return true;}
-    }
-    return false;
+	if (!led_to_dim_value(led)) {
+		return false;
+	}
+	for (int i = 0; i < 3; i++) {
+		if (leds[led][i] != 0) {
+			return true;
+		}
+	}
+	return false;
 }
 
 uint8_t led_to_group(uint8_t led)
 {
-    if(led==14){return 1;}
-    else if(led>=11){return 2;}
-    return 3;
+	if (led == 14) {
+		return 1;
+	} else if (led >= 11) {
+		return 2;
+	}
+	return 3;
 }
 
 uint8_t check_privilege(void) //returns number of hierarchical groups with power
 {
-    for(int i=0;i<NUM_LEDS;i++){
-        if(is_led_on(i)){return led_to_group(i);}
-    }
-    return 0;
+	for (int i = 0; i < NUM_LEDS; i++) {
+		if (is_led_on(i)) {
+			return led_to_group(i);
+		}
+	}
+	return 0;
 }
 
-uint8_t power_pin_conversion(uint8_t group){
-    if(group==2){return 1;}
-    if(group==1){return 2;}
-    return 0;
+uint8_t power_pin_conversion(uint8_t group)
+{
+	if (group == 2) {
+		return 1;
+	}
+	if (group == 1) {
+		return 2;
+	}
+	return 0;
 }
 
-void power_all(void){
-    for(int i=0;i<3;i++){
-        portexpander_prep(i,0);
-    }
-    portexpander_update();
+void power_all(void)
+{
+	for (int i = 0; i < 3; i++) {
+		portexpander_prep(i, 0);
+	}
+	portexpander_update();
 }
 
-void leds_update_power(void){
-    if(!powersave){return;}
-    uint8_t new_groups = check_privilege(); //there must be a prettier way to do this but meh
-    if(new_groups==active_groups){return;}
-    for(int i=0;i<3;i++){
-        if(i<new_groups){portexpander_prep(power_pin_conversion(i), 0);}
-        else{portexpander_prep(power_pin_conversion(i), 1);}
-    }
-    portexpander_update();
-    //TODO: move this delay into epicardium if us delay exists to avoid wasted cycles
-    if(active_groups<new_groups){
-        for(int i = 0; i < powerup_wait_cycles; i++){
-            __NOP();
-        }
-    }
-    active_groups=new_groups;
+void leds_update_power(void)
+{
+	if (!powersave) {
+		return;
+	}
+	uint8_t new_groups =
+		check_privilege(); //there must be a prettier way to do this but meh
+	if (new_groups == active_groups) {
+		return;
+	}
+	for (int i = 0; i < 3; i++) {
+		if (i < new_groups) {
+			portexpander_prep(power_pin_conversion(i), 0);
+		} else {
+			portexpander_prep(power_pin_conversion(i), 1);
+		}
+	}
+	portexpander_update();
+	//TODO: move this delay into epicardium if us delay exists to avoid wasted cycles
+	if (active_groups < new_groups) {
+		for (int i = 0; i < powerup_wait_cycles; i++) {
+			__NOP();
+		}
+	}
+	active_groups = new_groups;
 }
 
-void leds_powersave(bool eco){
-    powersave=eco;
-    if(!powersave){power_all();}
-    else{leds_update_power();}
+void leds_powersave(bool eco)
+{
+	powersave = eco;
+	if (!powersave) {
+		power_all();
+	} else {
+		leds_update_power();
+	}
 }
 
 void leds_update(void)
 {
-    leds_start();
-    for(int i=NUM_LEDS-1; i>=0; i--) {
-        leds_shift(gamma_table[0][leds[i][0]], gamma_table[1][leds[i][1]], gamma_table[2][leds[i][2]], led_to_dim_value(i));
-    }
-    leds_stop();
+	leds_start();
+	for (int i = NUM_LEDS - 1; i >= 0; i--) {
+		leds_shift(
+			gamma_table[0][leds[i][0]],
+			gamma_table[1][leds[i][1]],
+			gamma_table[2][leds[i][2]],
+			led_to_dim_value(i)
+		);
+	}
+	leds_stop();
 }
 
 void leds_flashlight(bool power)
 {
-    portexpander_set(7, (power) ? 0 : 1);
+	portexpander_set(7, (power) ? 0 : 1);
 }
 
 void leds_set_gamma_table(uint8_t rgb_channel, uint8_t table[256])
 {
-    for(int i=0; i<256; i++){
-        gamma_table[rgb_channel][i]=table[i];
-    }
+	for (int i = 0; i < 256; i++) {
+		gamma_table[rgb_channel][i] = table[i];
+	}
 }
 
 void leds_init(void)
@@ -319,19 +357,19 @@ void leds_init(void)
 
 	memset(leds, 0, sizeof(leds));
 
-    powersave = TRUE;
-    top_dim = DEFAULT_DIM_TOP;
-    bottom_dim = DEFAULT_DIM_BOTTOM;
-    for(int i=0; i<NUM_LEDS; i++) {
-        for(int j=0; j<3; j++){
-            leds[i][j] = 0;
-        }
-    }
-    for(int i=0; i<256; i++){
-        for(int j=0; j<3;j++){
-            int k = (i*(1+i)+255)>>8;
-            gamma_table[j][i]=(k*(k+1)+255)>>8;
-        }
-    }    
-    leds_update();
+	powersave  = TRUE;
+	top_dim    = DEFAULT_DIM_TOP;
+	bottom_dim = DEFAULT_DIM_BOTTOM;
+	for (int i = 0; i < NUM_LEDS; i++) {
+		for (int j = 0; j < 3; j++) {
+			leds[i][j] = 0;
+		}
+	}
+	for (int i = 0; i < 256; i++) {
+		for (int j = 0; j < 3; j++) {
+			int k             = (i * (1 + i) + 255) >> 8;
+			gamma_table[j][i] = (k * (k + 1) + 255) >> 8;
+		}
+	}
+	leds_update();
 }
diff --git a/pycardium/modules/py/ledfx.py b/pycardium/modules/py/ledfx.py
index 51a731a5a81c603375aaff51805c1f758176d85b..5a52ec447d9fe2508151d29b4c4d1281f32861a8 100644
--- a/pycardium/modules/py/ledfx.py
+++ b/pycardium/modules/py/ledfx.py
@@ -1,31 +1,45 @@
 import leds, utime, math
 
-def kitt(cycles=100, delay=80, power=10, minimum=0.3, rgb=[255,0,0], spectrum = [], halo = False):
 
-    #prepare lookup table
-    kitt_table = [((-math.cos(math.pi*(x/10.0)))+1)/2.0 for x in range(21)]
-    kitt_table = [math.pow(x,power)*(1-minimum)+minimum for x in kitt_table]
+def kitt(
+    cycles=100,
+    delay=80,
+    power=10,
+    minimum=0.3,
+    rgb=[255, 0, 0],
+    spectrum=[],
+    halo=False,
+):
 
-    #start loop
+    # prepare lookup table
+    kitt_table = [((-math.cos(math.pi * (x / 10.0))) + 1) / 2.0 for x in range(21)]
+    kitt_table = [math.pow(x, power) * (1 - minimum) + minimum for x in kitt_table]
+
+    # start loop
     for i in range(cycles):
 
-        #compute position of center
+        # compute position of center
         j = i % 20
-        if j>10:
-            j = 20-j
+        if j > 10:
+            j = 20 - j
 
-        #prepare output table and print
+        # prepare output table and print
         if spectrum == []:
             used_leds = 11
-            output = [[int(x*y) for y in rgb] for x in kitt_table[j:(j+11)]]
+            output = [[int(x * y) for y in rgb] for x in kitt_table[j : (j + 11)]]
         else:
             used_leds = len(spectrum)
-            output = [[int(y*kitt_table[j+x]) for y in spectrum[x]] for x in range(used_leds)]
+            output = [
+                [int(y * kitt_table[j + x]) for y in spectrum[x]]
+                for x in range(used_leds)
+            ]
         if halo:
-            output += [[0,0,0]]*(11-used_leds)
-            output += [output[used_leds-1]]+[output[0]]*2+[output[used_leds-1]]
+            output += [[0, 0, 0]] * (11 - used_leds)
+            output += (
+                [output[used_leds - 1]] + [output[0]] * 2 + [output[used_leds - 1]]
+            )
         leds.set_all(output)
         utime.sleep_ms(delay)
 
-    #cleanup after loop has finished
+    # cleanup after loop has finished
     leds.clear()
diff --git a/pycardium/modules/py/leds.py b/pycardium/modules/py/leds.py
index 5b21e35caf169244e387d263608f786e2cd0e8a4..9d4ae4a6b2dfcd176faf0d27b1e87e2f13556000 100644
--- a/pycardium/modules/py/leds.py
+++ b/pycardium/modules/py/leds.py
@@ -1,5 +1,6 @@
 import sys_leds
 import math
+
 """
     the led class does led stuff. some notes:
     - the hardware allows for led values to only be set in bulk, so for maximum speed all new led values should be set first before updating.
@@ -7,59 +8,77 @@ import math
     - upon further consideration it might be best to implement macro functions in pycardium/modules/sys_leds.c if best performance is what you seek
 """
 
+
 def update():
     sys_leds.update()
 
+
 def clear():
-    values = [[0,0,0] for x in range(15)]
+    values = [[0, 0, 0] for x in range(15)]
     sys_leds.set_all(values)
 
+
 def flashlight(on):
     sys_leds.flashlight(on)
 
+
 def dim_top(dim):
     sys_leds.dim_top(dim)
     sys_leds.update()
 
+
 def dim_bottom(dim):
     sys_leds.dim_bottom(dim)
     sys_leds.update()
 
+
 def rocket(led, value):
     sys_leds.rocket_set(led, value)
 
+
 def prep(led, value):
     sys_leds.prep(led, value)
 
+
 def prep_hsv(led, value):
     sys_leds.prep_hsv(led, value)
 
+
 def set(led, value):
     sys_leds.set(led, value)
 
+
 def set_hsv(led, value):
     sys_leds.set_hsv(led, value)
 
+
 def set_all(values):
     sys_leds.set_all(values)
 
+
 def set_all_hsv(values):
     sys_leds.set_all_hsv(values)
 
+
 def gay(value=0.5):
-    values=[[((x*360.0)/11),1.0,value] for x in range(11)]
+    values = [[((x * 360.0) / 11), 1.0, value] for x in range(11)]
     sys_leds.set_all_hsv(values)
 
+
 def powersave(eco=True):
     sys_leds.powersave(eco)
 
+
 def gamma(power=4.0):
-    table = [int(math.ceil(math.pow((x/255.0),power)*255)) for x in range(256)]
+    table = [int(math.ceil(math.pow((x / 255.0), power) * 255)) for x in range(256)]
     for i in range(3):
-        sys_leds.set_gamma(i,table)
+        sys_leds.set_gamma(i, table)
     sys_leds.update()
 
-def gamma_rgb(channel,power=4.0, gain=1.0):
-    table = [int(math.ceil(math.pow((x/255.0),power)*gain*255)) for x in range(256)]
-    sys_leds.set_gamma(channel,table)
+
+def gamma_rgb(channel, power=4.0, gain=1.0):
+    table = [
+        int(math.ceil(math.pow((x / 255.0), power) * gain * 255)) for x in range(256)
+    ]
+    sys_leds.set_gamma(channel, table)
     sys_leds.update()
diff --git a/pycardium/modules/py/prideleds.py b/pycardium/modules/py/prideleds.py
index 36a6770c044356e75a64d5627d26912abc2ba229..f5788ccc4cf5fd41089b395dedb26c19bdd1d3d2 100644
--- a/pycardium/modules/py/prideleds.py
+++ b/pycardium/modules/py/prideleds.py
@@ -1,39 +1,121 @@
 flags = {}
-flags['rainbow'] = ([255,0,24],[255, 165, 44],[255,255,65],[0,128,24],[0,0,249],[134,0,125])
-flags['trans'] = ([85,205,252],[247,168,184],[255,255,255],[247,168,184],[85,205,252])
-flags['bi'] = ([214,2,112],[155,79,150],[0,56,168])
-flags['ace'] = ([1,1,1],[164,164,164],[255,255,255],[150,0,150])
-flags['greyace'] = ([150,0,150],[164,164,164],[255,255,255],[164,164,164],[150,0,150])
-flags['aro'] = ([61,165,66],[167,211,121],[255,255,255],[169,169,169],[1,1,1])
-flags['greyaro'] = ([61,165,66],[164,164,164],[255,255,255],[164,164,164],[61,165,66])
-flags['pan'] = ([255,27,141],[255,218,0],[27,179,255])
-flags['inter'] = ([255,218,0],[122,0,172])
-flags['genderqueer'] = ([201,138,255],[255,255,255],[80,150,85])
-flags['lesbian'] = ([139,60,105],[171,99,143],[187,127,179],[255,255,255],[214,113,113],[134,70,70])
-flags['nonbinary'] = ([255,244,51],[255,255,255],[155,89,208],[0,0,0])
-flags['genderfluid'] = ([254,117,161],[255,255,255],[189,22,213],[0,0,0],[50,61,187])
-flags['agender'] = ([0,0,0],[150,150,150],[150,150,150],[255,255,255],[182,245,131],[182,245,131],[255,255,255],[150,150,150],[150,150,150],[0,0,0])
-flags['poly'] = ([0,0,255],[0,0,255],[0,0,255],[255,0,0],[255,0,0],[255,255,0],[255,0,0],[255,0,0],[0,0,0],[0,0,0],[0,0,0])
+flags["rainbow"] = (
+    [255, 0, 24],
+    [255, 165, 44],
+    [255, 255, 65],
+    [0, 128, 24],
+    [0, 0, 249],
+    [134, 0, 125],
+)
+flags["trans"] = (
+    [85, 205, 252],
+    [247, 168, 184],
+    [255, 255, 255],
+    [247, 168, 184],
+    [85, 205, 252],
+)
+flags["bi"] = ([214, 2, 112], [155, 79, 150], [0, 56, 168])
+flags["ace"] = ([1, 1, 1], [164, 164, 164], [255, 255, 255], [150, 0, 150])
+flags["greyace"] = (
+    [150, 0, 150],
+    [164, 164, 164],
+    [255, 255, 255],
+    [164, 164, 164],
+    [150, 0, 150],
+)
+flags["aro"] = (
+    [61, 165, 66],
+    [167, 211, 121],
+    [255, 255, 255],
+    [169, 169, 169],
+    [1, 1, 1],
+)
+flags["greyaro"] = (
+    [61, 165, 66],
+    [164, 164, 164],
+    [255, 255, 255],
+    [164, 164, 164],
+    [61, 165, 66],
+)
+flags["pan"] = ([255, 27, 141], [255, 218, 0], [27, 179, 255])
+flags["inter"] = ([255, 218, 0], [122, 0, 172])
+flags["genderqueer"] = ([201, 138, 255], [255, 255, 255], [80, 150, 85])
+flags["lesbian"] = (
+    [139, 60, 105],
+    [171, 99, 143],
+    [187, 127, 179],
+    [255, 255, 255],
+    [214, 113, 113],
+    [134, 70, 70],
+)
+flags["nonbinary"] = ([255, 244, 51], [255, 255, 255], [155, 89, 208], [0, 0, 0])
+flags["genderfluid"] = (
+    [254, 117, 161],
+    [255, 255, 255],
+    [189, 22, 213],
+    [0, 0, 0],
+    [50, 61, 187],
+)
+flags["agender"] = (
+    [0, 0, 0],
+    [150, 150, 150],
+    [150, 150, 150],
+    [255, 255, 255],
+    [182, 245, 131],
+    [182, 245, 131],
+    [255, 255, 255],
+    [150, 150, 150],
+    [150, 150, 150],
+    [0, 0, 0],
+)
+flags["poly"] = (
+    [0, 0, 255],
+    [0, 0, 255],
+    [0, 0, 255],
+    [255, 0, 0],
+    [255, 0, 0],
+    [255, 255, 0],
+    [255, 0, 0],
+    [255, 0, 0],
+    [0, 0, 0],
+    [0, 0, 0],
+    [0, 0, 0],
+)
 import leds, math, ledfx
 
-def show(flag='rainbow', brightness = 0.5, gamma = 1, cutoff = 12):
-    colors = [[int(255*brightness*math.pow((y/255.0),gamma)) for y in x] for x in flags[flag]]
-    leds_per_color = int(cutoff/len(colors))
+
+def show(flag="rainbow", brightness=0.5, gamma=1, cutoff=12):
+    colors = [
+        [int(255 * brightness * math.pow((y / 255.0), gamma)) for y in x]
+        for x in flags[flag]
+    ]
+    leds_per_color = int(cutoff / len(colors))
     output = []
     for i in colors:
-        output += [i]*leds_per_color
+        output += [i] * leds_per_color
     leds.clear()
     leds.set_all(output[::-1][0:11])
 
-def get(flag='rainbow', brightness = 1, gamma = 1, cutoff = 12):
-    colors = [[int(255*brightness*math.pow((y/255.0),gamma)) for y in x] for x in flags[flag]]
-    leds_per_color = int(cutoff/len(colors))
+
+def get(flag="rainbow", brightness=1, gamma=1, cutoff=12):
+    colors = [
+        [int(255 * brightness * math.pow((y / 255.0), gamma)) for y in x]
+        for x in flags[flag]
+    ]
+    leds_per_color = int(cutoff / len(colors))
     output = []
     for i in colors:
-        output += [i]*leds_per_color
+        output += [i] * leds_per_color
     return output[::-1][0:11]
 
+
 def demo(s_delay=2):
     for i in flags:
         print(i)
-        ledfx.kitt(delay=int((1000*s_delay)/40), minimum = 0.7, spectrum=get(flag=i), cycles=40, halo=True)
+        ledfx.kitt(
+            delay=int((1000 * s_delay) / 40),
+            minimum=0.7,
+            spectrum=get(flag=i),
+            cycles=40,
+            halo=True,
+        )
diff --git a/pycardium/modules/sys_leds.c b/pycardium/modules/sys_leds.c
index 0a0ff0fa86dc0ec3b007e153df6dbac84c048ed3..aa53c68a7ce35bf9ec4e77a2fd37fb0591a02279 100644
--- a/pycardium/modules/sys_leds.c
+++ b/pycardium/modules/sys_leds.c
@@ -103,42 +103,46 @@ static MP_DEFINE_CONST_FUN_OBJ_2(leds_prep_hsv_obj, mp_leds_prep_hsv);
 
 static mp_obj_t mp_leds_set_all(mp_obj_t color_in)
 {
-    uint8_t len = mp_obj_get_int(mp_obj_len(color_in));
+	uint8_t len = mp_obj_get_int(mp_obj_len(color_in));
 	uint8_t pattern[len][3];
-    for(int i=0;i<len;i++){
-        mp_obj_t color = mp_obj_subscr(color_in, mp_obj_new_int(i), MP_OBJ_SENTINEL);
-    	pattern[i][0] = mp_obj_get_int(
-    		mp_obj_subscr(color, mp_obj_new_int(0), MP_OBJ_SENTINEL)
-    	);
-    	pattern[i][1] = mp_obj_get_int(
-    		mp_obj_subscr(color, mp_obj_new_int(1), MP_OBJ_SENTINEL)
-    	);
-    	pattern[i][2] = mp_obj_get_int(
-    		mp_obj_subscr(color, mp_obj_new_int(2), MP_OBJ_SENTINEL)
-    	);
-    }
-	epic_leds_set_all((uint8_t*)pattern, len);
-    return mp_const_none;
+	for (int i = 0; i < len; i++) {
+		mp_obj_t color = mp_obj_subscr(
+			color_in, mp_obj_new_int(i), MP_OBJ_SENTINEL
+		);
+		pattern[i][0] = mp_obj_get_int(mp_obj_subscr(
+			color, mp_obj_new_int(0), MP_OBJ_SENTINEL)
+		);
+		pattern[i][1] = mp_obj_get_int(mp_obj_subscr(
+			color, mp_obj_new_int(1), MP_OBJ_SENTINEL)
+		);
+		pattern[i][2] = mp_obj_get_int(mp_obj_subscr(
+			color, mp_obj_new_int(2), MP_OBJ_SENTINEL)
+		);
+	}
+	epic_leds_set_all((uint8_t *)pattern, len);
+	return mp_const_none;
 }
 static MP_DEFINE_CONST_FUN_OBJ_1(leds_set_all_obj, mp_leds_set_all);
 
 static mp_obj_t mp_leds_set_all_hsv(mp_obj_t color_in)
 {
-    uint8_t len = mp_obj_get_int(mp_obj_len(color_in));
+	uint8_t len = mp_obj_get_int(mp_obj_len(color_in));
 	float pattern[len][3];
-    for(int i=0;i<len;i++){
-        mp_obj_t color = mp_obj_subscr(color_in, mp_obj_new_int(i), MP_OBJ_SENTINEL);
-    	pattern[i][0] = mp_obj_get_float(
-    		mp_obj_subscr(color, mp_obj_new_int(0), MP_OBJ_SENTINEL)
-    	);
-    	pattern[i][1] = mp_obj_get_float(
-    		mp_obj_subscr(color, mp_obj_new_int(1), MP_OBJ_SENTINEL)
-    	);
-    	pattern[i][2] = mp_obj_get_float(
-    		mp_obj_subscr(color, mp_obj_new_int(2), MP_OBJ_SENTINEL)
-    	);
-    }
-	epic_leds_set_all_hsv((float*)pattern, len);
+	for (int i = 0; i < len; i++) {
+		mp_obj_t color = mp_obj_subscr(
+			color_in, mp_obj_new_int(i), MP_OBJ_SENTINEL
+		);
+		pattern[i][0] = mp_obj_get_float(mp_obj_subscr(
+			color, mp_obj_new_int(0), MP_OBJ_SENTINEL)
+		);
+		pattern[i][1] = mp_obj_get_float(mp_obj_subscr(
+			color, mp_obj_new_int(1), MP_OBJ_SENTINEL)
+		);
+		pattern[i][2] = mp_obj_get_float(mp_obj_subscr(
+			color, mp_obj_new_int(2), MP_OBJ_SENTINEL)
+		);
+	}
+	epic_leds_set_all_hsv((float *)pattern, len);
 
 	return mp_const_none;
 }
@@ -154,7 +158,7 @@ static MP_DEFINE_CONST_FUN_OBJ_1(leds_flashlight_obj, mp_leds_flashlight);
 
 static mp_obj_t mp_leds_rocket_set(mp_obj_t led_in, mp_obj_t value_in)
 {
-	int led = mp_obj_get_int(led_in);
+	int led   = mp_obj_get_int(led_in);
 	int value = mp_obj_get_int(value_in);
 	epic_leds_rocket_set(led, value);
 	return mp_const_none;
@@ -192,19 +196,20 @@ static mp_obj_t mp_leds_powersave(mp_obj_t eco_in)
 }
 static MP_DEFINE_CONST_FUN_OBJ_1(leds_powersave_obj, mp_leds_powersave);
 
-static mp_obj_t mp_leds_set_gamma(mp_obj_t rgb_channel_in, mp_obj_t gamma_table_in)
+static mp_obj_t
+mp_leds_set_gamma(mp_obj_t rgb_channel_in, mp_obj_t gamma_table_in)
 {
-    int rgb_channel = mp_obj_get_int(rgb_channel_in);
+	int rgb_channel = mp_obj_get_int(rgb_channel_in);
 	if (mp_obj_get_int(mp_obj_len(gamma_table_in)) < 256) {
 		mp_raise_ValueError("table must have 256 elements");
 	}
-    uint8_t gamma_table[256];
-    for(int i=0;i<256;i++){
-	    gamma_table[i] = mp_obj_get_int(
-		    mp_obj_subscr(gamma_table_in, mp_obj_new_int(i), MP_OBJ_SENTINEL)
-	    );
-    }
-    epic_leds_set_gamma_table(rgb_channel, gamma_table);
+	uint8_t gamma_table[256];
+	for (int i = 0; i < 256; i++) {
+		gamma_table[i] = mp_obj_get_int(mp_obj_subscr(
+			gamma_table_in, mp_obj_new_int(i), MP_OBJ_SENTINEL)
+		);
+	}
+	epic_leds_set_gamma_table(rgb_channel, gamma_table);
 	return mp_const_none;
 }
 static MP_DEFINE_CONST_FUN_OBJ_2(leds_set_gamma_obj, mp_leds_set_gamma);