The Moonlander comes with 256KB of memory, versus the ErgoDox EZ, which comes with 32KB.

Not all of this memory is for your layout: Some if it goes towards the bootloader. In the ErgoDox EZ we use a tiny bootloader that takes up just 512 bytes (aptly named "Halfkay"), while the Moonlander's bootloader takes up a bit more space.

Even so, the Moonlander has significantly more room for your layout.

So, why are we not shouting this from the rooftops? Why is this not a big deal?

Simply because for most users working with the ErgoDox EZ in real life, it's not. It's one of those differences that seem huge on a spec sheet but aren't really massive when you use the product. 32KB is plenty of space for a fairly intricate layout. You're going to start running up against the ErgoDox EZ's memory limit mostly when when you start experimenting with some of the more advanced features Oryx offers, such as combos or dynamic macros.

This is an interesting problem for us to solve. The chip at the heart of the ErgoDox EZ, the ATMega32u4, is quite common among QMK-based keyboards. When we first started making the ErgoDox EZ more than seven years ago, this chip was a natural choice. Now that QMK's (and therefore our own) feature set has evolved over the years, layout memory management has become increasingly important. The unique part of this for us is we know many of our users are not necessarily keyboard hobbyists. Those familiar with QMK will have seen more incremental changes over time. To many of our users, though, it seems like the firmware is broken or that we’ve arbitrarily added limitations all of a sudden, and this is frustrating.

That said, although it is a unique problem, it is one we want to fix. The ErgoDox EZ is still a big priority for ZSA. This is where we got our start, and we're excited to be supporting and offering this board so many years later.

In the future, we're going to do a few things about this:

  1. The obvious: Increasing the ErgoDox EZ's memory size. This is actually much harder than it sounds. It will likely involve moving to an entirely new type of processor, which means re-making the PCB and certifying the keyboard again (CE/FCC certification). It's almost like making a whole new keyboard, right down to possible impact on the plastic tooling due to the new PCB. Still, I want to do it. Obviously, no timeline on this.
  2. Oryx tweaks: We are going to make the memory limits clearer in Oryx, and make it easier to toggle off memory-hungry features so you can slim down your layout. Toggling some unused animations off will free up a lot of space for example.
  3. Communication: With the launch of combos, memory constraints suddenly became more of an issue for a few of our users. Hence this blog post. We will also be linking to this blog post from and from our support emails.

The most important thing to remember is that even if you come up against memory limits, there's often a lot that can be done. Things like disabling dynamic macros if you don't use them heavily, disabling Live Training if you already know your layout well, or paring down some of your layers. We're always happy to offer personal help with your layout over email. The hardware isn't at fault here: It's mostly about optimizing your layout, picking and choosing the features that give you the most ergonomic bang for your memory.

Thank you for reading, and for supporting ZSA!