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 : (modification externe)
