04-21-2021, 04:55 PM
(04-21-2021, 04:36 PM)KC9UDX Wrote: I had forgot* that all this stuff was USB. That's probably a good reason for the code size. Although if the disassembly above is correct, there's probably just a ton of bloat, as must be expected these days. No doubt the source is hundreds of megabytes of C++.
*not that I didn't know, but just can't get used to using so much bloat from a hardware design perspective.
It would be really interesting to see the original source code of the keyboard and touchpad firmware. There's even some helper firmware image, which gets flashed to the keyboard in the first step, and serves to update the keyboard and the touchpad to their final firmware images in the second step. Perhaps the source code isn't C++, and not in the range of hundreds of MBs, but it surely is a mix of various licensed libraries, cobbled together so they barely work.
I was also disgusted when the USB keyboards started replacing PS/2 keyboards. Why replacing a good, dedicated interface? However, convenience trumps everything, and for the most people it's convenient to have only one port type (i.e. USB) for all peripherals.
(04-21-2021, 04:36 PM)KC9UDX Wrote: What I was thinking about the location of the chip above, is that if it was proprietary from the manufacturer, I'd expect it to be on a separate board. It just seems odd to me to supply proprietary code for the end user to run on their own processor. It also seems odd to me to use USB in this case, but I suppose that makes sense from a modern software perspective.
Actually, the SH68F83 controller isn't proprietary to the keyboard manufacturer, as you can see in the datasheet I've linked in my previous post. The keyboard and the keyboard controller are made by two different manufacturers, which was probably a measure to cut the cost down. Also, I don't think that the PineBook Pro keyboard was made specifically for the PineBook Pro; I'd say that it's a generic design that's been just tweaked a bit to fit the PineBook Pro.
See also this very good description of the PineBook Pro keyboard and touchpad hardware.