Criando uma tela alternativa para o sintetizador / amostrador Ensoniq EPS16 + e ASR10

Olá Habr!

Aqui vou falar sobre um projeto (infelizmente ainda inacabado) para criar uma alternativa à exibição padrão do Ensoniq EPS16 + e ASR10.

Um pouco de pano de fundo: Na verdade, a razão para o surgimento de um projeto desse tipo é simples: a falta de peças de reposição para esses idosos. A Ansonik usou seus displays VFD personalizados neles e, como a história da empresa realmente terminou no final dos anos 90, não há como comprar um novo display. Além disso, a situação é agravada pelo fato de a própria empresa estar extremamente fechada e não haver manuais com diagramas de circuito para modelos mais recentes que o 90º ano, o reparo deveria ser modular, o módulo defeituoso no SC autorizado foi removido, enviado para a fábrica e veio um novo / reparado. Essa é uma grande diferença de outros fabricantes, pois tive a oportunidade de encontrar um diagrama de circuito para todos os outros sintetizadores / samplers de ferro que possuía.

Em geral, para começar, eu tinha meu ASR-10 como padrão e também comprei uma versão em rack do EPS16 + com uma tela quebrada de forma barata no site de anúncios classificados gratuitos, e ele começou a reviver.



Tudo o que se sabia no breve manual de serviço é que a placa-mãe do amostrador transmite através da porta serial para a placa do teclado, que, por sua vez, transmite informações para a tela através de um canal síncrono.

Por tentativa e erro, encontrei pinos nos quais os níveis eram alterados no momento da transferência dos dados para a tela. Tendo feito o analisador lógico mais simples da Arduina, calculei que a velocidade de transmissão é aproximadamente igual a 60 kbit / s.



Eu segui um caminho simples e conectei o USB-Serial com saídas ttl e, é claro, a partir da memória antiga, defini os 56k mais próximos, a velocidade do modem familiar desde os tempos antigos da Internet. Mas os dados estavam quebrados e ilegíveis. Através de tentativa e erro, bem como algum pensamento lógico (ou seja, multiplicando a velocidade do midi 31250 por dois), foi calculada a velocidade da porta serial desejada. Mas aqui o habitual USB-Serial não se encaixava - em seus drivers não há como selecionar a velocidade desejada.

Arduina voltou ao resgate. Com base nisso, fiz um adaptador do hardware 62500 para o software 9600, adicionando o já mencionado USB-Serial ao arduino, calculando simultaneamente que 7n1 é usado no Ensonik. E agora o sniffer de dados está pronto.

Além disso, acabou sendo uma questão de tecnologia, tendo experiência com o ASR-10 em outro arduino com um monitor de 240x64 conectado e a biblioteca U8glib, rapidamente desenhei o arranjo de caracteres no monitor,



varreu a equipe, mas em um ponto tudo caiu quando ele encontrou uma falha incompreensível com os personagens ausentes. Ele lutou com seu entendimento por cerca de duas semanas, até chegar à conclusão de que, em um buffer padrão, os arduins inteiros não se encaixavam em alguns casos, que tiveram que ser corrigidos pelo HardwareSerial.h, após o qual tudo funcionou mais ou menos (o que levou mais uma dúzia de noites).


Depois disso, conectei o arduino com a tela e o sniffer ao ASR-10, executei vários scripts e esclareci todos os comandos para obter compatibilidade total. De fato, o software estava pronto, restava terminar o hardware para algo mais ou menos decente.
Mas então o destino fez uma mudança acentuada e mudei meu trabalho principal para uma organização bancária, com todas as conseqüências na forma de um código de vestimenta, um cronograma apertado e, o mais importante, uma segurança legal da informação. Em geral, não era mais possível combinar o trabalho principal com alguns que não eram essenciais e simplesmente não havia tempo para o projeto.

Por dois anos, tentei encontrar tempo para ele, mas no final percebi que nada iria funcionar e hoje publiquei o código-fonte no GitHub , talvez eles sejam úteis para alguém no futuro.

Source: https://habr.com/ru/post/pt439822/


All Articles