Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
There are 3 broad configurations for RelayKeys
Wired Mode. This is where one Bluetooth dongle is in the Sending device
Wireless Mode. This is where a Bluetooth dongle plugged into a power outlet or a battery sits away from the Sending device. This might be useful for devices where you cannot plug anything into the sending device
Wired + Receiving Dongle. A receiving dongle sits in the receiving device. This is useful where "pairing" is unreliable on the recieving device or there is no Bluetooth stack on the receiving computer.
You need to decide what is best for you.
Plug in your receiving dongle to a device. Your device will see this as a keyboard attached. If you are asked to press some keys for the device to understand it, just close this window for now.
On the sending side, it will pair by default with the receiver. You don't need to do a thing. However, if you have gone and paired with any other devices, you may find this not work. You will need to remove any paired devices and try again.
Either use the drag and drop UF2 method or more steps involved - Arduino uploading method. For the UF2 method
Download the UF2 file for the raytac dongle in the_ current release__
Press and hold thr reset button as you plug it into the computer. You will then get a USB drive on your computer. Drag and drop the UF2 file to the root of that drive.
Or the Arduino uploading method.
Check the setup of your Arduino IDE (remember we're using the nRF52840 board!)
Upload the sketch to your feather.
Run the server side code
Done!
If you have a pre-prepared Bluetooth stick (for example, from Ace Centre), you don't need to read this section. If you are buying your electronics to use, then read on.
A wide range of Arduino boards supports HID (Human Interface Device). Often these are to emulate simple keypress' but to do more complex things like send one or modifier keys with a key - or to emulate holding a key down for a set period of time is either impossible or difficult to implement. Adafruit has developed the firmware on their Bluefruit nrf* range of boards to emulate HID keyboards well using their AT Commands.
Currently, RelayKeys is designed to work with
Adafruit Feather nRF52840 Express (Buy in the UK from Pimoroni). Note you can use this or the itsybitsy with a battery and have relaykeys work without connecting it directly to your AAC device.
or with the Adafruit itsybitsy nrf52840
or with lesser support for the The Adafruit - Bluefruit LE Friend - nRF51822 - v3.0 (Buy in the UK from Pimoroni). Although Note: We really aren't supporting the LE Friend much - we do hear it works, but dragons, beware! See below for details on configuring these.
If you are using a receiver dongle - follow the same guidance below but you will also need to copy over the firmware file for the dongle. Same procedure - different file name
Once you have your hardware you need to configure and set them up to work with relaykeys. Read on for how you do this for each device.
Either use the drag and drop UF2 method or more steps involved - Arduino uploading method. For the UF2 method
Download the UF2 file for the itsybitsy board in the current release
Double click that reset button. You will then get a USB drive on your computer. Drag and drop the UF2 file to the root of that drive.
It SHOULD disconnect from your pC if successful – but as I say the loghts should change colour to Green
More details see the steps here
Or the Arduino uploading method.
Check the setup of your Arduino IDE (remember we're using the nRF52840 board!)
Upload the sketch to your feather.
Run the server side code
Done!
Overview of the project and its components
Welcome to the RelayKeys Documentation! This guide will help you swiftly get started, explore advanced features, and understand the concepts that define RelayKeys.
RelayKeys is an open-source software and hardware suite designed to facilitate seamless communication between computers, tablets, and phones via Bluetooth connections. Initially tailored for AAC, its versatile technology extends its utility to a broader range of users who require text input or mouse commands to access Bluetooth-enabled devices.
You need a piece of hardware - a USB dongle that provides the bluetooth harware to allow your device to be a Bluetooth Keyboard/Mouse. You plug this into your AAC (Host) Windows based device. You can either use a receiving USB dongle on a second device to act as a Bluetooth receiver for devices that don't support bluetooth (and this is pre-paired) or connect directly to Bluetooth enabled devices (Phones, Computers). Once you have the hardware you need to which is designed for Windows.
RelayKeys serves various purposes:
Cost-Effective Solution: For some, it offers a cost-effective alternative or replacement for pricey or obsolete hardware.
Accessibility for Disabilities: Our primary focus is on empowering individuals with disabilities. RelayKeys enables users who rely on dedicated AAC systems, such as Eyegaze, to access other devices essential for work or leisure. Unlike some commercial solutions, RelayKeys functions across devices without needing a shared network. It acts just like a Bluetooth keyboard and mouse, ensuring minimal lag.
Custom Control: Users can utilize RelayKeys to control their tablets or phones, especially beneficial for tasks like music editing or photo manipulation, which typically require full-screen control. Any device responsive to a Bluetooth keyboard or mouse will work, e.g., smart TVs.
Open System: RelayKeys' open architecture ensures longevity and promotes collaboration for system improvements, benefiting both individuals with disabilities and the general population.
While other commercial solutions exist, RelayKeys offers unique advantages:
User-Centric Approach: We urge commercial developers to prioritize user needs and explore open solutions. If our method doesn't resonate with your vision, consider adopting our command set for compatibility and enhancement.
Standardization for Compatibility: An open system ensures compatibility and streamlines development, facilitating developers to craft solutions that resonate with our command structure.
RelayKeys adheres to core principles that underpin its philosophy:
No Client Software/Hardware: Catering to workplace and educational environments, RelayKeys functions without necessitating extra software or hardware on the client device. Provided Bluetooth LE support is available, RelayKeys operates seamlessly.
Device Agnostic: RelayKeys isn't restricted to specific devices or software solutions. Its adaptability allows developers to apply it diversely, promoting innovation.
Open Architecture: RelayKeys is a transparent and open system, standing apart from closed, proprietary counterparts. This transparency fosters collaboration and ensures technology remains relevant despite shifting manufacturer priorities.
The RelayKeys ecosystem includes key components, each fulfilling a particular function:
The RK-Service acts as an RPC service, accepting incoming connections and interpreting commands. These commands are converted into AT Commands, mimicking HID keyboard/mouse actions. The AT Commands are subsequently relayed through a serial connection to Bluetooth-integrated secondary devices. A Windows installer facilitates continuous operation.
RK-Desktop is a windowed application tasked with capturing keystrokes and future mouse actions. This data is then relayed to the RelayKeys Service for translation.
The RK-CLI offers a command-line interface for RelayKeys interaction, serving as an adaptable and efficient tool for those familiar with terminal operations.
Harness the full potential of RelayKeys with this documentation. Whether you're an AAC user aspiring for extensive accessibility or a developer pioneering innovative solutions, RelayKeys presents a platform championing accessibility and creativity.
Eyegaze: A technology that tracks where a user is looking on a screen, typically used as an input method for those with limited physical mobility.
Daemon: A background process that runs on a computer system, often providing or facilitating services.
Make sure the Micro-USB connector is attached to the stick and then attach the female end of the USB lead into your computer
You should see your stick light a solid blue ("Paired") or flashing blue ("Un-paired")
If "Flashing". This means you have yet to pair the RelayKeys device with another computer.
You can do this in three different ways:
Send a command using the "relaykeys-QT.exe
" app and press "Add a device" in the toolbar - or -
Run "relaykeys-cli.exe ble_cmd:devadd" - or -
Press the Button on the RelayKeys hardware. It will now flash yellow
Next pair your device with RelayKeys.
So to connect to Another Windows computer, go to Settings, Bluetooth, "Add a device", and connect to "AceRK"
To connect to a mac, Open up "System Preferences", Bluetooth and add "AceRK"
Although it should work - and we promise you it did work - something has broken functionality working with the LE friend. So we aren't officially supporting this right now
Update it to 0.8.1. Easiest way to do this is to connect to using the Bluefruit app - it will auto-update it if required.
Plug it in
Set the switch on the device to CMD mode
Open up a serial terminal and connect to the device (See for exact settings for your Operating System)
Turn on HID Mode. More info . To be precise - enter this into your serial terminal
(You should see 'OK' after each entry)
Next change the default speed. i.e. enter this in your serial terminal:
Next put the device into (slide the switch).
Finally - update the relaykeys.cfg file with
(Or whatever speed you so wish)
Warning: This mode definitley is slightly more laggy and can be fiddly to setup.
Note that this mode is useful on devices where you can't plug anything into your device. The setup can feel strange - what we need to do is tell your relaykeys hardware the device to connect to.
Plug in device and follow instructions
Pair the main AAC/Host device with it. So pair the computer you have attached it to with RelayKeys hardware. This can feel a bit strange - you are connecting the hardware to the same machine you are on. See for how to put it into pairing mode.
Disconnect the relaykeys hardware. In your bluetooth settings you actually need to click on the item and "Remove" device. (NB: If you cant do this it might be because you need to be an admin. The trick is open the Control Panel -> Devices & Printers -> Relaykeys -> Right click, Remove and you will be asked for an Admin password)
Plug relaykeys into a power source - away from the computer. Your RelayKeys may have a battery or you might need to plug into a wall USB power source.
Double press the User switch It should now shine a nice blue colour!
Run RelayKeysd with --ble_mode
See for more details
Either use the drag and drop UF2 method or more steps involved - Arduino uploading method. For the UF2 method
Download the UF2 file for the feather nrf52840 express board in the __
Double click that reset button. You will then get a USB drive on your computer. Drag and drop the UF2 file to the root of that drive.
It SHOULD disconnect from your Computer if successful and the light should change colour to Green
More details see the steps
Or the Arduino uploading method.
Run the server side code
Done!
The easiest way to get up-and-running is with the , which includes the RelayKeys-CLI, and the RelayKeys-Desktop software. Read on to see how to install and setup.
So RelayKeys consists of a hardware solution that talks Bluetooth HID to secondary devices - anything that can pair with bluetooth and understand a keyboard works, and some software on the 'server' device; i.e. the device sending the key/mouse movements. So for our installation we really focus on the 'server' since the recieving device needs no additional hardware or software.
RelayKeys is designed to work on Windows, Linux, and Mac Operating Systems. We have built a Windows installer that makes the process easier on that platform. For Mac & Linux, you will need to build the app from the source.
Windows 7-10
A USB Port
Ability to Install the software as Administrator
A second device to connect to Could be a Windows computer, a Mac, an iPad etc
and most importantly:
A supported piece of RelayKeys-ready hardware
Note: if you wish to use a dongle to receive - instead of relying on a device's internal Bluetooth and pairing etc - you will need a second board.
This is for end-users. If you are a developer please consider communicating with RelayKeys over the or
Right now we are focused on Windows AAC Software. For iOS or Android, a developer needs to support relaykeys for it to work.
Most AAC software has a way of connecting to an external application. Some call this "Run Programme or something similar. As long as RelayKeys is installed and the correct hardware is connected you can then call the installed command line application - with .
Take a look at the guides for your software.
The key application you want to access is the relaykeys-cli-win.exe
found in C:\Program Files (x86)\Ace Centre\RelayKeys
\
For a full list of commands you can send see .
If you pass the --notify flag to the cli application you will get notifications about the devices you are connected to and the status of the device. See for more information
There is no documented way for third parties integrating their software into commercial AAC software for example integrated notifications. So we have to make use of the operating system notification system. The difficulty on Windows is that by default full screen apps do not see notifications. So to make this work we recommend three alterations to your notifications.
Turn Focus Assist off.
Turn off the setting "When I'm using an app in full screen mode"
You can use RelayKeys in a number of different ways depending on your needs
Using our
Using a (that Third-party software such as AAC software can use)
Directly communicate over in your software.
Complementary to Software: RelayKeys has several ways to integrate with your software. We provide examples of its compatibility with AAC Software and a standalone app example written in Python. We also demonstrate how it can be utilized to display text on .
Our standardized API ensures smooth communication with RelayKeys-compatible hardware devices over serial connections, encompassing USB buses and Bluetooth serial connections. More details are available at this .
To connect to an iPad/iPhone, go to Settings, Bluetooth and add "Bluefruit52" or "AceRK" or "RelayKeys"
Check the setup of your (remember we're using the nRF52840 board!)
Upload the to your feather.
Right now: this is designed to work with the , or Others will be added to the list as this is developed.
And next - because AAC users wont typically be able to dismiss notifications change the time that they appear for. To do this follow the steps .