djcompact vignetteA terminer ...
Durant mon projet de construction d'une station télécommandable, j'ai été rapidement confronté aux problèmes de la limitation des possibilités de télécommande du TS590s. Le premier gros problème a été celui du changement de fréquence. Mon logiciel de carnet de trafic, à savoir LOGGER32, offre pas mal de solutions avec l'utilisation des macros et de la roulette de la souris qui permet de changer la fréquence du VFO, mais l'utilisation au quotidien et durant les contests est assez frustrante...

Les logiciels ARCP et ARHP de Kenwood offrent une solution gratuite et complète, mais nécessitent qu'un ordinateur soit allumé en permanence du côté de la station distante, chose que je voulais éviter. Par ailleurs, l'utilisation au quotidien est assez frustrante et l'interface avec les logiciels de contests ou carnet de trafic n'est pas possible.

Sur Twitter, j'avais vu que certains avaient utilisé un contrôleur DJ pour piloter des SDR ou en lien avec Wintest. J'ai donc commencé à réfléchir à une solution pour le TS590s.

Le contrôleur "DJcontrol compact" est un petit contrôleur MIDI à faible coût produit par Hercules. Je l'ai donc commandé pour 49.99 € et l'ai reçu rapidement.

Ce contrôleur se connecte à l'ordinateur via un port USB et possède 2 jogs wheels ainsi qu'un nombre important de boutons, potentiomètres et un slider. Lorsque ces réglages sont modifiés, un flot de messages MIDI est envoyé vers le port USB. Chaque commande envoie un message lorsqu'elle est appuyée, relâchée ou tournée.
La liste des commandes et les messages MIDI correspondant est disponible dans ce document.

Mon projet était donc de traduire chaque commande en une fonction CAT du TS590s. La première a été de transformer le JOG A en une commande du VFO. Ce gros bouton de 7cm de diamètre est idéal pour cet usage.
Dans le document fourni par Hercules, ce bouton est nommé JOG_DA et le message MIDI correspondant est "Bx 30 Value", un tour complet fait 128 increments.

Le message MIDI pour le JOG A est :
[[176, 48, 127, 0], 13655]

176 est la valeur décimale de la valeur héxadécimale de B0 Hex, qui est celle attribuée au groupe des réglages rotatifs, potentiomètres et sliders.
48 est la valeur décimale de 30 Hex assignée au JOG A
127 est la valeur décimale de 7F Hex pour la rotation anti-horaire, elle passe à 126 lorsque la rotation est rapide (FAST CCW), elle passe à 01 pour rotation dans le sens horaire et 02 pour rotation rapide.
0 n'est pas utilisé pour cette commande
13655 est l'horodatage qui démarre à 0 lorsque le contrôleur est allumé (non utilisé dans ce projet)

Un autre exemple de message MIDI pour la touche SYNC :

[[144, 35, 127, 0], 1185118]

144 est la valeur pour le groupe des touches
35 celle du bouton SYNC
127 pour l'appui sur la touche et 0 au relâchement.
0 non utilisé.

 
Tout le travail du logiciel est donc de traduire ces messages MIDI en commandes CAT Kenwood pour le TS590s.

Par exemple, la rotation horaire du JOG doit être traduite en " UP; " pour augmenter la fréquence du VFO d'un pas. La rotation ani-horaire du JOG A est traduite en " DN; ".
Si on tourne le JOG A plus rapidement on peut envoyer "UP5; " pour 5 incréments du VFO, etc...

La touche SYNC est assignée pour sélectionner le VFO A, la touche au VFO B, etc... Seule l'imagination limite les possibilités et une bonne répartition des commandes du contrôleur permet une utilisation plaisante !

Le logiciel Midi2TS590

N'étant pas un expert en programmation, j'ai choisi d'utiliser le langage PYTHON pour ce projet. L'apprentissage en est assez facile et il ne m'a fallu que quelques jours pour réaliser ce projet ! Il est également appréciable de pouvoir modifier facilement le code du programme durant son utilisation et de relancer son exécution pendant un concours et ainsi corriger des erreurs ou rajouter une fonction.
J'ai donc écrit un petit logiciel que j'ai nommé midi2ts590.py

J'ai cependant été un peu déçu lorsque j'ai souhaité créer un exécutable pour l'installer sur un autre ordinateur ou pour le distribuer.... Le processus crée un petit exécutable mais qui nécessite également l'installation d'un nombre important de dossiers et fichiers contenant les librairies et autres fichiers nécessaires.
L'utilisation de C++ serait probablement plus intéressante de ce point de vue mais C or C++ ne sont pas aussi facile à apprendre que Python...

Le protocole MIDI est géré par la librairie PYGAME MIDI, ce qui rend sa gestion plus facile !

Le contrôleur DJCompact peut également être commandé et il est possible d'allumer ou d'éteindre le rétro-éclairage des touches, ce que j'ai fait.

Au démarrage le logiciel recherche une configuration dans un fichier midi2ts590.ini . S'il ne le trouve pas, il en crée un avec une configuration par défaut. Ce fichier doit alors être modifié pour correspondre à la configuration souhaitée.

[Default]
# midi2hamlib config file
# defaults values created by program
mode = CW
vfo = A

[Midi]
devicein = 1
deviceout = 3

[Radio]
model = TS590s
comport = COM2
speed = 57600
bits = 8
stop = 1
parity = N
xonxoff = 0
rtscts = 0
dsrdtr = 0

Au démarrage, tous les périphériques MIDI trouvés sont affichés à l'écran. Il faut alors modifier la section [Midi] du fichier de configuration pour mettre les numéros attribués aux périphériques DJcompact IN et OUT dans la section [Midi].
La section [Radio] doit être modifiée pour correspondre à la configuration du port série. Notamment le numéro du port et la vitesse configurée dans le TS590s. Le reste devrait convenir.
Le mode et le VFO par défaut sont configurés dans la section [Default section]

Si quelque chose manque ou ne correspond pas, un message d'erreur est affiché et il faut alors corriger la configuration.

Si tout est correct, tous les voyants du contrôleur devraient clignoter 3 fois et être prêts à être utilisés.
Un appui sur la touche REC devrait allumer le TS590 et allumer le voyant rouge de la touche. Un nouvel appui éteint le TS590.

Page avec la configuration des touches et réglages.

Partage du port série COM

Dans le but d'utiliser le contrôleur en même temps qu'un logiciel de trafic, il est nécessaire de partager le port série sur lequel est raccordé le TS590s.

Pour ce faire, j'ai d'abord utilisé un logiciel nommé VSPE. Depuis, j'ai utilisé com0com et les logiciels rattachés.

Avant tout, il faut connaître les ports disponibles sous Windows. Le gestionnaire de périphériques n'affiche pas tous les ports, notamment ceux déjà assignés mais pas en service. Il faut pour cela, modifier la configuration Windows :

Entrer cmd dans la barre de recherche, puis faire un clic droit sur le logiciel cmd.exe trouvé en choisissant "Exécuter en tant qu'administrateur"

Depuis la fenêtre de commandes , entrer : > set devmgr_show_non_present_devices=1

Ensuite lancer le gestionnaire de périphériques : >  devmgmt.msc

Dans le menu "Affichage", cocher "Voir les périphériques cachés".

Utiliser Com0com pour créer des ports virtuels

Le but est de créer 2 ports virtuels qui se partageront un port physique de l'ordinateur.
Dans mon cas, j'ai un port physique COM1 sur lequel est raccordé mon TS590s. Je veux donc créer 2 ports virtuels COM2 et COM3, qui seront utilisés par 2 logiciels différents comme LOGGER32 et mon logiciel midi2ts590. (Se référer à la documentation de com0com et hub4com pour l'installation et l'utilisation.)

1) Créer 2 ports avec la console com2com setup :

> install PortName=COM2,EmuBR=yes,EmuOverrun=yes -
> install PortName=COM3,EmuBR=yes,EmuOverrun=yes -

2) Vérifier que les ports ont bien été créés à l'aide de la commande "list" :

com0com list

 

J'ai ensuite créé un fichier batch qui lance l'émulateur com0com :

  hub4com --baud=57600 --bi-route=0:1 --bi-route=0:2 --octs=off \\.\COM1 \\.\CNCB0 \\.\CNCB1

Quand ce batch est lancé, le logiciel hub4com routera ce qu'il reçoit sur le COM1 vers les ports virtuels CNCB0 (COM2) et CNCB1 (COM3), et inversement.

Logger32 peut maintenant utiliser le COM2 dans le paramétrage de "radio" et midi2ts590 le port COM3. Les deux logiciels partagent le port COM1 port qui est relié au port COM du TS590s à la vitesse de 57600 bauds.

A faire...

Pour le moment, le logiciel ne "lit" pas les infos envoyées par le TS590. Parfois, l'état des voyants allumés ne correspond pas au mode et VFO utilisés sur le TS590.
Je vais essayer d'ajouter cette fonction si le besoin s'en fait réellement sentir.

Conclusion

L'utilisation de ce contrôleur et logiciel, permett d''utiliser à fond les capacités de télécommandes du TS590s. La facilité d'utilisation durant le trafic quotidien sont remarquables, et font oublier que l'on a à faire avec une station déportée.
Le changement de fréquence, de VFO, etc... sont aussi aisées que sur le TS590s, voire même plus facile !
Me contacter si vous souhaitez obtenir le logiciel midi2ts590.

Remerciements
A F6FVY pour ses précieux conseils et sa patience.