qmk/qmk_firmware

Introducing an educational folder with examples and practice exercices

Open

#7435 aperta il 21 nov 2019

Vedi su GitHub
 (2 commenti) (5 reazioni) (1 assegnatario)C (43.867 fork)batch import
discussionhelp wantedquestionto do

Metriche repository

Star
 (20.368 star)
Metriche merge PR
 (Merge medio 20g 9h) (27 PR mergiate in 30 g)

Descrizione

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 ?

Guida contributor