connecter un clavier ps/2 ou usb sur ancienne machine

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

coconuts

connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

Le but de cette opération n'est pas de remplacer un clavier en état de marche par un clavier PS/2 ou USB.
Mais de redonner vie à une machine ou les pièces sont quasi impossible à trouver....

la mécanique c'est ce qui vieilli le plus vite...

la technique est la suivante:

Pour ps/2: (déja fait)

- Micro contrôleur (un AVR fait ça sans problème)
- Un crosspoint par exemple de chez Zarlink afin de reconnecter la matrice

Pour USB: (en cours d'etude)

2 options:
1/ avr + max3421 + crosspoint
2/ vinculum II + crosspoint

Les crosspoint existente en DIP
Les max3421e/vinculum II existent sous forme de breakout

composants:
max3421e: https://www.maximintegrated.com/en/prod ... 3421E.html
vinculum II: http://www.ftdichip.com/Products/ICs/VNC2.htm
crosspoint: http://www.mouser.com/pdfdocs/Mt8808_DataSheet.PDF

les gros problèmes:
- trouver les connecteurs...
- arriver a placer la carte dans la machine

Pour mon commodore 8032 aucun espoir de retrouver un clavier en bon état.
Actuellement il fonctionne avec un clavier de c64 et une rom custom...

La carte clavier est actuellement sous forme de schémas dans Eagle.

Cette technique peut être adaptée pour pas mal de machine utilisant une matrice
il existe différentes versions de crosspoint si un c64 se contente d'un MT8808 un MT8812 est nécessaire pour un 8032
coconuts

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

Bonjour Carl :)

Déjà vu ce module mais jamais trouvé et les clavier ps/2 commencent à se raréfier.

Le problème c'est aussi de se retrouver avec un clavier qwerty, donc pas moyen d'utiliser la rom fr et Edex.

Ce genre d'adaptateur on peut le faire générique pour plusieurs machines...
j'ai calculé qu'avec un seul module je pouvais couvrir 7 ou 8 machines dont: plusieurs Commodore, Tandy coco, MO5, Apple IIe
(le problème du MO5 c'est les connecteurs et le manque de place a l’intérieur).

En fait il faut 2 parties, la matrice et une adaptation de la matrice au connecteur spécifique de la machine.

J'en ai un qui fonctionne mais je cherche a faire la version USB et avec table clavier téléchargeable.

Je me suis intéressé à ça parce que j'en ai acheté un pour Apple IIe, il ne fonctionnait absolument pas parce que le gars qui avait écris le code faisais un lookup en scannant une table au lieu de reformater les données pour un accès direct....
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17424
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par fneck »

Perso je suis très intéressé par une espèce de clavier "universel" qui pourrait se reconfigurer facilement pour différentes machines. Bien sûr il y aura toujours à réaliser l'adaptation mécanique au connecteur mais ce n'est pas le plus compliqué.

Je suis de près 8)
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par 6502man »

On peut aussi le faire avec un Arduino :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
coconuts

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

L'arduino c'est un peu dur de la caser dans une machine...

Voila une de mes cartes:
Image

ici c'est pour c64
l'atmega reçoit les données sur le bluetooth et active la matrice dans mt8808
la carte est petite pour rentrer facilement
ici 2 connecteurs (convient directement pour vic20/c64) plus4/c16/c116/coco2/coco3 en faisant un adaptateur
sorties 8 X / 8 Y / GND / 5v / restore

le connecteur vert est la pour alimenter le module sur une machine qui n'amene pas l'alimentation par
le connecteur clavier

1 connecteur prevu pour mo5 (nécéssite de la chirurgie lourde sur le connecteur)

peut être que le mieux serais de faire 2 mini cartes dont une serais juste l'adaptation de connectique

Ca c'est le module "slave"

Le module master est: un arduino un + shield max usb + bluetooth

le problème pour faire un module universel est de recenser les différentes demandes et prévoir une matrice assez large

Le protocol utilisé entre le master est le slave est hyper simple
- reset matrice
- connect x / y
- deconnect x / y
- deconnecte tout
- pin n high
- pin n low

Le code dans le master se développe dans l'ide arduino
ca recoit les code clavier par l'usb via le max
et ca converti en connection / deconnection sur ma matrice
transmis via le port serie bluetooth

Le master pourrais être implementer dans un "VNCLO-MB1A"
sorte d'arduino de FTDI (taille arduino uno)
coconuts

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

Il y a peut être une autre voie exploitable... c'est l'utilisation d'un pic32 DIP

La plupart sont cms mail il exist quelque pic32 DIP
Les pic32 on un mode 'peripherique' assez avancé par contre je ne sais pas si on saurais simuler une pile de 8 registres...

Le scan du clavier serais assimilé a une lecture sur le pic32

Le pic (si ses fonctions peripherique le permette) permetrais d'eliminer le crosspoint et le chip usb

je ne sais pas si l'un de vous a des connaissance sur ce produit et la fonction 'peripherique'...

J'en ai acheté un pour tester mais jusqu'a maintenant pas eu le temps...
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par 6502man »

Les Arduino il y en à des tout petit comme l'arduino mini seul inconvénient c'est qu'il n'a peut être pas assez de pin libres :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
coconuts

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

Un arduino ne suffit pas, c'est le crosspoint zarlink qui fait le boulot...

Dans le cas du pic32 dans le mode 'peripherique' qui n'existe pas chez avr on peut imaginer la connexion directe
mais même dans ce cas ce n'est pas garanti que ca fonctionne et dans ce cas on peut oublier la connexion end double clavier

Pour le proto j'ai utilisé un arduino mini mais en fait la moitié de l'arduino ne set a rien
un simple avr avec quartz + condensateur + connecter isp suffit

un atmega328p suffit pour piloter un MT8808 ou un MT8812 par contre pour un apple IIe il peut manquer quelques pins...

l'idée du double clavier c'est de connecter a la foi l'ancien clavier et l'usb (fonctionne avec le crosspoint)
(sous reserve de trouver cables et connecteurs...)

il semblerais que le Vinculum II supporte aussi un mode 'peripherique' mais la doc est loin d'être claire :(
apparement c'est plus un fifo qu'un vrai mode 'peripherique'....
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par 6502man »

Pourquoi tu penses que l'Arduino ne suffit pas pour interfacer un clavier avec un vieux micros ?

Mais tous les vieux micros ne gèrent pas les claviers de la même façon donc peut être que dans certains cas cela ne peut fonctionner ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par Notator »

Il faudrait que je vérifie, mais il me semble que sur l'Arduino, il n'y a pas assez de pattes (lignes de ports) pour faire la matrice d'un clavier courant. Ou alors, il faudrait un ou plusieurs chips d'extension de port, un PCF quelque chose.

J'ai vérifié, effectivement sur l'Arduino Uno, il n'y a que 14 pattes entrées/sorties, et les petits Arduino en ont encore moins.
Pour 64 touches, il faudrait une matrice de 8 x 8, donc 16 lignes d'entrées-sorties, plus celles d'interfaçage avec le clavier de remplacement.

Un PIC conviendrait mieux ; mais il y a aussi d'autres solutions.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par nicolho »

coconuts a écrit :Pour ps/2 (déja fait) : Micro contrôleur (un AVR fait ça sans problème)
+ un crosspoint par exemple de chez Zarlink afin de reconnecter la matrice"
Salut ! En cherchant je suis tombé sur cette interface C=Key (que tu connais probablement) à peu près basée sur les même composants, pour relier un clavier PS/2 sur VIC20 et C64/128, sauf qu'elle marche aussi dans le sens inverse, en transformant le clavier intégré des machines en clavier ps/2 : http://www.go4retro.com/products/ckey/
Le kit complet est vendu 40$, le PCB seul à 6$ (frais de port apparemment modiques) mais le design et le code sont open source si on veut faire la même chose soi-même.
Dans cette interface, le micro-contrôleur AVR (type Arduino) de la carte commande le crosspoint mais peut aussi, avec ses entrées branchées sur le même bus, "écouter" le clavier d'origine pour envoyer les frappes vers le port PS/2 d'une autre machine.
6502man a écrit :Pourquoi tu penses que l'Arduino ne suffit pas pour interfacer un clavier avec un vieux micros ?
Cette question a été posée sur StackExchange, et quelqu'un de bien noté expliquait que ce n'était pas forcément du gâteau : http://arduino.stackexchange.com/a/31672 . D'après cette personne, déjà ça nécessiterait d'être synchro avec le scan du clavier, et ça n'aurait rien d'évident de simuler un switch analogique avec des GPIO et des changements de configuration difficile à effectuer rapidement, pour passer d'entrée (pour simuler un ligne sans courant) à sortie (quand on doit simuler une touche enfoncée et le passage du courant).

Pour du mono-touche, sur la même page, il était également suggéré (certainement du classique), afin de simuler un contact de la matrice, de se contenter de relier deux multiplexeurs/démultiplexeurs analogiques à 10 centimes, type 4051, un pour les colonnes, un pour les lignes, mais du coup adieu "Control-C" et les combinaisons de touches :cry:
D'où l'intérêt du circuit "crosspoint" ou "analog switch array", un circuit qui intègre une matrice de commutateurs analogiques similaire à un clavier, mais commandable numériquement (on peut changer l'état, "branché" ou "débranché"de n'importe quel commutateur de la grille, enfin ça doit être ça, si j'ai correctement pigé le datasheet :) ). Et c'est peut-être moins problématique électriquement sur le bus...
coconuts a écrit :Pour USB: (en cours d'etude), 2 options: 1/ avr + max3421 + crosspoint - 2/ vinculum II + crosspoint
... Il y a peut être une autre voie exploitable... c'est l'utilisation d'un pic32 DIP. La plupart sont cms mail il exist quelque pic32 DIP"
Je crois que tu as bien identifié les contrôleurs USB Host les plus populaires, et le Max3421e est le circuit de l'USB Host Shield pour Arduino, avec sa librairie qui gère pas mal de périphériques (y compris Bluetooth), et donc aussi celui des modules compatibles plus abordables grâce aux différents clones low-cost, y'en a des petits, mais il faut compter au moins 6€ quand même, sans compter le micro-contrôleur.

Alors, au moins économiquement, le PIC32MX semble une bonne solution car à la fois puissant et un des MCU fourni avec le support USB OTG les moins chers (les versions en disposant débutent à moins de 3€, même en DIP) et apparemment y'a vraiment de quoi faire avec les exemples de firmware qu'ils proposent (qui peuvent aussi fonctionner avec certains PIC24F) : https://github.com/mentatpsi/Microchip/tree/master/USB

Pour le crosspoint, le modèle qu'on trouve facilement et bradé "à pas cher chez les marchands chinois" est le MT8816, en DIP 40 pins (plutôt balaise) pour une matrice 8 x 16, de quoi largement couvrir tous les cas de figure. Comme tu sembles privilégier les composants traversants type DIP mais que tu cherches un encombrement minimal, à noter qu'il existe aussi en version PLCC44, plus épais mais moins large . Et finalement, dans ce format, j'ai vu qu'il y avait aussi le CD22M3494MQZ moins cher, et qui a lui l'avantage d'être encore en production et dispo à un prix correct chez les distributeurs officiels.
coconuts

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

Je connais le CKey et la carte de chez tindie pour l'apple IIe

Le ckey a quelques inconvenients:
- il veux en faire trop et on ne sais plus ou on en est dans les options (il m'a été livré en kit avec des elements manquants)
- pas moyen d'utiliser un clavier francais...
- ne fonctionne pas avec certains clavier ps/2 (je pense avoir trouvé pourquoi mais pas encore verifié)

A vrai dire j'esperais que Jim ferais une version usb du ckey...
n'ayant rien vu venir depuis des années je me suis interessé a la question...

Le ckey utilise un crosspoint zarlink

La carte usb pour apple II n'utilise pas de zarlink mais un multiplexeur (pas examiné les détails)
Le soft est un cauchemar... chaque touche pressee sur le clavier introduit un delai qui depend de sa position dans une table
en pratique si on laisse le doit sur une touche qui se trouve au debut de la table ca se passe bien...
si on fait la même chose sur une touche en fin de table on fini par un reset de l'usb...

J''en ai un qui fonctionne mais en ayant entierement refait le décodage pour ne plus avoir de lookup dans une table
mais un index direct

Il existe aussi un clavier ps/2 pour coco 3
http://www.frontiernet.net/~mmarlette/C ... Manual.pdf
Je sais pas quel est le chip utilisé (il a la taille pour un mt8808)
le micro controlleur doit être en dessous en cms

L'interet du zarlink c'est qu'il permet de vraiment simuler la matrice clavier pas de prise de tete
une touche basse on connecte dans la matrice, une touche haute on deconnecte
restore ou reset on reset la matrice complete

Il est vendu par les chinois c'est effectivement la que j'ai acheté les miens (mt8808 et mt8812) mais il est aussi en vente
chez mouser et digikey

Je ne pense pas que l'on puisse simuler un clavier directment sur un port avec un arduino il faudrait attaquer
avec autre chose comme un arm ou un propeller (le probleme c'est qu'il faut des level shifter...)
le propeller c'est abominable mais dans certains cas bien utile
la 1 cog s'assurerais de a surveillance de la matrice et enverrais les bonnes données dans un delai correct
un autre cog prendrais en charge l'usb sur max (ou port serie si via bluetooth)
(j'ai une projet en cours sur propeller, j'arrive pas a avancer ce produit me barbe)

Le probleme du pic c'est de se remettre dedans... abandoné ca il y a prés de 6 ans... au profit de l'avr
ce qui faudrait trouver c'est un bon tutorial sur l'utilisation du mode 'peripherique'
pour un c64 il faut simuler une pile de 8 registres... je ne sais pas si le pic a assez d'adresses dispo

Ce qui me semble le plus prometteur c'est le Vinculum mais c'est encore un environnement a découvir
et ce n'est plus du DIP bien qu'il existe des modules

je n'ai pas l'intention de faire un produit juste eventuellement une serie de pcb disponible sur osh park
(c'est pour ca que je reste au DIP)
coconuts

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par coconuts »

La prochaine etape consiste a faire un module "esclave" avec un MT8812 (pcb chez osh park)
(pour mon commodore 8032)

remonter un master avec arduino + shield max + bluetooth serie

Si j'ai un bon résulat je mettrais le pcb accessible
et je ferais une page de doc sur un site pour le montage du master

(pas fanatique du bluetooth mais pas de trou dans une ancienne machine pour passer un cable usb)
j'envisage d'essayer des modules wifi...
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: connecter un clavier ps/2 ou usb sur ancienne machine

Message par 6502man »

Si je pensais utiliser un Arduino c'est parce que avant tout je ne suis pas électronicien et donc il m'est difficile de concevoir un circuit en partant d'un composant type PIC, alors que l'arduino et plutôt du style "plug'n play" donc pas grand chose à faire côté électronique hormis les cables pour le relier à un vieux micros :roll:

Mais vos solutions m'intéresse, pour le côté programmation de ces composants il faut utiliser un IDE spécifique pour chaque fabriquant ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Répondre