Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Massdrop ALT reboots into DFU mode randomly with #5619 update #5749

Closed
icecoldlilly opened this issue May 1, 2019 · 3 comments
Closed

Massdrop ALT reboots into DFU mode randomly with #5619 update #5749

icecoldlilly opened this issue May 1, 2019 · 3 comments

Comments

@icecoldlilly
Copy link

The Massdrop ALT reboots randomly into DFU mode (MD_BOOT) after using the #5619 update. I can confirm that this behavior doesn't happen with the older firmware.

Describe the Bug

The keyboard restarts randomly into DFU mode (with the red led on the right side of the diffuser)
I am using the "CONSOLE_ENABLE = yes " to debug this but I am not getting any useful information from QMK Toolbox, this happens across all keymaps including my custom one.
Here's the output I am getting from QMK toolbox:
Screen Shot 2019-05-01 at 14 23 37

System Information

  • Keyboard: Massdrop ALT High-Profile (with and without USB C hub, tested with different cables as well)
    • Revision (if applicable): MDX-26403
  • Operating system: macOS Mojave on Macbook Pro 2017 13" non-touchbar
  • AVR GCC version: 7.4.0
  • ARM GCC version: 7.3.1
  • QMK Firmware version: 0.6.345

Here's my keymap:

#include QMK_KEYBOARD_H

enum alt_keycodes {
    U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
    U_T_AGCR,              //USB Toggle Automatic GCR control
    DBG_TOG,               //DEBUG Toggle On / Off
    DBG_MTRX,              //DEBUG Toggle Matrix Prints
    DBG_KBD,               //DEBUG Toggle Keyboard Prints
    DBG_MOU,               //DEBUG Toggle Mouse Prints
    MD_BOOT,               //Restart into bootloader after hold timeout
};

#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode

keymap_config_t keymap_config;

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT(
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_GRV,  \
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, \
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,  KC_PGUP, \
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,          KC_UP,   KC_PGDN, \
        KC_LCTL, KC_LALT, KC_LGUI,                            KC_SPC,                             KC_RGUI, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT  \
    ),
    [1] = LAYOUT(
        _______, KC_SLCK, KC_PAUS, _______, _______, RGB_VAD,  RGB_VAI, KC_MRWD, KC_MPLY, KC_MFFD,  KC_MUTE,  KC_VOLD,  KC_VOLU,  _______, _______,  \
        RGB_M_B, RGB_SPD, _______, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AGCR, KC_PSCR, _______, _______, _______, _______, _______, KC_INSERT, \
        _______, _______, _______, _______, RGB_HUD, RGB_SAD, _______, _______, KC_HOME, KC_PGUP, RGB_RMOD, RGB_MOD,          _______, KC_HOME, \
        _______, RGB_TOG, _______, _______, _______, MD_BOOT, TG_NKRO, DBG_TOG, KC_END , KC_PGDN, _______,  _______,          _______, KC_END, \
        _______, _______, _______,                            _______,                               MO(2), _______, _______, _______, _______  \
    ),
    [2] = LAYOUT(
        _______,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12, _______, _______, \
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, \
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, \
        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______  \
    ),
};
void keyboard_post_init_user(void) {
  // Customise these values to desired behaviour
    debug_enable=true;
    debug_matrix=true;
    debug_keyboard=true;
  //debug_keyboard=true;
  //debug_mouse=true;
}
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
};

#define MODS_SHIFT  (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT))
#define MODS_CTRL  (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL))
#define MODS_ALT  (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    static uint32_t key_timer;

    switch (keycode) {
        case U_T_AUTO:
            if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
                TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
            }
            return false;
        case U_T_AGCR:
            if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
                TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
            }
            return false;
        case DBG_TOG:
            if (record->event.pressed) {
                TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
            }
            return false;
        case DBG_MTRX:
            if (record->event.pressed) {
                TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
            }
            return false;
        case DBG_KBD:
            if (record->event.pressed) {
                TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
            }
            return false;
        case DBG_MOU:
            if (record->event.pressed) {
                TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
            }
            return false;
        case MD_BOOT:
            if (record->event.pressed) {
                key_timer = timer_read32();
            } else {
                if (timer_elapsed32(key_timer) >= 500) {
                    reset_keyboard();
                }
            }
            return false;
        case RGB_TOG:
            if (record->event.pressed) {
              switch (rgb_matrix_get_flags()) {
                case LED_FLAG_ALL: {
                    rgb_matrix_set_flags(LED_FLAG_KEYLIGHT);
                    rgb_matrix_set_color_all(0, 0, 0);
                  }
                  break;
                case LED_FLAG_KEYLIGHT: {
                    rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
                    rgb_matrix_set_color_all(0, 0, 0);
                  }
                  break;
                case LED_FLAG_UNDERGLOW: {
                    rgb_matrix_set_flags(LED_FLAG_NONE);
                    rgb_matrix_disable_noeeprom();
                  }
                  break;
                default: {
                    rgb_matrix_set_flags(LED_FLAG_ALL);
                    rgb_matrix_enable_noeeprom();
                  }
                  break;
              }
            }
            return false;
        default:
            return true; //Process all other keycodes normally
    }
}
@jpetermans
Copy link
Contributor

jpetermans commented May 2, 2019

I've been using the latest build on my ALT with no issues. Any pattern to when it goes to DFU? Does it happen while you are actively using the keyboard and/or when it is sitting without use?

I'm not using the default keymap, but other than adding basic features like LEADER and TAPDANCE the only major difference in code that would run frequently is mine has no RGB_TOG code in process_record_user.

@icecoldlilly
Copy link
Author

It happens either on laptop's wake or while typing (which is super annoying). I upgraded to 06352 in the meanwhile and I don't see the same issues. I noticed that it happens more often when I am using the magenta-colored schemes. I was rebuilding my keyboard today so I haven't used it as much, but I will try to pay attention tomorrow

@icecoldlilly
Copy link
Author

Resolved after upgrading to 06360

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants