All Projects → nobonobo → joycon

nobonobo / joycon

Licence: MIT license
Device access library for Joycon(Nintendo Switch)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to joycon

BetterJoyForDolphin
Allows the Nintendo Switch Pro Controller and Joycons to be used with the Dolphin Emulator
Stars: ✭ 44 (-25.42%)
Mutual labels:  bluetooth, nintendo-switch, joycon
joycon-rs
Joy-Con library for Rust 🦀 🎮
Stars: ✭ 104 (+76.27%)
Mutual labels:  bluetooth, nintendo-switch, joycon
Nintendo-Switch-JoyCon-Hack
Hardwiring a push button in a JoyCon to grant bootloader access
Stars: ✭ 44 (-25.42%)
Mutual labels:  nintendo-switch, joycon
SwiTAS
A usable toolkit for creating Nintendo Switch TASes with homebrew
Stars: ✭ 54 (-8.47%)
Mutual labels:  nintendo-switch, joycon
Joycontrol
Emulate Nintendo Switch Controllers over Bluetooth
Stars: ✭ 667 (+1030.51%)
Mutual labels:  bluetooth, nintendo-switch
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 (+2191.53%)
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 (-67.8%)
Mutual labels:  bluetooth, nintendo-switch
Keymapper
📱 An Android app that maps any keys to actions.
Stars: ✭ 207 (+250.85%)
Mutual labels:  bluetooth, nintendo-switch
Switch Remoteplay
NOT AN OFFICIAL NINTENDO PRODUCT - Control your Switch remotely (no hacking required)
Stars: ✭ 170 (+188.14%)
Mutual labels:  bluetooth, nintendo-switch
joyconpi
An attempt at emulating a Nintendo Switch Joy-Con controller with a Raspberry Pi
Stars: ✭ 24 (-59.32%)
Mutual labels:  bluetooth, nintendo-switch
nxbt
Control your Nintendo Switch through a website, terminal, or macro.
Stars: ✭ 340 (+476.27%)
Mutual labels:  bluetooth, nintendo-switch
mijia-homie
A Homie MQTT bridge for the Xiaomi Mijia 2 hygrometer-thermometer. This repo also serves as the monorepo for a handful of helper crates related to Homie and Bluetooth.
Stars: ✭ 40 (-32.2%)
Mutual labels:  bluetooth
NXController
Use keyboard to play Switch games
Stars: ✭ 24 (-59.32%)
Mutual labels:  nintendo-switch
pyrinas-ble-client
nRF52 SDK(v16) based OS for use with Particle Xenon and other nRF52840 boards.
Stars: ✭ 15 (-74.58%)
Mutual labels:  bluetooth
Bluetooth-ble-beamer-and-scanner-for-tracing-corona-virus-infected-individual
Bluetooth ble beacon beamer and scanner for tracing corona virus infected person similar to Trace Together app
Stars: ✭ 26 (-55.93%)
Mutual labels:  bluetooth
awesome-bluetooth-security
List of Bluetooth BR/EDR/LE security resources
Stars: ✭ 220 (+272.88%)
Mutual labels:  bluetooth
JoyKeyMapper
Nintendo Joy-Con/ProController Key mapper for macOS
Stars: ✭ 82 (+38.98%)
Mutual labels:  nintendo-switch
BluetoothOperator
实现Android手机蓝牙设备的扫描、过滤、连接,通过蓝牙串口功能向设备发送指定的信息。
Stars: ✭ 14 (-76.27%)
Mutual labels:  bluetooth
nrf52832-pac
Peripheral Access Crate for the nRF52832 microcontroller
Stars: ✭ 21 (-64.41%)
Mutual labels:  bluetooth
NeewerLite
NeewerLite is an un-official Neewer LED light control app for macOS.
Stars: ✭ 54 (-8.47%)
Mutual labels:  bluetooth

joycon

Nintendo Switch's Joycon Device access library(via bluetooth only)

Reverse engineering info

https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering

Feature

  • supported deveces: Joycon(L/R), Pro-Controller
  • get: Digial Buttons state
  • get: Analog Sticks state
  • set: Raw Vibration data
  • calibration support for analog stick.

Dependencies

  • go get -u github.com/flynn/hid
  • go get -u github.com/shibukawa/gotomation optional

Usage

In advance, you perform Bluetooth pairing for Joycon. (Joycon must be connected before execute below code.)

Note: When Joycon is fitted to the main body, BT sessions are overwritten, so when you connect to PC later, you need to redo pairing.

package main

import "github.com/nobonobo/joycon"

func main() {
    devices, err := joycon.Search(joycon.JoyConL)
    if err != nil {
        log.Fatalln(err)
    }
    jc, err := joycon.NewJoycon(devices[0].Path, false)
    if err != nil {
        log.Fatalln(err)
    }
    s := <-jc.State()
    fmt.Println(s.Buttons)  // Button bits
    fmt.Println(s.LeftAdj)  // Left Analog Stick State
    fmt.Println(s.RightAdj) // Right Analog Stick State
    a := <-jc.Sensor()
    fmt.Println(a.Accel) // Acceleration Sensor State
    fmt.Println(a.Gyro)  // Gyro Sensor State

    jc.Close()
}

TODO

  • Deadzone parameter read from SPI memory.
  • Rich Vibration support.
  • Set Player LED.
  • Set HomeButton LED.
  • Low power mode support.
  • IR sensor capture.(wip)
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].