ergodox
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
ergodox [2019/04/10 18:59] – [Configurer le layout] simon | ergodox [2021/02/08 21:31] (Version actuelle) – [Envoyer la configuration sur le clavier] simon | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Ergodox ====== | ====== Ergodox ====== | ||
+ | {{tag> | ||
+ | |||
+ | ===== Introduction ===== | ||
+ | |||
+ | Ça fait longtemps que j'ai le projet de me fabriquer et d' | ||
+ | |||
+ | Après avoir rêvé de tout reprendre de A à Z, de fabriquer le boitier en fibre de carbone et redessiner la carte électronique, | ||
+ | |||
{{ : | {{ : | ||
- | (D' | + | (D' |
- | ===== Flasher | + | ===== Programmer |
- | J'ai tout d' | + | |
- | Pour mémoire: | + | ==== Installation de QMK ==== |
- | < | + | |
+ | Après avoir testé le [[https:// | ||
<code bash> | <code bash> | ||
- | simon@deb: | + | $ python3 |
</ | </ | ||
- | < | + | |
+ | J'ai copié [[https:// | ||
<code bash> | <code bash> | ||
- | Clonage dans ' | + | $ sudo vim / |
- | remote: Enumerating objects: 1, done. | + | $ sudo udevadm control |
- | remote: Counting objects: 100% (1/1), done. | + | $ sudo udevadm trigger |
- | remote: Total 17079 (delta 0), reused 0 (delta 0), pack-reused 17078 | + | |
- | Réception d' | + | |
- | Résolution des deltas: 100% (10038/ | + | |
</ | </ | ||
- | </ | + | |
+ | J'ai fait la configuration comme indiqué : | ||
<code bash> | <code bash> | ||
- | simon@deb: | + | $ qmk setup |
- | simon@deb: | + | |
</ | </ | ||
- | < | + | Il installe toutes les dépendances, |
- | <code bash> | + | |
- | simon@deb: | + | |
- | -------- begin -------- | + | ==== Créer une " |
- | avr-gcc (GCC) 5.4.0 | + | |
- | Copyright (C) 2015 Free Software Foundation, Inc. | + | |
- | This is free software; see the source for copying conditions. | + | |
- | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | + | |
- | (...) | + | J'ai créé une nouvelle keymap dans le dossier de l' |
+ | <code bash> | ||
+ | $ qmk new-keymap -kb ergodox_ez | ||
+ | Keymap Name: my-ergodox | ||
+ | Ψ my-ergodox keymap directory created in: / | ||
+ | Ψ Compile a firmware with your new keymap by typing: | ||
+ | qmk compile -kb ergodox_ez -km my-ergodox | ||
+ | </ | ||
- | Creating load file for Flash: ergodox_lufa.hex | + | On peut modifier cette keymap |
- | avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature ergodox_lufa.elf ergodox_lufa.hex | + | <code bash> |
+ | $ vim ~/ | ||
+ | </ | ||
- | Creating load file for EEPROM: ergodox_lufa.eep | + | Ensuite, on peut la compiler |
- | avr-objcopy | + | <code bash> |
- | --change-section-lma .eeprom=0 --no-change-warnings -O ihex ergodox_lufa.elf ergodox_lufa.eep || exit 0 | + | $ qmk compile |
+ | </ | ||
- | Creating Extended Listing: ergodox_lufa.lss | + | ==== Envoyer la configuration sur le clavier ==== |
- | avr-objdump -h -S -z ergodox_lufa.elf > ergodox_lufa.lss | + | |
- | Creating Symbol Table: ergodox_lufa.sym | + | Enfin, on peut l' |
- | avr-nm -n ergodox_lufa.elf > ergodox_lufa.sym | + | |
- | + | ||
- | Size after: | + | |
- | | + | |
- | 23404 | + | |
- | </ | + | |
- | </ | + | |
- | Vérification du MCU (voir [[https://pjrc.com/teensy/ | + | |
<code bash> | <code bash> | ||
- | simon@deb:~/Programmes/tmk_keyboard/ | + | $ teensy_loader_cli --mcu=atmega32u4 -v -w ~/qmk_firmware/.build/ergodox_ez_my-ergodox.hex |
- | # MCU name, you MUST set this to match the board you are using | + | |
- | MCU = atmega32u4 | + | |
- | #MCU = at90usb1286 | + | |
</ | </ | ||
- | {{ :: | + | **__État des lieux le 18/ |
- | {{ :: | + | |
- | {{ :: | + | |
- | </ | + | |
- | Ensuite, j' | + | **__État des lieux le 19/10/2020 :__** J' |
- | <code bash> | + | **__État des lieux le 30/11/ |
- | simon@deb:~/git$ git clone https:// | + | |
- | simon@deb:~/git$ cd qmk_firmware/ | + | **__État des lieux le 08/02/2021 :__** J'ai corrigé toutes les touches " |
+ | < | ||
+ | <code c> | ||
+ | #include QMK_KEYBOARD_H | ||
+ | #include " | ||
- | simon@deb:~/git/qmk_firmware$ ls | + | enum layers { |
- | autocomplete.sh | + | BASE, // default layer |
- | book.json | + | |
- | bootloader.mk | + | MDIA, // media keys |
- | build_full_test.mk | + | }; |
- | build_keyboard.mk | + | |
- | build_layout.mk | + | |
- | build_test.mk | + | |
- | CODE_OF_CONDUCT.md | + | |
- | common_features.mk | + | |
- | simon@deb: | + | enum custom_keycodes { |
- | total 980 | + | #ifdef ORYX_CONFIGURATOR |
- | (...) | + | VRSN = EZ_SAFE_RANGE, |
- | drwxr-xr-x | + | #else |
- | drwxr-xr-x | + | VRSN = SAFE_RANGE, |
- | drwxr-xr-x | + | #endif |
- | (...) | + | |
+ | }; | ||
- | simon@deb: | + | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
- | total 84 | + | /* Keymap 0: Basic layer |
- | drwxr-xr-x 4 simon simon 4096 avr 10 19:49 . | + | * |
- | drwxr-xr-x 243 simon simon 4096 avr 10 19:49 .. | + | * ,--------------------------------------------------. |
- | -rw-r--r-- 1 simon simon | + | * | µ | |
- | -rw-r--r-- 1 simon simon 4340 avr 10 19:49 config.h | + | * |--------+------+------+------+------+-------------| |
- | -rw-r--r-- 1 simon simon 11644 avr 10 19:49 ergodox_ez.c | + | * | Tab | |
- | -rw-r--r-- 1 simon simon 11160 avr 10 19:49 ergodox_ez.h | + | * |--------+------+------+------+------+------| |
- | -rw-r--r-- 1 simon simon 8830 avr 10 19:49 info.json | + | * | CapsLk | |
- | drwxr-xr-x 24 simon simon 4096 avr 10 19:49 keymaps | + | * |--------+------+------+------+------+------| |
- | -rw-r--r-- 1 simon simon 9196 avr 10 19:49 matrix.c | + | * | LShift |</ |
- | -rw-r--r-- | + | * `--------+------+------+------+------+-------------' |
- | -rw-r--r-- 1 simon simon 3481 avr 10 19:49 rules.mk | + | |
- | drwxr-xr-x | + | |
+ | | ||
+ | | ||
+ | * , | ||
+ | * | ||
+ | | ||
+ | | ||
+ | | ||
+ | */ | ||
+ | [BASE] = LAYOUT_ergodox_pretty( | ||
+ | KC_BSLS, | ||
+ | KC_TAB, | ||
+ | KC_CAPS, | ||
+ | KC_LSFT, | ||
+ | DF(SYMB), | ||
+ | | ||
+ | KC_LALT, | ||
+ | | ||
+ | ), /*note: KC_GRAVE ? */ | ||
+ | /* Keymap 1: Symbol Layer | ||
+ | * | ||
+ | * , | ||
+ | * | | ||
+ | * |---------+------+------+------+------+------+------| | ||
+ | * | | ||
+ | * |---------+------+------+------+------+------| | ||
+ | * | | ||
+ | * |---------+------+------+------+------+------| | ||
+ | * | | ||
+ | * `---------+------+------+------+------+-------------' | ||
+ | | ||
+ | | ||
+ | | ||
+ | * | App | Alt | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | */ | ||
+ | [SYMB] = LAYOUT_ergodox_pretty( | ||
+ | KC_NO, | ||
+ | KC_TRNS, KC_EXLM, KC_AT, | ||
+ | KC_TRNS, KC_HASH, KC_DLR, | ||
+ | KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_NO, | ||
+ | DF(BASE), | ||
- | simon@deb: | + | ALT_T(KC_APP), KC_LALT, |
- | total 96 | + | |
- | (...) | + | KC_SPC, KC_BSPC, KC_LGUI, |
- | drwxr-xr-x | + | |
- | drwxr-xr-x | + | |
- | drwxr-xr-x | + | |
- | (...) | + | |
- | simon@deb:~/git/ | + | ), |
+ | /* Keymap 2: Media and mouse keys | ||
+ | * | ||
+ | * , | ||
+ | * | | | MsBt3| MsBt4| MsBt5| | ||
+ | * |--------+------+------+------+------+-------------| | ||
+ | * | | WhlLf| Lclk | MsUp | Rclk |WhlUp |Bright| | ||
+ | * |--------+------+------+------+------+------| | ||
+ | * | | WhlRt|MsLeft|MsDown|MsRght|WhlDn |------| | ||
+ | * |--------+------+------+------+------+------|Bright| | ||
+ | * | | | | | | | - | ||
+ | * `--------+------+------+------+------+-------------' | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | */ | ||
+ | [MDIA] = LAYOUT_ergodox_pretty( | ||
+ | KC_NO, | ||
+ | KC_NO, | ||
+ | KC_NO, | ||
+ | KC_NO, | ||
+ | DF(BASE), | ||
- | simon@deb: | + | |
- | QMK Firmware 0.6.328 | + | |
- | Making ergodox_ez with keymap bepo_tm_style and target all | + | KC_SPC, KC_BSPC, KC_LGUI, |
+ | ), | ||
+ | }; | ||
- | avr-gcc | + | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
- | Copyright | + | if (record-> |
- | This is free software; see the source for copying conditions. | + | |
- | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | + | case VRSN: |
+ | SEND_STRING (QMK_KEYBOARD "/" | ||
+ | return false; | ||
+ | #ifdef RGBLIGHT_ENABLE | ||
+ | case RGB_SLD: | ||
+ | rgblight_mode(1); | ||
+ | return false; | ||
+ | #endif | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } | ||
- | Size before: | + | // Runs just one time when the keyboard initializes. |
- | | + | void keyboard_post_init_user(void) { |
- | 0 30658 | + | #ifdef RGBLIGHT_COLOR_LAYER_0 |
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); | ||
+ | #endif | ||
+ | }; | ||
- | Compiling: tmk_core/common/command.c [OK] | + | // Runs whenever there is a layer state change. |
- | Linking: .build/ | + | layer_state_t layer_state_set_user(layer_state_t state) { |
- | Creating load file for flashing: .build/ | + | |
- | Copying ergodox_ez_bepo_tm_style.hex to qmk_firmware folder | + | |
- | Checking file size of ergodox_ez_bepo_tm_style.hex | + | |
- | * The firmware size is fine - 30658/ | + | |
- | </ | + | |
- | Le firmware | + | uint8_t layer = get_highest_layer(state); |
- | <code bash> | + | switch (layer) { |
- | simon@deb:~/ | + | case 0: |
- | Teensy Loader, Command Line, Version | + | # |
- | Read " | + | |
- | Waiting for Teensy device... | + | #endif |
- | (hint: press the reset button) | + | break; |
- | Found HalfKay Bootloader | + | case 1: |
- | Read " | + | |
- | Programming................................................................................................................................................................................................................................................ | + | #ifdef RGBLIGHT_COLOR_LAYER_1 |
- | Booting | + | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); |
- | </ | + | #endif |
+ | break; | ||
+ | case 2: | ||
+ | ergodox_right_led_2_on(); | ||
+ | #ifdef RGBLIGHT_COLOR_LAYER_2 | ||
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); | ||
+ | #endif | ||
+ | break; | ||
+ | case 3: | ||
+ | | ||
+ | # | ||
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); | ||
+ | #endif | ||
+ | break; | ||
+ | case 4: | ||
+ | ergodox_right_led_1_on(); | ||
+ | | ||
+ | #ifdef RGBLIGHT_COLOR_LAYER_4 | ||
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); | ||
+ | #endif | ||
+ | break; | ||
+ | case 5: | ||
+ | | ||
+ | ergodox_right_led_3_on(); | ||
+ | #ifdef RGBLIGHT_COLOR_LAYER_5 | ||
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); | ||
+ | #endif | ||
+ | break; | ||
+ | case 6: | ||
+ | ergodox_right_led_2_on(); | ||
+ | ergodox_right_led_3_on(); | ||
+ | #ifdef RGBLIGHT_COLOR_LAYER_6 | ||
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); | ||
+ | #endif | ||
+ | break; | ||
+ | case 7: | ||
+ | ergodox_right_led_1_on(); | ||
+ | ergodox_right_led_2_on(); | ||
+ | ergodox_right_led_3_on(); | ||
+ | #ifdef RGBLIGHT_COLOR_LAYER_7 | ||
+ | rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); | ||
+ | #endif | ||
+ | break; | ||
+ | default: | ||
+ | | ||
+ | } | ||
- | Maintenant qu'on a compris la procédure pour envoyer un layout choisi sur le clavier, on doit faire le layout qui nous convient et recommencer la procédure. | + | |
- | + | }; | |
- | ===== Configurer le layout ===== | + | |
- | On commence par faire une copie du layout bepo pour l' | + | |
- | <code bash> | + | |
- | simon@deb: | + | |
- | + | ||
- | simon@deb: | + | |
- | total 32 | + | |
- | drwxr-xr-x | + | |
- | drwxr-xr-x 25 simon simon 4096 avr 10 20:10 .. | + | |
- | -rwxr-xr-x | + | |
- | -rwxr-xr-x | + | |
- | -rwxr-xr-x | + | |
- | -rwxr-xr-x | + | |
</ | </ | ||
+ | </ | ||
+ | ===== Sources ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |
ergodox.1554922766.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)