Stefan Kerkmann 3f9d464412
[Core] usb_device_state: consolidate usb state handling across implementations (#24258)
* usb_device_state: add idle_rate, led and protocol

Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:

- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint

And a local variable that was exposed trough some indirection:

- keyboard_led_state: for the currently set indicator leds (caps lock etc.)

These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.

This reduces code duplication and centralizes the state management
across platforms and drivers.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* usb_device_state: reset protocol on reset

The usb hid specification section 7.2.6 states:

When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.

Thus on reset we should always do exactly that.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* keyboards: fix oversize warnings

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-10-18 09:57:08 +02:00
..

miniDivide

miniDivide

miniDivide is a split keyboard with 0.8u (16mm) key pitch. The size of a single key is 80% of that of a conventional keyboard key. Although the key size is more compact than usual, it has the advantage of requiring minimal finger movement. The number of keys is 19 keys for one hand and 38 keys for two hands.

It is small and thin, making it easy to carry around. The option to mount a coin cell battery on the PCB is available so that the BLE Micro Pro can be installed. OLED can also be mounted.

miniDivideは0.8u(16mm)キーピッチの分割型のキーボードです。 一つのキーの大きさが従来のキーボードのキーと比較すると80%のサイズとなっています。 通常よりコンパクトなキーサイズですが、指の動きが最小限で済むという強みがあります。 キー数は片手で19キー、両手で38キーとなります。

小さく、薄いので持ち運びにも便利です。 またBLE Micro Proを搭載できるよう、コイン電池をPCBに搭載するオプションが可能です。 OLEDも搭載できます。

Make example for this keyboard (after setting up your build environment):

make takashicompany/minidivide:default

Flashing example for this keyboard:

make takashicompany/minidivide:default:flash

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.

Bootloader

Enter the bootloader in 3 ways:

  • Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
  • Physical reset button: Briefly press the button on the back of the PCB - some may have pads you must short instead
  • Keycode in layout: Press the key mapped to QK_BOOT if it is available