/RaspiKey

Universal Apple Keyboard USB Adapter

Primary LanguageC++

raspikey-logo

Universal Apple Keyboard USB Adapter

RaspiKey converts a bluetooth keyboard to a standard wired USB keyboard. It is particularly useful with the Apple Wireless keyboards because it translates their exotic keymap to that of a standard PC and makes them fully usable on a Windows PC or on other devices (TVs, game consoles, etc.).

RaspiKey requires a Raspberry Pi Zero W hardware board.

raspikey-diagram

Features

  • RaspiKey supports any bluetooth keyboard but it currently offers multimedia key support only for the Apple Wireless (A1314) and the Apple Magic (A1644) models. Furthermore, RaspiKey can be used on any device that accepts a standard USB keyboard. This means that you can use an Apple keyboard on a PC, a smart TV or on a game console.
  • It does not require a driver installation or other software. It is also completely self-powered through the USB port.
  • It is secure. As it is a hardware device, there is no software driver running on your PC that can be hacked, intercepted or compromised compared to a software solution. You have full access to its source code to review it, or even build it yourself.
  • It is based on a cut-down, readonly version of the official Raspbian Linux. Even though it runs an OS internally, there is no need for a shutdown process, you just unplug it when you want.
  • RaspiKey supports Custom Keymaps, allowing you to customise and remap keyboard keys.
  • In regards to input latency, measurements with the Apple Wireless Keyboard achieved an minimum input latency of about 11 msec. Based on these results, the latency impact of RaspiKey is negligible.

Images

Hardware and Software Requirements

  1. A plain Raspberry Pi Zero W board.
  2. A 2GB (or bigger) micro SD card.
  3. Access to a modern Windows PC with the Chrome browser. You need this to build your new RaspiKey device and tether a Bluetooth keyboard to it for the first time.

Setting up a new RaspiKey Device

  1. Download Apple Bonjour and install it on Windows. The latest 32-bit and 64-bit versions are available here.
  2. Download and install Etcher.
  3. Download the latest RaspiKey release raspikey.zip and the latest Raspbian headless release ...-raspbian-stretch-lite-headless.xz from here.
  4. Run Etcher to write the ...-raspbian-stretch-lite-headless.xz image to the SD card.
  5. Open the downloaded raspikey.zip file and copy all of its contents (setup, start.sh) directly to the the SD card. The SD card should appear on Windows as a drive named boot.
  6. Now insert the SD card to the “Raspberry Pi Zero W” device and connect it to the PC using just the middle micro-USB port (labelled “USB” in tiny white letters).
  7. The Pi will boot and continue its setup. This process will last about 3-4 minutes. You will be able to tell when it's finished when the Raspberry Pi's green led goes off (it stays solid green during setup). Once that happens, unplug it from the PC's USB port.
  8. Your new RaspiKey device is now fully configured and ready to use.

RaspiKey Use

  1. Plug RaspiKey to a PC.
  2. Wait for about 10 seconds for it to start and open Chrome or Firefox at http://raspikey.local.
  3. Use the configuration page to discover and connect a Bluetooth keyboard to it. Once the keyboard is connected, it will be usable on this PC directly or on anywhere else you plug RaspiKey to. You do not need to reconfigure RaspiKey to plug it in and use it elsewhere.

Known Issues

  • The battery level indicator does not yet work on the Apple Magic (A1644) keyboard.
  • The Ctrl-LShift-T combination does not work on Apple keyboards, use the Ctrl-RShift-T instead where applicable.

Apple Keyboards Keymap

Input Key(s) Output Key
LCtrlFn
FnLeft Ctrl
⏏︎ EjectDel
⌘ CmdAlt
⌥ AltCmd
Fn+[F1]...[F6][F13]...[F18]
Fn+[F7]...[F12]Multimedia Keys
Fn+LCtrlRight Ctrl
Fn+ReturnInsert
Fn+PPrint Screen
Fn+SScroll Lock
Fn+BPause/Break
Fn+Page Up
Fn+Page Down
Fn+Home
Fn+End

Custom Keymaps

  • A Keymap for the German Apple keyboard versions so that all keys work as expected is available here.

  • A Keymap for the UK and International English versions is here. This keymap maps the ` key to the key below Esc and then assigns it to the Windows Menu ▤ key, that Apple keyboards don't have.

Planned Futures

  • Support for the full-size Apple Magic keyboard.

RaspiKey is a free and open-source software effort. If you like it and find it useful, please consider donating

donate