Intel Corporation Wireless-AC 9560 Bluetooth not working on Ubuntu. Can I create a driver?

I have a PC from a local manufacturer (Avell) that doesn't have an Ubuntu driver for the bluetooth/wireless hardware. I tried everything you can imagine and I've thoroughly described all attempts in the following post (where I still thought it was fixable): Ubuntu 18.04.3 Bluetooth failed to connect: org.bluez.Error.Failed (INTEL® DUAL BAND WIRELESS-AC 9560 + BLUETOOTH)

But after talking to some specialists, I've been told I need to find/write a driver for this hardware in order to have it fully functioning. I've did some research, but I didn't find any.

The hardware is Intel Corporation Wireless-AC 9560, as you can see when I run the following command: lspci -knn | grep Net -A2; lsusb:

00:14.3 Network controller [0280]: Intel Corporation Wireless-AC 9560 [Jefferson Peak] [8086:a370] (rev 10)
    Subsystem: Intel Corporation Device [8086:0034]
    Kernel driver in use: iwlwifi
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 048d:ce00 Integrated Technology Express, Inc. 
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 006: ID 8087:0aaa Intel Corp. 
Bus 001 Device 005: ID 04f2:b65a Chicony Electronics Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I have high level programming experience and I'm willing to learn myself how to write the driver, but I'm a soft Ubuntu user, never complied a driver or similar. Any help is very much appreciated.

Useful information:

  1. lspci:
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Device 3e9b
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:14.3 Network controller: Intel Corporation Wireless-AC 9560 [Jefferson Peak] (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device a368 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Device a353 (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port 21 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Device a335 (rev f0)
00:1e.0 Communication controller: Intel Corporation Device a328 (rev 10)
00:1f.0 ISA bridge: Intel Corporation Device a30d (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f91 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10fa (rev a1)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
  1. hciconfig -a
hci0:   Type: Primary  Bus: USB
    BD Address: 38:00:25:A1:F0:85  ACL MTU: 1021:4  SCO MTU: 96:6
    UP RUNNING PSCAN 
    RX bytes:11220 acl:83 sco:0 events:784 errors:0
    TX bytes:11968 acl:84 sco:0 commands:550 errors:0
    Features: 0xbf 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
    Link policy: RSWITCH SNIFF 
    Link mode: SLAVE ACCEPT 
    Name: 'bonavel'
    Class: 0x1c010c
    Service Classes: Rendering, Capturing, Object Transfer
    Device Class: Computer, Laptop
    HCI Version: 5.0 (0x9)  Revision: 0x100
    LMP Version: 5.0 (0x9)  Subversion: 0x100
    Manufacturer: Intel Corp. (2)
  1. lsmod | grep iwlwifi
iwlwifi               380928  1 iwlmvm
cfg80211              708608  3 iwlmvm,iwlwifi,mac80211
compat                 16384  4 iwlmvm,iwlwifi,mac80211,cfg80211
  1. dmesg | grep iwlwifi
[    4.913209] Loading modules backported from iwlwifi
[    4.913210] iwlwifi-stack-public:master:8794:f51dd362
[    5.008653] iwlwifi 0000:00:14.3: WRT: Overriding region id 1
[    5.008655] iwlwifi 0000:00:14.3: WRT: Overriding region id 2
[    5.008656] iwlwifi 0000:00:14.3: WRT: Overriding region id 3
[    5.008656] iwlwifi 0000:00:14.3: WRT: Overriding region id 4
[    5.008657] iwlwifi 0000:00:14.3: WRT: Overriding region id 6
[    5.008658] iwlwifi 0000:00:14.3: WRT: Overriding region id 8
[    5.008658] iwlwifi 0000:00:14.3: WRT: Overriding region id 9
[    5.008659] iwlwifi 0000:00:14.3: WRT: Overriding region id 10
[    5.008660] iwlwifi 0000:00:14.3: WRT: Overriding region id 11
[    5.008660] iwlwifi 0000:00:14.3: WRT: Overriding region id 15
[    5.008661] iwlwifi 0000:00:14.3: WRT: Overriding region id 16
[    5.008662] iwlwifi 0000:00:14.3: WRT: Overriding region id 18
[    5.008662] iwlwifi 0000:00:14.3: WRT: Overriding region id 19
[    5.008664] iwlwifi 0000:00:14.3: Found debug destination: EXTERNAL_DRAM
[    5.008665] iwlwifi 0000:00:14.3: Found debug configuration: 0
[    5.008920] iwlwifi 0000:00:14.3: loaded firmware version 46.6bf1df06.0 9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm
[    5.151023] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560, REV=0x318
[    5.199059] iwlwifi 0000:00:14.3: base HW address: 38:00:25:a1:f0:81
[    5.265575] iwlwifi 0000:00:14.3: iwlmvm doesn't allow to disable BT Coex, check bt_coex_active module parameter
[    5.689262] iwlwifi 0000:00:14.3 wlo1: renamed from wlan0
  1. modinfo btintel
filename:       /lib/modules/5.4.0-52-generic/kernel/drivers/bluetooth/btintel.ko
firmware:       intel/ibt-12-16.ddc
firmware:       intel/ibt-12-16.sfi
firmware:       intel/ibt-11-5.ddc
firmware:       intel/ibt-11-5.sfi
license:        GPL
version:        0.1
description:    Bluetooth support for Intel devices ver 0.1
author:         Marcel Holtmann <[email protected]>
srcversion:     8215D1011CCE561BCB94364
depends:        bluetooth
retpoline:      Y
intree:         Y
name:           btintel
vermagic:       5.4.0-52-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4
  1. dmesg | grep Bluetooth
[    4.992341] Bluetooth: Core ver 2.22
[    4.992361] Bluetooth: HCI device and connection manager initialized
[    4.992364] Bluetooth: HCI socket layer initialized
[    4.992366] Bluetooth: L2CAP socket layer initialized
[    4.992369] Bluetooth: SCO socket layer initialized
[    5.142028] Bluetooth: hci0: Firmware revision 0.1 build 226 week 31 2019
[    6.053221] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    6.053222] Bluetooth: BNEP filters: protocol multicast
[    6.053225] Bluetooth: BNEP socket layer initialized
[   31.816480] Bluetooth: RFCOMM TTY layer initialized
[   31.816487] Bluetooth: RFCOMM socket layer initialized
[   31.816492] Bluetooth: RFCOMM ver 1.11
  1. grep Bluetooth /var/log/syslog | grep -i -e "Firmware revision" -e "ibt"
Oct 30 10:07:00 bonavel kernel: [    5.142028] Bluetooth: hci0: Firmware revision 0.1 build 226 week 31 2019
  1. The list of Intel Ubuntu drivers that suppose to work: https://www.intel.com/content/www/us/en/support/articles/000005511/network-and-i-o/wireless.html (I downloaded the lates one iwlwifi-9000-pu-b0-jf-b0-46.ucode) and it still don't work. Even compiled myself from https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git using this answer from another source: https://ubuntuforums.org/showthread.php?t=2400595&s=e07f65d9d61552aefd730fb74761c34c&p=13799142#post13799142 and still nothing.
  2. dmesg | grep -e wl -e iwl
[    4.913209] Loading modules backported from iwlwifi
[    4.913210] iwlwifi-stack-public:master:8794:f51dd362
[    5.008653] iwlwifi 0000:00:14.3: WRT: Overriding region id 1
[    5.008655] iwlwifi 0000:00:14.3: WRT: Overriding region id 2
[    5.008656] iwlwifi 0000:00:14.3: WRT: Overriding region id 3
[    5.008656] iwlwifi 0000:00:14.3: WRT: Overriding region id 4
[    5.008657] iwlwifi 0000:00:14.3: WRT: Overriding region id 6
[    5.008658] iwlwifi 0000:00:14.3: WRT: Overriding region id 8
[    5.008658] iwlwifi 0000:00:14.3: WRT: Overriding region id 9
[    5.008659] iwlwifi 0000:00:14.3: WRT: Overriding region id 10
[    5.008660] iwlwifi 0000:00:14.3: WRT: Overriding region id 11
[    5.008660] iwlwifi 0000:00:14.3: WRT: Overriding region id 15
[    5.008661] iwlwifi 0000:00:14.3: WRT: Overriding region id 16
[    5.008662] iwlwifi 0000:00:14.3: WRT: Overriding region id 18
[    5.008662] iwlwifi 0000:00:14.3: WRT: Overriding region id 19
[    5.008664] iwlwifi 0000:00:14.3: Found debug destination: EXTERNAL_DRAM
[    5.008665] iwlwifi 0000:00:14.3: Found debug configuration: 0
[    5.008920] iwlwifi 0000:00:14.3: loaded firmware version 46.6bf1df06.0 9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm
[    5.151023] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560, REV=0x318
[    5.199059] iwlwifi 0000:00:14.3: base HW address: 38:00:25:a1:f0:81
[    5.265575] iwlwifi 0000:00:14.3: iwlmvm doesn't allow to disable BT Coex, check bt_coex_active module parameter
[    5.265767] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[    5.689262] iwlwifi 0000:00:14.3 wlo1: renamed from wlan0
[   10.101236] wlo1: authenticate with 28:bd:89:da:85:bc
[   10.105630] wlo1: send auth to 28:bd:89:da:85:bc (try 1/3)
[   10.159788] wlo1: authenticated
[   10.163503] wlo1: associate with 28:bd:89:da:85:bc (try 1/3)
[   10.169867] wlo1: RX AssocResp from 28:bd:89:da:85:bc (capab=0x1031 status=0 aid=4)
[   10.172317] wlo1: associated
[   10.219109] IPv6: ADDRCONF(NETDEV_CHANGE): wlo1: link becomes ready
[   10.231422] wlo1: Limiting TX power to 30 (30 - 0) dBm as advertised by 28:bd:89:da:85:bc

The problem was that one of the antennas of the Intel Corporation Wireless-AC 9560 was disconnected. I've opened the computer and connected the antenna. Now I have a perfect working Bluetooth and an even better Wifi signal.