MacOS KeyMapper with Android (RaspberryPi 3)

Update 26.04.2018: Fixed Arduino Board Reset (to write the firmware)

As you can see I’ve made two hardware based Key Mappers in the last 5 years (2013, 2015) with Arduino + USB Host Shield, to use a PC or Apple Keyboard with my Mac. That was necessary to use the {,},[,],~,|,<,>,^,°,\,Pos1,End,Mute,VolUp,VolDn keys as you learned it without a mac. Before that, I’ve used some software solutions, but these solutions need one update after another. Not comfortable, because it’s not like this: Install and forget (forever).

Now in 2018, I’ve made a new one: Android based, with my own AndroidThings Image V4, and with my ThingsPiLib. Why Android? I’ve made a lot with Arduino and I liked it. But the Arduino IDE and the complicated Arduino-Libs handling, also the limited C language, makes me not happy. 

Also in my eyes it makes no sense to use and learn 5 programming languages (or a lot more), and then to fix a lot of “circumstances” with each of the languages. That is also the reason why I’m using my ThingsLibs for the ODroid C2 and Raspberry Pi 3. You don’t need 2 languages or 3 (with python) and then to connect different systems (each with a different language) together. In the most cases: Linux + Arduino, or Android + Arduino, or Linux + Python + Arduino, … and so on. This is strange and not comfortable. With the Odroid C2 and Raspberry Pi you have Android/Java and GPIOs. That’s it. For all.

Sometimes there is no usable Interface that you need (USB Keyboard Emulation or USB Touch Emulation), then you have to use a trick which I used at my Android Gamepad TouchMapper or this Hard KeyMapper. To get away form the Arduino IDE, I’m uploading the ready to use Arduino Sketch (hex file) from Android to the Arduino Board automatically. Then no one have to install the Arduino IDE and fiddle around with that stuff and the issues. For all other stuff you don’t need Arduino anymore, because the Android Boards with ThingsLibs have GPIOs and other stuff inside. Great!

My Motto:  Plug & Play and  “don’t make me think” 🙂

Ok, back to the new one. Here is my new Hard KeyMapper with the Raspberry Pi3 and Android:


What you need:

1 x Raspberry Pi 3
1 x Arduino Beetle or Arduino Leonardo or Arduino Pro Micro


What you have to do:

  1. Download the Hard KeyMapper SDCard Image (down below), and write it on a 8/16 GB Micro SD Card
  2. Connect the Raspberry Pi 3 Serial Pins with the Arduino Board Serial Pins
    (TX -> RX, RX -> TX, GND -> GND)
  3. Plug in a HDMI Cable and Power on the Raspberry Pi 3 and wait  ~20 Seconds


Prepare the Arduino Board:

Connect the Arduino Board with one of the Raspberry Pi 3 USB Ports, and wait for Message: “USB Stick flashed, please Remove!”

Ready to use:

Unplug the Arduino Board from the Pi’s USB Port and connect the Arduino Board with your Computer USB. Now you can remap your Keys with the Raspberry Pi 3 screen.

  • Press “Add Remap”
  • Now Press the Key/Combination that you want to map to another Key/Combi
  • Now Press the Target Key/Combination

That’s it.