5 ms·
First, this is going to be my first USB device. Second, I plan to put some more complex functionality. I intend it to be my last keyboard so I want to be able t
by lmilcin 7y ago
First, this is going to be my first USB device. Second, I plan to put some more complex functionality. I intend it to be my last keyboard so I want to be able to map every key however I want (the whole point of having my own controller). I also want it to have built-in steno which is much more than just matrix scanning.
While I could achieve all of that with OS driver and plover the sad reality is that I am unable to install my own software on my corporate PC and I would like to have consistent environment at my home and office.
- jrockway 7y agoAll I'm saying is that the interesting part of the code will run just fine on your host machine, so you don't need any complicated tricks to develop and test it. Obviously in production it will run on the microcontroller, so you get the functionality you desire without OS drivers. Do keep in mind that /usr/share/dict/words is about 10x larger than the flash on microcontrollers. This is why most people do the steno conversion in software, not on the keyboard itself.
- lmilcin 7y agoI plan to store configuration data on an SD card for convenience. If it wasn't clear yet it is my personal project, I don't plan to make product from it.
- ihuman 7y agoIf you're not designing your own microcontroller, you might want to check out the Proton-C. It has 248kB of usable flash memory, which could be enough to store a stenography-optimized word list in addition to the firmware. It was made to be flashed with the qmk keyboard firmware, but I don't think there's any requirement that you have to use qmk. https://qmk.fm/proton-c/ https://qmk.fm/proton-c/
- jrockway 7y agoI used an STM32F103 for my last keyboard, and you can buy four for the price of a Proton C. I am still not sure why they chose the F3 series for the Proton C, as it doesn't seem to be a chip that's commonly used in the maker community. I am somewhat surprised they didn't bite the bullet and just port QMK to the nRF52 (since everyone wants bluetooth out of the box), actually. The F103 is also interesting in that it is well-supported by Rust and Tinygo, if C isn't your thing. I picked it because QMK supports it (and works great), but I'm actually planning to write the firmware in Go and ditch all the things that bug me about QMK. However the USB stack is not there and I dread writing it. I might pull a QMK and just have ChibiOS run my Go code ;)
- ihuman 7y agoThe F3 series includes support for "analog peripherals," so maybe they decided on that line so they could support the speaker? If that's correct, then that's a pretty niche feature for them to focus on. There are forks of qmk and the pro-micro that support the nRF52, but as far as I can tell nothing has been merged into the main qmk yet.
- lmilcin 7y agoI was actually planning to run it on F103 as I already have couple of them laying around. And I also wanted to try it in Rust mostly to get some experience with it. I was initially thinking about something that is already bluetooth enabled like ESP32 or CC2640R2 (I have development boards for both of these) but the design suddenly gets exponentially more complex if you want to get it right. Also, neither has a package that I can easily solder. I know it is just aesthetics, but I really like a clean board.