DK63 - Porting QMK Keyboard Firmware
The Road to the Perfect Mechanical Keyboard
My day job consists of me being a web developer for a a large media and I spend the majority of my day sitting by a keyboard. I have been using the standard major fruit company bluetooth keyboard for a while, but after browsing /r/mechanicalkeyboards for a while I knew that I wanted something more. So I set out to find one that met my daily needs for at work and at home.
The requirements for my keyboard were pretty simple.
- Rainbow Puke RGB
I searched on amazon and other online retailers and was pleasently suprised by the prices of the mechanical keyboards on the market. It seems that mechanical keyboards are the hipster developer fad and I wanted in, but not at those prices. I started looking at building my own with some sweet keycaps and braided cables. I was still pushing the $300 mark... for a keyboard.
Finally my search ended with the DIERYA DK63 from amazon for $49. I had hit the jackpot and found everhting I wanted.
When the day came for my DK63 to be delieverd I couldn't wait for it and I felt like a kid on Christmas. I opened the packaging and got it working with my PC. I went through the RGB effects in all of there glory. By the end of the day I felt like I was missing something. Custom Effects! Unfourtinalty this was not supported so I found a custom keyboard firmware called QMK . This seemed to be the solution to my problem. They only thing was my keyboard wasn't supported.
QMK and Chibios
I set out and joind the QMK Discord and started asking questions about what I needed to get my keyboard working with QMK. I was told that I was facing an uphill battle of porting ChibiOS to my MCU the VS11K09A-1. This was before I could even think about working with QMK. I tore my keyboard apart and started looking for answers by reverse engineering the DK63.
Not knowing how to proceed I reached out to the /r/embedded subreddit for some clues as to what I was getting into. I found out that my Vision MCU was actually called EVision and that it was based off of the Sonix SN32F248B. In fact the MCU is a Sonix SN32F248B with EVision branding. I started a GitHub repo to track all of the information that I was finding.