• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

NES30/FC30 Controller via Bluetooth in keyboard mode

Scheduled Pinned Locked Moved Help and Support
8 Posts 2 Posters 2.3k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N
    nbk
    last edited by nbk 8 Nov 2016, 19:09 11 Aug 2016, 18:03

    Hi,

    I have installed the current 4.0 RC1 Version on my Raspberry 3. The following issues also occurred with the previous Retropie versions and my old Raspberry 2:

    There are two problems with these 8bitdo controllers in keyboard mode (START+B,START+B+R).

    1.Keyboard Mode is broken since controller firmware V2.61 (V2.52 is still fine). In the bluetooth setting the device would be found but when connecting the following error occurrs:

    0_1470936307947_error.jpg

    1. if I stick to the older firmware version 2.52 I can register my both controllers in Gamepad and Keyboard mode. Each device and mode would connect and gets its own MAC-Address so I would see 4 different MAC-Addresses after registration. So far so good. Unfortunately I can only automatically connect the 2 devices/modes I registered last. So switching between the keyboard and joystick mode is simply not possible. That surprises me because of the unique MAC Address for each mode it should be possible to connect in another mode as well. There must be something else that prevents it from connecting.

    Also tried switching the firmware mapping hack option on and off (even though that shouldn't help here)

    Any idea what could be the issue? point 1 is probably a 8bitdo related firmware bug but point 2 could probably be easly fixed within Retropie. Question would be how...

    I guess nobody reported this issue yet because most of the users would stick to the gamepad connection (START+R). But switching between the modes is very important if you use emulators like vice as well that would only work with keyboard inputs.

    Thanks in advance
    nbk

    N 1 Reply Last reply 19 Aug 2016, 17:24 Reply Quote 0
    • N
      nbk @nbk
      last edited by nbk 19 Aug 2016, 17:24

      I would say the second point is not a controller issue but a bug/missing feature, because even if I clear the controller cache and try to reconnect the device with a different mode it wouldn't reconnect - even though the controller use a different MAC address for each mode.

      In the older Retropie 2.x versions the controller modes could be switched and the device would reconnect via bluez tool. I wrote a small script that ran in the background. The reconnection after restart didn't always run as smooth as with the new background connect function in 4.0 because depending on the timing sometimes it reconnected only when the next cronjob would start (1min later) but most of the times the connection worked right away and it made the switching between the modes (Keyboard,Gamepad) possible:

      #!/bin/bash
      #sleep 7
      
      # enter your MAC-Addresses for each mode here:
      st_mac1="XX:XX:XX:XX:XX:XX"
      st_mac2="XX:XX:XX:XX:XX:XX"
      st_mac3="XX:XX:XX:XX:XX:XX"
      st_mac4="XX:XX:XX:XX:XX:XX"
      
      # extracting mac address from hcitool scan
      result=$(hcitool scan | grep -i '[0-9A-F]\{2\}\:[0-9A-F]\{2\}\:[0-9A-F]\{2\}\:[0-9A-F]\{2\}\:[0-9A-F]\{2\}\:[0-9A-F]\{2\}' | cut -d$'\t' -f2)
      
      # assigning 1 mac address per variable
      mac1=$(echo $result | cut -d$' ' -f1)
      mac2=$(echo $result | cut -d$' ' -f2)
      
      #first attempt keyboard mode | START+R(+B) | P1
      if [ "$mac1" = $st_mac1 ] || [ "$mac2" = $st_mac1 ]
      	then
      	sudo bluez-test-input connect $st_mac1
      	fi
      	if [ $? = 1 ]
      		then
      		sudo bluez-test-device remove $st_mac1
      		sudo bluez-simple-agent hci0 $st_mac1
      		sudo bluez-test-device trusted $st_mac1
      		sudo bluez-test-input connect $st_mac1
      		fi
      #second attempt keyboard mode | START+R(+B) | P1
      if [ $? = 1 ]
              then
              sudo bluez-test-input connect $st_mac1
              fi
      
      #first attempt joystick / keyboard mode | START | P2
      if [ "$mac1" = $st_mac2 ] || [ "$mac2" = $st_mac2 ]
      	then
              sudo bluez-test-input connect $st_mac2
              fi
              if [ $? = 1 ]
                      then
      		sudo bluez-test-device remove $st_mac2
      		sudo bluez-simple-agent hci0 $st_mac2
      		sudo bluez-test-device trusted $st_mac2
      		sudo bluez-test-input connect $st_mac2
      		fi
      
      #second attempt joystick / keyboard mode | START | P2
      if [ $? = 1 ]
              then
              sudo bluez-test-input connect $st_mac2
              fi
      
      #first attempt PC-Joystick Mode | START+R | P1
      if [ "$mac1" = $st_mac3 ] || [ "$mac2" = $st_mac3 ]
              then
              sudo bluez-test-input connect $st_mac3
              fi
              if [ $? = 1 ]
                      then
              	sudo bluez-test-device remove $st_mac3
              	sudo bluez-simple-agent hci0 $st_mac3
              	sudo bluez-test-device trusted $st_mac3
              	sudo bluez-test-input connect $st_mac3
              	fi
      
      #second attempt PC-Joystick Mode | START+R | P1
      if [ $? = 1 ]
              then
              sudo bluez-test-input connect $st_mac3
              fi
      
      #third attempt PC-Joystick Mode | START+R | P1
      if [ $? = 1 ]
              then
              sudo bluez-test-input connect $st_mac3
              fi
      
      #first attempt PC-Joystick Mode | START+R | P2
      if [ "$mac1" = $st_mac4 ] || [ "$mac2" = $st_mac4 ]
              then
              sudo bluez-test-input connect $st_mac4
              fi
              if [ $? = 1 ]
                      then
              	sudo bluez-test-device remove $st_mac4
              	sudo bluez-simple-agent hci0 $st_mac4
              	sudo bluez-test-device trusted $st_mac4
              	sudo bluez-test-input connect $st_mac4
              	fi
      
      #second attempt PC-Joystick Mode | START+R | P2
      if [ $? = 1 ]
              then
              sudo bluez-test-input connect $st_mac4
              fi
      
      #third attempt PC-Joystick Mode | START+R | P2
      if [ $? = 1 ]
              then
              sudo bluez-test-input connect $st_mac4
              fi
      exit 0
      

      Important detail in this script: it always removed the registered device before pairing and connecting it again. Otherwise it wouldn't work properly. Maybe that's the issue with the new connection script in the later versions?

      Any ideas?

      B 1 Reply Last reply 19 Aug 2016, 18:19 Reply Quote 0
      • B
        BuZz administrators @nbk
        last edited by 19 Aug 2016, 18:19

        @nbk you could format your post and make it readable :) use markdown.

        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

        1 Reply Last reply Reply Quote 0
        • N
          nbk
          last edited by 19 Aug 2016, 18:24

          Hi Buzz,

          right after posting it an hour ago I edited it and corrected it. Looks perfectly fine here now...checked it with Firefox and Chrome...

          B 1 Reply Last reply 19 Aug 2016, 18:32 Reply Quote 0
          • B
            BuZz administrators @nbk
            last edited by 19 Aug 2016, 18:32

            @nbk I think I may have got a cached version or something. Looks good now :-)

            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

            B 1 Reply Last reply 19 Aug 2016, 18:34 Reply Quote 0
            • B
              BuZz administrators @BuZz
              last edited by 19 Aug 2016, 18:34

              I can't think of anything that changed in the code that would cause issue 2, but I can look into it.

              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

              1 Reply Last reply Reply Quote 0
              • N
                nbk
                last edited by 19 Aug 2016, 18:45

                That would be great BuZz. Thanks!

                1 Reply Last reply Reply Quote 0
                • N
                  nbk
                  last edited by 10 Sept 2016, 10:25

                  Hi BuZz. Were you able to check the issue already? Thanks in advance!

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                  Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.

                    [[user:consent.lead]]
                    [[user:consent.not_received]]