Reducing RGB LED brightness

Continuing the discussion from Guinea Pigs Wanted!:

If you have the skills and equipment, you could replace the three LED “dropping” resistors with ones of higher value, to lower the maximum brightness.

However, might I suggest a physical solution: Place some type of neutral desity filter inside the front of the case, above the RGB LED.

In the past, I’ve used pieces of the grey/silver Mylar anti-static bags that electronic parts come in, stuck on with clear double-sided tape.

Another thought is to use one or more layers of a white self-adhesive address label cut to size, or just plain white paper with clear double-sided tape.

You could even use a piece of black electrical tape to cover the area above the LED. You would still be able to see the LED light “bleeding” through the edges of the case and reflecting off of the circuit board (especially with a white Arduboy).

It will be interesting to see how the “smoked” front cover of the special edition Arduventure Arduboy affects the brightness of the LEDs.

Is this really a problem? I do not find the leds that annoying at all.

It doesn’t bother me but I think a few others, besides @Pharap, have complained. I can see it possibly being a problem if you use it in a dark area (after all, “flashlight” mode makes a pretty good flashlight).

I’ve been meaning to try a bit of glossy tape from my label printer over the LED.

As @MLXXXp mentioned I am one of the others that find the LED at full brightness uncomfortable in low lighting.

I also prefer some of the other possible colours using setRGB but maybe I’m just too fussy because sometimes I just think the LED’s and audio just waste battery.

1 Like

I also find the RGB LED a bit too bright :sunglasses: I found some ribbed plastic from a printer staple cartridge that was soft enough to be cut to size with some scissors. It refracts the light nicely :slight_smile:

another Idea I had was to cut a just thick enough slice of unused hot glue and use it as diffuser for the RGB LED.

1 Like

Its unfortunate the setRBG is an expensive function in terms of memory - a quick change to the game to use this added 750 bytes that I simply cannot afford at the moment. To put it into context, that’s three levels!

1 Like

Stay tuned…
This will change in the next release of the Arduboy2 library. I’ve refactored SetRGBled() to directly manipulate the hardware, instead of using the Arduino analogWrite() function. This drastically reduces program memory used by SetRGBled(). It still takes a bit more than digitalWriteRGB(), though.


Sounds good. What sort of savings are we talking?

1 Like

It’s always hard to predict how the compiler will optimise, but in the following basic sketch, the setRGBled() statement adds 22 bytes.

#include <Arduboy2.h>

Arduboy2 arduboy;

void setup() {
  arduboy.setRGBled(RGB_ON, RGB_ON, RGB_ON);

void loop() {

Now that’s what I need!

Is this code available now? I have extended Arduboy2 already, so I can possibly slip this in too.

I don’t want to clutter this topic. I’ll PM you.

Today I had a hunt around for something most people can find in their home and came up with a section of pill packet.

You want the textured area between the pills, be sure to remove the foil to avoid shorts.

It’s difficult to capture but you can just manage to pickup the difference in glare from the covered LED.