Andy Crouch - Code, Technology & Obfuscation ...

Configuring Sony WF-1000XM3 Bluetooth Earbuds On Linux

Photo: Unsplash - Khoa Nguyen

I spend a lot of time wearing headphones. This is for a couple of reasons. The first is that working remotely means I talk a lot on video calls with my team and clients. The second is that when I am not talking I am devouring almost any type of music while I work.

For the last year, I have been using some Taotronics Sound Surge 60 over-ear headphones. These are noise cancelling, Bluetooth over ear headphones that I tried to see if I like over ear style of headphones. They cost about £60 on Amazon when I got them and the sound and battery life have been great. But, when we had warmer weather during the summer I found one issue, they are really hot when worn for eight hours straight.

So, I decided to look for some lighter, earbud style, headphones. I did have a pair of Taotronics Sound Liberty 53’s, again a cheap pair from Amazon. The trouble with these was that the fit was just horrible and the sound was really weak compared to the Sound Surge 60’s. So, after researching what people thought were the best ear buds, I brought some Sony WF-1000XM3 in black. I opted for these as the reviews were glowing and in particular raved about the fit and sound. They are indeed a great set of earbuds and the fact they provide a variety of tips to suit all ear fitments is brilliant. The sound and noise-cancelling are just as good as a pair of over-ear headphones.

As always, it is fun to pair new Bluetooth gadgets up with Linux. While the situation is a lot better of late, it is not always straightforward. I have Blueberry installed in i3 to handle Bluetooth management and it has worked well with both sets of the Taotronics. The Sony’s would show up in Blueberry and even look like they are connected but I would get no sound.

So slipping back into 2015 I hit the terminal and hit up bluetoothctl:

$ bluetoothctl

bluetooth# power on
bluetooth# agent on
bluetooth# default-agent
bluetooth# scan on

At this point, you will see the available devices to pair with scrolling on the screen. Enable pairing on the ear buds and then enter:

bluetooth# pair XX:XX:XX:XX:XX:XX:XX 

(replace XX:XX:XX:XX:XX:XX:XX with the id for the ear buds as shown on the screen. You can type the first few characters and then tab and it should select the right id.)

Once the paired message is displayed then type:

bluetooth# trust XX:XX:XX:XX:XX:XX:XX 
bluetooth# connect XX:XX:XX:XX:XX:XX:XX 

(Again use the ear buds id)

At this point, you should hear the “connected” message in the earbuds. You can now exit bluetoothctl.

I have found that once you have done this once, connecting via Blueberry works fine.

I have been really happy with the WF-1000XM3 earbuds. One of the main issues for me when looking for ear buds was the battery life and I have found no issue here. They easily last an average day for me and if I slip them off then I put them in the case which can hold up to three days charge. The sounds is brilliant and I don’t feel like my ears ache after a day wearing them. If only Linux Bluetooth was as painless.

If you have any questions on using bluetoothctl or about the WF-1000XM’s then let me know via twitter or email.