Project Updates for 7/18/2018
I went ahead and mapped out the circuit board today. It wasn't exactly the rows and columns that I was hoping for, but rather networks of circuitry. I counted 15 distinct networks plus the on button was separate. When I mapped them out in a spreadsheet, the bottom 8 rows are definitely in a matrix as expected. However, for the top 2 rows and the arrow keys, they use some of the row networks as columns and that's why I decided to map it out as networks (a term I took from Eagle regarding a series of connections all electrically attached) rather than rows and columns.
So what does this mean? Probably that I will have to come up with my own solution for scanning all of the keys. The problem is that some of the pins will need to switch between being inputs to outputs and vice versa which I don't think will be a problem on the Raspberry Pi. Also, I've never written a driver before and not for linux and this is the first intensive thing I've done with the Raspberry Pi. However, I knew going in that this would probably be the hardest piece. and this is kind of what I was initially expecting to do.
So, this means I will need 16 GPIO pins for the keypad, which I think I can manage if I don't use the backlight. I measured the resistance of the buttons to be no more than 100 ohms and with the way the contact is, it will be probably closer to about 25 ohms. The next step will be researching what is involved in coming up with a software solution to scan the keys and are there any limitation that I should look out for. Also, I may need to come up with some kind of serial shifter or multiplexer circuitry so that I don't need to use as many pins if that's even possible with the way this thing is laid out.