Macintosh Plus miniature

image

Au début des ordinateurs personnels, il y avait une entreprise appelée Apple. Elle venait de faire d'énormes progrès avec la gamme d'ordinateurs Apple II, mais elle avait besoin d'innovation pour rester au sommet du marché informatique en évolution rapide. La société a déjà travaillé sur la ligne Lisa, qui était inspirée des mini-ordinateurs et était destinée aux utilisateurs professionnels, ce qui signifie qu'elle avait un prix approprié, mais pour le consommateur moyen, elle semblait trop chère. En tant que projet supplémentaire, le Macintosh a été développé, qui était censé être la concrétisation de l'idée d'une nouvelle génération d'ordinateurs pour les «gens de la rue» et coûter environ 500 $. Le projet a été repris par Steve Jobs, et sous sa direction, le matériel est devenu plus avancé, le logiciel a reçu une interface graphique au lieu d'une interface texte, et le prix a grimpé à près de 2500 $. Bien que l'équipement obtenu à ce prix ait été un peu décevant, par exemple, il manquait les accélérateurs graphiques et les capacités sonores des autres machines, mais le logiciel justifiait le prix. Le premier Macintosh était le Mac 128K, et son succès a incité la création de modèles plus avancés de ce Mac compact, en particulier les Macintosh 512K, Macintosh Plus et Macintosh SE Series.

Bien que le développement du Macintosh ait eu lieu vers 1984, bien avant de commencer à comprendre les ordinateurs, j'avais une certaine faiblesse pour le Macintosh compact: le premier ordinateur que mes parents ont acheté était le Macintosh Plus. Plus tard, il a été complété par un disque dur SCSI de 20 Mo, et sur cette machine, j'ai écrit mes premiers programmes de base. Quand je vivais encore aux Pays-Bas, j'ai acheté une machine SE / 30 cassée et l'ai transformée en un serveur Linux, qui était néanmoins capable d'exécuter un logiciel Mac. Cependant, j'ai laissé cette voiture aux Pays-Bas, et ici, à Shanghai, je n'ai plus le matériel Apple classique.

Bien qu'il soit évident que je n'ai plus besoin de Mac Plus dans la vie de tous les jours, j'ai aimé l'idée de l'avoir sous la main en cas d'attaques de nostalgie. Je peux peut-être obtenir une petite part de l'expérience Macintosh si je crée moi-même une petite copie d'une telle machine. Si j'ai déjà de l'expérience dans la création de versions plus petites de vieux matériel , alors pourquoi ne pas essayer d'appliquer ce processus pour construire le vénérable Mac Plus?

Affichage


Que dois-je utiliser pour construire une telle machine? Au début, j'ai eu l'idée de prendre un Raspberry Pi ou quelque chose de similaire, d'ajouter un écran LCD de 2,5 pouces, un émulateur comme PCE ou MiniVMac, d'imprimer un boîtier sur une imprimante 3D et de considérer le travail effectué. Mais je ne pense pas que cette idée sera payante: la machine à mon goût sera non seulement trop grosse, mais le projet lui-même est trop simple. Dans le Mac 128K d'origine, même lorsque le résultat final s'est avéré être trop faible, les développeurs ont réussi à faire quelques astuces pour économiser de l'argent. Le simple assemblage d'une réplique de «fer» standard est contraire à l'esprit du design original. Je suis donc allé à Taobao pour des ingrédients plus exotiques!


J'ai décidé de commencer par l'affichage. Pour l'époque, le Mac avait un écran haute résolution, il était donc très important de choisir le bon écran. Habituellement, lorsqu'il s'agit de choisir des écrans sur le marché électronique chinois, l'assortiment est vaste. Malheureusement, le "grand assortiment" se compose soit d'écrans haute résolution, mais aussi de grandes tailles, ou de petits écrans de petite résolution. Idéalement, j'avais besoin d'une résolution de 512x342 pixels; c'est la résolution native de Mac et sur un écran similaire je peux tout afficher sans zoomer. Malheureusement, il n'y a pas d'écrans prêts à l'emploi d'une telle résolution sur le marché; l'analogue le plus proche sera quelque chose comme 640x480. Pour une raison quelconque, les écrans de cette résolution sont assez grands: le plus petit a une diagonale de 3,5 pouces. Par conséquent, hélas, si je veux rendre le Mac aussi petit que possible, alors je dois aller réduire la résolution.

Ayant décidé qu'il était tout à fait possible de réduire légèrement la résolution, j'ai obtenu un assortiment d'un assez grand nombre d'écrans. L'un des premiers écrans vus a été le x163qln01 - un écran OLED de 1,63 pouces fabriqué par AUO. C'est un peu cher (environ 25 $ par écran), mais il peut souvent être trouvé sur Taobao, et la fiche technique documente au moins les contacts, les tailles et les besoins en énergie. Il semble que cet écran a été conçu pour une sorte de marque de montre intelligente sur Android, et un peu sur Google, j'ai même trouvé des séquences d'initiation qui peuvent être utilisées.

Le seul problème (à l'exception du connecteur, dont les contacts sont situés à une distance de 0,5 mm les uns des autres) est que l'écran n'utilise pas une interface parallèle et non SPI, mais l'interface MIPI. Je devrai m'en occuper plus tard.

Après avoir sélectionné l'affichage, vous pouvez accéder au processeur. J'ai choisi le module ESP32-Wrover. Ce module contient un ESP32 (une puce WiFi avec deux processeurs 32 bits fonctionnant à une fréquence de 240 MHz et avec environ un demi-mégaoctet de RAM), 4 Mo de mémoire flash et 4 MiB PSRAM. J'ai suggéré que les deux cœurs de processeur seraient assez rapides pour émuler un Mac et que je pourrais utiliser 4 Mo de PSRAM comme RAM Mac. Bien que 4 Mo de mémoire flash ne soient pas beaucoup, ils devraient être suffisants pour l'émulateur et un petit disque dur avec les logiciels et programmes système. Je profite également du fait que je travaille chez Espressif, donc cet équipement m'est assez familier; De plus, je peux simplement prendre quelques modules du travail, au lieu de les acheter et d'attendre la livraison.

Donc, tout est presque prêt à fonctionner - l'écran OLED avait encore besoin de composants pour l'alimentation, donc le nombre de composants a augmenté grâce à un stabilisateur de chute de tension (LDO) et d'autres puces d'alimentation. Pour le Mac, le son était également nécessaire, j'ai donc pris une puce d'accélérateur et un haut-parleur bon marché, et j'ai obtenu le module FT232 standard pour l'alimentation et le débogage. Tous ces composants sont assez petits et me permettent de réduire le corps de l'appareil; le résultat devrait être un modèle légèrement supérieur à 1/6 d'un vrai Mac.

Contrôle de l'affichage


Bien que je ne puisse pas me plaindre de la résolution, de la taille et de la luminosité de l'écran, il s'est avéré plus difficile d'afficher des pixels sur celui-ci. MIPI n'était pas pris en charge par le silicium ESP32, j'ai donc dû trouver un autre moyen de communiquer avec lui. MIPI DSI est une norme développée par MIPI Alliance et n'est pas ouverte; comme c'est un passe-temps pour moi, j'ai dû collecter des informations à partir de documents divulgués et tester des appareils existants. Heureusement, il y a un an ou deux, Mike Harrison a procédé à une ingénierie inverse de l'interface MIPI DSI utilisée pour contrôler les écrans de l'iPod ( 1 , 2 , 3 , 4 , 5 , site Web ), et a également trouvé plusieurs copies des spécifications. Cela m'a beaucoup simplifié la vie: au moins, cela m'aide à comprendre quoi envoyer à l'écran.

Bien qu'il y ait beaucoup plus à l'interface (et pour en savoir plus, vous devriez regarder toutes les vidéos auxquelles j'ai donné des liens ci-dessus), la couche physique MIPI est assez facile à expliquer. MIPI utilise quatre fils: deux bus de données et deux bus d'horloge. Il dispose également de deux modes de transmission de signal: le mode Low Power (LP) et le mode High Speed ​​(HS).


En mode Low Power, les fils sont utilisés séparément pour transmettre les structures de données de contrôle, ainsi que pour indiquer que certaines commandes ont un effet direct sur le récepteur physique d'autre part. La chute de tension dans ce mode est assez importante par rapport au mode haute vitesse: pour un signal élevé, la tension est d'environ 1,2 V, et pour un signal faible, elle est d'environ 0 V.Le mode basse consommation ayant plus d'états de signal, il remplit des fonctions telles que l'envoi le destinataire de la commande pour passer en mode haut débit ou le quitter. Dans le graphique ci-dessus, les lignes bleues indiquent la transmission de données en mode Low Power.

En mode haute vitesse, deux bus d'horloge (CLKP / CLKN), ainsi que deux bus de données (DP / DN) fonctionnent comme des bus différentiels: un bus est toujours opposé à l'autre. Le récepteur détecte les différences entre les deux bus et, en fonction d'eux, définit la valeur transmise: 1 si au-dessus de DP et 0 si au-dessus de DN. Comme son nom l'indique, le mode haute vitesse permet un transfert de données très rapide avec une fréquence d'horloge allant jusqu'à 1,5 GHz. Pour y parvenir sans trop d'interférences électromagnétiques et de consommation d'énergie, la norme utilise l'astuce suivante: elle utilise des tensions très faibles: la tension sur les paires est en moyenne de 200 mV, avec des écarts de ± 100 mV par bus pour indiquer les zéros et les uns. Dans le graphique ci-dessus, les bits rouges sont transmis en mode haute vitesse.

Du point de vue du transfert des données elles-mêmes en mode haute vitesse, l'interface peut essentiellement être considérée comme une interface SPI plutôt étrange et différentielle: il y a un signal d'horloge et un canal de transmission de données, et à chaque cycle d'horloge la valeur des données est transmise à l'interface. La différence avec SPI (sauf que les signaux sont différentiels) est que le bit de données n'est transmis que lorsque l'état des bus CLK change, et pas seulement, par exemple, sur le front montant. Une autre différence est que le début d'une transmission n'est pas reconnu lorsque le signal sur le bus / CS devient faible, mais plutôt un signal intrabande: chaque transmission de données commence par un "mot magique" unique, et le récepteur détermine cette valeur pour comprendre quand la transmission commence.

Pour m'assurer que cette interface interagit avec ESP32, je devrai effectuer un changement de niveau. Je voulais alimenter l'ESP32 à partir d'une source de 3,0 V afin que tous les GPIO aient également 3,0 ou 0 V.Pour l'adapter aux niveaux de signal de l'interface MIPI, j'ai choisi la solution la moins chère: je viens d'utiliser des réseaux de diviseurs à résistances.

Pour calculer les valeurs de résistance, j'ai créé des équations pour les trois états de tension de sortie qui m'intéressent (1,1 V pour le signal haute puissance faible, 0,07 V pour le signal haute vitesse faible, 0,33 V pour le signal haute vitesse élevé; les tensions ont été choisies comme de sorte que dans la plupart des cas, ils restent dans la spécification) et les trois états d'entrée qui devraient les générer. J'ai les équations. Théoriquement, il était possible de les résoudre manuellement, mais à la fin je les ai abandonnés dans WolframAlpha et j'ai obtenu les valeurs de résistance requises.

            3v
 G -R1 - + R3
 G -R2 - + - + ---->
            R4
            GND

 R4 * (1,9 / R1 + 1,9 / R3) = 1,1, 
 (1 / (1 / R4 + 1 / R1 + 1 / R2)) * (2,93 / R3) = 0,07, 
 (1 / (1 / R4 + 1 / R1)) * 2,67 * (1 / R3 + 1 / R2) = 0,33, 
 R2 = 1000

 R1 = 280, R2 = 1K, R3 = 3K6, R4 = 150 


À ce stade, j'ai réalisé que vous pouvez également tricher un peu: comme en mode haute vitesse les bus sont différentiels, l'affichage ne regarde que la différence entre les deux bus pour déterminer les données transmises. Cela signifie que je peux sauver GPIO en gardant une tension fixe sur l'un des bus et en appliquant un signal haut ou bas à l'autre. Pour ce faire, j'avais besoin d'un deuxième type de réseau de résistances:

            3v
            R3
 G -R1 - + - + ---->
            R4
            GND

 R4 * (1,9 / R1 + 1,9 / R3) = 1,1,
 (1 / (1 / R4 + 1 / R1)) * (2,8 / R3) = 0,2,
 R4 = 150

 R1 = 320, R3 = 1500, R4 = 150 


Une autre tâche consistait à créer un circuit d'horloge. Le SPI normal transmet un peu sur le bord d'attaque du bus d'horloge. (Ou au bord arrière, selon la configuration.) Le MIPI transmet un bit aux bords avant et arrière du signal d'horloge. Bien que le module SPI de l'équipement ESP32 ne puisse pas générer de tels signaux par lui-même, nous pouvons les convertir l'un à l'autre à l'aide d'un simple déclencheur D, dont la sortie inversée est connectée à l'entrée. Chaque impulsion d'horloge à l'entrée changera le niveau de sortie, comme nous l'exigeons.

Schéma du circuit


Après avoir traité de l'équipement d'affichage, nous avons terminé la partie la plus difficile. Il ne nous reste plus qu'à ajouter le reste. Commençons par la source d'alimentation. C'est assez simple: j'alimente tout le circuit 5V à partir d'un convertisseur USB-série, qui peut également être utilisé comme interface de débogage / programmation. Cette tension est utilisée pour générer les +4,6 V, -3,4 V et 1,8 V requis par l'écran OLED, ainsi que 3,0 V pour alimenter l'ESP32. Des tensions de +4,6 V et -3,4 V sont générées par la puce TPS65631, et le circuit de référence pour cela est indiqué dans la fiche technique de l'écran OLED. D'autres tensions sont générées par une paire de LDO simples.


Le Macintosh avait également du son. Selon les normes modernes, sa qualité n'est pas très élevée (22 kHz, 8 bits), mais les sons de ses programmes sont désormais légendaires, donc dans mon projet, je ne pouvais pas les refuser. L'ESP32 dispose d'un DAC 8 bits intégré, qui est utilisé pour créer des ondes sonores analogiques générées par l'émulateur. Ils alimentent ensuite le NS8002, qui est un amplificateur de son de classe AB de 2 watts monté dans le petit format SOIC8. Il est bon marché, nécessite très peu de composants de support et crée suffisamment de son pour attirer l'attention sur le petit Mac.


L'un des aspects qui a rendu le Macintosh si révolutionnaire est qu'il a été l'un des premiers ordinateurs commerciaux avec souris. L'équipe Macintosh a pensé la souris si soigneusement que presque tout le système d'exploitation est basé sur des éléments d'interface utilisateur contrôlés par la souris, et contrairement, par exemple, au PC IBM, le Macintosh entier peut être contrôlé par une souris. De toute évidence, mon petit Mac avait également besoin de cet important périphérique. Je me souviens encore des souris à billes vendues avec le premier Macintosh, mais je n'étais pas très satisfait de la nécessité de nettoyer trop souvent les rouleaux de la saleté; c'est pour cette raison que ces dispositifs mécaniques ont été complètement remplacés par des souris optiques. L'avantage de cela est que les détails de ces nouvelles souris optiques sont assez simples à trouver: par exemple, il ne m'a pas fallu longtemps pour trouver le vendeur de capteurs de souris de jeu ADNS9500 et d'optiques correspondantes.

Un autre aspect pratique est que le capteur optique de la souris est un appareil assez profondément intégré: il ne nécessite que quelques composants externes pour fonctionner, et cela se reflète dans le diagramme. Ajout de plusieurs condensateurs pour stabiliser la tension, un transistor MOS (copié directement à partir de la fiche technique) pour allumer la diode laser et d'autres détails standard. Le capteur de la souris transmet les données via un signal SPI à quatre fils, et j'ai utilisé l'un de ces fils pour envoyer le signal du bouton de la souris: lorsque je clique sur le bouton, le contact MISO est abaissé un peu. La valeur de cette résistance de rappel n'est pas suffisante pour que la souris arrête de transmettre des données, mais suffisante pour surmonter la résistance de rappel, qui tire normalement le bus vers le haut.Ainsi, lorsque le capteur crée trois états dans le bus MISO, l'ESP32 peut reconnaître une pression sur un bouton.


Enfin, vous devez connecter l'écran OLED. Nous avons déjà terminé tout le travail difficile de calcul des valeurs de toutes les résistances, donc le circuit devrait plus ou moins parler de lui-même. La puce ajoutée est une bascule D, et elle est utilisée pour réduire de moitié la vitesse d'horloge: comme mentionné ci-dessus, la norme MIPI nécessite un nouveau bit à chaque fois que la polarité du signal d'horloge est inversée, tandis que l'ESP32 transmet un nouveau bit uniquement à l'avant ou à l'arrière devant.


Après avoir dessiné un diagramme schématique, j'ai continué à créer une conception de carte de circuit imprimé. L'écran que j'ai sélectionné devait être monté sur la carte qui le contrôle, et le connecteur devrait être à l'arrière de cette carte de circuit imprimé. Bien que cela n'ait pas laissé beaucoup d'espace pour les autres composants, je voulais quand même placer tous les autres composants de l'autre côté.


C'est super d'avoir une bonne vision et un pistolet à air chaud: cela m'a permis d'utiliser les composants du 0603 et de tout placer sur l'espace limité de la carte. Il serait particulièrement difficile de connecter le connecteur d'affichage et la puce d'alimentation OLED QFN avec un fer à souder conventionnel.


J'ai réalisé que le capteur de la souris et ses composants prendraient trop de place sur la carte, j'ai donc décidé de souder tous les composants au capteur lui-même. Grâce à cela, tout peut être placé dans la souris.



Logiciels



De toute évidence, le logiciel est un élément assez important de cet assemblage: vous devez émuler l'intégralité du Macintosh. Cependant, le Macintosh n'est pas une machine aussi compliquée. En fait, il se compose d'un microcontrôleur 68000, d'un contrôleur de transfert série Zilog Z8530 qui contrôle le port série, 6522 VIA pour les E / S internes et pour fournir une interface avec un clavier, ainsi que plusieurs matrices logiques programmables (PAL) contenant une logique pour l'affichage et le son. Il possède également une puce Woz Machine intégrée qui fournit une interface avec un lecteur de disquette. C'est une puce assez compliquée; cependant, je ne prévois pas d'émuler une disquette, il suffira donc d'émuler IWM, en retournant constamment qu'il n'y a pas de disque dans le lecteur. Au lieu de cela, je prévois d'émuler complètement la puce NCR 5380 SCSI connectée au disque dur SCSI émulé, qui lira la mémoire flash intégrée ESP32-Wrover.

De plus, il y aura très peu de programmes ayant un accès direct à l'équipement du système: les programmeurs Mac ont été informés dès le début d'utiliser des couches d'abstraction matérielle au niveau du système d'exploitation pour maintenir la compatibilité avec les futures versions de l'équipement Mac.En général, cela signifie que si je parviens à émuler le matériel à un point tel que le système d'exploitation démarre et est satisfait de tout, la plupart des programmes fonctionneront sans aucun problème.

J'ai donc décidé que vous pourriez essayer d'écrire un émulateur à partir de zéro. Plus précisément, pas tout à fait à partir de zéro; 68000 est une bête assez compliquée et je ne voulais pas réinventer la roue. Au lieu de cela, j'ai cherché sur Internet et j'ai découvert que MAME avait un émulateur 68K pratique et rapide basé sur CK appelé Musashi, qui correspond parfaitement à mes besoins. Il sera nécessaire de conjurer un peu pour transférer les opcodes au lieu de la RAM vers la mémoire flash, mais pour le reste, presque rien n'est nécessaire pour porter sur ESP32.

Cependant, je n'avais pas prévu de développer l'ensemble du projet sur ESP32: étant donné que la puce prend en charge OpenOCD, qui offre des capacités de débogage assez étendues, le cycle «téléchargé-testé-fixe-chargé» sera trop monotone. Par conséquent, j'ai décidé de tout développer sur ma machine Linux, sans oublier les limitations de l'ESP32. J'ai donc commencé à utiliser la fiche technique de différentes puces, des informations Linux-68K pour la machine, ainsi que des informations de la série Inside Macintosh qui peuvent être trouvées sur Internet. Quand je ne savais pas quoi faire ensuite, je pouvais regarder sous le capot d' autres émulateurs open source .

Armé de tout cela, en choisissant gcc comme compilateur et libsdl comme bibliothèque pour travailler avec les graphiques, je me suis mis au travail. En bref, après un certain temps, j'obtiendrai un émulateur MacPlus simple mais fonctionnant généralement: souris, vidéo, disque dur SCSI et son:


Comme mon matériel n'était pas encore prêt, j'ai décidé de porter mon émulateur sur le devboard ESP-Wrover-Kit. J'avais encore plusieurs de ces cartes sous la main, et en plus du module Wrover, que j'utiliserai de toute façon, elles ont un écran 320x240 pratique qui peut être utilisé pour tester la vidéo.


Après la configuration, l'émulateur Mac a fait pas mal d'argent sur cette carte; en fait, il est généralement assez proche des 7,8 MHz sur lesquels fonctionne le Mac Plus. (7,8 MHz sera légèrement plus rapide que Mac Plus; puisque dans cette machine une partie des cycles de mémoire le tampon de trame et le système audio mangent, la fréquence peut être réduite de 35%.)

Évidemment, le travail de l'émulateur sur devboard est un bon pas en avant, mais au final, tout devrait fonctionner sur l'écran que j'ai acheté, et non sur l'écran devboard. Et encore une chose: l'écran devkit a un écran 320x240 et coupe la partie solide de l'écran Mac. L'écran que je vais utiliser a une taille de 320x320, et donc il n'est plus grand que verticalement: comment puis-je y afficher un écran Mac 512x342?

Il n'y a qu'une seule façon de mettre 512x342 pixels sur un écran 320x320, et c'est la mise à l'échelle. En fait, nous prenons une image, la compressons, la rendons plus petite, puis la visualisons. Cependant, la mise à l'échelle peut être effectuée de différentes manières, et étant donné que l'image en noir et blanc générée par le système d'exploitation suppose que chaque pixel crée un point de lumière clairement défini sur l'écran, c'est-à-dire qu'il existe de nombreuses façons de tout gâcher. J'ai besoin de perdre le moins de pixels possible. Autrement dit, vous devez augmenter la résolution de l'écran OLED.

Mais comment faire?Il est peu probable que vous puissiez ouvrir l'écran OLED et y mettre quelques pixels de plus. Cependant, ce n'est pas nécessaire; la résolution de l'écran OLED est déjà trois fois celle indiquée. La raison en est que cet écran est en couleur: chaque «pixel» virtuel a des sous-pixels rouges, verts et bleus. De plus, dans cet écran particulier, les sous-pixels sont bordés d'un triangle. Voici une capture d'écran rapprochée avec trois pixels activés:


Comme vous pouvez le voir, les pixels sont des ensembles triangulaires de trois sous-pixels; selon la colonne, les triangles pointent vers le bas ou vers le haut. En substance, cela signifie que la résolution sous-pixel de l'écran est de 480 x 640 pixels. Bien que cela ne soit pas encore complètement suffisant pour afficher 512x342 pixels, la différence est si petite qu'avec le bon choix de petite échelle, l'affichage sera aussi lisible que possible pour un écran de 1,63 pouces affichant une interface graphique conçue pour un écran de 9 pouces:



Logement


Alors maintenant, j'ai un écran et un logiciel qui émulent assez bien le Macintosh Plus, plus un microcontrôleur sur lequel il peut être exécuté. Qu'est-ce qui manque? Evidemment, des boîtiers pour tout ça!

J'ai décidé de l'imprimer sur une imprimante 3D Formlabs 1+ SLA à partir de mon travail. Pour ce faire, j'ai d'abord besoin d'un modèle. Je voulais le créer à partir de zéro. Évidemment, il vaut mieux avoir un vrai Macintosh Plus sous la main. En fait, je l'ai, mais nous sommes partagés par un demi-continent ... Heureusement, j'ai réussi à trouver une solution presque aussi bonne: une personne aimable a indiqué les dimensions du Mac 128K d'origine (dont le boîtier est presque le même que Plus) dans le wiki iFixit .

Je crée toujours tous mes modèles 3D dans OpenScad, et après avoir tourmenté et maudit, j'ai réussi à faire en sorte que toutes les courbes se présentent comme elles le devraient. J'ai eu un beau modèle Mac à l'échelle 1: 6.


J'ai également créé la souris à partir d'images avec iFixit, mais comme un capteur suffisamment grand de la souris optique doit y entrer, il ne peut pas être mis à l'échelle au 1/6 d'une vraie souris. L'échelle est plus proche de 2/5, de sorte que la souris semble grande par rapport au petit Mac, mais elle est beaucoup plus pratique pour les doigts humains non mis à l'échelle.


Il ne reste donc plus qu'à imprimer les modèles. J'ai exporté la construction vers divers fichiers STL et les ai imprimés sur Formlabs 1+. Le résultat final était assez bon; Je regrette seulement de ne pas avoir ajouté de loquets aux deux parties du design. Ce problème a été résolu avec une goutte de superglue.

image


Résultat


Donc, j'avais tous les composants et je ne pouvais que les assembler. Les connecteurs PCB à l'avant du châssis sont fixés avec plusieurs clips. Le convertisseur USB-série, utilisé comme mécanisme de démarrage et alimentation, est connecté à l'arrière et tient également sur plusieurs bornes. J'ai oublié de faire quelque chose pour le montage à l'intérieur du haut-parleur, mais j'ai réussi à le fixer dans le boîtier avec de la super glue. La souris est connectée par un ensemble de fils fins. (Oui, ils sont quelque peu incompatibles avec le jeu de couleurs ... dès que je trouve un plus beau câble multicœur, je vais le réparer.)


Lorsque vous développez tout sur un ordinateur, vous ne réalisez la véritable échelle du produit que lorsque le projet est entièrement matérialisé, par exemple, lorsque vous recevez des cartes de circuits imprimés de l'usine ou après avoir imprimé sur l'imprimante 3D le design du boîtier sur lequel vous travaillez depuis des semaines. Bien sûr, je savais que tout serait six fois plus petit que le Mac d'origine, mais seulement après avoir tout assemblé et vu la voiture en direct, j'ai réalisé ce que cela signifie. Le Mac s'est avéré vraiment minuscule!



Et malgré la petite taille et le manque de clavier, il est capable d'exécuter la plupart des programmes pour lesquels le Mac est célèbre. Voici une démo. Les 20 premières secondes, une vérification de la mémoire est effectuée, et je sais par expérience qu'une vérification aussi longue n'est pas un bug: le Mac Plus original a pris le même temps à se charger, même après la mise à niveau.


Alors, qu'est-ce qui est bien avec ce Mac Plus? Bien que j'aie aimé le créer, je dois admettre que sans clavier, il ne peut pas être utilisé à son plein potentiel. De plus, il n'a pas les moyens de communication: j'avais prévu d'implémenter AppleTalk via WiFi, mais je n'ai pas réussi à cause des bizarreries que je ne pouvais pas émuler dans la puce du contrôleur de bus série du Mac d'origine elle-même. Néanmoins, ayant le projet terminé dans cet état, je peux enfin réaliser mon ancien rêve et le mettre sur la table Mac avec les grille-pain de l'économiseur d'écran After Dark volant autour de l'écran:


Comme d'habitude, ce projet est open-source, la conception du circuit imprimé et du boîtier, ainsi que le firmware, sont affichés sur Github . Tout est sous licence Beer-Ware, vous pouvez donc faire presque tout ce que vous voulez avec. Si vous utilisez toujours quelque chose dans vos projets, vous pouvez écrire moi à ce sujet.

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


All Articles