- rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, pgm_read_byte(&LED_BREATHING_TABLE[pos]));
+
+ // http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/
+ val = (exp(sin((pos/255.0)*M_PI)) - RGBLIGHT_EFFECT_BREATHE_CENTER/M_E)*(RGBLIGHT_EFFECT_BREATHE_MAX/(M_E-1/M_E));
+ rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, val);