EasyAVR is a keyboard firmware and keymapper GUI for custom keyboards based on USB AVRs. It is powerful but also really easy to use.
Read the documentation on GitHub:
http://dhowland.github.io/EasyAVR/
View the source, report issues, and find releases on Github:
https://github.com/dhowland/EasyAVR
Ask questions in the GH thread:
https://geekhack.org/index.php?topic=51252
Additional info at the DT Wiki:
https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware