# Help Customizing Atreus Firmware while still being able to use Chrysalis

**URL:** <https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299>\
**Category:** Programming\
**Tags:** question\
**Created:** [October 25, 2020, 5:25pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299 "2020-10-25T17:25:44Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![keyden](https://avatars.discourse-cdn.com/v4/letter/k/51bf81/32.png) [@keyden](https://community.keyboard.io/u/keyden)\
**Post date:** [October 25, 2020, 5:25pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/1 "2020-10-25T17:25:44Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![kajsa.anderson](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/kajsa.anderson/32/346_2.png) [@kajsa.anderson](https://community.keyboard.io/u/kajsa.anderson)\
**Post date:** [October 25, 2020, 10:41pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/2 "2020-10-25T22:41:44Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![keyden](https://avatars.discourse-cdn.com/v4/letter/k/51bf81/32.png) [@keyden](https://community.keyboard.io/u/keyden)\
**Post date:** [October 25, 2020, 11:10pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/3 "2020-10-25T23:10:52Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![kajsa.anderson](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/kajsa.anderson/32/346_2.png) [@kajsa.anderson](https://community.keyboard.io/u/kajsa.anderson)\
**Post date:** [October 25, 2020, 11:31pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/4 "2020-10-25T23:31:33Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![keyden](https://avatars.discourse-cdn.com/v4/letter/k/51bf81/32.png) [@keyden](https://community.keyboard.io/u/keyden)\
**Post date:** [October 25, 2020, 11:33pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/5 "2020-10-25T23:33:14Z")

</div>

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

> <https://github.com/keyboardio/Chrysalis/pull/578>

---

<div class="post-metadata">

**Author:** ![kajsa.anderson](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/kajsa.anderson/32/346_2.png) [@kajsa.anderson](https://community.keyboard.io/u/kajsa.anderson)\
**Post date:** [October 25, 2020, 11:37pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/6 "2020-10-25T23:37:18Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![fishheadsoup](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/fishheadsoup/32/161_2.png) [@fishheadsoup](https://community.keyboard.io/u/fishheadsoup)\
**Post date:** [October 30, 2020, 8:55pm UTC](https://community.keyboard.io/t/help-customizing-atreus-firmware-while-still-being-able-to-use-chrysalis/4299/7 "2020-10-30T20:55:10Z")

</div>

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.
