Bonjour à tous,
Je suis musicien et je n'y connais pas grand chose en programmation. En général, j'arrive à trouver des tutos installer les compilations etc mais je n'ai pas les connaissances pour aller triturer le code.
C'est pour cela que je souhaiterais avoir vos avis d'expert, savoir si mon projet peut être à ma portée ou si je suis juste un quarantenaire resté bien naïf !
Mon père a acheté un accordéon numérique mais n'est pas sans fil. Il est possible de poser un système propriétaire mais qui coute un bras (celui de brad pit). Il y a donc un module de son relié à l'accordéon par un câble midi. J'ai donc pensé naïvement que je pouvais bidouiller avec un système midi existant (panda midibeam). Sauf que ça ne fonctionne pas. J'ai facilement isolé l'alimentation des données et j'ai fait pas mal de test. Conclusion : il semble que le protocole utilisé ne soit pas du midi.
J'ai 4 pin en sortie du module, 1 pour l'alimentation de l'accordéon en 12v, 1 pour le neutre, et deux câbles de data en 3.2v. Dans les deux câbles data, l'un gère les notes et les changements de son (l'équivalent du midi out de l'accordéon) et l'autre la réception des données à afficher sur l'écran de l'accordéon (l'équivalent du midi in).
J'ai pensé à l'arduino et particulièrement aux modules que j'ai déjà utilisé les esp8266.
Est ce que cela vous parait techniquement compliqué d'utiliser deux esp8266 pour transformer tout ça en sans fil ?
Il y a principalement trois soucis à mes yeux, ne pas connaitre le protocole utilisé (existe-t-il des scan ou sniffer assez simple à utiliser et à interpréter) savoir comment gérer le 3v sur l'esp8266 qui serait sur l'accordéon et enfin savoir si la latence serait assez basse pour que ce soit utilisable.
Bref, j'ai du mal à me rendre compte de la complexité du projet. Et je ne peux pas non plus me permettre de le garder pendant 6 mois pour faire des test.
Qu'en pensez vous ? Merci d'avance pour vos avis et conseils.
On l'utilise avec l'un des deux logciels multiplateforme suivants :
-Logic de la société Saleae, logiciel propriétaire
-Pulseview du projet OpenSource Sigrok
tapi:
J'ai 4 pin en sortie du module, 1 pour l'alimentation de l'accordéon en 12v, 1 pour le neutre, et deux câbles de data en 3.2v.
3,2V vérifié comment mesure à l'oscilloscope ou avec un multimètre?
Le multimètre ne donne pas nécessairement une information pertinente si la communication est active. En effet, dans ce cas le multimètre retourne une valeur moyenne et non pas la tension maximum. Donc le 3,2V pourrait aussi bien correspondre à une liaison en 5V avec des transitions en permanence.
tapi:
Il y a principalement trois soucis à mes yeux, ne pas connaitre le protocole utilisé (existe-t-il des scan ou sniffer assez simple à utiliser et à interpréter) savoir comment gérer le 3v sur l'esp8266 qui serait sur l'accordéon et enfin savoir si la latence serait assez basse pour que ce soit utilisable.
Le premier soucis c'est de connaitre le type d'interface. Est-ce une liaison UART (typre Serial de l'arduino) ou une interface matérielle totalement propriétaire?
Si c'est une interface UART, il faudrait connaitre le débit. Pour le protocole, à la limite il est sans importance. Il suffit de lire des octets et de les émettre, à l'autre extrémité, de les réceptionner et de les envoyer au boitier. La latence puisqu'il n'y a pas d'interprétation des données localement elle va dépendre principalement de la vitesse de transmission.
Si c'est une interface propriétaire alors là.....
Alors j'ai effectivement fait mon relevé au multimètre donc pas très fiable. Je n'ai pas d'oscilloscope.
J'ai testé hier soir en débranchant l'une des deux broches et j'ai toujours le clavier et les commandes qui sont transmises au module, je peux jouer et changer de sons. Par contre c'est juste l'affichage de l'écran qui ne reçoit plus les données de l'expandeur.
C'est donc un système différent que le midi qui nécessite, lui, deux fils pour la transmission. Déjà, peut-être que ça peut donner des pistes, non ? Après, pour savoir si c'est propriétaire ou pas !?!
En gros, un analyseur de logique usb peut peut-être m'aider à condition de savoir lire les données mais si c'est propriétaire c'est mort ? j'ai bien compris ?
En gros, un analyseur de logique usb peut peut-être m'aider à condition de savoir lire les données mais si c'est propriétaire c'est mort ?
Absolument pas, il y a de l'espoir de trouver la relation entre une action sur le clavier et la trame transmise et dans l'autre sens la relation entre la trame reçue et l'état de l'afficheur ; même si ces relations sont propre à un fabricant particulier
+le test effectué en supprimant l'une des deux liaison est encourageant
Bon et bien super, j'ai commandé l'analyseur, je le reçois vendredi et c'est parti pour les tests.
En plus j'avais regardé du côté du logiciel logic, je l'ai téléchargé et ça me décourageait et là je viens de regarder sigrok et cette vidéo :
Ca me parle déjà beaucoup plus donc la motivation revient
Merci pour vos conseils, ça fait vraiment plaisir d'avoir des retours.
Ce tutoriel video sur PulseView/Sigrok est très bien fait !
(PulseView est l'interface graphique pour Sigrok qui, lui, est en ligne de commande)
J'utilise aussi ce logiciel Open Source de préférence à Logic
L'ouverture permet l'ajout constant de décodeurs de protocole par des utilisateurs.
J'apprécie aussi d'avoir un outil unique pour divers appareils (très grand nombre d'appareil pris en charge)
Au niveau ergonomie il progresse mais peut paraître en retrait par rapport au logiciel de Saleae
Alors j'ai bien reçu mon analyseur. J'ai testé en le branchant entre le module et l'accordéon et voilà ce que j'obtiens : images jointes après si ça fonctionne ?!?
A priori c'est bien du UART et même du midi ? Je ne sais pas si j'ai bien paramétré sigrok, j'ai mis baud rate 31250 car c'est le taux pour le midi si j'ai bien compris.
Maintenant il faut que je trouve une programmation pour que chaque arduino puisse envoyer et recevoir et bien paramétrer tout ça. J'ai pas trouvé grand chose jusque là à part ça mais je n'ai pas eu le temps de mettre en pratique :
Si jamais vous aviez des conseils ou des sites références où je serais susceptible de trouver des tutos, ça me ferait gagner beaucoup de temps.
Merci à tous et bonne journée
tapi:
Est ce que, selon vous, le fait que sigrok me donne ces résultats est une preuve que c'est bien du UART ?
Non
En plus, il semblerait que la fréquence d'échantillonnage soit trop basse on voit que l'impulsion la plus petite fait juste un échantillon.
En principe, on ne décide pas à priori du débit lorsqu'on commence les acquisitions.
On démarre avec une fréquence d'échantillonnage élevée et on détermine la taille du plus petit échantillon pour ensuite adapter la fréquence d'échantillonnage en ayant toujours une fréquence d'échantillonnage supérieure au débit sur la ligne d'au moins un facteur 2.
Ensuite il faut analyser la forme du signal pour effectivement confirmer/infirmer le format de transmission.
ok merci fdufnews, mais j'ai du mal à règler la fréquence d'ecantillonnage, dans la video, il a la doc du protocole et il calcule par rapport au pin d'horloge.
Du coup j'ai fait des tests avec un clavier midi. J'ai branché les 3 pins 5v, masse et data. Quand j'utilise les curseurs, j'obtiens ça (photo en dessous)
Du coup, si je comprends bien c'est 1.7Khz soit 3.4 en facteur 2 , ou alors j'ai rien compris ?
Sinon avec ce clavier, déjà j'arrive à obtenir les notes velocité etc . On voit bien qu'il decrypte bien le protocole midi.
Pour l'accordéon, j'ai utilisé les mêmes réglages et j'obtiens pas les mêmes fréquences et il ne me trouve pas les notes (deuxième photo).
Peut-être que je ne branche pas les bons pins (je branche que le in et la masse) je ne sais pas si je dois brancher le 12v, je ne capte pas bien le descriptif de l'analyseur j'ai pas envie de le cramer..
Sinon Artouste, c'est bien un cavagnolo, c'est un digit orchestra. Je peux te mettre des photos mais il n'y a pas grand chose à voir, c'est la version avec un petit ecran au dessus et juste un prise midi derrière. J'avais lu sur des forums que certains avaient utilisé le panda midi beam sur des cavagnolo mais en fait c'était sur les anciens accordéons "odyssé" ils n'avaient pas d'écran etc. Mais ça je ne m'en suis rendu compte qu'après car j'ai testé avec le panda et ça ne transmet rien même en utilisant que le fil qui transmet les données (out) du clavier. A l'intérieur il y a des pins sur les cartes éléctroniques mais j'ai pas très envie de faire des bétises ou alors je pourrais tenter d'utiliser l'analyseur dessus..... A voir
ok si tu le dis J'essaye de comprendre pourquoi mais franchement, même en faisant des calculs dans tous les sens, je ne vois pas.... C'est beau les gens qui s'y connaissent quand même !!!!
J'ai donc changé le baud rate en 115200 si j'ai bien compris...
J'ai refais une batterie de tests un peu dans tous les sens, et je ne comprends rien. A priori, ça ne doit pas être du midi standard car j'ai l'impression que ça mélange tout, lorsque je joue une note, il ne détecte pas ou il me le traduit en control change. Sur le fil de réception de donnée, il me met des notes on, notes off. C'est un gros bazar. Soit je ne sais pas régler ( ce qui est possible) mais j'ai tellement fait de tests en jouant sur les différents paramètres que je pense que j'aurais trouvé une logique à un moment et là rien.
Y'a trop de choses que je ne maitrise pas, "unhandled data" pourquoi ? les "frame error" pareil ?
Comment puis je simplement savoir si c'est en uart ? est ce qu'avec les réglages que j'avais avant et le baud rate à 115200, je suis sensé avoir une lecture claire ?
Si ça ne l'est pas quels sont les protocoles asynchrones les plus utilisés ?
Si vous êtes fatigués de me répondre, je comprends complètement, je pense que je ne vais pas tarder à laisser tomber, c'est trop compliqué pour moi
L'impulsion la plus courte semble faire dans les 10µs soit une centaine de kHz (la copie d'écran ne permet pas de mesurer précisément). Le débit standard le plus proche serait 115200.
Si c'est un protocole propriétaire, il n'y a aucune raison pour que ce soit du MIDI.
Si c'est une liaison série asynchrone (sans transmission d'horloge) il y a des très fortes chances pour que soit soit une liaison "UART". C'est un périphérique très courant dans les microcontrôleurs.
Plutot que des images avec des decodages pas vraiment appropriés mieux vaudrait déposer un enregistrement brut de plusieurs secondes a 1MHz. Ça permettrait a d'autres personnes utilisant Pulseview de tester divers décodages et probablement d'en trouver un qui a du sens.
L'intérêt de l'analyseur loqique c'est aussi la possibilité de chercher a plusieurs au lieu de tester plein de choses , sans expérience, dans son coin ... Jusqu'au découragement.
Ce we je peux examiner un enregistrement binaire brut sous divers angles.
@trimarco232
si, mais je préfère travailler sur des données non interprétées ... probablement pour arriver à la même conclusion !!
je ne suis pas à l'aise avec les copies d'écran fournies et n'ai pas compris ce que tu appelles '2e capture'
Il est il me semble plus intéressant de fournir un fichier d'enregistement que chacn peut présenter comme il le souhaite avec le logiciele ayant servi à faire la capture
Plutot que des images avec des decodages pas vraiment appropriés mieux vaudrait déposer un enregistrement brut de plusieurs secondes a 1MHz. Ça permettrait a d'autres personnes utilisant Pulseview de tester divers décodages et probablement d'en trouver un qui a du sens.
L'intérêt de l'analyseur loqique c'est aussi la possibilité de chercher a plusieurs au lieu de tester plein de choses , sans expérience, dans son coin ... Jusqu'au découragement.
Ce we je peux examiner un enregistrement binaire brut sous divers angles.
bonjour
+1
le salae est connecté où ? comment ?
d'aprés ce que j'ai compris de la lecture, ce serait sur la prise "MIDI (DIN5 Femelle) de l accordeon ?
on detecte bien du MIDI cohérent MIDI OUT en sortie de l'accordeon et de l'activité par encore determinée sur le pin MIDI IN