qmk/qmk_firmware

Introducing an educational folder with examples and practice exercices

Open

#7.435 geöffnet am 21. Nov. 2019

Auf GitHub ansehen
 (2 Kommentare) (5 Reaktionen) (1 zugewiesene Person)C (43.867 Forks)batch import
discussionhelp wantedquestionto do

Repository-Metriken

Stars
 (20.368 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 20T 9h) (27 gemergte PRs in 30 T)

Beschreibung

Hello everyone, here is a documentation proposition.

A little bit of context

I am a newbee with QMK but I am now able to make some simples keyboards and exploit the features of QMK. I am not a warrior who can create advanced features in the core of QMK. But for me it was a long time for achieved this. First because making a diy keyboard is also a question of money but also because I was completly lost in the documentation. Some days ago I have talked 1 hour to a professionnal electronics and is was the same for him even if the project have a very advanced documentation.

Examples of my issues 

  • I was thinking that the documentation for some features was missing -> In fact, my features were documented.
  • I wasn’t able to understand that there was two documentation for describing the same feature : The complete newb guide and the normal one.
  • I wasn’t sure what hardware to buy (So I have buyed a Teensy 3.2 wich wasn’t the simpliest way to achieve my builds). Yep the documentation say that many controller work but for a beginner, she don’t promote a precise one.

Most importants issues

  • I was hoping to make a very simple keyboard, a proof of concept to validate the fact that I was able to make a complete one before buying all the parts.
  • Features are documented but the examples of all the features aren’t really implemented on sample keyboards in the repo, like demos. e. g. If you want to see a concrete implementation of Backlight you have to browse the keyboard folder and the risk is to fall in a @drashna overkill sorcerer implementation who pulse exactly at 144hz.

For fixing that, my idea is to propose keyboard folder, something like « educational examples » who propose two differents things : 

1. Complete guides who explain clearly how to make 1~4 (for the moment) little keyboard for beginners.

  • A first one can be the one-key. It’s great to validate that all the tools are installed, the compilation process, the use of a bread-board / or handwiring, maybe the debug too and much important : A first keyboard wich print characters.
  • Probably one with a 3×2 matrice and some keys missing in the matrice to demonstrate how to make a simplified matrice wich have some larger keys on it, all the macro definitions and layers.
  • A thirst one can be made with a cheap PCB just for some who fear handwiring. Something like a 3×2 macro pad (open source that everyone can order on JLPCB ? It can be good if we want to propose something for people who have big difficulties to get parts for cheap like Brazil).
  • A splitted keyborad handwired with only 4 keys to introduce master and slave things.

For that, I am thinking about parts list with exacts references, shematics, pictures, photography, any tips and step to step guides possible Something like a Ikea guide that you can’t fail even if you’r a golden retriever.

2. Features focused demonstration who can be implemented on one of those simples keyboards.

At this point you’r supposed to have a complete keyboard or one of the 4 educationnal keyboards described below and with that you can compile those demonstrations layouts / use of a particular features for validate your handwiring, or just because you fear to implement this on your kb.

Examples

  • Macros : First keymap to show how to print text directly, a second to press / releases keycodes, a thirst wich use timers.
  • How to have Capslock / Scroll lock / Num pad leds indicators.
  • Backlight with a handwired led-bar backlight with 5 leds and a mosfet (with exacts refs parts) : First keymap is just to make light, a second to achieve breathing, a thirst to breath only when using a layer.
  • Solenoids / vibrator engine (Not very sure if this is the good word).

Pretty sure those concrete example directly in the code can help newbees to learn. Clearly this is hard work. I can probably make some features documentation and examples (like backlight, or easy softwares examples) but I am not an expert and can’t done all of this stuff alone. Also the only thing I masterize is procrastination.

What do you think ?

Contributor Guide