Giter Site home page Giter Site logo

raspikey's Introduction

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

raspikey's People

Contributors

samartzidis avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

Adjamilton Junior avatar James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.