What keyboards can reliably be used to start up recovery or diagnostics mode on a Mac mini? I have a Mac mini which is stalling during boot. I have been trying to boot it to recovery or diagnostics mode, but run into an unexpected problem.

The keyboard I'm currently using with it is a Corsair K95 Platinum RGB which includes a lighting controller. This means that the keyboard has a short startup time, only a few seconds, but enough that macOS apparently does not allow it enough time to start up between the USB initialization cycle and the deadline for detecting the startup key presses.

I then tried again by attaching a second keyboard, but again the system would not respond to startup keys; the documentation is silent on the behavior of startup keys when more than one keyboard is connected or on how priority is determined.

I was eventually able to get a startup key to working using an ancient keyboard, but I would not like to be stuck without a keyboard that cannot do this.

What are the requirements for a keyboard to be able to invoke macOS startup keys?
All USB keyboards have either a windows or command key so should work.

The connection method of Bluetooth can be bit more sketchy if it’s not an Apple keyboard due to pairing and wake / connect before the OS is loaded, so I would say use any wired USB keyboard you care to use if you can't pre-pair and test the keyboard to connect preOS boot. 



The left windows key and the r key is all you need for Internet Recovery. Here’s the code used in the project below and also referenced in a question about Arduino that confirms the mapping to a windows keyboard.


https://arduino.stackexchange.com/questions/32388/which-key-is-key-left-gui


Of course - Mac keyboards send KEY_LEFT_GUI when you hold down the command key and not the windows key.

Heck, there’s even an open source project to turn an Arduino into a device that holds command R and then types out commands to help automate restore and recovery.


https://twocanoes.com/automating-macos-and-package-installation-from-the-recovery-partition/
https://bitbucket.org/twocanoes/macdeploystick



BootKeyboard.begin();
delay(500);
BootKeyboard.press(KEY_LEFT_GUI);
BootKeyboard.press('r');
delay(5000);
BootKeyboard.releaseAll();

The only thing I’ve heard of messing this up is of you hold down the keys too soon in the boot process, the system doesn’t see the press so unless you have some exotic gaming keyboard that wants to listen for the host and then decide to send key presses - the cheapest, whatever handy USB keyboard you have works well across all the Macs from the latest to ones 10 years old or more.