Curious OneShot-related LED behaviour after flashing

Hello. For some reason ever since I flashed my first custom sketch I never got the boot greeting blue breathing of the LED key signaling the end of the flashing. I didn’t bother as I wasn’t much interested in that effect anyway, but the recent curious behaviour is quite strange.

All the keys I have mapped OneShot modifiers/layers to are shown in yellow, irrespective of the LED effect which was active prior to flashing:

My current sketch is here. Any ideas how I can make it so that my default LED effect returns after flashing?

That blue breathing effect does not signal the end of flashing, but rather, it signals the keyboard booted. It’s the LEDEffect-BootGreeting plugin doing that, which you seem to have removed. So no blue breathing is to be expected there :slight_smile:

That might be ActiveModColorEffect, though it should be white… Are one-shots active at the time?


Replace LEDOff with the LED effect you wish to be the default, and place this at the very end of your setup().

Try this:

#include "Kaleidoscope-LEDEffect-BootGreeting.h"


As for which LED effect gets applied on boot, you need to .activate() it in setup().

Hah, it is actually quite funny what happens here. Before spoiling the fun, I’ll give a hint: change the color of the LEDSolidYellow effect!

Ok, one more clue: the order of plugins in KALEIDOSCOPE_INIT_PLUGINS is important for the explanation.

Click the spoiler below for the explanation of this mistery!

The root of the phenomenon is indeed ActiveModColorEffect. When it sees a one-shot or modifier key that is not active, it will ask the active LED mode to refresh the color of that key, so it returns to its original color. If we do not activate any LED modes, then the first one registered will be the active one. However, without explicit activation, it will not do its initial thing. So in this case, we’ll have LEDSolidYellow active, without it painting the keys yellow at start. But when ActiveModColorEffect scans the keymap, it asks it to color those special keys only.

And this is why you end up with yellow one-shots, without them being active.

Activating your desired LED effect should fix the yellowness issue, and @tiltowaitt showed above how to get the blue breathing effect back.


Oh nice explanation.

How’d you do that spoiler effect?!

Yes it did. Thanks for that!

Hm thanks for your reply but the blue breathing did not come back. As you can see in my earlier sketch I did have the requisite lines but removed them in the later version thinking they were not working. Even now adding them doesn’t work.

Is it perhaps because I moved the Key_LEDEffectNext key to a higher layer? @algernon?

Yeah. You can set BootGreetingEffect.search_key to set up a key it should find, or BootGreetingEffect.key_row and BootGreetingEffect.key_col to give it coordinates. Either of these will override the default search for Key_LEDEffectNext, and allow you to put the breathing effect on whichever key you want.

1 Like