diff --git a/libraries/cosmic_unicorn/cosmic_unicorn.cpp b/libraries/cosmic_unicorn/cosmic_unicorn.cpp index b7d16ab7..0dfec9c4 100644 --- a/libraries/cosmic_unicorn/cosmic_unicorn.cpp +++ b/libraries/cosmic_unicorn/cosmic_unicorn.cpp @@ -494,11 +494,14 @@ namespace pimoroni { void CosmicUnicorn::set_brightness(float value) { value = value < 0.0f ? 0.0f : value; value = value > 1.0f ? 1.0f : value; + // Max brightness is - in fact - 256 since it's applied with: + // result = (channel * brightness) >> 8 + // eg: (255 * 256) >> 8 == 255 this->brightness = floor(value * 256.0f); } float CosmicUnicorn::get_brightness() { - return this->brightness / 255.0f; + return this->brightness / 256.0f; } void CosmicUnicorn::adjust_brightness(float delta) { diff --git a/libraries/galactic_unicorn/galactic_unicorn.cpp b/libraries/galactic_unicorn/galactic_unicorn.cpp index 44defb02..9bfc8465 100644 --- a/libraries/galactic_unicorn/galactic_unicorn.cpp +++ b/libraries/galactic_unicorn/galactic_unicorn.cpp @@ -488,11 +488,14 @@ namespace pimoroni { void GalacticUnicorn::set_brightness(float value) { value = value < 0.0f ? 0.0f : value; value = value > 1.0f ? 1.0f : value; + // Max brightness is - in fact - 256 since it's applied with: + // result = (channel * brightness) >> 8 + // eg: (255 * 256) >> 8 == 255 this->brightness = floor(value * 256.0f); } float GalacticUnicorn::get_brightness() { - return this->brightness / 255.0f; + return this->brightness / 256.0f; } void GalacticUnicorn::adjust_brightness(float delta) { diff --git a/libraries/stellar_unicorn/stellar_unicorn.cpp b/libraries/stellar_unicorn/stellar_unicorn.cpp index f71de50b..95e93229 100644 --- a/libraries/stellar_unicorn/stellar_unicorn.cpp +++ b/libraries/stellar_unicorn/stellar_unicorn.cpp @@ -485,11 +485,14 @@ namespace pimoroni { void StellarUnicorn::set_brightness(float value) { value = value < 0.0f ? 0.0f : value; value = value > 1.0f ? 1.0f : value; + // Max brightness is - in fact - 256 since it's applied with: + // result = (channel * brightness) >> 8 + // eg: (255 * 256) >> 8 == 255 this->brightness = floor(value * 256.0f); } float StellarUnicorn::get_brightness() { - return this->brightness / 255.0f; + return this->brightness / 256.0f; } void StellarUnicorn::adjust_brightness(float delta) {