Woo! So excited that these are starting to ship.
I went ahead and got a head start on firmware programming...I tracked down skullydazed's TMK repo and used that as a starting point to make my own Monarch keymap.
I'm pretty psyched for this keyboard and some of the cool layout options it enables. I'd love to hear everyone's thoughts on some of my layout design choices--what you like, and what you'd do differently.
Looks pretty good! I like your use of the right apple key for momentary layer changes, works well for things you don't routinely access. For my purposes, I probably won't stray to far from the standard layout, except for a few changes here and there (I mostly play Starcraft 2, so there will likely be some layers to aid with control groups and camera hotkeys).
On a slightly related note about customizing the Monarch, I've been thinking about the backlighting. Originally I wasn't going to bother with it, and so didn't get any LEDs or resistors to implement it. But after rethinking it, having some undercase lighting might be cool. The only problem is I don't think I could settle on a single color, at least not initially. My case is dark green, so it's not immediately obvious what color would work best.
So I started researching RGB LED options. Obviously the PCB doesn't support it, but I did find an interesting alternative:
addressable RGB LEDs. These LEDs have an LED controller built in that uses a single data line that sets the color, and are chainable. This means you can individually control the color of multiple LEDs in series with a single output from the MCU. What's more, there is a
library written for AVRs that handles the bit banging to control the LEDs.
My plan is to use one of the spare outputs to control the LEDs, and wire VCC and GND to each LED. I have two questions though on doing this. One, each LED can draw up to 60 mA (full bright white), how much current can be supplied through the VCC? If necessary, I might have to have a secondary power supply. Second, is where to put the LED control in the TMK firmware. I can think of two options: first, is to do it with the matrix scan. This will probably work, but the timing will be inconsistent for animation purposes (though I could compensate by using the global timer value to calculate lighting). The second option is to use a timer and an interrupt service routine. This will provide consistent timing, but I'm not sure on the availability of timer ISRs in the TMK firmware, or if this is an appropriate use of an ISR. Any comments on adding something like this to the TMK firmware would be appreciated.
Anyway, super excited to finally have this keyboard, can't wait to get started on it!