Build options for Keyboard:
NKRO_ENABLE - NKRO shares interface 0 with Boot/6KRO
this can save Endpoint resources of MCU
NKRO_6KRO_ENABLE - NKRO has its own interface
this is equivalent to old NKRO impl.
Otherwise - Boot/6KRO interface 0 only
Startup wait loop is originally intended to start keyboard task loop and
after console output endpoint becomes available. But now that console
output is buffered when it is not available and you don't have to wait
for it to be ready. You can disable the startup wait loop by defining
NO_WAIT_FOR_USB_CONFIGURED in config.h
Suspend loop is used for power saving by making tasks stop while
USB bus is under suspend status. But this may cause problem on some
devices like converter that must keep doing its task to retain
communication with keyboard. The suspend loop can block its task for
around 15-17ms. You can disable the suspend loop by defining
NO_USB_SUSPEND_LOOP in config.h.
Calling led_set() in ISR can cause the problem. With converter
especially, led_set() can take long time and USB can be stuck in the end.
USB-USB converter freezes occasionally when computer power up or reboot.
https://geekhack.org/index.php?topic=69169.msg2740179#msg2740179
This is also related to suspend/wakeup issue #386.
- Change keyboard_init() timing and matrix_scan() is called in USB
startup wait loop for FC660C
- FC660C startup seems to be faster and it doesn't work without this fix
when plugin the keyboard and converter at same time
console_putc:
Linux: works very well in general
Windows: also works very well and connection seems to be faster than Linux
Mac: to be: confirmed
NOTE: long session of matrix_print still blocks keyboard_task in main loop
and prevents it from sending keyboard report.
XT protocol buffer overflow occurs when slamng on keys
TODO: check when print functions are called in ISR
Modified the LUFA USB HID Descriptor to change the logical/usage
minimums for System Control from 0x01 (Mouse) to 0x81 (System Power
Down), this fixes OS X recognizing the Planck as having a mouse and
tablet, even with mousekeys off.