Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connection is immediately lost #93

Open
syveqc opened this issue Dec 22, 2020 · 2 comments
Open

Connection is immediately lost #93

syveqc opened this issue Dec 22, 2020 · 2 comments

Comments

@syveqc
Copy link

syveqc commented Dec 22, 2020

Hi, I just tried to connect, and the switch seemingly recognizes a new controller, but as soon as I try to send a command, connection is lost:

[14:32:53] joycontrol.device set_name::69 INFO - setting device name to Pro Controller...
[14:32:53] joycontrol.server create_hid_server::83 INFO - Advertising the Bluetooth SDP record...
[14:32:53] joycontrol.device set_class::61 INFO - setting device class to 0x002508...
[14:32:53] joycontrol.utils run_system_command::75 DEBUG - ['hciconfig hci0 class 0x002508' exited with 0]
[14:32:53] joycontrol.server create_hid_server::96 INFO - Waiting for Switch to connect... Please open the "Change Grip/Order" menu.
[14:32:54] joycontrol.server create_hid_server::100 INFO - Accepted connection at psm 17 from ('DC:68:EB:13:DE:F6', 17)
[14:32:54] joycontrol.server create_hid_server::102 INFO - Accepted connection at psm 19 from ('DC:68:EB:13:DE:F6', 19)
[14:32:54] joycontrol.protocol connection_made::108 DEBUG - Connection established.
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.REQUEST_DEVICE_INFO
cmd >> [14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SET_SHIPMENT_STATE
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SET_INPUT_REPORT_MODE
[14:32:56] joycontrol.protocol set_reader::361 INFO - Setting input report mode to 0x30...
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.TRIGGER_BUTTONS_ELAPSED_TIME
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:56] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:57] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:57] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:57] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SPI_FLASH_READ
[14:32:58] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.ENABLE_6AXIS_SENSOR
[14:32:58] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.ENABLE_VIBRATION
[14:32:58] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SET_NFC_IR_MCU_CONFIG
[14:32:58] root _reply_to_sub_command::244 INFO - received output report - Sub command SubCommand.SET_PLAYER_LIGHTS

cmd >> a
cmd >> [14:33:04] joycontrol.transport read::105 ERROR - No data received.
[14:33:04] joycontrol.protocol connection_lost::113 ERROR - Connection lost.

After that I get a NotConnectedError (which is to be expected I guess after losing connection):

cmd >> a
[14:33:12] main _main::304 INFO - Stopping communication...
Traceback (most recent call last):
File "run_controller_cli.py", line 329, in
_main(args)
File "/usr/lib/python3.7/asyncio/base_events.py", line 579, in run_until_complete
return future.result()
File "run_controller_cli.py", line 302, in _main
await cli.run()
File "/home/tobias/git/joycontrol/joycontrol/command_line_interface.py", line 197, in run
await button_push(self.controller_state, *buttons_to_push)
File "/home/tobias/git/joycontrol/joycontrol/controller_state.py", line 235, in button_push
await button_press(controller_state, *buttons)
File "/home/tobias/git/joycontrol/joycontrol/controller_state.py", line 206, in button_press
await controller_state.send()
File "/home/tobias/git/joycontrol/joycontrol/controller_state.py", line 66, in send
await self._protocol.send_controller_state()
File "/home/tobias/git/joycontrol/joycontrol/protocol.py", line 58, in send_controller_state
raise NotConnectedError('Transport not registered.')
joycontrol.transport.NotConnectedError: Transport not registered.

I did the --noplugin=input from #8. The readme states that I could also do this via USB, how would I accomplish that? If I disable bluetooth completely and connect my computer to the switch via USB, the script no longer works.

Thanks in advance!

Edit: forgot to mention, I am on Ubuntu 19.10 on a Thinkpad T480s

@syveqc
Copy link
Author

syveqc commented Dec 23, 2020

I was able to get my hands on a Raspberry and it works there, so the problem is probably due to the bluetooth on my notebook! I would still be interested in how to accomplish this via USB.
Thanks in advance!

@Poohl
Copy link

Poohl commented Mar 15, 2021

Quick question: What version of Switch os, raspbian and bluez are you running on the pi and on the Laptop what version of bluez? (run apt-cache policy bluez for bluez version, should be in the range 5.5X)

Also if you really want USB, there are a few projects:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants