With the firmware stable and fast, this keyboard project of mine is slowly coming to a close. It supports all the basics functionality of the keyboard: TrackPoint, FN combinations, Num Lock, remote wake-up and supports all the keyboard’s key codes that I can test on a Windows machine.
This USB device currently have 3 interfaces: HID Mouse (TrackPoint), HID keyboard and HID Datapipe, which is a generic TI MSP430’s HID format that allows ‘simple’ data transfer, similar to CDC Datapipe.
For this draft PCB run, I’m resorting back to 0805 resistors and capacitors as they are much easier to solder than 0603. I’m only worried about the BSL button pad spacing, it was hard to find the datasheet to those eBay SMD tactile buttons since the sellers never include datasheets.
There are 3 things left to do:
- Designing an enclosure, such that it clamps onto any laptop bodies – essentially overlaying existing keyboards (This is where the ThinkClamp name came from)
- Write a script or find a way to disable laptop’s internal keyboard
- Write a PC software that allows end-user to easily find their keyboard’s matrix and flash the microcontroller on-board with that matrix using the HID datapipe, as well as using MSP430 Bootstrap Loader (BSL) for flashing the device.
For the enclosure, I’m thinking of using wood/aluminium, maybe coat the final surface with some rubber paint for that awesome ThinkPad laptop surface feel. For the enclosure’s clamp, something like extension springs that run under the keyboard would work nicely.
I have yet to find a way to disable my laptop’s internal keyboard as well as unable to write any PC software as I lack the skills to do so. Even though I have the skills to program in C, C++, Windows API is still very difficult to work with. Even Jan Axelson recommends using Visual C# .NET for writing HID software. So that is something I need to do. If anyone wants to help me in this aspect, feel free to leave a comment.