PS4 gamepad will connect then disconnect consistently when running JP 4.5.1 on a Nano 4GB

@WayneWWW,

I was using a PS4 with JP 4.4.1 and it paired and would connect just fine even after a reboot or a start up.

However, with JP 4.5.1 after startup or a reboot, the PS4 will connect and then disconnect.

Yes, I reset my PS4 when moving up to JP 4.5.1 and re-paired it with my Nano.

I have used the Ubuntu Desktop as well as bluetoothctl to pair and connect my PS4 to the Nano.

If I turn the PS4 off and then turn it back on, it will connect with the Nano and then disconnect consistently.

If I run bluetoothctl from the CLI and turn scan on, the PS4 will connect and if I turn it off and then back on again, it will connect, then disconnect. If I try to connect a second time, it will connect and stay connected until a reboot.

It seems that bluetoothctl must be running after either a startup or a reboot to be able to get the PS4 to connect to my Nano. Very strange.

Presently the Ubuntu 18.04 that comes with JP 4.5.1 is running bluez 5.48 Oubuntu3.4 which is somewhat old.

@WayneWWW,

I only use a wired keyboard and mouse with my Nano 4GB so I don’t know if this issue is only limited to the PS4 gamepad.

Also, you have not answered the question as to why running bluetoothctl from the CLI and initiating “scan on” allows me to successfully connect my PS4 to the Nano without it disconnecting until I either reboot or shutdown and startup again.
Additionally, why is it that bluez 5.48 Oubuntu3.4 be updated to the newer versions that are available.

I experienced this issue after installing Ubuntu 20.10 on a Rpi 4B and was able to correct the disconnect issue by updating and upgrading Ubuntu 20.10. No such luck with Ubuntu 18.04 as you can see.

I am not the only one having this issue with the present bluez version. Here is another post concerning the bluez version presently in use.

Let me investigate this internally. Thanks.

@WayneWWW,

Thanks for the quick response, much appreciated.

I am using my PS4 gamepad with a Nano 4GB running Donkey Car v 4.2 and would like to be able to control my car locally with the gamepad without having to resort to running bluetoothctl from the CLI every time I want to connect the PS4 to the Nano.

Regards,
TCIII

Hi @TCIII,

Just wonder, do you have other jetson devices like NX or TX2 on your side?

@WayneWWW,

Fortunately I have a Xavier NX/D435i depth camera configuration running JP 4.5.1.

I took the PS4 gamepad that I was trying to connect to the Nano, reset it, and was able to pair and connect it to the Xavier NX using bluetoothctl.

I was able to connect it initially, after a reboot, and after a startup without it disconnecting after initially connecting.

Once thing I noticed is that during the bluetoothctl pairing I saw a CLI output that mentioned “Legacy” controller that I have not seen during the bluetoothctl pairing on my Nano 4GB.

Comments?

So this issue won’t happen if you use xavier NX’s built-in bluetooth module and GUI?

Yes, that is correct, however my Nanos have the Intel WiFi and Bluetooth M2 modules also with the rubber ducky antennas.

I was able to get my new PS5 gamepad working with the same Nano that I had the connect/disconnect issue with.

I was using bluetootctl to do the pairing/connecting. It took several iterations of “connect” to get the PS5 to pair and connect, but eventually it did. The PS5 would also connect and stay connected after a reboot. However after a cold startup, I had to initially be close to the Nano to get the PS5 to connect and stay connected.

Comments?

Actually, the file system on each jetson platform is same.

Thus, if we consider this issue is on userspace side tool. For example, ubuntu bluetooth GUI, bluetoothcl or bluez version, then changing from nano to nx should not have different behavior. However, this seems different according to your result. It means maybe issue is only happened if i8265 is in use?

Have you tried to manually upgrade the bluez version?

The bluez version on jp4.4.1 is same as jp4.5.1. Thus, the reason should be something else.

@WayneWWW,

Yes, I tried to update bluez from 5.48 to the latest and after the update process had completed, the bluez version hadn’t changed from 5.48

My new XBox One/S acts the same way with either JP 4.4.1 or 4.5.1.

Hi,

We checked the bluetooth related libraries between rel-32.4.4 and rel-32.5.1. However, there is no difference in this part.

Is the “AutoEnable” in /etc/bluetooth/main.conf still turned on on your side?

Looks like this issue is specific to ac8265 device. If we put ac8265 to the NX devkit, then the pattern will be similar to the nano. 4.4.1 will not reproduce this issue while 4.5.1 will.

We will try to take the kernel and bluetooth driver from 4.4.1 kernel to 4.5.1 and see if this issue would be gone.

@WayneWWW,

Thanks for the update, much appreciated.

Yes, the “AutoEnable” is on in /etc/bluetooth/main.conf.

@WayneWWW,

Bump?

Jetpack 4.2 here, same transient issue with PS4 controller.

@makarov.alex,

I have found that if I use bluetoothctl and issue scan on, my PS4 will stay connected as long as I don’t reboot. I have to do this every time I boot up the Nano.

Possibly the same issue here?

I’ve got a fix that works for me. I don’t know enough about these drivers or where the upstream source is to look at history, but I think that commit 0e7ef70f54add9edc9753e35ea38bd5c814d99d0 is where the offending code was added. Specifically, this encryption key size check.

I found a post that talks about a similar issue in a Raspberry PI kernel issue. Looking at this commit, and comparing it to the Jetpack version, I saw that the main difference was removing that key size check.

I tried that and it fixes the issue for me.