Bonjour, Habr!
Ici, je vais parler d'un projet (malheureusement encore inachevé) pour créer une alternative à l'affichage standard d'Ensoniq EPS16 + et ASR10.
Un peu d'histoire: En fait, la raison de l'apparition d'un tel projet est simple: le manque de pièces détachées pour ces vieillards. Ansonik a utilisé leurs écrans VFD personnalisés en eux, et depuis que l'histoire de l'entreprise s'est terminée à la fin des années 90, il n'y a aucun moyen d'acheter un nouvel écran. De plus, la situation est aggravée par le fait que l'entreprise elle-même était extrêmement fermée et qu'il n'y avait pas de manuels avec des schémas de circuits pour les modèles plus récents que la 90e année, la réparation était censée être modulaire, le module défectueux dans le SC autorisé a été retiré, envoyé à l'usine et un nouveau / réparé en est sorti. C'est une grande différence par rapport aux autres fabricants, car j'ai eu l'occasion de trouver un schéma de circuit pour tous les autres synthétiseurs / échantillonneurs de fer que j'avais.
En général, pour commencer, j'avais mon ASR-10 en standard et j'ai également acheté une version en rack de l'EPS16 + avec un écran cassé à peu de frais via le site de petites annonces gratuites, et il a commencé à renaître.

Tout ce qui était connu du court manuel de service, c'est que la carte mère de l'échantillonneur transmet via le port série à la carte du clavier, qui à son tour transmet les informations à l'écran via un canal synchrone.
Par essais et erreurs, j'ai trouvé des broches dont les niveaux ont changé au moment du transfert des données vers l'écran. Ayant fait l'analyseur logique le plus simple d'Arduina, j'ai calculé que la vitesse de transmission est approximativement égale à 60 kbit / s.

J'ai suivi un chemin simple et connecté USB-Serial avec des sorties ttl et, bien sûr, à partir de l'ancienne mémoire, j'ai défini le 56k le plus proche, la vitesse du modem familière des temps Internet anciens. Mais les données étaient cassées et illisibles. Par essais et erreurs, ainsi que par une réflexion logique (à savoir, en multipliant la vitesse du midi 31250 par deux), la vitesse souhaitée du port série a été calculée. Mais ici, la série USB habituelle ne convenait pas - dans ses pilotes, il n'y a aucun moyen de sélectionner la vitesse souhaitée.
Arduina est de nouveau venue à la rescousse. Sur cette base, j'ai fabriqué un adaptateur du matériel 62500 au logiciel 9600, en ajoutant l'USB-Serial déjà mentionné à l'arduino, calculant simultanément que 7n1 est utilisé dans Ensonik. Et maintenant, le renifleur de données est prêt.
De plus, cela s'est avéré être une question de technologie, ayant de l'expérience avec ASR-10 sur un autre Arduino avec un écran 240x64 connecté et la bibliothèque U8glib, j'ai rapidement esquissé la disposition des caractères sur l'écran,

ratissé l'équipe, mais à un moment tout est tombé quand il a rencontré un problème incompréhensible avec des personnages manquants. Il a combattu avec sa compréhension pendant deux semaines, jusqu'à ce qu'il arrive à la conclusion que dans un tampon standard, toute l'équipe d'arduins ne convenait pas, qui devait être corrigée par HardwareSerial.h, après quoi tout fonctionnait plus ou moins (ce qui prenait encore une douzaine de soirées).
Après cela, j'ai connecté l'arduino avec l'écran et le renifleur à l'ASR-10, exécuté plusieurs scripts et clarifié toutes les commandes pour une compatibilité totale. En fait, le logiciel était prêt, il restait à finir le matériel à quelque chose de plus ou moins décent.
Mais le destin a alors pris un virage serré et j'ai changé mon emploi principal pour une organisation bancaire, avec toutes les conséquences qui en ont découlé sous la forme d'un code vestimentaire, d'un calendrier serré et, surtout, d'une sécurité de l'information cool. En général, il n'était plus possible de combiner le travail principal avec quelques travaux non essentiels et il n'y avait tout simplement plus de temps pour le projet.
Pendant deux ans, j'ai essayé de trouver du temps pour lui, mais à la fin j'ai réalisé que rien ne fonctionnerait et aujourd'hui j'ai publié le code source sur
GitHub , peut-être qu'il sera utile à quelqu'un à l'avenir.