Help Customizing Atreus Firmware while still being able to use Chrysalis

Hey guys,

Id like to make some modifications to my Atreus that i cant do in Chrysalis (change OSM to not stick). I think i should be able to figure out how to change the cpp files once i know which files actually needs changing but don’t really know where to even start with this. I know it’s possible to customize firmware at the code level while still being able to use Chrysalis since i’ve read brief posts of doing so, im just not sure what i need to download and such to get things working.

Here’s what I did, from Arduino IDE:

  1. Make sure I’ve got the latest board definitions: Tools menu, follow the right arrow from the selected board to get to Board Manager, search on Keyboardio, and update/install the latest board definitions. 1.99.2 currently.
  2. File -> Examples -> Kaleidosope -> Devices -> Keyboardio -> Atreus

That gets you the basic sketch you can build from. Scroll to the bottom… I’ve added the two OneShot lines you see here:

void setup() {
  Kaleidoscope.setup();
  OneShot.disableStickability(Key_LeftAlt);
  OneShot.disableStickability(Key_LeftControl);
  SpaceCadet.disable();
  EEPROMKeymap.setup(10);
}

You can add one for LeftShift as well, if you want. I have that one still enabled on my Model01 layout, because I sometimes use it as an alternative to CapsLock.

1 Like

@kajsa.anderson Won’t this overwrite whatever changes i’ve made in Chrysalis?

To be safe, you can export your layers from Chrysalis & if needed reapply them - but you might be OK. Chrysalis saves keymaps to EEPROM, and Kaleidoscope gets flashed to … a different region (I’m not the electrical engineer in the family).

1 Like

Yea i saw someone mention something about that and possibly having to disable the “Use custom layers only” menu option. Guess ill just give it a shot and see what happens. Thanks for the help!

Also hoping this PR that was recently merged wont break the method you’ve suggested

1 Like

This method doesn’t actually mix layers, we’re just tweaking the options on the firmware that the layers defined in Chrysalis make use of.

1 Like

Does that mean, I can use Chrysalis to define the layers and layout and use Kaleidoscope (Arduino IDE) to define macros, one shot, etc? (w/o wiping out the layers/layouts?)

Or is it safer to define everything in AIDE and just update that way?

Thanks.