Introduction
Vous avez des disquettes que vous désireriez nous envoyer mais vous n'avez plus de vieil ordinateur pour le faire ? Vous avez une disquette qui a une protection anti copie et qui est impossible à copier ? Vous avez une disquette mourante et vous avez peur de n'avoir une seule passe pour la lire ? Vous voulez écrire des disquettes avec un ordinateur moderne via l'USB ? Cet appareil vous conviendra à merveille !
(Pour les anglophones, je vous invite à lire aussi le wiki sur github qui est très instructif et qui contient la plupart des informations nécessaires pour s'en fabriquer un soi-même ! Mais restez quand même jusqu'à la fin [quand elle sera écrite


Qu'est-ce que c'est ?
Si vous avez déjà entendu parler du Kryoflux, ceci fait plus ou moins la même chose, sauf qu'il est open-source et qu'on peut s'en fabriquer un pour seulement quelques euros (contre 140€ pour un Kryoflux !), bien qu'on puisse aussi se fabriquer des modèles plus avancés (et donc plus onéreux) mais qui seront plus pratiques à utiliser (vous comprendrez plus tard).
Cet appareil est basé sur le microcontrôleur ARM ST32. Comme tout bon microcontrôleur, on peut le programmer pour lire et écrire sur ses entrées/sorties, communiquer via l'USB, etc. De nos jours on trouve facilement des cartes basées sur ce microcontrôleur comme la "Bluepill" qui se trouve à moins de 5€. Cette carte va nous servir de base pour le modèle le plus basique qui est le plus simple à fabriquer.
Une fois que vous aurez programmé le microcontrôleur avec le bon programme et que vous aurez les logiciels nécessaires, vous pourrez commencer à copier des disquettes vers un format un peu spécial, le ".SCP".
Ce format est un format Open-source qui a été créé à la base pour la "Super Card Pro", une carte concurrente du Kryoflux (mais qui coûte à peu près aussi cher) et qui en fonction de la disquette que vous copiez, peut être converti vers le format de votre choix, ou bien réécrit sur une disquette directement. C'est ce qui se rapproche le plus de ce qui se trouve réellement sur la disquette au niveau magnétique. Non seulement ça vous permet de copier des disquettes qui ne sont pas copiables normalement avec un PC (la faute à son contrôleur de disquettes limité), mais ça vous permet en plus d'écrire des disquettes pour n'importe quelle autre machine (que ce soit un amiga, un commodore 64, un amstrad CPC, un mac ... vous pouvez écrire ce que vous voulez !).
J'ai un PC d'époque/un lecteur de disquettes USB, quel intérêt ?
Le problème avec les contrôleurs de disquettes des PC et encore pire avec ceux des lecteurs USB est qu'ils sont limités ...
On ne peut pas lire/écrire ce que l'on veut avec un contrôleur de PC. Si le contrôleur n'arrive pas à lire un secteur formaté en FAT "bien comme il faut", il ne cherchera pas à comprendre et le considérera comme illisible. C'est problématique car certains jeux ou logiciels profitent justement de ce défaut pour protéger contre la copie leurs programmes. Il devient alors impossible de les copier de manière fonctionnelle.
De plus, vous ne pourrez pas écrire de disquettes pour un ordinateur n'ayant pas les mêmes limites (comme un Amiga ou un Macintosh par exemple).
Quand aux lecteurs de disquettes c'est encore pire car sur le formatage on est encore plus limités. Si une disquette est vierge, il vous sera impossible de la formater. (Essayez et vous verrez ! Passez un aimant fort tout près d'une disquette qui ne contient rien d'important pour l'effacer et ensuite essayez de la formater votre lecteur n'y arrivera pas). D'autre par, ils sont souvent limités à 1.44Mo seulement. Si vous avez des vieilles disquettes de 720Ko, ça ne fonctionnera pas.
Ensuite, ils n'ont pas été produit pendant très longtemps et ne sont pas de très bonne qualité. Leur prix augmente avec le temps car il devient de plus en plus difficile à en trouver, là où trouver des lecteurs 3.5" interne reste relativement facile.
Enfin, ça fonctionne pour les disquettes 3.5", mais que dire des disquettes 5"1/4 ? Les lecteurs 5"1/4 en USB n'existent hélas pas.
Frabication du modèle "F1"
Ceci est le modèle le plus simple. Pour le réaliser il vous faudra :
- Une carte bluepill
- Un programmateur FTDI ou un STLINK V2 pour programmer le logiciel sur la carte(n'ayant qu'un programmateur FTDI, je ne pourrais pas vous indiquer comment procéder avec le STLINK v2 mais c'est doccumenté dans le repo github officiel si vous savez lire l'anglais)
- Un fer à souder et de l'étain
- Des câbles dupont femelle/femelle, ou bien le PCB à commander ici (vous ne pouvez pas en commander moins de 10) + 4x résistances de 1K ohm en CMS qui sont recommandées + une nappe de lecteur de disquettes + un connecteur dupont mâle de 17x2 (34 pins au total)
- Une alimentation de PC si vous utilisez un lecteur 5"1/4
- Un lecteur de disquettes 5"1/4 ou 3.5" avec connecteur Shugart (À peu près tous les lecteurs que l'on trouve sur PC)
Rien de bien compliqué, il suffit de souder les deux rangées de pattes. Assurez-vous juste que les pattes sont bien droites avant de tout souder, surtout si vous voulez le modèle avec le PCB.
Voici le résultat que vous devriez obtenir :
Étape 2 : Programmation de la carte
Là on commence à rentrer dans le vif du sujet.
Commencez par télécharger la dernière version du logiciel du greaseweasle ici.
Ensuite il vous faut le logiciel de programmation. Vous pouvez utiliser STM32 Cube Prog (Compatible windows, mac et linux !) Il vous sera demandé d'entrer votre adresse email, mais ST ne vous spamme pas heureusement.
Après avoir installé le logiciel de programmation, mettez votre bluepill en mode "programmation" en changeant de position le cavalier comme ceci :
Ensuite, prenez votre FTDI
Et connectez-le à votre bluepill de la manière suivante :
Voilà ce que cela devrait donner :
Connectez le FTDI à votre ordinateur et lancez STM32 Cube Prog.
Dans le menu déroulant en haut à droite (celui en bleu où il y a écrit "ST-Link" par défaut), sélectionnez "UART".
Ensuite dans le menu "UART Configuration" qui se trouve juste en dessus, choisissez le port série sur lequel votre FTDI est connecté (cela dépend de votre configuration. Leur nommage diffère aussi entre les OS, sous windows c'est COMx, sous Linux [et peut-être MacOS ?] c'est /dev/ttyxxx). Si vous faites "Connect", vous devriez avoir un message en bas de votre écran vous indiquant que la bluepill est détectée. Sinon vérifiez que votre branchement est correct.
Après, cliquez sur "+" en haut vers la gauche et faites "Open File". Cela vous ouvrira un explorateur de fichiers. Allez dans le répertoire du logiciel du greaseweasle. Vous devriez avoir deux fichiers "Greaseweazle-F1-vX.X.hex" et "Greaseweazle-F7-vX.X.hex". Choisissez le "Greaseweazle-F1-vX.X.hex"
Enfin, cliquez sur "Download" en haut à droite.
Une fois la programmation terminée, vous pouvez débrancher le FTDI, vous n'en aurez plus besoin. Vous devrez aussi remettre le cavalier sur la carte bluepill à sa place d'origine.
Étape 3.A : l'assemblage avec des fils Dupont
Pour utiliser un lecteur 3.5" vous pouvez tout simplement tout brancher avec des fils dupont femelle/femelle à la carte.
Il vous suffit de suivre ce schéma :
La plupart des lecteurs 3.5" n'ont pas besoin de +12V pour leur alimentation donc vous pouvez vous arrêter là.
Si vous voulez quand même utiliser une alimentation externe, vous devrez relier au moins une des pattes de la partie inférieure (qui sont toutes des masses) à la masse de la carte bluepill.
Voici ce que vous devriez obtenir :
Pour utiliser des lecteurs 5"1/4, vous ne pouvez pas utiliser des fils dupont femelle/femelle et les brancher en direct sur le lecteur car le connecteur est différent. Vous devrez prendre une nappe de lecteur de disquettes, utiliser des fils dupont mâle/femelle et utiliser une alimentation externe. Le brochage est identique (faites à nouveau attention à brancher au moins une masse à votre carte bluepill, c'est très important).
Voici ce que vous devriez obtenir :
À noter que si votre nappe de lecteur de disquettes a une partie qui est retournée entre l'endroit où vous faites vos branchements et l'endroit où vous connectez votre lecteur, vous risquez d'avoir un lecteur qui ne marche pas.
Deux solutions s'offrent à vous : soit dans le logiciel greaseweasle vous indiquez que vous utilisez le lecteur B:, soit vous branchez /SELECT et /MOTOR sur les pins 10 et 14 plutôt que les pins 12 et 16 côté nappe respectivement.
Étape 3.B : l'assemblage avec le PCB
(Plus tard, j'attends de recevoir les miens ...)
Les logiciels
Pour les logiciels, celui qui est fourni dans l'archive suffit pour copier des disquettes. Néanmoins il existe d'autres logiciels qui se marieront très bien avec votre greaseweasle.
- Pour utiliser le greaseweasle, ouvrez un terminal (cmd sous windows) et lancez "gw" (gw.exe sous windows). N'ayez pas peur de la ligne de commande, ce n'est pas très compliqué à utiliser.
Pour copier une disquette, vous pouvez faire :
Code: Select all gw read [fichier].scp |
Code: Select all gw write [fichier] |
Ce n'est pas absolument nécessaire, mais c'est mieux pour garder une bonne "géométrie" des disquettes.
Si vous avez un lecteur 5"1/4 Haute Densité (pouvant lire des disquettes de 1.2Mo), vous devrez rajouter le paramètre "--tracks c=0-39:h=0:step=2" pour lire des disquettes Double Densité (360Ko). Hélas on ne peut pas écrire avec un lecteur 5"1/4 HD sur une disquette 5"1/4 DD.
Si vous avez un lecteur 5"1/4 Double Densité (pouvant lire des disquettes de 360Ko), vous devrez rajouter le paramètre "--tracks c=0-39:h=0"
- Un autre logiciel qui peut s'avérer très utile, c'est le HxC floppy emulator software. Il n'existe à ma connaissance que pour windows, mais il fonctionne très très bien avec Wine.
Il possède une interface graphique qui est très utile pour convertir les images .SCP vers un autre format (attention, toutes les disquettes, notamment celles qui ont une protection, ne peuvent pas être converties). Vous pouvez aussi visualiser la répartition des données sur le disque magnétique avec le "track analyser" !
Voici par exemple Lemmings
(C'est là qu'on comprends pourquoi les disquettes de PC 3.5" DD peuvent faire 720Ko au maximum alors que sur amiga elles font 880Ko, regardez-moi tous ces trous !)
[À suivre ...]