Welcome to FABI

The FABI (Flexible Assistive Button Interface) allows control of a computer’s mouse cursor or
keyboard by just using momentary switches. This can be helpful for people who want to create
user interactions with the press of a button - and it allows people who can't use standard computer input devices
to play games, surf the internet, communicate and much more.

A FABI box with attached 3d-printed switch


The FABI Interface can be actuated via dedicated buttons, momentary switches or self-made
electrical contacts. Additionally, a sip-puff sensor can be used to create user input.
FABI consists of a hardware module (a low-cost microcontroller which behaves
as a computer mouse and/or keyboard) and a graphical software application for configuration of
the desired functions. The FABI system can be attached to computers, tablets or smart phones via USB.
Additionally, a bluetooth-module is available for devices that do not have a USB port (some Android or iOS phones).

Building the hardware

There are various options for build FABI-compatible switch interfaces: you can order parts and build our construction kit, or make a completely self-driven version.
Following documentation is available for these different approaches:

Installing the Software

The FABI system consists of a firmware part which runs on the Arduino Pro Micro microcontroller, and a GUI with runs on a PC.
The fimware and can be built and uploaded (installed) to the controller using a recent version of the Arduino IDE.
Besides the Arduino framework, the following libraries are used und must be installed before the firmware can be compiled:

Please follow the installation instructions in their github repositories.

The graphical configuration software (GUI) will come in two flavours: Currently, a Windows-based GUI is available (written in C#) which is also desribed in the User manual (see below).
We are currently working on a cross-platform GUI which runs in the browser and adds improved User Experience - so stay tuned !!

Configuration and User manual

The FABI system does not ony offer a single mapping of button to function - it allow to store multiple configuration settings and change between them "on-the-fly".
You can find information how to configure the individual button functions and system options in the user manual:

Example applications

The folder case designs contains different acrylic glass designs for example applications. In the folder Settings you can find different demo configurations which can be loaded via the GUI.
Some of the examples are also located in the wiki.

An opened FABI box, where you can see the Teensy microcontroller board and the 6 jackplugs
A wooden piece with 6 buttons, arranged between, left and right of your hands. Enabling faster working with shortcuts on each button
A FABI box, where 3 different external buttons are connected

About / Credits

FABI is an open source Assistive Technology module developed by the AsTeRICS Foundation in cooperation with the UAS Technikum Wien.

All software and hardware documents are open source and we took care to use the most
affordable components available on the market to establish these functionalities – making FABI the
most reasonably priced flexible assistive button interface we know !!