To see what's possible to add to the project, I needed a pinout list. Sadly the datasheet has a single table with all (G) 48pin, (J) 64pin and (N) 100pins in it, so that the L22G pins are all over the place. I printed out the 3 datasheet pages and cut them down and glued them together to a single page. I then marked all the LCD pins, USB and SWD pins and took a look at what was left: 10 pins. With a keyboard matrix of 4x5 pins I would normally have to use 9 pins, but instead I will use charlie-plexing to scan the keyboard. I was told that I can also use the SWD pins for other shenanigans, so I used them for the keyboard matrix and was now left with 7 more pins!
For communication I thought it would be nice to have an Infrared setup. I might be able to run tv-b-gone on it or even switch channels, ha! The TFBS4711 seems like a good tiny candidate for IR communication, so I chose that to connect to the SERCOM1 pins plus an extra pin for the shutdown pin. It might take a while until I have that functional, as there are other things that I would like to get running first.
There were two more pins of an USART interface free, so I chose SERCOM5 to be the I2C pins and connected them to a QWIIC connector. Might come in handy for controlling wearables in the future. All these addons including the USB connector mean the case needs to be modified.
That leaves us with two more pins that will be used for the piezo buzzer and the LCD backlight LED. There's a steep learning curve ahead of me when it comes to the firmware and integrating everything into the Arduino environment.