-
USB QMK keyboard running
10/19/2021 at 16:44 • 0 commentsToday , between 2 patients appointments, I was able to flash the ATMEGA32U4 of the pcboard. It worked like a charm at first book. Have a look at QMK QMKTools to understand how to flash the HEX file. (you have the .hex file in the file area of this article)
First tests show a working QWERTY KB with my dev laptop.
-
QMK Compatible KB ? ATMEGA32u4
10/13/2021 at 12:55 • 0 commentsyesterday we rebuit the keyboard (the old one had a circuit short which was hard to fix, due to a bad soldering technique).
We were able to flash the ATMEGA32u4 like a charm and run a sketch uploaded via ARDUINO IDE software. Good!
Now we are preparing the QMK config files . Installation of QMK was made under linux following this Guide.
We created the new kb called BLAKRPI with ./util/new_keyboard.sh bash script and followed this guide.
Below, the schematic showing how the ATMEGA32U4 is wired
"Cyberpunk computing"'s forum post was also of great help. We were able to setup the firmware.
# MCU name MCU = atmega32u4 # Bootloader selection BOOTLOADER = caterina # Build Options # change yes to no to disable # BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output
rules.mk
Then we design the layout for the 60 keys
#pragma once #include "quantum.h" /* This is a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical * layout of the board and position of the keys. * * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ #define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, \ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 }, \ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 } \ }
And defaultlayout.c
/* Copyright 2021 Dr CADIC Philippe * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include QMK_KEYBOARD_H // Defines names for use in layer keycodes and the keymap enum layer_names { _BASE, _FN }; // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { QMKBEST = SAFE_RANGE, QMKURL }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT(\ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UP, KC_NO,\ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT, KC_RGHT,\ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_F5, KC_F6,\ KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_ENT, KC_F7, KC_F8,\ KC_LCTL, KC_LSFT, KC_LALT, KC_SPC, MO(_FN), KC_RSFT, KC_DEL, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4\ ), [_FN] = LAYOUT(\ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UP, KC_NO,\ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT, KC_RGHT,\ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_F5, KC_F6,\ KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_ENT, KC_F7, KC_F8,\ KC_LCTL, KC_LSFT, KC_LALT, KC_SPC, MO(_FN), KC_RSFT, KC_DEL, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4\ ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QMKBEST: if (record->event.pressed) { // when keycode QMKBEST is pressed SEND_STRING("QMK is the best thing ever!"); } else { // when keycode QMKBEST is released } break; case QMKURL: if (record->event.pressed) { // when keycode QMKURL is pressed SEND_STRING("https://qmk.fm/\n"); } else { // when keycode QMKURL is released } break; } return true; }
-
Xorg/Xwindow working
09/20/2021 at 20:34 • 1 commenthi all.
I was able to setup the GFX interface. You will need the may2020 raspbian image to be able to get it running, then update/upgrade from it.
-
Week end built
09/20/2021 at 09:34 • 3 commentswe built the blakrpi 2k this week end.
-
config.txt issues
09/20/2021 at 09:32 • 0 commentsWe found a cool link to setup the display.
-
Soldering...
09/14/2021 at 22:26 • 0 comments -
Pcb have arrived
09/14/2021 at 22:24 • 0 commentswe got the pcb this morning. This is time tp soldet them ...