-
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 outputrules.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 comments![]()
![]()
we got the pcb this morning. This is time tp soldet them ...
pcadic

Now we are preparing the QMK config files . Installation of QMK was made under linux following this 












