Multicomp PRO MP730027

De knowledge
Aller à la navigation Aller à la recherche

Voila un joli multimètre vendu pas trop cher sur le site de Farnell.

Présentation

Ce n'est pas un périférique SCPI uart Il ne communique pas par une interface USB Serial. Mais comment communique t-il. Le logiciel fournit sur le site Farnel NL ne fonctionne pas chez moi (Windows 10).


Dans ce cas, comme d'habitude, on utilise Linux et... un raspberry PI !


On le branche et on regarde ce que dis linux dans les messages (dmesg -w)

[  307.832249] usb 1-1.3: new high-speed USB device number 6 using xhci_hcd
[  307.933059] usb 1-1.3: New USB device found, idVendor=5345, idProduct=1234, bcdDevice= 1.00
[  307.933089] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  307.933101] usb 1-1.3: Product: AGBIOS
[  307.933110] usb 1-1.3: Manufacturer: OWON
[  307.933119] usb 1-1.3: SerialNumber: AG0000
[  315.032916] usb 1-1.3: USB disconnect, device number 6
[  315.264329] usb 1-1.3: new high-speed USB device number 7 using xhci_hcd
[  315.365046] usb 1-1.3: New USB device found, idVendor=5345, idProduct=1234, bcdDevice= 1.00
[  315.365067] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  315.365074] usb 1-1.3: Product: MP730027
[  315.365080] usb 1-1.3: Manufacturer: multicomp pro
[  315.365086] usb 1-1.3: SerialNumber: 2210101

Et on lit, tout est dit!

Ligne 1 : On a un périférique "high-speed" qui utilise xhci_hcd (c'est quoi?) sur le slot USB n° 6

Ligne 3 : Le produit s'appelle AGBIOS ? Bizare

Ligne 4 : le fabricant est OWON

La ça deviens bizare moi j'ai acheté un MP730027 chez Multicomp pro

Ligne 7 : le Device sur le slot N°6 se déconnecte tout seul...

Ligne 8 : Ho! un nouveau périférique xhci_hcd sur le slot 7

Ligne 11 : le produit est.. MP730027

Ligne 12 : De chez Multicomp pro

Là je retrouves mes petits!

Tout ceci est tres mystérieux.

En réalité Farnell vends un multimètre OWON 4 1/2 Bench-Type XDM3041 Digital Multimeter rebrandé aux couleurs de multicomp PRO.

Si on est attentif on voit aussi que, dans /dev, un nouveau device apparait:

usbtmc0

USB TMC

Maintenant qu'on a vu que notre modèle était un multimètre supportant l'USBTMC de quoi s'agit-il? Une page USBTMC décrit ce protocole.

Installation

La méthode d'installation dépends beaucoup de l'OS. Sous Raspbian (Raspberry OS) on fait :

sudo pip3 install PyUSB
sudo pip3 install usb

Configuration

Le "device" /dev/usbtmc0 appartient au user ET au groupe root. Cela fait que l'on DOIT être root pour y accéder.

ls -l /dev/usbtmc0
crw------- 1 root root 180, 176 Jul 25 22:44 /dev/usbtmc0

On ne va pas faire tourner le script de test en root donc deux solutions :

  • On développe un driver dans le noyau ou comme module (bof je me sent pas)
  • On utilise un groupe spécifique comme pour /dev/ttyACM0 de certains autres device qui marchent en "UART over USB".

La seconde méthode me semble plus simple mis nécessite une page dédiée.

Utilisation par le réseau

Configuration

Sur le multimètre appuyez sur le bouton puis sur NET type choisir DHCP.

Puis dans "LAN Setting" on choisit le port : Moi j'ai 3000 et on note l'IP qui lui a été attribuée (192.168.1.xxx dans la plupart des cas)

Sur le PC (Le raspberry PI ....)

nc 192.168.1.xxx 3000

Bien sur il faut utiliser l'IP relevée sur le multimetre. Ensuite on tape des commandes SCPI :

*IDN?
multicomp pro,MP730027,2303425,V3.5.0,1
*RST

Ca marche !

Apparemment on ne peut pas se connecter à plusieurs sur le port 3000 (ca forke pas ?)

Programmation

On prendra comme exemple l'accès par le réseau car c'est le plus standard. Aucune libraires n'est nécessaires.

#!/usr/bin/python3
import socket
HOST = "192.168.2.231" 
PORT = 3000  

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b"*IDN?")
    data = s.recv(1024)

print(data.decode("utf-8"))