Skip to content
benjaminaigner edited this page Nov 15, 2015 · 11 revisions

Are you sick of typing the same keyboard combinations or text over and over again? You might find the solution here!

RapidCoding is a piece of hardware which allows you to speed up repeating tasks like typing "if()" and so on. Basically it is a FABI, configured to press your personal shortcuts.

The current hardware is a prototype, made of wood. If you prefer an acrylic glass housing, a suitable design file is available here.

Hardware

To built your own RapidCoding device, you need following parts:

  • 1 compatible microcontroller board. FABI currently supports either a Teensy++ 2.0 or an "Arduino Pro Micro" (Arduino clone, Aliexpres )
  • 6 buttons. You can use all buttons with a NO configuration (normally opened, Aliexpress)
  • About 40cm of flat wire (at least 7 pins)
  • Wood or acrylic glass for the housing. Spruce wood might be easy to work with, but it is very fragile.

All in all, the material costs are about 10-15$.

I had a piece of spruce wood at home, so I used this material for the first prototype. Unfortunately, I don't have very good tools for drilling 30mm holes (necessary for the buttons), so it doesn't look that professional.

How to built your own RapidCoding device:

  • Grab a piece of wood
  • Cut it to 370x100mm
  • If you want a sophisticating device: engrave something (I engraved the hackaday logo). You can use Piece of wood as the RapidCoding housing, with the template for the hackaday logo, which is engraved
  • Drill 6 holes for the buttons (diameter: 30mm). In my case, I used a 6mm drill. The result is not perfect, because the small bases broke (as seen in the picture).

RapidCoding with mounted buttons and engraved hackaday logos

  • Glue the microcontroller to the wood
  • Solder all seven wires to the microcontroller. The button pins on the Arduino clone are pin 2 to 7.

Closeup of the mounted microcontroller board, an Arduino compatible Pro Micro

  • You might use Scotch tape to fix the wires until they are glued at the end
  • Solder the wires to each button (one signal and one GND wire). If you don't want to split up the flat cable each button, tap the GND wire. Just use your solder iron to burn the isolation.

Closeup of one button and the cables Closeup of the middle button with the GND tap

  • Glue the wires to the wood
  • FINISHED:

Full picture of the RapidCoding bottom side Rapidcoding placed on my office desk

Software

The initial firmware upload is straight-forward. Open the Arduino Sketch (located here, set the correct board (the Arduino clone uses "Arduino/Genuino Micro") and press "Upload".

If you have further questions, consult the manual.

Configuration

The key configuration of the FABI firmware is done via the Settingsmanager. The executable is available here. The software is currently running on Windows only. A GTK version is planned.

The GUI allows you to set different functions for each of the six buttons. For RapidCoding, you need the options "Write Text" and "Press keys":

  • Write Text: If the corresponding button is pressed, this text is sent to the host. By now, it is not possible to use any escape characters (like \n), but we are working on that.

  • Press Keys: This option allows you to assign a complete key combination to a button. A possible variant: CTRL+ALT+DEL. In my case, I used this option for the brackets. The reason is the keyboard layout problem (described later).

Some example settings for the brackets only are shown in the following pictures. If you are lucky and you are used to an US layout, you can use the first setting. Other layout types might have different settings than the shown, these settings are for a German keyboard layout.

Settings for an US keyboard, described in the text Settings for a German keyboard, described in the text

Remarks on keyboard layouts

Outlook

There are still some disadvantages/bugs of the GUI, these should be fixed. Unfortunately, I can't change the problem with the keyboard layouts.

For the near future: I will manufacture one RapidCoding board made of acrylic glass. The pictures will be added here.

If you have anything to contribute (either a found bug, improvement ideas or anything else), please use the Github issue page!

Hope you have fun!

Clone this wiki locally