Kit Simulateur Altair 8800 Basé sur Arduino – Construire et Programmer un Ordinateur Rétro
Composants et Fournitures
| Composant | Quantité | Remarques |
|---|---|---|
| Arduino Mega 2560 | 1 | Soit Mega, soit Due requis, pas les deux |
| Arduino Due | 1 | Alternative au Mega, offre plus de mémoire et de vitesse |
| LED (standard) | 36 | Pour les voyants du panneau frontal |
| Transistor NPN Usage Général | 36 | Pilotes pour les LEDs |
| Résistance 10 kΩ | 36 | Pour les circuits de pilotage LED |
| Résistance 150 Ω | 36 | Limitation de courant LED |
| Mini Interrupteur à Bascule SPDT On-On | 17 | 16 pour adresses (SW15-0) + 1 pour alimentation |
| Interrupteur Momentané SPDT (On)-Off-(On) | 8 | Pour fonctions RUN/STOP/EXAMINE... |
| Plaque Métallique pour Support Panneau Frontal | 1 | Maintient interrupteurs et LEDs |
| Module Bluetooth SparkFun BlueSMiRF Silver | 1 (optionnel) | Permet terminal série sans fil |
| Carte microSD avec Adaptateur | 1 (optionnel) | Nécessaire pour émulation lecteur disque (Due uniquement) |
Applications et Services en Ligne
- Arduino IDE – Environnement de développement
- Bibliothèque DueFlashStorage – Stockage permanent sur flash du Due (effacé lors reprogrammation)
- Bibliothèque soft_uart pour Due – UART logiciel pour ports série additionnels
À Propos du Projet
Depuis longtemps, je rêvais de posséder un Altair 8800 pour expérimenter. Mais les Altair d'origine sont rares et coûteux (1500‑2500 $). Les clones comme altairclone.com coûtent encore ~600 $. Heureusement, Mike Douglas (créateur de l'Altair Clone) a mis à disposition documents et logiciels, offrant une mine d'informations sur le fonctionnement interne.
En examinant les spécifications de l'Arduino Mega 2560, j'ai réalisé qu'il possédait exactement le bon nombre de broches I/O pour connecter directement les LEDs et interrupteurs du panneau frontal. L'Arduino Mega possède 54 broches numériques + 16 analogiques = 70 I/O, parfait pour les 36 LEDs + 32 interrupteurs + quelques signaux de contrôle.

Performances : Mega vs Due
- Arduino Mega : ~25 % de la vitesse originale, 6 Ko RAM émulée, 4 Ko EEPROM pour stockage permanent.
- Arduino Due : Vitesse quasi originale, 64 Ko RAM émulée, stockage semi-permanent sur flash (32 Ko disponibles), émulation disque dur et lecteurs disquettes via carte SD.
Mon objectif : reproduire au plus près la sensation du « vrai » Altair 8800. Les voyants du panneau frontal reflètent le comportement réel, y compris le jeu « Kill-the-Bit » et la démo musicale (via interférences radio AM captées par un poste proche).
Fonctionnalités Principales
- Reproduction fidèle du panneau frontal (LEDs, interrupteurs).
- Vitesse ~100 % (Due) ou 25 % (Mega) de l'Altair original.
- RAM émulée : 64 Ko (Due) / 6 Ko (Mega).
- Logiciels Altair inclus : Pong, Altair 4K BASIC (premier produit Microsoft), Extended BASIC, MITS Programming System II (Due), Time Sharing BASIC, etc.
- Exemples BASIC/Assembleur préchargés.
- Émulation cartes série : 88‑SIO, 88‑2SIO, 88‑ACR (magnétophone). Mapping par défaut sur port série USB 115200 baud 8n1. Recommandation : dongle Bluetooth sur broches RX/TX.
- Sur Due : ports série USB et Serial1 (broches 18/19) utilisables simultanément.
- Capture/Relecture données série (jusqu'à 256 fichiers) en stockage local (EEPROM/Flash).
- Support commandes CSAVE/CLOAD en Extended BASIC (interface cassette).
- Émulation carte graphique Cromemco Dazzler (matériel/logiciel additionnel).
- Émulation carte vidéo Processor Technology VDM‑1 (matériel/logiciel additionnel).
- Jusqu'à 16 lecteurs 88‑DCDD émulés (4 par défaut) – nécessite carte SD sur SPI (Due uniquement).
- Émulation contrôleur disque dur 88‑HDSK (4 unités, 4 plateaux/unité).
- Émulation carte 88‑RTC‑VI (horloge temps réel + interruptions vectorielles) pour Time Sharing BASIC.
- Sauvegarde/chargement pages mémoire 256 octets vers stockage permanent.
- Éditeur de configuration intégré pour modifier nombreux paramètres.


Documentation
Le simulateur fonctionne comme un Altair 8800 réel : la documentation originale (facilement trouvable) suffit pour l'utilisation du panneau frontal. Les fonctions supplémentaires (accessibles via interrupteurs AUX1/AUX2, inutilisés sur l'original) sont décrites dans Documentation.pdf du dépôt source.
Instructions de Construction
Objectif : circuit de support minimal. Mega et Due ont assez de broches pour câbler directement tous les éléments du panneau. Seuls transistors et résistances pour piloter les 36 LEDs sont nécessaires (sinon courant total > limites Arduino).
Au lieu de schémas complets (répétitifs), le document fournit :
- Tableaux détaillés : correspondance broches Arduino ↔ éléments panneau frontal.
- Schémas des sous-circuits (pilotes LED, etc.).
- Fichier Fritzing pour disposition composants sur plaque à bandes (stripboard).

Panneau frontal : Scan haute qualité du panneau Altair (vintage-computer.com) imprimé sur carte rigide. Support : tôle 22 gauge, trous percés pour LEDs/interrupteurs. Circuits pilotes soudés sur stripboard, eux-mêmes soudés aux LEDs maintenues par la tôle.
Boîtier : Boîte bois simple, moins profonde que l'original (ne contient que panneau + Arduino). Interrupteur On/Off frontal : prise alimentation (type Arduino) câblée sur interrupteur puis vers fiche Arduino.
Émulation disque (Due) : Connecter carte SD sur port SPI du Due (dernière page du document schémas).
Optimisation compilateur Due : Avant téléversement, passer l'optimisation à « performance » (-O3 au lieu de -Os par défaut). Éditer platform.txt (chemin typique : c:\Users\[user]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt) et remplacer « -Os » par « -O3 ». Sinon simulateur significativement plus lent.
Mode « Standalone » (sans panneau frontal) : Dans config.h, définir #define STANDALONE 1. Permet d'exécuter programmes utilisant בעיקר le terminal série. Pas l'usage prévu ; pour émulation pure logicielle, préférez émulateurs PC. config.h contient aussi d'autres options d'inclusion/exclusion de fonctionnalités.
Remerciements
- Mike Douglas (deramp5113 / altairclone.com) : Vidéos tutorielles, documentation, logiciels Altair originaux, images disque.
- Martin Eberhard : Outil ADEXER (débogage disque dur), chargeurs CDBL et HDBL.
- Projet i8080 core model : Inspiration pour calcul demi-retenue et instruction DAA.
- Logiciels Altair inclus : 4K BASIC, Extended ROM BASIC, Time Sharing BASIC, Kill-the-Bit, Pong, « Daisy Daisy » music, Music System, Programming System II, Turnkey Monitor, diagnostics CPU, etc. (tous via Mike Douglas).
- Images disque/disque dur : altairclone.com et deramp.com (CP/M, BASIC disque, Altair DOS, Fortran, etc.).
Forum de Discussion
Chris Davis (Altairduino.com) gère un groupe Google : https://groups.google.com/forum/#!forum/altair-duino
Code Source
https://github.com/dhansel/Altair8800
Schémas
Document décrivant connexions broches et sous-circuits. Fichier Fritzing : ledstrip_4OVCpRyKQS.fzz (disposition stripboard pour pilotes LED).
Processus de fabrication
- Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Construire un robot quadrupède Arduino intelligent : guide étape par étape