diff --git a/content/bluetooth.md b/content/bluetooth.md
index 37c101b898..408a00a859 100644
--- a/content/bluetooth.md
+++ b/content/bluetooth.md
@@ -15,111 +15,224 @@ section: network-troubleshooting
tableOfContents: true
---
-## Important Notes About Bluetooth
+## Pairing and Removing Devices
-Bluetooth is a bit odd.
-There are a lot of factors that go into whether Bluetooth devices work together as expected.
+To pair a new device, open the Bluetooth applet located near the top-right corner of the screen, expand the "Other Bluetooth devices" drop-down, and select the device you wish to pair with.
-### Bluetooth version
+
-Bluetooth 5.0 is backwards compatible with older Bluetooth versions, but older bluetooth versioned devices are not always compatible with newer versions or devices.
+Alternatively, open the Settings app, navigate to the Bluetooth page, and select the device there.
-### Signal Interference
+
-Bluetooth uses the same bandwidth as the 2.4Ghz Wi-Fi band, and in most of our machines it is on the same chip as the Wi-Fi module. They usually have two antennae, one for Bluetooth, and one for Wi-Fi, but it is possible for other Wi-Fi or Bluetooth devices signals to cross and to cause connection issues. If users are in an area crowded with other Wi-Fi networks or devices, the interference from these outside sources can impact performance and range.
+Follow any prompts you see to confirm the connection (e.g. by entering a pairing code displayed on your device).
-### Device Specific Differences
+To temprarily disconnect from a device, click the device in the Bluetooth applet.
-Every Bluetooth device is different. They use the same or similar protocols, but the printed circuit boards (PCBs), are specific to each device, and the firmware they are running is often custom designed, and closed-source.
+
-Some of the code and technologies that make Bluetooth work reliably are patented, and only device vendors who have licensed the permission to use that patented technology will be able to experience the full benefits (for more information see the "Audio Input/Output" section below.)
+Alternatively, in the Settings app, click the three dots to the right of the device, and click Disconnect (to temporarily disconnect) or Forget (to unpair the device, requiring a manual re-pairing to use it again later).
-> Some devices, such as Apple or Sony headphones, particularly take advantage of these patents and technologies to ensure they work well with similar devices. Often these devices are not tested against Linux machines. That doesn't mean these devices will not work, only that behavior or performance may vary.
+
-### Kernel Versions
+## Troubleshooting
-As the Linux kernel develops, support for more devices are added. Sometimes Bluetooth devices will work better in a different kernel version.
+If Bluetooth isn't working, first try toggling airplane mode on and back off. This can be done using a keyboard shortcut if your keyboard has one (look for a key with an airplane symbol, commonly `Fn`+`F11` or `Fn`+`F9` on System76 laptops). Otherwise, use the option at the top of the Wi-Fi menu near the top-right corner of your screen.
-### OS Versions
+
-Similar to the kernel versions. Improvements are often made in newer versions of Ubuntu and Pop!\_OS. Running software updates is always a good idea, followed by a reboot.
+Next, make sure Bluetooth is enabled in the top bar, or in the Bluetooth page of the Settings application.
-
+
-### Configuration Issues
+
+
+If Bluetooth still isn't working, press `Super`+`T` to launch a Terminal, then check that the Bluetooth service is running with the following command:
+
+```bash
+sudo systemctl status bluetooth
+```
-Sometimes Bluetooth devices are working correctly, but something in settings needs to be reset.
+
-The easiest way to test this is to "forget" the paired Bluetooth device, and pair it again.
+If it's stopped, enable it to auto-start and immediately start it using the following command:
-A more thorough way of testing this would be to create a [test user](/articles/other-accounts), or boot from a [Live Disk](/articles/live-disk) to see if Bluetooth works in either case.
-If it does, config files may need deleted. If it doesn't (especially in the Live Disk), reinstalling the OS may solve the problem.
-Reinstalling the OS won't affect Bluetooth hardware directly, but resetting and starting with a clean slate can solve a slew of problems and save time hunting for a specific file or bug.
+```bash
+sudo systemctl enable --now bluetooth
+```
-## Setting Expectations
+### Using Bluetooth Manager (blueman)
-Because of all of these factors, if the steps outlined in the Bluetooth troubleshooting article, and the previous troubleshooting steps don't resolve the issue, the issue may not be resolved at all.
-Or, in a future update or change to the system, the devices may start working again. In some cases (many cases) users will not experience any issue with Bluetooth at all.
+A third-party program called Bluetooth Manager can sometimes pair and trust Bluetooth devices better than the default Bluetooth settings. Install it with this command:
-### Audio Input/Output
+```bash
+sudo apt install blueman
+```
+
+> After installing the above package, fully shut down the machine and then power it back on, rather than rebooting. This ensures the hardware completely resets.
-Bluetooth audio devices, such as headphones and speakers, usually default to the A2DP protocol, which works effectively as an audio output source.
+Open Bluetooth Manager by pressing `Super` and searching for "blueman":
-Bluetooth devices with microphones built in, can be used if the device supports HFP/HSP. However, without the technology that companies like Sony have patented, the solution is to divide up the audio stream so that some of it is used for audio out and some for audio in.
-This process lowers the sound quality of the stream when in HSP/HFP mode, so audio may be "tinny," compressed (lower-fidelity), or at a lower volume. That is expected behavior.
+
-## Bluetooth Troubleshooting
+On first launch, you may be asked if Bluetooth should be enabled automatically. Choose `Yes`.
-Bluetooth issues can be troubleshooted in several ways. The first thing to check is toggling airplane mode which will sometimes get Bluetooth functioning again. Next, make sure Bluetooth is enabled in the top bar, or in the Bluetooth system settings.
+
-Then, try reinstalling Bluetooth related software with this command, depending on the verison of Pop!\_OS you're using.
+If the device is already paired, start by removing it to allow for a fresh connection. You can do this by selecting the deivce and clicking the `-` button.
-*For Pop!\_OS 22.04 or higher:*
+
+
+Next, click the Search button, select your device from the list, and click the key icon to pair it again:
+
+
+
+Finally, right-click your paired device and select `Connect` to connect to it:
+
+
+
+### Check TLP Settings
+
+If `tlp` is installed, then there may be settings interfering with Bluetooth functionality. Edit this file and disable any WiFi and Bluetooth power saving features:
```bash
-sudo apt reinstall --purge bluez gnome-bluetooth
+sudo nano /etc/tlp.conf
```
-*For Pop!\_OS 21.10 or 20.04:*
+### Bluetooth Version
-```bash
-sudo apt install --reinstall bluez gnome-bluetooth indicator-bluetooth pulseaudio-module-bluetooth
+Computers with newer Bluetooth versions will generally work with accessories built for older Bluetooth versions, but accessories requiring newer Bluetooth versions may not work on computers with older Bluetooth versions.
+
+You can check your computer's Bluetooth version by installing and running the `inxi` tool:
+
+```
+sudo apt install inxi
+inxi -E
```
-After reinstalling the above packages, fully shut down the machine and then power it back on, rather than rebooting. This ensures the hardware completely resets.
+The Bluetooth version for each wireless card will be displayed at the end of the `Report` line. For example, if the output says `bt-v: 5.2`, then your computer supports Bluetooth 5.2 (and below).
+
+### Signal Interference
+
+Bluetooth uses the same bandwidth as the 2.4Ghz Wi-Fi band, and in many computers, it uses the same wireless card and antennas as the W-Fi. If you're in an area crowded with other Wi-Fi networks or devices, the interference can impact Bluetooth performance and range.
-If `tlp` is installed, then there may be settings interfering with Bluetooth functionality. Edit this file and disable Wifi and Bluetooth power saving features:
+### Device-Specific Differences
+
+Every Bluetooth device is different. They use the same or similar protocols, but the printed circuit boards (PCBs) are specific to each device, and the firmware they run is often custom-designed and closed-source. Many devices are not tested against Linux systems by their manufacturers.
+
+Some devices, such as Apple or Sony headphones, may utilize patentend technologies that aren't available on all computers or operating systems. That doesn't mean these devices won't work, but does mean their behavior or performance may vary.
+
+### Audio Input/Output
+
+Several audio protocols exist for handling audio steaming over Bluetooth:
+
+- **A2DP (Advanced Audio Distribution Profile)**: This protocol allows high-quality stereo audio streaming. However, with some devices, it only supports audio in one direction at a time (e.g. speakers only, no microphone).
+- **HSP (Bluetooth Headset Protocol) and HFP (Hands-Free Protocol):** These protocols allow bidirectional audio streaming (e.g. speakers and microphone at the same time), but are limited to lower-quality, mono audio.
+
+You can try a different device profile by navigating to Settings -> Sound -> Device Profiles and using the drop-down next to your device.
+
+### OS & Kernel Versions
+
+As the Linux kernel develops, support for more devices are added. Sometimes, Bluetooth devices will work better in a different kernel version.
+
+Running software updates and rebooting can ensure you're using the most recent available software for Bluetooth support.
+
+#### Linux Firmware Packages
+
+Sometimes, newer Linux firmware packages will contain bux fixes that aren't yet in the standard software repositories. Newer Linux firmware packages can be downloaded from here:
+
+[http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/](http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/)
+
+Then, they can be installed with this command (filling in the version numbers in the filename as appropriate):
```bash
-sudo gedit /etc/default/tlp
+sudo dpkg -i linux-firmware_#.###.#_all.deb
```
-### Useful Programs
+Rebooting is required to load the newly installed firmware.
-There is a program called Bluetooth Manager which is included with XFCE. It can sometimes pair and trust Bluetooth devices better than the default Bluetooth settings. Install it with:
+### Configuration Issues
-```bash
-sudo apt install blueman
+Beyond forgetting and re-pairing deivces, you can check if any local configuration files are causing problems with a device by creating a [test user](/articles/other-accounts) or booting from a [live disk](/articles/live-disk) to see if Bluetooth works in either case. If it does, config files in your normal user account may need to be deleted.
+
+### Using bluetoothctl
+
+The `bluetoothctl` program offers control, flexibility, and efficiency through precise management of Bluetooth devices via the terminal. For troubleshooting, `bluetoothctl` provides direct feedback and logs, which can help identify connection issues, detect devices, or configure settings in real time. It’s also useful for headless or remote setups where a user interface might not be available.
+
+To get started, ensure Bluetooth is unblocked by running `rfkill` to check and enable it if necessary. Use the command `rfkill unblock bluetooth` to ensure that Bluetooth is not disabled at the system level.
+
+Then, run `bluetoothctl` in a terminal to enter the Bluetooth control tool.
+
+
+
+If you have multiple Bluetooth controllers, choose the one you wish to connect to the device:
+
+Check list of controllers:
+```
+list
```
-Then, run Bluetooth Manager. Check for the device being trusted, and also try re-pairing in that program.
+Check controller information:
+```
+info
+```
+
+Select the controller you want to use:
+```
+select
+```
+
+Make sure to power it on
+```
+power on
+```
+
+
+Look for the device you want to connect:
+```
+scan on
+```
+Add trusted device
+```
+trust
+```
+See list of paired devices:
+
+```
+devices
+```
+
+To connect the device:
+```
+connect
+```
+
+
+Successful device connection:
+
+
### Useful Commands
-To show if the Bluetooth module (driver) is loaded, and see what system messages have been logged:
+#### Logging
+
+To show kernel logs related to Bluetooth:
```bash
-lsmod | grep bluetooth
-dmesg | grep Bluetooth
+sudo dmesg | grep -i Bluetooth
```
-To check if the service that handles Bluetooth is running:
+To monitor Bluetooth events (try leaving this command running while pairing or using a device to see any error messages or failures):
```bash
-sudo systemctl status bluetooth
+sudo btmon
```
-To check if Bluetooth or Wireless (Wi-Fi) are software-blocked:
+#### Blocks
+
+The `rfkill` utility shows whether Bluetooth or Wi-Fi are blocked in software or hardware. Generally, this information corresponds to whether airplane mode is enabled, but it can be useful to check separately in case of bugs in the airplane mode GUI or other components.
+
+To check if Bluetooth or Wireless LAN (Wi-Fi) are blocked:
```bash
rfkill list
@@ -127,7 +240,7 @@ rfkill list
To unblock Bluetooth:
-```
+```bash
sudo rfkill unblock bluetooth
```
@@ -137,67 +250,55 @@ To unblock all wireless types:
sudo rfkill unblock all
```
-To manually reload the Bluetooth USB kernel module:
+#### Kernel Module
-```bash
-sudo rmmod btusb
-sudo modprobe btusb
-```
-
-To monitor Bluetooth-related messages (try leaving this command running while pairing or using a device to see any error messages or failures):
+To show what Bluetooth kernel modules (drivers) are loaded:
```bash
-sudo btmon
+lsmod | grep bluetooth
```
-To reset the Bluetooth device profiles and require re-pairing all devices (this can help if your Bluetooth audio device is stuck in an HSP/HFP profile and will not switch to A2DP mode after updates [1](https://github.com/bluez/bluez/issues/157)):
+To manually reload the Bluetooth USB kernel module:
```bash
-sudo rm -r /var/lib/bluetooth/
+sudo rmmod btusb
+sudo modprobe btusb
```
-*For Pop!\_OS 21.10 or 20.04:*
+#### Resetting Bluetooth Devices
-Older Pop!\_OS versions used a PulseAudio module for Bluetooth audio. It's typically loaded by default, but sometimes a manual load can get Bluetooth headsets working again:
+Resetting the Bluetooth device profiles will require re-pairing all devices:
```bash
-pactl load-module module-bluetooth-discover
+sudo rm -r /var/lib/bluetooth/
```
-## Additional Info
+This can help if your Bluetooth audio device is stuck on an HSP/HFP profile and won't switch to A2DP mode.
-Here are a few additional tidbits about the Bluetooth system that may help with troubleshooting.
+### Controlling Audio
-### Controlling audio
-
-Once you are connected to a Bluetooth speaker, you may need to change where your current audio is "routed". You can get a more advanced interface to settings on audio with the program called PulseAudio Volume Control. To install, run this command:
+Once you're connected to a Bluetooth speaker, you may need to change where your current audio is "routed." PulseAudio Volume Control provides a more advanced GUI interface for routing audio. To install it, run this command:
```bash
sudo apt install pavucontrol
```
-There will be a drop-down in the Playback tab for each of your applications that is outputting sound that you should be able to change to your Bluetooth speaker.
-
-### Linux Firmware
+There will be a drop-down in the Playback tab for each of your applications that's outputting sound, which you can use to send audio from individual applications to your Bluetooth speaker.
-Occasionally the kernel and/or Linux firmware will have problems. Sometimes, newer Linux firmware packages will have fixed bugs that aren't yet in the repositories. They can be downloaded from here:
-
-[http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/](http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/)
+### File Transfer
-Then they can be installed with this command:
+Sometimes, additional programs need to be installed for mobile device file transfer to work. Install the Object Exchange (OBEX) packages with this command:
```bash
-sudo dpkg -i linux-firmware_#.###.#_all.deb
+sudo apt install obexfs obexftp
```
-> You'll need to replace the numbers/file name with the most current version after downloading it.
+Then connect (pair) to the device and see if file sending works.
-### File Transfer
+On GNOME environments (such as Pop!_OS 22.04 and below), you may need to enable the Personal File Sharing option in Settings for file receiving to work.
-Sometimes, additional programs need to be installed for mobile equipment file transfer. Please install the transfer tool with this command:
+## Get Support for Ongoing Bluetooth Issues
-```bash
-sudo apt install obexfs obexftp
-```
+If you own a System76 computer and you're still experiencing Bluetooth problems after troubleshooting with the above steps, [open a support ticket](https://system76.com/contact/support) for additional assistance.
-Then connect (pair) to the device and see if send files works. To receive files over Bluetooth you will need to enable the option in Personal File Sharing.
+Bluetooth compatibility can depend on a variety of hardware and software factors. While Bluetooth often works flawlessly, certain devices may never be trouble-free with a particular computer or OS, while other devices may start working with software updates at a later date.
diff --git a/static/images/bluetooth/airplane-mode.png b/static/images/bluetooth/airplane-mode.png
new file mode 100644
index 0000000000..af3e5b842c
Binary files /dev/null and b/static/images/bluetooth/airplane-mode.png differ
diff --git a/static/images/bluetooth/blueman-connect.png b/static/images/bluetooth/blueman-connect.png
new file mode 100644
index 0000000000..28d3fb5f1c
Binary files /dev/null and b/static/images/bluetooth/blueman-connect.png differ
diff --git a/static/images/bluetooth/blueman-first-launch.png b/static/images/bluetooth/blueman-first-launch.png
new file mode 100644
index 0000000000..4f3e3a435a
Binary files /dev/null and b/static/images/bluetooth/blueman-first-launch.png differ
diff --git a/static/images/bluetooth/blueman-launcher.png b/static/images/bluetooth/blueman-launcher.png
new file mode 100644
index 0000000000..303cb6f3d1
Binary files /dev/null and b/static/images/bluetooth/blueman-launcher.png differ
diff --git a/static/images/bluetooth/blueman-pair.png b/static/images/bluetooth/blueman-pair.png
new file mode 100644
index 0000000000..b18c7e12f4
Binary files /dev/null and b/static/images/bluetooth/blueman-pair.png differ
diff --git a/static/images/bluetooth/blueman-remove.png b/static/images/bluetooth/blueman-remove.png
new file mode 100644
index 0000000000..d1d3662b0c
Binary files /dev/null and b/static/images/bluetooth/blueman-remove.png differ
diff --git a/static/images/bluetooth/bluetooth-enable-applet.png b/static/images/bluetooth/bluetooth-enable-applet.png
new file mode 100644
index 0000000000..4df4e43213
Binary files /dev/null and b/static/images/bluetooth/bluetooth-enable-applet.png differ
diff --git a/static/images/bluetooth/bluetooth-enable-settings.png b/static/images/bluetooth/bluetooth-enable-settings.png
new file mode 100644
index 0000000000..5c97d50430
Binary files /dev/null and b/static/images/bluetooth/bluetooth-enable-settings.png differ
diff --git a/static/images/bluetooth/bluetooth_10.png b/static/images/bluetooth/bluetooth_10.png
new file mode 100644
index 0000000000..99bc9ba2cf
Binary files /dev/null and b/static/images/bluetooth/bluetooth_10.png differ
diff --git a/static/images/bluetooth/bluetooth_11.png b/static/images/bluetooth/bluetooth_11.png
new file mode 100644
index 0000000000..84746f607c
Binary files /dev/null and b/static/images/bluetooth/bluetooth_11.png differ
diff --git a/static/images/bluetooth/bluetooth_12.png b/static/images/bluetooth/bluetooth_12.png
new file mode 100644
index 0000000000..2417cf03c2
Binary files /dev/null and b/static/images/bluetooth/bluetooth_12.png differ
diff --git a/static/images/bluetooth/bluetooth_13.png b/static/images/bluetooth/bluetooth_13.png
new file mode 100644
index 0000000000..99d1f306f6
Binary files /dev/null and b/static/images/bluetooth/bluetooth_13.png differ
diff --git a/static/images/bluetooth/bluetooth_5.png b/static/images/bluetooth/bluetooth_5.png
new file mode 100644
index 0000000000..a36151bf52
Binary files /dev/null and b/static/images/bluetooth/bluetooth_5.png differ
diff --git a/static/images/bluetooth/bluetooth_6.png b/static/images/bluetooth/bluetooth_6.png
new file mode 100644
index 0000000000..e25dc78236
Binary files /dev/null and b/static/images/bluetooth/bluetooth_6.png differ
diff --git a/static/images/bluetooth/bluetooth_7.png b/static/images/bluetooth/bluetooth_7.png
new file mode 100644
index 0000000000..0ab640f30a
Binary files /dev/null and b/static/images/bluetooth/bluetooth_7.png differ
diff --git a/static/images/bluetooth/bluetooth_8.png b/static/images/bluetooth/bluetooth_8.png
new file mode 100644
index 0000000000..de428be830
Binary files /dev/null and b/static/images/bluetooth/bluetooth_8.png differ
diff --git a/static/images/bluetooth/bluetooth_9.png b/static/images/bluetooth/bluetooth_9.png
new file mode 100644
index 0000000000..ffb0ce4c33
Binary files /dev/null and b/static/images/bluetooth/bluetooth_9.png differ
diff --git a/static/images/bluetooth/devices-available-applet.png b/static/images/bluetooth/devices-available-applet.png
new file mode 100644
index 0000000000..7193f5fe7b
Binary files /dev/null and b/static/images/bluetooth/devices-available-applet.png differ
diff --git a/static/images/bluetooth/devices-available-settings.png b/static/images/bluetooth/devices-available-settings.png
new file mode 100644
index 0000000000..074acdfbb7
Binary files /dev/null and b/static/images/bluetooth/devices-available-settings.png differ
diff --git a/static/images/bluetooth/devices-connected-applet.png b/static/images/bluetooth/devices-connected-applet.png
new file mode 100644
index 0000000000..e60cb59fc4
Binary files /dev/null and b/static/images/bluetooth/devices-connected-applet.png differ
diff --git a/static/images/bluetooth/devices-connected-settings.png b/static/images/bluetooth/devices-connected-settings.png
new file mode 100644
index 0000000000..462f65dda6
Binary files /dev/null and b/static/images/bluetooth/devices-connected-settings.png differ