Mise à jour du 13 octobre 2026 : après l’examen d’Armel, F4HWN, et un travail de recherche sur les usages réels de l’appel sélectif, cet article a été réécrit. La fonction ne rejoindra pas le firmware résident : elle deviendra une application. Voici pourquoi, et ce qui change.
Les Quansheng ne savent pas envoyer d’appel sélectif, ces cinq tons à la suite que les radios professionnelles émettent depuis longtemps. Sur le dépôt du firmware F4HWN, une demande traînait depuis janvier pour ajouter les standards ZVEI et CCIR. J’en ai écrit une première version pour l’UV-K1 et l’UV-K5 V3, intégrée au firmware, et je l’ai proposée à Armel pour le firmware officiel.
Son examen m’a fait reprendre le sujet par le bon bout : à quoi sert vraiment l’appel sélectif aujourd’hui ? La réponse change la façon de le construire. Voici ce qu’est un appel sélectif, où il sert, ce que la première version m’a appris, et la voie retenue pour la suite.
Un appel sélectif, c’est quoi ?
Le principe est simple : chaque chiffre correspond à une fréquence audio. Pour envoyer le code 12345, la radio émet cinq tons à la suite, sans blanc entre eux. Le récepteur reconnaît la séquence et réagit : il s’ouvre, sonne, ou déclenche une alerte.
Deux familles se partagent l’essentiel des usages. ZVEI, d’origine allemande, et CCIR, d’origine internationale, n’utilisent pas les mêmes fréquences. Chacune existe en deux variantes : ZVEI-1 et ZVEI-2 ont les mêmes tons et ne diffèrent que par le ton de répétition, CCIR-1 et CCIR-2 ont les mêmes tons et ne diffèrent que par leur durée.
| Chiffre | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Répétition | Durée |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ZVEI-1 (Hz) | 2400 | 1060 | 1160 | 1270 | 1400 | 1530 | 1670 | 1830 | 2000 | 2200 | 2600 | 70 ms |
| ZVEI-2 (Hz) | 2400 | 1060 | 1160 | 1270 | 1400 | 1530 | 1670 | 1830 | 2000 | 2200 | 970 | 70 ms |
| CCIR-1 (Hz) | 1981 | 1124 | 1197 | 1275 | 1358 | 1446 | 1540 | 1640 | 1747 | 1860 | 2110 | 100 ms |
| CCIR-2 (Hz) | 1981 | 1124 | 1197 | 1275 | 1358 | 1446 | 1540 | 1640 | 1747 | 1860 | 2110 | 70 ms |
Il y a une subtilité. Deux tons identiques à la suite se confondraient en un seul ton plus long, et le récepteur ne saurait plus combien de chiffres il a reçus. Quand un chiffre est le même que le précédent, on envoie donc à sa place un ton spécial, le ton de répétition. Le code 11223 part ainsi comme « 1, répétition, 2, répétition, 3 ».

À quoi ça sert vraiment ?
Dans la première version de cet article, j’écrivais que l’usage le plus courant pour un radioamateur était d’ouvrir un relais. En creusant, c’est faux : les relais amateurs s’ouvrent avec un ton à 1750 Hz ou, de plus en plus, avec un CTCSS, et pratiquement jamais avec une suite de cinq tons. Les usages réels sont ailleurs.
Le Canal E, en montagne. C’est le cas qui compte. Le Canal E est le canal d’urgence des Alpes, sur 161,300 MHz, utilisé en Haute-Savoie (SDIS 74), en Suisse (Rega) et du côté italien. Il fonctionne en simplex, avec un CTCSS de 123 Hz à l’émission. Deux codes ZVEI y servent :
- 21414 déclenche une alerte sonore et visuelle au centre de traitement des appels. La station répond par trois tons longs, puis un opérateur prend la parole.
- 21301 sert à tester la couverture. La station répond par deux tons longs, sans déclencher d’alerte.
- Les personnes enregistrées auprès du CODIS 74, guides ou pisteurs par exemple, peuvent ajouter leur identifiant, envoyé 300 millisecondes après le 21414. Jamais après le test.
La règle du SDIS 74 est claire : le code part une seule fois, au début de la demande de secours, et peut être répété seulement en l’absence de réponse. Aucun code ne doit partir pendant la conversation, donc jamais à l’appui de l’alternat. Ensuite, on parle normalement. La Rega accepte indifféremment ZVEI-1 ou ZVEI-2.
Les pompiers allemands et autrichiens utilisent encore le ZVEI en analogique pour déclencher les récepteurs d’alerte et les sirènes, même si la bascule vers le numérique est en cours. Pour un radioamateur, c’est de l’écoute seulement : émettre sur ces réseaux est interdit.
Le CCIR, enfin, se rencontre surtout en radio professionnelle (PMR) : flottes de véhicules, taxis, appel d’un poste précis ou accès au relais d’une entreprise.
Une première version dans le firmware
Ma première version ajoutait la fonction au firmware lui-même, dans l’édition Labs. Chaque canal, mémoire ou VFO, recevait un type d’appel et deux codes, envoyés à la demande par deux touches programmables, SELCALL 1 et SELCALL 2. Un driver CHIRP adapté permettait de régler tout ça depuis un ordinateur. Elle coûtait 1 344 octets de mémoire flash.
À l’appui de la touche, la radio passait en émission avec les réglages du canal, laissait 300 millisecondes de porteuse seule, envoyait les cinq tons puis repassait en réception, avec le CTCSS du canal présent du début à la fin. Ce principe d’émission ne change pas avec l’application.

Vérifié à l’antenne
Pour vérifier les tons, j’ai écouté la radio avec une clé RTL-SDR et décodé les salves avec multimon-ng, qui connaît ces standards :
rtl_fm -f 433.650M -M fm -s 22050 - | multimon-ng -t raw -c -a ZVEI1 -a ZVEI2 -a CCIR -
Les codes ressortent correctement pour ZVEI-1, ZVEI-2 et CCIR. Un détail pour qui voudrait refaire l’essai : multimon-ng affiche le ton de répétition sous la forme d’un « E », donc 11223 apparaît comme 1E2E3. C’est le comportement attendu.
multimon-ng ne mesure pas les durées, il ne distingue donc pas CCIR-1 de CCIR-2. Pour ça, j’ai écrit un petit outil d’analyse qui relit l’enregistrement et mesure chaque ton : 70 millisecondes pour ZVEI-1, ZVEI-2 et CCIR-2, 100 pour CCIR-1, avec les bons tons de répétition et environ 300 millisecondes de porteuse avant le premier ton. Une seconde radio réglée sur le même CTCSS a confirmé qu’il est bien transmis pendant la salve. Le générateur de tons, testé ainsi, sera repris tel quel dans l’application.
L’avis d’Armel
Armel a salué un travail soigné et bien testé, mais il a émis une vraie réserve. La fonction touchait au chemin d’émission, à l’organisation de la mémoire flash de chaque banque de configuration et à la couche de compatibilité de la mémoire, et elle ajoutait un second driver CHIRP à maintenir. Tout ça pour une fonction de niche, en émission seulement, qui prenait plus du quart de la place encore libre dans l’édition Labs. Et les codes n’auraient pas suivi les canaux lors d’un transfert AirCopy, qui ne connaît pas cette zone de la mémoire.
Il a proposé une autre voie : une application, chargée à la demande comme Sig Finder ou le décodeur de balises EPIRB 406. Les applications disposent déjà de ce qu’il faut pour émettre des tons et garder leurs réglages, et elles ne coûtent rien au firmware résident. Quelques préréglages, au lieu d’un stockage par canal, devraient suffire.
Avec ce que j’ai appris sur le Canal E, il a raison. Les codes utiles se comptent sur les doigts d’une main, et le stockage par canal n’apporte rien. Surtout, il n’y a aucune fenêtre à garder ouverte : les stations du Canal E écoutent en permanence, ce ne sont pas des relais que les tons déclenchent. Une fois l’alerte acquittée, la voix passe avec le seul CTCSS de 123 Hz. Quitter l’application avant de parler ne pose donc aucun problème, et c’est même exactement la procédure demandée par le SDIS 74 : le code, la réponse de l’opérateur, puis la conversation sans code.
L’application en préparation
- Des préréglages définis par l’utilisateur : un nom, un type d’appel et un code, saisis dans l’application. Aucun code n’est fourni d’avance : chacun reste responsable de ce qu’il envoie.
- Les quatre standards : ZVEI-1, ZVEI-2, CCIR-1 et CCIR-2, avec le générateur de tons de la première version.
- L’émission sur le canal en cours, avec son CTCSS : 300 millisecondes de porteuse, puis les cinq tons.
- Après la salve, l’application reste en réception pour qu’on entende l’acquittement de la station avant de revenir au canal et de parler à l’alternat.
- Aucun code dans le firmware résident, aucun changement de la mémoire, aucun driver CHIRP à maintenir.
J’ai demandé à Armel s’il accepterait une touche programmable qui lance directement l’application, comme celles qui existent déjà pour la radio FM ou la chasse au renard. En situation d’urgence, passer par le menu des applications est un peu lent. L’application fonctionnera de toute façon sans.
Pour la réception, Nosen92 a publié de son côté une application qui décode les appels sélectifs CCIR sur l’UV-K1. Elle s’appelle SelCall : la mienne portera donc un autre nom, pour éviter la confusion.
Les limites
- Pas de séquences à 12 tons : seulement 5.
- Pas de décodage en réception dans mon application : elle envoie, elle ne reconnaît pas. Pour le CCIR, l’application de Nosen92 fait ce travail.
- Les applications passent par l’édition Labs, qui reste expérimentale : à installer en connaissance de cause.
Et un rappel important : le Canal E est réservé aux urgences, et un code d’appel sélectif ouvre l’accès à un réseau. On n’utilise que les codes qu’on a le droit d’utiliser, sur les fréquences où l’on a le droit d’émettre.
Où en est-on ?
J’ai répondu à Armel sur GitHub en proposant de retirer ma demande d’intégration au profit de l’application, et j’attends son retour sur les deux points techniques. Le développement de l’application démarre ensuite. Je mettrai cet article à jour quand elle sera disponible dans UV Studio.
Merci
Ce travail ne part pas de rien. Olivier (ozitoune) avait ouvert la voie avec deux premières propositions d’appel sélectif pour ce firmware, Yeti-73 avait décrit les besoins des réseaux d’alerte, et blorent avait obtenu du SDIS 74 les règles d’usage du Canal E. Merci à Armel, F4HWN, pour le firmware lui-même et pour un examen qui a remis le projet dans la bonne direction.
Pour aller plus loin
- L’échange avec Armel sur GitHub : pull request #646
- La discussion d’origine sur l’appel sélectif : discussion #87
- Les règles du Canal E transmises par le SDIS 74 : pull request #92
- La Rega, appeler par radio d’urgence : rega.ch
- Le décodeur CCIR de Nosen92 : F4HWN-app-ccir-selcall-decoder
- UV Studio, pour installer le firmware et les applications : armel.github.io/uvstudio
- Deux autres applications pour l’UV-K1 : le décodeur de balises de détresse EPIRB 406, et Sig Finder pour la radiogoniométrie
- La radio, Quansheng UV-K1 (lien affilié Amazon) : voir sur Amazon
Illustration d’en-tête : générée avec Google Gemini. Graphiques : F4WAT.
Johan Denoyer, F4WAT
Les liens vers Amazon sont des liens affiliés : si vous achetez par leur intermédiaire, je touche une petite commission, sans surcoût pour vous. En tant que partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.
Leave a Comment