All Projects → ruundii → Bthidhub

ruundii / Bthidhub

Licence: mit
Bluetooth HID hub

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Bthidhub

fix-linux-mouse
Hints how to fix USB mouse issues on Linux
Stars: ✭ 36 (-44.62%)
Mutual labels:  bluetooth, mouse, wireless
rogdrv
ASUS ROG userspace mouse driver for Linux
Stars: ✭ 41 (-36.92%)
Mutual labels:  hid, mouse
openinput
Open source firmware for input devices
Stars: ✭ 43 (-33.85%)
Mutual labels:  hid, mouse
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+4984.62%)
Mutual labels:  raspberry-pi, bluetooth
Qdomyos Zwift
Zwift bridge for smart treadmills and bike/cyclette
Stars: ✭ 63 (-3.08%)
Mutual labels:  raspberry-pi, bluetooth
nxbt
Control your Nintendo Switch through a website, terminal, or macro.
Stars: ✭ 340 (+423.08%)
Mutual labels:  hid, bluetooth
Zmk
ZMK Firmware Repository
Stars: ✭ 269 (+313.85%)
Mutual labels:  bluetooth, wireless
keyboard mouse emulate on raspberry
Bluetooth Keyboard Mouse Emulator on Raspberry Pi
Stars: ✭ 230 (+253.85%)
Mutual labels:  bluetooth, mouse
Ucr
Universal Control Remapper [Alpha]
Stars: ✭ 399 (+513.85%)
Mutual labels:  mouse, hid
Super Simple Raspberry Pi Audio Receiver Install
Super Easy installation to make your Raspberry Pi an Audio Receiver
Stars: ✭ 448 (+589.23%)
Mutual labels:  raspberry-pi, bluetooth
Hidapi
A Simple library for communicating with USB and Bluetooth HID devices on Linux, Mac and Windows.
Stars: ✭ 465 (+615.38%)
Mutual labels:  hid, bluetooth
Joycontrol
Emulate Nintendo Switch Controllers over Bluetooth
Stars: ✭ 667 (+926.15%)
Mutual labels:  raspberry-pi, bluetooth
BlueRetro
Multiplayer Bluetooth controllers adapter for retro video game consoles
Stars: ✭ 520 (+700%)
Mutual labels:  hid, bluetooth
mikoto
Bluetooth LE nRF52840 microcontroller in a pro-micro footprint.
Stars: ✭ 139 (+113.85%)
Mutual labels:  bluetooth, wireless
AxisOrange
Sending M5 series IMU sensor data by Bluetooth SPP.
Stars: ✭ 35 (-46.15%)
Mutual labels:  bluetooth, wireless
switch joy con as mouse for macos
Tool to use Nintendo Switch Joy-Con as a mouse for macOS
Stars: ✭ 19 (-70.77%)
Mutual labels:  bluetooth, mouse
joyconpi
An attempt at emulating a Nintendo Switch Joy-Con controller with a Raspberry Pi
Stars: ✭ 24 (-63.08%)
Mutual labels:  hid, bluetooth
mx3000control
Perixx MX-3000 mouse unofficial configuration tool for Linux
Stars: ✭ 20 (-69.23%)
Mutual labels:  hid, mouse
Mac Precision Touchpad
Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad
Stars: ✭ 5,107 (+7756.92%)
Mutual labels:  hid, bluetooth
Rpi Audio Receiver
Raspberry Pi Audio Receiver with Bluetooth A2DP, AirPlay, UPnP and Spotify Connect
Stars: ✭ 650 (+900%)
Mutual labels:  raspberry-pi, bluetooth

Bluetooth HID hub

BT HID Hub Diagram BT HID Hub Architecture Diagram

This hub uses a modified version of the Bluez linux bluetooth protocol stack (https://github.com/ruundii/bluez). The modified version extends bluetooth input profile to be able to simultaniously support host and device connections (vs default input device connections only). With this you can e.g. retransmit Bluetooth input devices to other machines

The Bluetooth HID hub presents itself to a host computer as a Bluetooth kb+mouse device, and also connects to an Apple A1314 bluetooth keyboard and a wired mouse (my current set up). The hub remaps keys (essential for apple keyboards to be used on PC) and then transmits the host. I currently run it on my Raspberry Pi Zero W. Works like a charm, single digit millisecond delay is not noticable even with mouse, nevermind keyboard.

Now contains automated installation scripts for a newly flashed Raspbian OS (See install directory).

Has a interface to configure plugged and bluetooth input devices and connect to a bluetooth host machine.

HID devices screen Bluetooth devices screen

Added an ability to switch hosts with a keyboard (Fn+Cmd+Tab on Apple A1314 keyboard). Now can use the hub as an input for several computers, easily switching which one is currently active.

Inspired by RaspiKey, but wanted the solution to stay wireless, as this is why I bought Apple wireless keyboard in the first place. By doing this it allowed to turn my wired mouse to wireless as well and have one keyboard+mouse for two machines. Also, Python implementation should allow people to easily customize their mappings. If you want to do this, check out hid-tools to monitor raw hid reports from your device.

I have configured pretty standard keyboard+mouse descriptor for this project (this defines how host machines see BT HID Hub and how they process its reports). Shall you want to support some fancy HID events, like unusual keyboard buttons, which are outside of the standard keyboard+mouse, you would need to edit HID descriptor in sdp_record.xml file. This post is super helpful in getting your head around HID descriptors.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].