Atreus layout corruption with Firmware v0.92.6

I’m using Atreus with Chrysalis-Firmware-Bundle 0.92.6 and Chrysalis version 0.13.3 on macOS. About 1 out of 5 or 6 times, after making layout changes in Chrysalis and saving them to the keyboard, the layout somehow becomes corrupted so that multiple keys (2 or 3 keys) on multiple layers get changed to something random. Often times the keys and layers affected were not the ones I’ve most recently made changes to. It appears that possibly, keys configured with secondary actions more affected than other keys.

I’ve re-flashed with the latest firmware and factory reset multiple times now, but this issue continues to recur after a while.

Is anyone aware of this issue or know what might be the cause?

Thanks,
Michael

Update: I’m experiencing this issue on multiple MacBooks:

  • M1 MacBook Pro running Sonoma 14.6
  • M1 MacBook Air running Sonoma 14.5

I recently updated to the latest Chrysalis and firmware after not using the Atreus for a while. I may try going back to a previous firmware version to see if that changes anything.

I’m starting to suspect it’s an issue with Chrysalis. Since experiencing issues I’ve been exporting the layouts to file much more frequently. I’m starting to see that the corruption is happening in the newly exported layout files even before I save to the keyboard.

It just happened AGAIN. Here’s exactly what I did:

  1. from a good known working state (Atreus keyboard updated with latest layout and changes exported to file successfully), I attempted to add two mouse keys (mouse wheel up and mouse week down) to my mouse layer (#4).

  2. I added the mouse keys and clicked “Save Changes” to update the keyboard.

  3. When I went to test the changes with the keyboard I noticed the new updates were not working. But then I also noticed some of my number keys from my number layer (#1) were also not working. Specifically, 3, 0, period keys on the num layer were not functioning as expected.

  4. At this point Chrysalis was still running and the layout looked fine in Chrysalis. I decided to quit and restart Chrysalis.

  5. When Chrysalis reconnected to the keyboard, I immediately saw issues with the number layer. Some of the keys on right-hand side of the number layer (#1) were replaced unexpectedly:

    • bottom row: F7 added (previously transparent)
    • bottom row: comma changed to F8
    • bottom row: 0 (zero) changed to F9
    • bottom row: period changed to F10
    • bottom row: slash (divide) changed to del
    • second from bottom row: 3 changed to move/shift to layer #3
    • second from bottom row: backslash changed to Ins

Screenshot of the number layer showing the corrupted keys (highlighted in red):

Screenshot of the number layer showing the correct keys after re-importing from the exported file:

After downgrading to Chrysalis 0.13.2, things seem to be working better. I’ve been able to make multiple updates, including adding additional mouse keys without issues.

And NOPE. While adding a new mouse key (middle click), it was immediately changed to caps lock when I saved it to the keyboard.

I sometimes have that issue too. I’ve backup my layouts as file, just to be on the safe side.

A couple of times when I make changes, all the letters, numbers, symbols and functions on all layers are scrambled.

But I can’t replicate the bug consistently. So, I don’t know what the issue is exactly to report it.

Thanks for confirming it’s not just me and my obscure tech problems. :upside_down_face:

Agreed 100% here. It’s not consistently reproducible. Although I haven’t tried flashing an older firmware yet.

Since I haven’t used the Atreus very much in the last year it’s difficult for me to say if this is something new or recent. I don’t recall this ever happening on my two Model 100s, which I use daily and have spent countless hours customizing. I’ve also used the M01 since the early days and don’t recall this issue there, either.

@Dennis, in your case any guesses as to how long this has been an issue? Do you feel this is recent or new behavior?

I’d love to know if you can repro this with the current browser-based version of Chrysalis: https://chrysalis.keyboard.io

We’ve put a lot of work into communications reliability since moving to the web.

1 Like

I’ll give this another try and report back. Previously when trying the browser-based Chrysalis, I found that it would often hang when saving changes to the keyboard and then I’d lose the changes.

From my limited experience with my Atreus keyboard on the Mac, I think the browser-based version of Chrysalis is more problematic than the installed app. Most of the time saving the layout to the keyboard causes it to freeze up. When this happens, I need to unplug the keyboard, reconnect it, and then quit and restart Chrome.

A usability quirk of the browser version is that after making changes, it doesn’t allow the layout to be exported to file until after saving to the keyboard. If it freezes up and doesn’t save the changes to the keyboard, then the changes I made are lost. The installed app doesn’t do this and allows me to first export the changes to file.

At this point, I’m thinking of building and uploading the firmware using the IDE or manually to get more control over some of the Kaleidoscope features missing when using Chrysalis.

@michaelafcadio I’m not quite sure. I want to say since September 2023. I think I’ve had the same issue with the Model 100, but that’s quite some time ago that I had that issue. Also has to do with the fact that my Model 100 is kinda set when it comes to programming it. What I do remember is when I tried home row mods (like Shift and Command beneath index and middle finger), I sometimes stumbled upon this problem. But since home row mods have some bugs I don’t use them and therefore no need to program my keebs any further.

Hi @jesse,

Thanks for the suggestion. I’m not seeing the issue with corruption using the browser-based version of Chrysalis. However, I often experience timeout/connection issues with the browser version.

Overall, the experience is not consistent. Over the last 4 days, things were working very well using Chrysalis 0.13.3 and 0.13.2 (on two different MacBooks) with the Atreus and I was unable to reproduce any of the issues I experienced previously despite extensively updating the layout including adding new layers. Until this morning. Suddenly the issue returned with Chrysalis 0.13.3. Upon saving the changes to the keyboard I got a communication timeout error. When I reconnected the Atreus, many of the keys were altered as reported earlier. This then occurred two more times.

I’ve not run into issues like this with the Model 100.

Update: I failed to mention this earlier, but about half the time when there’s an issue saving the layout and it results in a corrupted layout it’s accompanied by the error message:

TypeError: Cannot read properties of undefined (reading ‘to string’)

Update2: when using the browser version of Chrysalis with Chrome on macOS, I have issues where the “Restore from file” option does not work – it either does nothing or the dialog to save to a file is delayed by several seconds. Sometimes I need to click the “restore” butteon 3 or 4 times before it works.

I wanted reiterate how severe of a problem this is. Because of these issues the Atreus is nearly unusable with Chrysalis. I need to continuously export my saved layout updates to new files and keep them as backups.

Why? Because each time I update the keyboard, I have no idea if the layout has become corrupted (without verifying every key on every layer.) A few times I thought everything was fine and then exported the updated layout over a previously saved file, only to realize later that one of my layers was all messed up. And I overwrote the changes with the corrupted configuration.

If anyone has any ideas about further troubleshooting steps or workarounds to prevent this from happening please let me know. This is extremely frustrating and something I’ve never experienced using the either the Model 01 or Model 100.

Here’s another example of layout corruption. This time, the mouse layer (#4) with Chrysalis version 0.3.13 on Mac.

The corruption to the keys has a pattern:

  1. keys on the right hand were all shifted over to the left hand, such that the keys under my right index finger are shifted left to my right ring finger.
  2. keys on the left hand were shifted up one row and then to the right hand such that keys under my left ring finger are now under my right index finger and up one row.

Here’s the layout card from an exported PDF prior to the corruption showing the intended layout:

And here’s how the layer appears after corruption (made changes to a completely different layer #6 and saved changes to the keyboard):

When you hit a timeout issue with the browser version, can you grab a debug log from the sidebar menu? I’m not seeing that with the current release and would love to get it tracked down.

1 Like

When you hit a timeout issue with the browser version, can you grab a debug log from the sidebar menu? I’m not seeing that with the current release and would love to get it tracked down.

Will do. But to your point, other than these timeout issues (which are also not consistent) I’m getting a more reliable experience with the browser-based version, which is great.

One minor UX complaint about the browser-based version is that it does’t appear to allow me to export to file until after I’ve saved it to the keyboard. Would be awesome if I could export to file as I was making changes (without saving to the keyboard) like I can with the non-browser Chrysalis app.

Understood. Layout import/export is very much high on the list of things we need in browser-based Chrysalis.
-Jesse

Hi @jesse, quick update. Since I’ve been using the browser-based version of Chrysalis with Chrome regularly, I’ve not experienced the timeout issue again. And overall, the experience has been pleasant and much improved over the non-browser version. Kudos!

However, just now I experienced a strange issue with the browser-based version at https://chrysalis.keyboard.io. As I opened the Layout Editor I noticed the layer names were missing in the keyboard key preview and instead were shown as their layer numbers.

I recently started experimenting with compiling my own custom firmware to get more control over the Qukeys plugin and was concerned something in my custom firmware was responsible. However, I had not made firmware updates in a while and this is the first time I noticed this.

After quitting Chrome, reopening Chrysalis and connecting to the Atreus again, everything looked normal and the layer names were showing up as usual. I didn’t change anything other than restarting Chrome. Not sure if that’s helpful feedback, but happy to get more info if you need it.

Regards, and keep up the great work! I’m looking forward to getting my hands on the new Preonic!

Cheers,
Michael

Next time you see the bad behavior, before you reload the browser window, open up the sidebar menu and grab a debugging bundle. That should tell us what’s going wrong.