(Sorry for the late answer, but I'm quite busy at the moment.)
Ok, I just finished reading through all the posts in this thread. Maybe should have done that _before_ I posted.
I know I'm late to the game, but I have to say... Mnemonix, awesome job with your controller board and firmware! If I had access to this a while ago, I probably would have never decided to try to do it myself. I'm also very excited about the Teensy++. With that, I see no need to build my own controller board.
Thank you!
Good you've decided to try it yourself, diversity is good. Also, thanks for sharing your work. As I understand it, your code will only work on USB-enabled AVRs. So when extending my own code for these I can take a look at your code how you've done it.
I've also thought about ordering a Teensy++ to play around with, but that will have to wait for now.
Mnemonix, there's a lot of overlap between our projects. I would like to borrow some of your ideas for my firmware, if you don't have any objections. For example, I have been planning to add some method of programming the keyboard without re-flashing the firmware, but I wasn't sure how to go about it. Looks like you have that feature already.
Well, it's all GPL'ed code, so, by definition copying is OK as long as your code is GPL-compatible, too, or if the copied code is trivial. Otherwise, borrowing ideas is always allowed, of course.
Concerning the programming of the keyboard, I am using the AVR's internal EEPROM for storing alternative key maps and configuration data. The tricky part was to find a method for communicating with the keyboard so that data other than HID packages could be exchanged. Fortunately, there is libusb which is taking care of the nasty OS-dependent details (detaching the HID driver from the device, re-attaching it later, sending/receiving data).
It seems from reading your posts that you have a lot of experience with this kind of development. I'd like to pick your brain on a few things, as this is my first foray into MCU development. I have a lot of ideas - would you consider collaborating? Or have you moved on from this project?
This was my first microcontroller-based project, too, but I have done some VHDL and other low-level stuff before, plus lots of experience in C and software development in general. I may seem more experienced than I really am. My MCU skills are currently improving, though, since I've got a new job in embedded systems development. Now I am getting paid for having fun.
I haven't moved from the project, but I have less time to work on it -- and it is working for me already anyway, so there's not much left to do from my perspective.
Still, if you have questions or would like to discuss ideas, feel free to do so (here in public or PM). I'd love to hear your ideas.