🛠 Réveiller le Bluetooth de l'AP6212 : hci_uart et firmware BCM

Banana Pi BPI-M2 Zero (Allwinner H2+ / H3) · avance · Schéma : IMG-bananapi-m2-zero-avance-3-bluetooth-ap6212-m2-zero.svg — BPI-M2 Zero avec la puce AP6212 surlignée, lignes UART1 (PG11-PG13, RTS/CTS) reliant le SoC au section Bluetooth ; terminal bluetoothctl affichant un scan d'appareils BLE.

Objectifs

Sur le BPI-M2 Zero, le Bluetooth de la combo AP6212 n'est pas un contrôleur USB : c'est une interface HCI série sur UART1 (nœud brcm,bcm43438-bt dans le device tree, 1 500 000 bauds, RTS/CTS sur PG11-PG13). Selon les versions de noyau, le chargement du firmware et l'attachement du discipline hci_uart ne se font pas seuls — les retours utilisateurs documentent un « no BT controller found » nécessitant de charger hci_uart et d'attacher le port série à la main. Vous allez amener le contrôleur jusqu'à bluetoothctl et un scan BLE.

Matériel

Code complet

sudo apt update && sudo apt install -y bluez

# 1) Le noyau a-t-il déjà créé le contrôleur ?
bluetoothctl list
dmesg | grep -i -e bluetooth -e hci -e 4343

# 2) Sinon, apport manuel : firmware + discipline hci_uart + attach UART1
sudo apt install -y psmisc
sudo rfkill unblock bluetooth 2>/dev/null
sudo modprobe hci_uart
# Attacher le port série de l'UART1 au discipline HCI (BCM)
sudo sh -c 'echo "bcm43xxx 0" > /sys/bus/serial/device_add' 2>/dev/null || \
sudo btattach -n -B -s 1500000 /dev/ttyS1
sleep 3
hciconfig -a          # hci0 doit être apparu

# 3) Scanner
bluetoothctl
#   power on
#   agent on
#   scan on        # les périphériques BLE défilent
#   quit

# 4) Rendre le réveil permanent si nécessaire
echo hci_uart | sudo tee /etc/modules-load.d/bt.conf

Vérification attendue

Après l'attachement, hciconfig -a affiche hci0 avec une adresse MAC ; bluetoothctl scan on fait défiler des périphériques (montres, téléphones, capteurs) à quelques mètrès ; le lien reste stable après power on/off. Le Wi-Fi et le BT cohabitent sur la même antenne.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels