New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add more layers #391
Comments
It might suffice to just change the 64 to 35 for all modules. Setting MAX_KEY_COUNT_PER_MODULE = 35 and layer count to 12 on the fork yields:
I am using 1024 bytes for the status buffer and 4096 bytes for runtime macros, so there is still some 3 KB reserve in case we desperately need it.
I don't think so. I guess you would have to construct manually a two dimensional array of pointers (pointing to the third-dimension arrays) manually. |
Great idea! Setting MAX_KEY_COUNT_PER_MODULE = 35 is the simplest way forward for the time being. |
This is already implemented in master and will be included in the next release. |
This issue is the firmware side of the Add more layers Agent issue.
Currently, it is possible to add 8 more layers to CurrentKeymap, but not 9 because then we run out of RAM. But adding 8 more layers would not be possible by simply increasing the layer count with Karel's soon-to-be-merged firmware fork because it uses additional RAM.
I think the cleanest solution would be to restructure CurrentKeymap as
The compiler throws an error for the above code so it's surely incorrect, but you get the idea. If possible, it'd be great to have an array of variable-sized arrays, but I'm not sure if it's possible, and my C is not good enough to implement this off the top of my head.
The text was updated successfully, but these errors were encountered: