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.

@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).

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

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.

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.