Author Topic: Troubleshooting handwire build using QMK and Blackpill  (Read 3411 times)

0 Members and 1 Guest are viewing this topic.

Offline Mike40

  • Thread Starter
  • Posts: 1
Troubleshooting handwire build using QMK and Blackpill
« on: Tue, 28 February 2023, 17:39:54 »
Hi,

So I'm finishing my first 3d printed, handwired keyboard and I'm almost finished and obviously I had to face some problems.

My keyboard is a 40% designed by me (took inspiration of other 40s but changed it a bit) so I had to make some changes to QMK despite having no experience with it.
I have my keyboard all wired up and connected to STM32 controller.

After some changes to firmware I was able to compile and flash it succesfully, however keyboard does not work at all. I assume it is a software problem because wiring seems to be conducting signal properly.

So, I'm posting jason.info file as well as my keymap file and qmk toolbox log for someone to check for me.

Also I'm adding link to pictures of keyboard wiring.

Lastly sorry for any mistakes as english is not my native language and big thanks in advance for any help!

jason.info
Code: [Select]
{
    "manufacturer": "mike",
    "keyboard_name": "mike40",
    "maintainer": "mike",
    "bootloader": "stm32-dfu",
    "diode_direction": "COL2ROW",
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "mousekey": true,
        "nkro": true
    },
    "matrix_pins": {
        "cols": ["A4", "A5", "A6", "A7", "B0", "B1", "A15", "B3", "B4", "B5", "B6", "B7"],
        "rows": ["B8", "B9", "A3", "A2"]
    },
    "processor": "STM32F401",
    "url": "",
    "usb": {
        "device_version": "1.0.0",
        "pid": "0x0000",
        "vid": "0xFEED"
    },
    "layouts": {
        "LAYOUT_12x4": {
            "layout": [
                { "matrix": [0, 0], "x": 0, "y": 0 },
                { "matrix": [0, 1], "x": 1, "y": 0 },
                { "matrix": [0, 2], "x": 2, "y": 0 },
                { "matrix": [0, 3], "x": 3, "y": 0 },
                { "matrix": [0, 4], "x": 4, "y": 0 },
                { "matrix": [0, 5], "x": 5, "y": 0 },
                { "matrix": [0, 6], "x": 6, "y": 0 },
                { "matrix": [0, 7], "x": 7, "y": 0 },
                { "matrix": [0, 8], "x": 8, "y": 0 },
                { "matrix": [0, 9], "x": 9, "y": 0 },
                { "matrix": [0, 10], "x": 10, "y": 0},
                { "matrix": [0, 11], "x": 11, "y": 0 },
                { "matrix": [1, 0], "x": 0, "y": 1 },
                { "matrix": [1, 1], "x": 1, "y": 1 },
                { "matrix": [1, 2], "x": 2, "y": 1 },
                { "matrix": [1, 3], "x": 3, "y": 1 },
                { "matrix": [1, 4], "x": 4, "y": 1 },
                { "matrix": [1, 5], "x": 5, "y": 1 },
                { "matrix": [1, 6], "x": 6, "y": 1 },
                { "matrix": [1, 7], "x": 7, "y": 1 },
                { "matrix": [1, 8], "x": 8, "y": 1 },
                { "matrix": [1, 9], "x": 9, "y": 1 },
                { "matrix": [1, 10], "x": 10, "y": 1 },
                { "matrix": [2, 0], "x": 0, "y": 2 },
                { "matrix": [2, 1], "x": 1, "y": 2 },
                { "matrix": [2, 2], "x": 2, "y": 2 },
                { "matrix": [2, 3], "x": 3, "y": 2 },
                { "matrix": [2, 4], "x": 4, "y": 2 },
                { "matrix": [2, 5], "x": 5, "y": 2 },
                { "matrix": [2, 6], "x": 6, "y": 2 },
                { "matrix": [2, 7], "x": 7, "y": 2 },
                { "matrix": [2, 8], "x": 8, "y": 2 },
                { "matrix": [2, 9], "x": 9, "y": 2 },
                { "matrix": [2, 10], "x": 10, "y": 2 },
                { "matrix": [3, 0], "x": 0, "y": 3 },
                { "matrix": [3, 1], "x": 1, "y": 3 },
                { "matrix": [3, 2], "x": 2, "y": 3 },
                { "matrix": [3, 3], "x": 3, "y": 3 },
                { "matrix": [3, 4], "x": 4, "y": 3 },
                { "matrix": [3, 5], "x": 5, "y": 3 },
                { "matrix": [3, 6], "x": 6, "y": 3 },
                { "matrix": [3, 7], "x": 7, "y": 3 }
            ]
        }
    }
}

keymap
Code: [Select]
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

enum layers{
  _QWERTY,
  _LOWER,
  _RAISE
};

#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_QWERTY] =  LAYOUT_12x4(
    KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
    KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
    KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, RAISE, KC_UP, KC_RSFT,
    KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LOWER, KC_LEFT, KC_DOWN, KC_RGHT
  ),
  [_LOWER] =  LAYOUT_12x4(
    KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
    KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_COMM, KC_DOT, KC_TRNS,
    KC_LSFT, KC_SLSH, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
  ),
    [_RAISE] =  LAYOUT_12x4(
    KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
  ),
};

QMK Toolbox
Code: [Select]
* QMK Toolbox 0.2.2 (https://qmk.fm/toolbox)
* Supported bootloaders:
*  - ARM DFU (APM32, Kiibohd, STM32, STM32duino) via dfu-util (http://dfu-util.sourceforge.net/)
*  - Atmel/LUFA/QMK DFU via dfu-programmer (http://dfu-programmer.github.io/)
*  - Atmel SAM-BA (Massdrop) via Massdrop Loader (https://github.com/massdrop/mdloader)
*  - BootloadHID (Atmel, PS2AVRGB) via bootloadHID (https://www.obdev.at/products/vusb/bootloadhid.html)
*  - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)
*  - HalfKay (Teensy, Ergodox EZ) via Teensy Loader (https://pjrc.com/teensy/loader_cli.html)
*  - LUFA/QMK HID via hid_bootloader_cli (https://github.com/abcminiuser/lufa)
*  - LUFA Mass Storage
* Supported ISP flashers:
*  - AVRISP (Arduino ISP)
*  - USBasp (AVR ISP)
*  - USBTiny (AVR Pocket)
STM32 DFU device connected: STMicroelectronics STM32  BOOTLOADER (0483:DF11:2200)
Attempting to flash, please don't remove device
> dfu-util -a 0 -d 0483:DF11 -s 0x8000000:leave -D /Users/X/qmk_firmware/mike40_default.bin
STM32 DFU device disconnected: STMicroelectronics STM32  BOOTLOADER (0483:DF11:2200)
> dfu-util 0.11
>
> Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
> Copyright 2010-2021 Tormod Volden and Stefan Schmidt
> This program is Free Software and has ABSOLUTELY NO WARRANTY
> Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
>
> Opening DFU capable USB device...
> Device ID 0483:df11
> Device DFU version 011a
> Claiming USB DFU Interface...
> Setting Alternate Interface #0 ...
> Determining device status...
> DFU state(10) = dfuERROR, status(10) = Device's firmware is corrupt. It cannot return to run-time (non-DFU) operations
> Clearing status
> Determining device status...
> DFU state(2) = dfuIDLE, status(0) = No error condition is present
> DFU mode device DFU version 011a
> Device returned transfer size 2048
> DfuSe interface name: "Internal Flash  "
> Downloading element to address = 0x08000000, size = 56196
>
Erase    [                         ]   0%            0 bytes
Erase    [=                        ]   7%         4096 bytes
Erase    [==                       ]  10%         6144 bytes
Erase    [===                      ]  14%         8192 bytes
Erase    [====                     ]  18%        10240 bytes
Erase    [=====                    ]  21%        12288 bytes
Erase    [======                   ]  25%        14336 bytes
Erase    [=======                  ]  29%        16384 bytes
Erase    [========                 ]  32%        18432 bytes
Erase    [=========                ]  36%        20480 bytes
Erase    [==========               ]  40%        22528 bytes
Erase    [===========              ]  47%        26624 bytes
Erase    [============             ]  51%        28672 bytes
Erase    [=============            ]  54%        30720 bytes
Erase    [==============           ]  58%        32768 bytes
Erase    [===============          ]  61%        34816 bytes
Erase    [================         ]  65%        36864 bytes
Erase    [=================        ]  69%        38912 bytes
Erase    [==================       ]  72%        40960 bytes
Erase    [===================      ]  76%        43008 bytes
Erase    [====================     ]  80%        45056 bytes
Erase    [=====================    ]  87%        49152 bytes
Erase    [======================   ]  91%        51200 bytes
Erase    [=======================  ]  94%        53248 bytes
Erase    [======================== ]  98%        55296 bytes
Erase    [=========================] 100%        56196 bytes
> Erase    done.
>
Download [                         ]   0%            0 bytes
Download [=                        ]   7%         4096 bytes
Download [==                       ]  10%         6144 bytes
Download [===                      ]  14%         8192 bytes
Download [====                     ]  18%        10240 bytes
Download [=====                    ]  21%        12288 bytes
Download [======                   ]  25%        14336 bytes
Download [=======                  ]  29%        16384 bytes
Download [========                 ]  32%        18432 bytes
Download [=========                ]  36%        20480 bytes
Download [==========               ]  40%        22528 bytes
Download [==========               ]  43%        24576 bytes
Download [===========              ]  47%        26624 bytes
Download [============             ]  51%        28672 bytes
Download [=============            ]  54%        30720 bytes
Download [==============           ]  58%        32768 bytes
Download [===============          ]  61%        34816 bytes
Download [================         ]  65%        36864 bytes
Download [=================        ]  69%        38912 bytes
Download [==================       ]  72%        40960 bytes
Download [===================      ]  76%        43008 bytes
Download [====================     ]  80%        45056 bytes
Download [=====================    ]  87%        49152 bytes
Download [======================   ]  91%        51200 bytes
Download [=======================  ]  94%        53248 bytes
Download [======================== ]  98%        55296 bytes
Download [=========================] 100%        56196 bytes
> Download done.
> File downloaded successfully
> Submitting leave request...
> Transitioning to dfuMANIFEST stat
Flash complete

297027-0297029-1297031-2