ahtn / keyplus

An easy to use, wired and wireless modular keyboard firmware
MIT License
246 stars 40 forks source link

Key, passthrough not working on 32u4 #60

Open Merlin04 opened 6 years ago

Merlin04 commented 6 years ago

I have a SpaceCat Launchpad that uses a pro micro, and I'm trying to get it to work with Keyplus. For some reason, the bottom right key isn't working. When I press the key, my computer sees it as pressing ctrl-alt-super-shift-AUDIO_VOL_UP. I know it isn't a hardware issue because it works with QMK. Here's my layout file:

# Launchpad

report_mode: auto_nkro

devices:
  "SpaceCat Launchpad":
    id: 0
    layout: "Launchpad"
    layout_offset: 0
    wireless_split: false
    wireless_mouse: false
    scan_mode:
      mode: col_row
      rows: [C6, B1, B3, D7]
      cols: [D2, F7]
      # maps how keys are physically wired, to how they appear visually
      matrix_map: [
        r0c0, r0c1,
        r1c0, r1c1,
        r2c0, r2c1,
        r3c0, r3c1,
      ]

layouts:
  launchpad:
    layers: [
      [ # Layer 0
        [ # Launchpad (device 0)
          F13, F14,
          F15, F16,
          MENU, AUDIO_MUTE,
          AUDIO_VOL_DOWN, AUDIO_VOL_UP,
        ]
      ]
    ]

When I try to use passthrough mode to debug it, I get this error:

Traceback (most recent call last):
  File "keyplus-cli", line 800, in <module>
    KeyplusCLI()
  File "keyplus-cli", line 790, in __init__
    command_list[args.command].run()
  File "keyplus-cli", line 105, in run
    self.task(args)
  File "keyplus-cli", line 222, in task
    kp_layout = kb.unpack_layout_data()
  File "/home/me/keyplus-0.3.1_pre4/host-software/keyplus/keyboard.py", line 551, in unpack_layout_data
    pin_map_data, ekc_table, layout_data = self._get_layout_data_sections()
  File "/home/benjamin/keyplus/keyplus-0.3.1_pre4/keyplus/host-software/keyplus/keyboard.py", line 495, in _get_layout_data_sections
    header_size += self.firmware_info.scanner_max_rows
AttributeError: 'KeyboardFirmwareInfo' object has no attribute 'scanner_max_rows'

When I click on "Error Codes" in the GUI, I see ERROR_EKC_OUT_OF_BOUNDS_ACCESS.

If I add another row (that doesn't exist in hardware) it fixes this problem.

Merlin04 commented 6 years ago

This is also happening with the keyplus mini, so it isn't just atmega32u4.