Interphone BLE SF32 (Talkback)¶
Qu'est-ce que Talkback ?¶
OpenSiFli Talkback est un exemple BLE de push-to-talk (PTT) multiappareil pour le kit de développement SF32LB52-DevKit-ULP, également appelé Huangshan Pi. En mode Master, un appareil crée une salle ; en mode Slave, il en recherche une et la rejoint. Une fois connecté, l'utilisateur maintient la touche de parole pour transmettre et la relâche pour arrêter. La référence officielle prend en charge jusqu'à huit appareils et permet à trois d'entre eux au maximum de parler simultanément.
Le projet utilise Opus pour le codage vocal et associe une LED RGB, des touches et un écran dans une interface locale minimale. Il permet également au Slave de se reconnecter avec une seule touche, affiche la tension et le niveau de batterie, passe en veille après 60 secondes sans entrée et gère l'allumage et l'extinction par appui long. Il constitue ainsi une référence plus complète pour un interphone portable qu'un simple exemple audio point à point.
Pourquoi l'implémentation SF32 ?¶
Ce parcours réunit BLE, audio, écran, touches, surveillance de la batterie et fonctions basse consommation de SF32LB52 dans une base opérationnelle. Une équipe peut évaluer le réseau et les performances audio sur du matériel de développement pris en charge avant d'investir dans une conception RF, audio et d'alimentation spécifique.
« Jusqu'à huit appareils et trois locuteurs simultanés » décrit une limite de l'implémentation amont, et non une capacité produit validée pour toutes les distances, interférences, pertes de paquets et configurations de simultanéité. La documentation amont ne précise pas non plus l'authentification des salles, la politique de chiffrement de la liaison, une garantie de confidentialité vocale, le statut réglementaire radio ni l'ensemble des conditions de licence du composant binaire talk_back. Chacun de ces points nécessite une revue produit distincte.
Note sur la source de la carte : La page chinoise de SiFli consacrée à la carte ULP est explicitement signalée comme pas encore disponible ; elle indique seulement les usages pour capteurs basse consommation et objets connectés portés, les options de capteurs à 3 ou 6 axes et des points de test réservés aux mesures basse consommation. Elle ne constitue pas une spécification complète de la carte. Vérifiez les périphériques à partir de la révision réelle et du schéma ; le comportement Talkback décrit ci-dessous provient du code applicatif figé.
Résultat, portée et critères d'entrée¶
Résultat attendu : utiliser au moins deux cartes dont la révision est identifiée pour reproduire la création d'une salle, la rejoindre, communiquer en PTT, quitter et se reconnecter, entrer en veille et se réveiller, ainsi que vérifier l'état de la batterie ; réunir ensuite assez de preuves pour décider si un matériel spécifique se justifie.
Hors portée : cette page ne démontre ni une couverture longue portée, ni une qualité vocale en liaison dégradée, ni un chiffrement de bout en bout, ni une certification, ni une consommation en production, ni la constance des antennes, ni une conformité réglementaire, ni une compatibilité avec tous les appareils BLE.
Critères d'entrée : l'équipe sait installer un environnement de compilation SiFli-SDK, flasher le firmware via UART, examiner les journaux et raccorder sans risque un haut-parleur et une batterie. Une base vocale complète nécessite au moins deux cartes de même révision.
| Domaine | Exigence de base | Preuves à conserver avant de poursuivre |
|---|---|---|
| Périmètre de reproduction | Commencer sans modifier la cible amont, les dépendances ni les interactions par défaut | Révision de carte, commit de l'application, révision du SDK, résolution des dépendances et empreinte du firmware |
| Périmètre fonctionnel | Vérifier création/jonction, PTT, sortie, reconnexion du Slave, veille/réveil et rapport de batterie | Déroulement des opérations, journaux UART, états des LED et résultats de récupération après panne |
| Périmètre produit | Évaluer séparément l'acoustique, la RF, la sécurité, la confidentialité, les licences, l'alimentation et la réglementation | Risque, responsable, plan de traitement et décision de poursuivre ou d'arrêter |
Spécifications matérielles et logicielles¶
Spécification matérielle¶
| Composant | Spécification requise | Rôle | Statut | Approvisionnement | Compatibilité et remplacement |
|---|---|---|---|---|---|
| SF32LB52-DevKit-ULP / LCKFB-HSPI-SF32LB52-ULP | Cible sf32lb52-lchspi-ulp ; au moins 2 cartes et au plus 8 |
Exécute Talkback et fournit BLE, microphone, écran, touches, LED RGB, alimentation et voies audio | Obligatoire | Référence de carte μForge ; page de la carte LCKFB ; boutique SiFli de kits/échantillons | Consigner chaque révision matérielle ; une carte SF32LB52 non validée n'est pas un remplacement équivalent |
| Haut-parleur | Un haut-parleur externe de 3 W/4 Ω ou 2 W/8 Ω par carte, raccordé via le connecteur GH-1.25 mm | Restitue la voix reçue | Obligatoire | Souvent inclus dans le kit de la carte ; vérifier le contenu auprès de la référence de carte avant achat | Ne raccordez pas de charge dépassant les limites de l'amplificateur Class-D et du connecteur intégrés |
| Câbles USB de données et hôte | Un câble USB-C de données par carte ; un hôte capable d'exécuter les outils SiFli-SDK | Alimentation, flashage via UART et journalisation | Obligatoire | Câble USB-C de données standard ; outils disponibles via SiFli-SDK | Un câble de charge seul ne permet pas de flasher le firmware ; consigner les ports et l'environnement hôte |
| Batterie lithium monocellule | Compatible avec le connecteur, la polarité et le circuit de charge de la carte | Mobilité, validation de la veille/du réveil et du niveau de batterie | Obligatoire pour la validation produit ; optionnelle pour un essai fonctionnel sur banc | Le dépôt Talkback ne publie pas de canal d'approvisionnement distinct ; vérifier l'interface dans la référence de carte avant approvisionnement | Vérifier polarité, plage de tension, capacité et protection avant branchement ; l'apparence du connecteur ne garantit pas la compatibilité |
| Microphone, touches, LED RGB et écran intégrés | Composants d'origine de la carte de développement | Capte la voix et affiche rôle, appairage, émission, réception et veille | Intégrés | Fournis avec la carte ; pas de source distincte | Le remplacement de l'audio ou de l'IHM exige des tests de non-régression du gain, du minutage, des codes de touche et de la correspondance des états |
Spécification logicielle¶
| Paquet ou service | Version ou révision requise | Rôle | Statut | Source | Compatibilité et mises à jour |
|---|---|---|---|---|---|
OpenSiFli sifli-sdk-demo/talkback |
Commit 6fa55ac évalué pour cet article |
Application, configuration de carte et point d'entrée de la compilation | Obligatoire | Répertoire source Talkback | La branche amont main évolue ; verrouillez un commit avant de recueillir des preuves. Le chemin actuel est talkback/project ; celui indiqué dans le README, example/ble/talkback/project, est obsolète |
| SiFli-SDK | conanfile.py déclare la compatibilité ^2.4 ; aucun commit exact du SDK n'est verrouillé en amont |
Base RT-Thread, BLE, audio, alimentation, compilation et flashage | Obligatoire | OpenSiFli/SiFli-SDK | Sélectionnez et consignez un commit concret conforme à ^2.4 ; une branche main mouvante ne constitue pas une révision de référence |
talk_back/1.2@sifli |
1.2 |
Composant réseau/audio BLE Talkback | Obligatoire | Résolu par le manifeste Conan du projet | La page amont ne publie ni source autonome, ni empreinte du paquet, ni serveur de paquets, ni licence complète ; archivez le paquet et le relevé de résolution et clôturez ce risque avant tout usage produit |
| Configuration Opus et WebRTC AECM/AGC | Déterminée conjointement par l'application, le SDK et la dépendance Conan verrouillés | Codage vocal, traitement de l'écho et contrôle du gain | Obligatoire | Configuration du projet et dépendances du SDK verrouillées | Ne consignez pas uniquement les macros de fonctionnalités ; conservez les versions résolues des bibliothèques et les informations de licence |
| SCons, compilateur et outils de flashage UART | Versions compatibles avec le SiFli-SDK sélectionné | Configurent, compilent et flashent les images | Obligatoire | Fournis dans l'environnement du SiFli-SDK sélectionné | Consigner le système hôte, la version de la chaîne d'outils, la commande de compilation et l'empreinte du script généré |
Choisir une configuration de référence prise en charge¶
Commencez avec deux cartes SF32LB52-DevKit-ULP de même révision. Verrouillez le dépôt de démonstration sur 6fa55ac, sélectionnez et consignez un commit SiFli-SDK concret conforme à ^2.4, et conservez la résolution Conan de talk_back/1.2@sifli. Ne modifiez ni les paramètres audio, ni la logique des rôles, ni le minutage basse consommation lors de la première reproduction.
Depuis la racine du dépôt, accédez au chemin qui existe réellement :
Sous Windows, le nom du script de flashage généré est build_sf32lb52-lchspi-ulp_hcpu\uart_download.bat. Exécutez-le et indiquez le port COM approprié lorsqu'il vous le demande. Utilisez la même image de référence sur tous les appareils et consignez l'identifiant de chaque carte ainsi que l'empreinte de l'image.
Commandes par défaut et indication d'état¶
| État | KEY1 | KEY2 | LED |
|---|---|---|---|
| Attente (appareil actif) | Un Slave ayant déjà rejoint une salle peut se reconnecter par appui bref ; sinon, l'appui bref réinitialise le délai de veille | Appui bref : bascule Master/Slave ; appui long : démarre l'association à une salle | Master bleu fixe ; Slave rouge fixe |
| Association à une salle | — | Le Master crée une salle ; le Slave la recherche | Master bleu clignotant ; Slave rouge clignotant |
| Attente du démarrage | — | Appui long sur KEY2 du Master pour confirmer le démarrage | Master bleu clignotant ; Slave rouge clignotant |
| Dans la salle | Relâcher KEY2, puis appuyer brièvement pour quitter | Maintenir pour parler ; relâcher pour arrêter | Vert fixe pendant l'émission ; orange fixe pendant la réception |
| Veille | Toute touche réveille l'appareil | Toute touche réveille l'appareil | Éteinte |
Étapes du projet¶
| Étape | Décision éclairée | Preuves minimales |
|---|---|---|
| Établir la base intacte | L'ensemble verrouillé se compile-t-il, se flashe-t-il et démarre-t-il de manière fiable ? | Manifeste des versions, journal de compilation propre, empreinte de l'image et compte rendu du démarrage |
| Valider les communications à deux appareils | La création et la jonction d'une salle, ainsi que le PTT par défaut, fonctionnent-elles ? | Rôles, états des LED, actions sur les touches et compte rendu de parole bidirectionnelle entre deux appareils |
| Valider le réseau et la récupération | La sortie, les délais d'expiration, la reconnexion et les limites de simultanéité sont-ils acceptables ? | Matrice d'injection de pannes, durée de récupération, journaux et états d'échec |
| Évaluer l'audio et l'alimentation | L'acoustique et le comportement de la batterie conviennent-ils au format prévu ? | Mesures de qualité audio, latence, portée, courant, veille et réveil |
| Revoir la préparation produit | Les preuves suffisent-elles pour financer du matériel spécifique ? | Registre des risques, responsables et décision de poursuivre, différer ou arrêter |
Architecture système et dépendances¶
flowchart LR
subgraph A["Master — SF32LB52-DevKit-ULP"]
AM["Microphone"] --> AC["Opus / traitement audio"]
AK["KEY1 / KEY2"] --> AN["Machine à états de salle et PTT"]
AN --> AL["LED RGB / écran"]
AC <--> AN
end
subgraph B["Slave — SF32LB52-DevKit-ULP"]
BN["Composant réseau BLE Talkback"] <--> BC["Opus / traitement audio"]
BC --> BS["Haut-parleur"]
BK["KEY1 / KEY2"] --> BN
BN --> BL["LED RGB / écran"]
end
AN <--> |"Commande de salle et voix via BLE"| BN
AP["Batterie / alimentation USB"] --> A
BP["Batterie / alimentation USB"] --> B
Les principaux domaines de panne sont la recherche BLE et la création de salle, la synchronisation de son état, l'ordonnancement des locuteurs simultanés, la chaîne Opus/acoustique, les événements des touches, la batterie faible et la veille, la récupération par la touche d'alimentation, ainsi que les détails non publiés des composants et de leurs licences. Commencez par diagnostiquer le rôle et l'état, puis distinguez les défaillances radio, audio et d'alimentation locale.
Étape 1 — Établir la référence source intacte¶
Objectif : vérifier que les sources, le SDK et les dépendances résolues, tous verrouillés, produisent une image reproductible.
- Verrouillez le commit de l'application et un commit SDK concret ; conservez la sortie de résolution des dépendances.
- Compilez
sf32lb52-lchspi-ulpdans un répertoire propre et flashez le firmware sur deux cartes. - Vérifiez que chaque appareil démarre en Slave avec une LED rouge fixe, puis contrôlez les touches, l'écran, la batterie et le haut-parleur.
Éléments à conserver : manifeste complet des versions, journaux de compilation et de flashage, empreintes des firmwares, révisions des deux cartes et comptes rendus de démarrage.
Critère de sortie du point de contrôle 1 : les mêmes entrées génèrent de façon reproductible la même image de référence, flashée sur les deux appareils ; leur état au démarrage correspond au comportement amont.
Étape 2 — Valider la configuration de la salle et le PTT bidirectionnel¶
Objectif : vérifier qu'un utilisateur peut créer et utiliser une salle minimale sans intervention du débogueur.
- En Standby, appuyez brièvement sur KEY2 pour passer un appareil en Master (LED bleue fixe) ; laissez l'autre en Slave (LED rouge fixe).
- Maintenez KEY2 sur les deux appareils : le Master crée une salle et le Slave la recherche. La tentative d'association expire au bout de 30 secondes.
- En attente, maintenez KEY2 sur le Master pour démarrer. En état de conversation, maintenez KEY2 pour parler et relâchez-la pour arrêter.
- Vérifiez que la LED est verte fixe pendant l'émission et orange fixe pendant la réception, et que la voix reste intelligible dans les deux sens.
Éléments à conserver : rôles, chronologie des opérations, états des LED, journaux UART, échantillons audio bidirectionnels et résultats des nouvelles tentatives.
Critère de sortie du point de contrôle 2 : au moins deux appareils effectuent plusieurs sessions PTT bidirectionnelles ; les indicateurs correspondent au sens réel de l'audio et l'expiration de 30 secondes ramène à un état explicable.
Étape 3 — Valider les limites de sortie, de reconnexion et de capacité¶
Objectif : vérifier que les chemins de récupération et limites de capacité amont ne laissent pas l'utilisateur dans un état bloqué.
- En état de conversation, relâchez KEY2 avant d'appuyer brièvement sur KEY1 pour quitter ; un appareil ne peut pas quitter la salle pendant qu'il transmet.
- Un Slave ayant déjà rejoint une salle avec succès peut se reconnecter par appui bref sur KEY1 en Standby. Le Master ne dispose pas d'un mécanisme équivalent.
- Testez le fonctionnement hors de portée, l'expiration de la tentative d'association, la perte du Master et le redémarrage après coupure d'alimentation.
- Si le fonctionnement à plusieurs appareils est requis, augmentez le nombre de participants jusqu'à la cible et vérifiez les limites annoncées de huit appareils et trois locuteurs simultanés.
Éléments à conserver : état initial, déclencheur, action et durée de récupération, journaux et appartenance finale à la salle pour chaque panne.
Critère de sortie du point de contrôle 3 : chaque panne visée a un chemin de récupération explicite, reproductible et compréhensible par l'utilisateur ; la capacité et la simultanéité requises sont mesurées dans l'environnement RF cible, et non déduites de la limite annoncée.
Étape 4 — Évaluer l'audio, les performances RF et la consommation énergétique¶
Objectif : déterminer si le comportement de la carte de développement convient au boîtier, à la portée et à l'autonomie visés.
- Consignez l'intelligibilité, l'écrêtage, l'écho et les coupures au début/à la fin du PTT en environnement calme, en double parole côté microphone, avec bruit de fond et à plusieurs niveaux de volume du haut-parleur.
- Consignez la connexion, les pertes et la récupération à la distance cible, derrière des obstacles et en présence d'interférences 2,4 GHz.
- Vérifiez la veille après 60 secondes sans entrée, le retour au rôle Slave, le réveil par n'importe quelle touche, l'arrêt et la mise sous tension par appui long, ainsi que l'indication LED sous 20 % de batterie.
- Mesurez le courant en attente (appareil actif), en émission, en réception, en veille et au réveil ; ne confondez pas les mesures sur carte de développement avec l'autonomie du produit final.
Éléments à conserver : environnement, orientation de la carte et de l'antenne, fichiers audio, distance et interférences, courbes de courant, état de la batterie et résultats de récupération.
Critère de sortie du point de contrôle 4 : l'équipe produit a défini et atteint les seuils acoustiques, RF, d'alimentation et de réveil pour son environnement cible ; chaque écart a un responsable et un plan de traitement.
Étape 5 — Revue de préparation produit¶
Avant de concevoir du matériel spécifique, répondez au minimum aux questions suivantes :
- Comment une salle identifie-t-elle les appareils de confiance, et quels mécanismes d'authentification, de chiffrement et de protection contre le rejeu protègent la voix et les données de commande ?
- Qui est responsable des licences, de la mise à disposition du code source et de la réponse aux vulnérabilités de
talk_back/1.2@sifli, d'Opus, des composants WebRTC et des fichiers source du dépôt ? - Quelle couverture, latence, perte de paquets et capacité de récupération ont été mesurées avec l'antenne et le boîtier visés, en présence d'obstacles corporels et de communications simultanées ?
- Comment le microphone, l'amplificateur, la cavité du haut-parleur et les limites de volume satisferont-ils les exigences acoustiques et de sécurité ?
- Comment l'appareil récupère-t-il après une batterie faible, une coupure anormale, un firmware corrompu ou l'échec d'une mise à jour sur le terrain ?
- Quelles activités de conformité Bluetooth, CEM, radio et batterie s'appliquent ?
Critère de sortie du point de contrôle 5 : le registre des risques inclut des preuves, des responsables, des mesures d'atténuation et une décision explicite de poursuivre, différer ou arrêter. Les sujets de sécurité, de licence et de réglementation ne peuvent pas rester des tâches « à traiter plus tard » sans responsable.
Passage à la conception du produit¶
Le dossier de transfert doit inclure les sources, le SDK et les dépendances verrouillés, les rôles et la machine à états, la matrice de capacité et de récupération, les mesures audio/RF/alimentation, les hypothèses d'antenne et d'acoustique, les limites liées à la batterie et à sa charge, le modèle de sécurité et de confidentialité, les documents de licence, les besoins en tests de production et le plan de récupération. Utilisez le parcours d'intégration SF32LB52x pour sélectionner le circuit, le module, la carte, le guide de conception matérielle et la liste de contrôle. Intégrez au schéma et au routage spécifiques les comportements validés, puis revérifiez-les au lieu de reprendre sans vérification les conclusions obtenues sur la carte de développement.
Sources de référence¶
- Répertoire Talkback d'OpenSiFli
- Commit de l'application examiné
6fa55ac - README officiel de Talkback
- Manifeste Conan de Talkback
- Configuration du projet Talkback
- OpenSiFli/SiFli-SDK
- Source officielle du Wiki SiFli pour le SF32LB52-DevKit-ULP
- Source chinoise du Wiki SiFli pour le SF32LB52-DevKit-ULP
Dernière mise à jour: