FeelTech FY6600
C'est un petit appareil très léger. Il fait un peut "toc" mais finalement il marche pas mal. Mon modèle est un 50MHz... bon 50MHz en Sinusoïde et avec un peu plus des -3dB règlementaires mais on va pas chipoter.
En revanche il à deux voies et possède pas mal de fonctionnalités telle que :
- Plein de modulations
- Des formes d'ondes diverses et programmables
- Un mode "vobulation"
- Plein de d'entrées et de sorties de synchro.
Son principal problème :
Il ne suis pas le protocole SCPI et rien n'est documenté. Tout doit être "rétro-ingéniéré".
Bon la seule chose que j'ai faite c'est de détecter que le mode USB est un "Serial over USB". Il suffisait de le brancher sur une machine linux.
Le reste viens de du projet github https://github.com/DerKammi/FY6600-15-30-50-60M/tree/master
Le fichier FY6600 Serial communication protocol V1.5.doc est une mine pour moi. Mais il y a plein d'infos hardware aussi.
La chose importante : Les commandes doivent se terminer par un "line feed" 0x0A. Pas un 0x0D ou un 0x0D 0x0A des vieux MAC ou des PC sous windows!
Le FY6600 réponds par une chaine de caractère terminée, elle aussi, par un LF. (Un LF tout seul si il n'a rien d'autre à dire)
Exemple
On veut fixer la valeur de la fréquence sur "CH1" sur 440 Hz.
Il faut envoyer la commande :
WMF440000000
Oui ca fait beaucoup de zéros! Le FY6600 est précis au µHz donc il faut lui donner la valeur en µHz (WMF440000001 marche aussi!) Pour lire c'est :
RMF
Qui nous renvoie:
00000440.000000
Soit le fréquence en... Hz!
Oui on doit la lui donner en µHz et il nous le donne en Hz! Me demandez pas pourquoi !
Pour le reste la doc de DerKammi sur github donne toutes les commandes.
Une dernière :
UMO
Qui nous renvoie :
FY6600-50M
Le *IDN? de SCPI.... pourquoi faire différemment? Ils sont bizarres chez FeelTech décidément.
Script de test
Lors de mes recherches j'ai échangé avec mon ami "copilot" et il m'a donné un script tout bête pour tester les commandes. Je vous le donne.
#!/bin/bash
PORT="/dev/ttyUSB0"
BAUD="115200"
# Serial port config
stty -F "$PORT" $BAUD cs8 -cstopb -parenb -echo
# Interactive loop
while true; do
read -p "Command (or 'exit') : " CMD
[[ "$CMD" == "exit" ]] && break
# Send with LF (0x0A)
echo -ne "$CMD\n" > "$PORT"
# Read device output (time out 2s)
echo "Answer :"
timeout 2 cat "$PORT"
echo ""
done
SI vous faites tourner ça sous linux (Raspberry pi par exemple) ca marche tout seul. Mais sous WLS, il faut "monter" le port USB sur la VM WSL. C'est décrit là.