All Projects → mart1nro → Joycontrol

mart1nro / Joycontrol

Licence: gpl-3.0
Emulate Nintendo Switch Controllers over Bluetooth

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Joycontrol

Betterjoy
Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput
Stars: ✭ 1,352 (+102.7%)
Mutual labels:  nintendo-switch, bluetooth
Rpi Audio Receiver
Raspberry Pi Audio Receiver with Bluetooth A2DP, AirPlay, UPnP and Spotify Connect
Stars: ✭ 650 (-2.55%)
Mutual labels:  raspberry-pi, bluetooth
Switch Remoteplay
NOT AN OFFICIAL NINTENDO PRODUCT - Control your Switch remotely (no hacking required)
Stars: ✭ 170 (-74.51%)
Mutual labels:  nintendo-switch, bluetooth
Johnny Five
JavaScript Robotics and IoT programming framework, developed at Bocoup.
Stars: ✭ 12,498 (+1773.76%)
Mutual labels:  raspberry-pi, bluetooth
joycon
Device access library for Joycon(Nintendo Switch)
Stars: ✭ 59 (-91.15%)
Mutual labels:  bluetooth, nintendo-switch
Multi Room Audio Centralized Audio For Home
🎵 This Github Repository provides details on setting up a centralized audio system for your home using nothing but Raspberry Pi's and Old Speakers.
Stars: ✭ 189 (-71.66%)
Mutual labels:  raspberry-pi, bluetooth
joycon-rs
Joy-Con library for Rust 🦀 🎮
Stars: ✭ 104 (-84.41%)
Mutual labels:  bluetooth, nintendo-switch
Balena Sound
Build a single or multi-room streamer for an existing audio device using a Raspberry Pi! Supports Bluetooth, Airplay and Spotify Connect
Stars: ✭ 1,306 (+95.8%)
Mutual labels:  raspberry-pi, bluetooth
nxbt
Control your Nintendo Switch through a website, terminal, or macro.
Stars: ✭ 340 (-49.03%)
Mutual labels:  bluetooth, nintendo-switch
BetterJoyForDolphin
Allows the Nintendo Switch Pro Controller and Joycons to be used with the Dolphin Emulator
Stars: ✭ 44 (-93.4%)
Mutual labels:  bluetooth, nintendo-switch
Gymnasticon
Make obsolete and/or proprietary exercise bikes work with popular cycling training apps like Zwift, TrainerRoad, Rouvy and more.
Stars: ✭ 155 (-76.76%)
Mutual labels:  raspberry-pi, bluetooth
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 (+395.5%)
Mutual labels:  raspberry-pi, bluetooth
Reverse Engineering Bluetooth Protocols
Intercepting Bluetooth device communication and simulating packet responses of an iPhone from a Raspberry Pi 3
Stars: ✭ 105 (-84.26%)
Mutual labels:  raspberry-pi, bluetooth
Platypush
A versatile and extensible platform for home and life automation with hundreds of supported integrations
Stars: ✭ 192 (-71.21%)
Mutual labels:  raspberry-pi, bluetooth
Magicblue
💡 Unofficial Python API to control Magic Blue bulbs over Bluetooth
Stars: ✭ 92 (-86.21%)
Mutual labels:  raspberry-pi, bluetooth
Keymapper
📱 An Android app that maps any keys to actions.
Stars: ✭ 207 (-68.97%)
Mutual labels:  nintendo-switch, bluetooth
Ha Bt Proximity
Distributed Bluetooth Room Presence Sensor for Home Assistant
Stars: ✭ 77 (-88.46%)
Mutual labels:  raspberry-pi, bluetooth
Arduino Robust Serial
A simple and robust serial communication protocol. It was designed for Arduino but can be used for other purposes (e.g. bluetooth, sockets). Implementation in C Arduino, C++, Python and Rust.
Stars: ✭ 83 (-87.56%)
Mutual labels:  raspberry-pi, bluetooth
joyconpi
An attempt at emulating a Nintendo Switch Joy-Con controller with a Raspberry Pi
Stars: ✭ 24 (-96.4%)
Mutual labels:  bluetooth, nintendo-switch
switch joy con as mouse for macos
Tool to use Nintendo Switch Joy-Con as a mouse for macOS
Stars: ✭ 19 (-97.15%)
Mutual labels:  bluetooth, nintendo-switch

joycontrol

Emulate Nintendo Switch Controllers over Bluetooth.

Tested on Ubuntu 19.10, and with Raspberry Pi 3B+ and 4B Raspbian GNU/Linux 10 (buster)

Features

Emulation of JOYCON_R, JOYCON_L and PRO_CONTROLLER. Able to send:

  • button commands
  • stick state
  • nfc data (removed, see #80)

Installation

  • Install dependencies

Ubuntu: Install the dbus-python and libhidapi-hidraw0 packages

sudo apt install python3-dbus libhidapi-hidraw0

Arch Linux Derivatives: Install the hidapi and bluez-utils-compat(AUR) packages

  • Clone the repository and install the joycontrol package to get missing dependencies (Note: Controller script needs super user rights, so python packages must be installed as root). In the joycontrol folder run:
sudo pip3 install .
  • Consider to disable the bluez "input" plugin, see #8

Command line interface example

  • Run the script
sudo python3 run_controller_cli.py PRO_CONTROLLER

This will create a PRO_CONTROLLER instance waiting for the Switch to connect.

  • Open the "Change Grip/Order" menu of the Switch

The Switch only pairs with new controllers in the "Change Grip/Order" menu.

Note: If you already connected an emulated controller once, you can use the reconnect option of the script (-r "<Switch Bluetooth Mac address>"). This does not require the "Change Grip/Order" menu to be opened. You can find out a paired mac address using the "bluetoothctl" system command.

  • After connecting, a command line interface is opened. Note: Press <enter> if you don't see a prompt.

Call "help" to see a list of available commands.

  • If you call "test_buttons", the emulated controller automatically navigates to the "Test Controller Buttons" menu.

Issues

  • Some bluetooth adapters seem to cause disconnects for reasons unknown, try to use an usb adapter instead
  • Incompatibility with Bluetooth "input" plugin requires a bluetooth restart, see #8
  • It seems like the Switch is slower processing incoming messages while in the "Change Grip/Order" menu. This causes flooding of packets and makes pairing somewhat inconsistent. Not sure yet what exactly a real controller does to prevent that. A workaround is to use the reconnect option after a controller was paired once, so that opening of the "Change Grip/Order" menu is not required.
  • ...

Thanks

Resources

Nintendo_Switch_Reverse_Engineering

console_pairing_session

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].