I had been looking for a button box app for a while and I couldn't find anything that worked for me until I found Matric. The free version has limited buttons but it's less than a cup of coffee to unlock it. Using AutoHotkey to monitor and record the button states and then it feeds it back to Matric's API to get buttons that have a visual state that toggles. Check it out over at https://matricapp.com/ or on the Google Play store: https://play.google.com/store/apps/details?id=tbm.matric.client