Filco Mechanical Keyboard Connects Antergos Via Bluetooth Protocol

I have got a new mechanical keyboard, of course, I am really like it. As far as I am concerned, my typing speed is faster than before, also comfortable and help me with 10 finger typing.

Discovering Bluetooth application marketplace, I choose Bluez.

Bluez provides the Bluetooth protocol stack. Setting up a Bluez is easy and straightforward.

As you know, Antergos is a child of Arch Linux distribution. So Antergos uses pacman is package manager.

Install Bluez

Firstly, need to install bluez.

[email protected] ~]$ sudo pacman -S bluez bluez-utils .
warning: bluez-5.50-6 is up to date -- reinstalling .
warning: bluez-utils-5.50-6 is up to date -- reinstalling .
resolving dependencies...
looking for conflicting packages...
Packages (2) bluez-5.50-6 bluez-utils-5.50-6 .
Total Installed Size: 7.06 MiB .
Net Upgrade Size: 0.00 MiB .
:: Proceed with installation? [Y/n] Y .
(2/2) checking keys in keyring . [###############################################] 100% .
(2/2) checking package integrity [###############################################] 100% .
(2/2) loading package files [###############################################] 100% .
(2/2) checking for file conflicts [###############################################] 100% .
(2/2) checking available disk space [###############################################] 100% .
:: Processing package changes... (1/2) reinstalling bluez [###############################################] 100% .
(2/2) reinstalling bluez-utils [###############################################] 100% .
:: Running post-transaction hooks...
(1/2) Reloading system manager configuration...
(2/2) Arming ConditionNeedsUpdate...

Then start bluez systemd.

[email protected] ~]$ sudo systemctl status bluetooth.
bluetooth.service bluetooth.target
[email protected] ~]$ sudo systemctl status bluetooth.
bluetooth.service bluetooth.target
[email protected] ~]$ sudo systemctl status bluetooth.service .
● bluetooth.service - Bluetooth service .
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled) .
Active: active (running) since Mon 2019-03-04 21:57:44 +07; 46min ago .
Docs: man:bluetoothd(8) .
Main PID: 898 (bluetoothd) .
Status: "Running" .
Tasks: 1 (limit: 4915) .
Memory: 2.1M .
CGroup: /system.slice/bluetooth.service .
└─898 /usr/lib/bluetooth/bluetoothd .

And enable autostart .

[email protected] ~]$ sudo systemctl enable bluetooth.service .

Pairing Bluetooth .

Start bluetoothctl daemon to register agent.

[email protected] ~]$ sudo bluetoothctl
Agent registered .

Show controller.

[bluetooth]# show .
Controller 00:1A:7D:DA:71:13 (public) .
Name: cliff #1 .
Alias: cliff #1 .
Class: 0x00000000 .
Powered: no .
Discoverable: no .
Pairable: yes .
UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb) .
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) .
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) .
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) .
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) .
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb) .
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) .
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb) .
Modalias: usb:v1D6Bp0246d0532 .
Discovering: no .

List the controller, often have two controllers [channels] .

[bluetooth]# list .
Controller 00:1A:7D:DA:71:13 cliff #1 [default] .
Controller 28:16:AD:34:5F:6B cliff .

And pair device .

[bluetooth]# devices .
[bluetooth]# paired-devices .

Power on two controllers
[bluetooth]# power on .
[CHG] Controller 00:1A:7D:DA:71:13 Class: 0x000c0000 .
Changing power on succeeded .
[CHG] Controller 00:1A:7D:DA:71:13 Powered: yes .

By typing "devices", I will be able to see all of nearby devices.

[bluetooth]# devices . Device 00:18:00:3D:D4:28 FILCO Bluetooth Keyboard .
Device 59:52:5B:15:0B:82 59-52-5B-15-0B-82 .
Device 90:CD:B6:80:7A:76 KDL-50W800C .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -69 .

Then FILCO keyboard appears. Agent bluetooth must turn on.

[bluetooth]# agent on .
Agent is already registered .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -53 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -62 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -71 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -62 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -73 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -65 .

Importantly, start pairing my laptop with FILCO keyboard by using MAC of FILCO keyboard.

[bluetooth]# pair 00:18:00:3D:D4:28 .
Attempting to pair with 00:18:00:3D:D4:28 .
[CHG] Device 00:18:00:3D:D4:28 Connected: yes .
[agent] PIN code: 529794 .

Please type exactly 529794 on the Filco keyboard.

CHG] Device 00:18:00:3D:D4:28 Modalias: usb:v0A5Cp8502d011B .
[CHG] Device 00:18:00:3D:D4:28 UUIDs: 00001124-0000-1000-8000-00805f9b34fb .
[CHG] Device 00:18:00:3D:D4:28 UUIDs: 00001200-0000-1000-8000-00805f9b34fb .
[CHG] Device 00:18:00:3D:D4:28 ServicesResolved: yes .
[CHG] Device 00:18:00:3D:D4:28 Paired: yes .
Pairing successful .
[CHG] Device 00:18:00:3D:D4:28 ServicesResolved: no .
[CHG] Device 00:18:00:3D:D4:28 Connected: no
[CHG] Device 59:52:5B:15:0B:82 RSSI: -51 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -61 .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -53 .
[bluetooth]# trust 00:18:00:3D:D4:28 .
[CHG] Device 00:18:00:3D:D4:28 Trusted: yes .
Changing 00:18:00:3D:D4:28 trust succeeded .
[CHG] Device 59:52:5B:15:0B:82 RSSI: -64 .
[bluetooth]# connect 00:18:00:3D:D4:28 .
Attempting to connect to 00:18:00:3D:D4:28 .
[CHG] Device 00:18:00:3D:D4:28 Connected: yes .
Connection successful .

But the bluetooth is still scanning while Filco keyboard are already connected. So, go to turn it off.

[FILCO Bluetooth Keyboard]# scan off .
[CHG] Device 66:9F:70:77:80:E2 RSSI is nil .
[CHG] Device 90:CD:B6:80:7A:76 RSSI is nil .
[CHG] Device 59:52:5B:15:0B:82 RSSI is nil .
[CHG] Device 00:18:00:3D:D4:28 RSSI is nil .
[CHG] Controller 00:1A:7D:DA:71:13 Discovering: no .
Discovery stopped .
[DEL] Device 59:52:5B:15:0B:82 59-52-5B-15-0B-82 .
[DEL] Device 90:CD:B6:80:7A:76 KDL-50W800C .
[DEL] Device 66:9F:70:77:80:E2 66-9F-70-77-80-E2 .

Config Bluetooth Auto Power-On After Boot

Also, need to config Bluetooth auto power-on after boot. Because of Bluetooth will not power on after boot. Of course, there are have one former method by using hciconfig hci0 up is deprecated. Now you just need to edit the parameter as following.

[email protected] ~]$ sudo vim /etc/bluetooth/main.conf .
AutoEnable=true

FILCO keyboard already connected Antergos.

Reference

Arch Linux Bluetooth Installation .

Tien Phan

Read more posts by this author.

Subscribe to

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!