After all of the work put in to understanding hid usb and creating my pinball controller, I sat down today and created a simple pinball game in unity.
I used my controller in windows the entire time. I had to program it a bit more simplistic for now to get the physics worked out in game, but all in all I was having a great experience.
I built the game for android and then installed it on my phone. Plugged in the controller using an otg cable and then loaded the game. No input. This must be an error. Tried again. No input. Ahhhhhh!
For some unknown reason, I can't get unity on android to recognize my device properly. Android itself randomly selects things when buttons are pushed, so something is happening.
I then loaded up the bt joystick mapping app I purchased a while back to map a joystick for a vr flight sim on android and it found it right away. but when trying to assign bits to the buttons, nothing would activate when buttons were pushed. a prompt at the top of the app made it clear that it was receiving something. But I have not had any luck with it actually allowing input.
I did see that there is now an upgraded nicohood library to use, so I will treat that and see if there are any differences. But with the comments from a couple people stating similar problems with Linux and android, I'm pretty sure that I'm out of luck.
Nicohood built his library based on the same thing I built mine. I understand his is very nice, but he doesn't have the time to look in to the android problem. There is another user who is though.
For now, my dreams of custom hardware and software controllers for mobile vr are dying on the vine. I'll just tear apart an old moga bluetooth controller to make this build. I found several for 5 bucks each a year ago and haven't used them.
At least all is not lost, I can always build custom controllers for desktop based vr. And maybe this person working on his own controller for android will figure this out for me. Or, once I regain my resolve, I'll do it myself. But now it's time to focus on game development.