Hello bluetooth developers, We are developing a wheelchair that we can controle with a bluetooth gamepad, the XBOX 360 controller to be more precise. It basically works fine but when I remove the battery, I get the disconnect event in the user space around 10 seconds later. That is not acceptable since the wheelchair will keep rolling to potentially dangerous places! I tried to implement a ping mechanism on the bluetooth layer, inspired from bluez sources somewhere: int _socket_fd = socket(PF_BLUETOOTH, SOCK_RAW, BTPROTO_L2CAP); // bind on AF_BLUETOOTH // connect with AF_BLUETOOTH send_cmd->ident = PING_IDENT; send_cmd->len = htobs(PING_DATA_SIZE); send_cmd->code = L2CAP_ECHO_REQ; if (send(_socket_fd, send_buffer, PING_PACKET_SIZE, 0) <= 0) { // ... } It basically works fine except when the signal gets bad. This will get printed by the kernel: [ 859.629431] Bluetooth: hci0 link tx timeout [ 859.635482] Bluetooth: hci0 killing stalled connection 9c:aa:1b:6b:51:c9 In that case, I don't get event from the /dev/jsX device but the gamepad seems to still answer to pings??!! Since I haven't found any acceptable workaround and always find the same pages again and again, I'm asking here: * Is it possible to achieve what I want? * Does it make sense that the ping work but the HID layer seems dead? * Any recommendation, pointers? Best regards, Guy -- Guy Morand Software Engineer Scewo AG, Technoparkstrasse 2, 8406 Winterthur www.scewo.ch www.facebook.com/scewo www.instagram.com/scewo_official