Monorailcat

Préampli : Affichage et contrôle (bas-niveau)

icon 2016-05-14 - No comments

J'avais récupéré un KVM qui avait quelques défauts (image bruitée sur certains canaux, clavier non-fonctionnel avec certains PC) et ne m'était pas utile. De ce fait, je n'ai gardé que le boîtier en acier et la face avant pour l'utiliser dans un projet de préampli.

reverse engineered KVM switch

Face avant
Il y a un PCB avec 2 latches 74HC273 et un latch 74HC374, 9 boutons poussoirs, 16 LEDs et un buzzer. Chaque groupe de boutons et de LEDs est relié à un latch, relié à un bus 8 bits.
Le second bus sert au contrôle des latches, du buzzer et du switch de droite.

Pinouts
Control_bus :
  • BUZ: 0
  • SWI: 1 (input)
  •  !CLR: 2 (active low)
  • CLKG: 3 (green)
  • CLKR: 4 (red)
  •  !OE: 5 (active low)
  • CLKS: 6 (switches)
  • NC: 7
  • Vdd: 8 (+5V)
  • Vdd: 9 (+5V)
  • Vdd: 10 (+5V)

Data_bus :
  • DATA: [0..7] (TTL in/out)
  • Vss: 8 (GND)
  • Vss: 9 (GND)
  • Vss: 10 (GND)

Interface bas-niveau
Pour commencer, j'ai utilisé un Arduino Mega en reliant le bus de données sur le port F ([A0..A7]), et le bus de contrôle au port K ([A8..A15]).

La fonction ledOut() permet d'allumer les LEDs vertes et rouges en fonction des variables ledG et ledR (uint8_t).
void ledOut(void) {
  //set bus out
  DDRF = 0xFF;
  // clear latches
  PORTK &= ~_CLR;
  ndelay();
  PORTK |= _CLR;
  // reset bus
  PORTF = 0x00;
  //write bit
  PORTF |= ledG;
  ndelay();
  //write CLK up
  PORTK |= CLKG; //1st row
  ndelay();
  //write CLK down
  PORTK &= ~CLKG;
  //reset bus
  PORTF &= ~ledG;

  //write bus
  PORTF |= ledR;
  ndelay();
  //write CLK up
  PORTK |= CLKR; //2nd row
  ndelay();
  //write CLK down
  PORTK &= ~CLKR;
  //reset bus
  PORTF &= ~ledR;
}
La fonction swIn() écrit l'état des interrupteurs dans les variables swstatus et oldswstatus.
void swIn(void) {
  // save old value
  oldswstatus = swstatus;
  //set bus in
  DDRF = 0x00;
  //write CLK (up)
  PORTK |= CLKS;
  ndelay();
  PORTK &= ~CLKS;
  ndelay();
  //write !OE
  PORTK &= ~_OE;
  ndelay();
  ndelay();
  ndelay();
  //read bus
  swstatus = ~PINF;
  //write OE
  PORTK |= _OE;
  //set bus out
  //DDRF = 0xFF;
  //Serial.print(swstatus);
}
Ici, la macro ndelay() est équivalente à un NOP, soit 1 cycle à 16MHz (62.5ns). Le latch 74HC374 est donné pour supporter un temps de transition de 45ns, en pratique, la transition entre !OE et les sorties donne quelques glitches lorsqu'on attend que 125ns, et le fonctionnement est correct avec une pause de 187.5ns (3 NOPs à la suite).

Références

icon Tags de l'article : , , ,

Oregon Scientific RM822

icon 2016-04-29 - No comments

J'utilise un réveil Oregon Scientific RM-822 depuis plus de 10 ans. Le mécanisme de la base est assez fragile, et une fois cassé, le rétro-éclairage n'est plus activable, et l'horloge n'est plus synchronisée par radio.

Réparation DCF77
Le démontage est délicat, les fils du buzzer sont trop courts et cassent facilement :
Snapped wires
On identifie rapidement les fils et leur emplacement sur le PCB :
  • L'antenne, à gauche de l'interrupteur S7
  • Le buzzer, en haut à gauche du PCB, noté BZ

replaced wires

Le montage mécanique est astucieux, il faut arriver à faire passer les fils dans la charnière à gauche du réveil (face).
fixing antenna
Un peu de colle permet de tenir le noyau et les deux parties du boitier.

En testant, le symbole de l'antenne (0, 2 ou 3 arcs) clignote et indique que le réveil reçoit bien des données.
test
Après une dizaine de minutes, le réveil est bien à l'heure.

Réparation Buzzer
En réparant l'antenne DCF77, j'ai abimé la cellule piezo du buzzer (probablement en tirant sur les câbles en démontant le boitier). Comme la cellule ne fonctionne quasiment plus (bruit très faible et résistance parallèle de quelques Ohms), je l'ai remplacé par une cellule "heavy duty", nettement plus bruyante.
Piezo fix

Références

icon Tags de l'article : ,

Flux RSS/Atom : Traitement, mise-en-page

icon 2016-04-13 - No comments

J'utilise beaucoup de flux RSS, et j'aime bien que tout le contenu soit disponible, par exemple un article complet sans commentaires dans le cas d'un blog.

Le principe est de pouvoir l'utiliser offline, par exemple en chargeant la page. Ça permet aussi d'éviter quelques clics (dont les pubs et une mise en page non neutre) et d'avoir tout le contenu directement dans le lecteur RSS.

Bons Exemples
  • Hackaday
  • Linuxfr
  • Blogotext

Mauvais Exemples
  • EDN
  • Feedburner
  • La majorité des blogs Wordpress

EDN
Comme on peut remarquer, le flux : http://www.edn.com/rss/design/analog ne contient que des liens vers les pages des articles et une description un peu vide.

Une première étape est de changer le lien vers la version imprimable de l'article. Les deux URL ont l'identifiant de l'article en commun :
http://edn.com/design/analog/$ID_ARTICLE/TITRE_ARTICLE
http://www.edn.com/Home/PrintView?contentItemId=ID_ARTICLE

Une ligne de bash suffit à faire le travail de base :
wget -qO- http://www.edn.com/rss/design/analog |sed -e 's#<link><!\[CDATA\[http://edn.com/design/analog/#<link><!\[CDATA\[http://www.edn.com/Home/PrintView?contentItemId=#' |sed -e 's#/[^/]*\]\]></link>#\]\]></link>#'
L'étape suivant est d'utiliser ce lien pour remplir le flux.

Comme mon niveau en PHP tient plus du bricolage qu'autre chose, il est sûrement possible de faire beaucoup mieux et plus efficace.

On va utiliser un algo simple :
function do_process(temp_file) {
    articles[0][] = get_article_ids(temp_file);
    articles[1][] = get_article_titles(temp_file);
    articles[2][] = get_articles_dates(temp_file);
    
    rss = fopen("new_rss", 'w');
    fputs(rss, header);
    iter = 0;
    foreach(articles[0] as id) {
        article = download(article_url + "id");
        fputs(rss, article);
        fputs(rss, articles[1][iter]);
        fputs(rss, articles[2][iter]);
        iter++;
    }
    fputs(rss, footer);
    fclose(rss);
}

oldsum = md5sum(temp_file);
if((date() - date(temp_file)) > timestep {
    download(url, temp_file);
    if(md5sum(temp_file) != oldsum) {
        do_process(temp_file);
    }
}

Le script commence par tester si le flux RSS a été mis à jour récemment et s'il a changé, pour économiser la bande passante et les ressources du site distant comme ceux de la machine executant le script.
Ensuite, le flux RSS est analysé, les identifiants, date et titre de chaque article sont stockés dans un tableau qui est utilisé pour construire le flux RSS final.
La librairie simple_html_dom permet de manipuler facilement les balises XML.

Bugs
La date est incorrecte dans certains articles du flux RSS d'EDN (Nov 01 2016 pour un article écrit le 11 Jan 2016), mais la majorité fonctionne.

Références

icon Tags de l'article : , ,

Préampli : Alimentation

icon 2016-04-06 - No comments

Design
Pour ce préampli, j'ai besoin d'une alimentation avec deux rails symétriques pour alimenter la partie analogique (AOPs, DACs, ADCs, potentiomètres numériques), et d'un rail pour alimenter la partie numérique (Microcontrôleur, DACs, ADCs, potentiomètres numériques).

Dans mon cas, tous les composants numériques que j'utilise fonctionnent avec des signaux TTL, et certains de mes composants analogiques n'acceptent qu'entre ±3V et ±7V.

Dans tous les cas, ils est préférable de limiter le bruit conduit et émis par l'alimentation, et comme il s'agit de faibles puissances, on peut se contenter de régulateurs linéaires.

On a ainsi trois rails :
  • Rail Logique : +5V
  • Rail Analogique : +5V
  • Rail Analogique : -5V

Les trois rails sont régulés par des régulateurs 7805 et 7905, réputés pour leur fiabilité, et relativement peu bruyants lorsqu'ils sont bien filtrés/découplés.

Le transformateur est récupéré et fournit 2×15V 1.5VA (21V une fois redressé, 27V en pratique), ce qui est bien trop élevé... En pratique, le courant maximum consommé sur chaque rail est de l'ordre de 100mA, ce qui donne environ 2W dissipés par régulateur, qui nécessiteront un radiateur.

Schéma
Le schéma est simple, chaque régulateur a des capacités de découplage (chimiques pour les basses fréquences et céramiques pour le reste).
power supply schematics

Les diodes de "backfeed" de chaque régulateur sont rarement placées, mais cela semble intéressant dans le cas de grosses capacités de sortie ou de plusieurs sources d'alimentation (+5V fourni par le debugger du microcontrôleur).

Le routage à cette forme-là :
PCB routing

Fabrication
Le PCB a été réalisé avec la méthode du transfert de toner, pour laquelle j'ai encore des progrès à faire (l'épaisseur de la couche de cuivre n'est pas uniforme).
toner transfer etched PCB

À cause d'une légère erreur remarquée tardivement, le typon a été imprimé à l'envers, j'ai dû adapter le pont de diodes côté cuivre, et monter les régulateurs de tension à l'envers. Par chance, il y a peu de composants ont plus de 3 pattes et ne sont pas symétriques.

Les capacités chimiques de sortie sont placées un peu trop près des régulateurs de tension, et risquent de s'user à long terme. Pour limiter les risques, un radiateur a été placé sur les régulateurs de tension (attention, la base du 7905 est à isoler de la masse).
whole power supply assembled

Tous les composants sont de de récupération, mais les composants passifs ont été testés et mesurés, surtout pour l'ESR des capacités chimiques. Les capacités céramiques sont des AVX X7R 50V, plutôt "bulletproof" pour leur utilisation.

Références

icon Tags de l'article : , ,

Préampli : Projet

icon 2016-04-06 - No comments

Depuis plusieurs années, je voulais construire un préampli sur-mesure, qui convient à mes besoins.

Il est courant que j'utilise un PC ou un lecteur CD pour écouter de la musique, mais que je veux toujours avoir le son provenant d'un autre PC (notifications, bruitages de jeux), d'où l'intérêt du mixage entre plusieurs canaux, qu'aucun système grand-public ne propose.

Cahier des charges
Le but est d'avoir un système "tout en un", avec plusieurs sous-systèmes :
  • Mixeur 4 entrées stéréo
  • Sortie casque/enregistrement stéréo
  • Mixeur stéréo -> 2.1
  • Filtres ajustable
  • Contrôle par boutons poussoirs ou par roue codeuse (pas de potentiomètres)

Par contre il y a quelques contraintes à ajouter pour un système "fait maison" :
  • PCB simple face (ou avec peu de pistes sur la face top)
  • Boitiers de composants >0805 et >SOIC
  • Composants disponibles et abordables
  • Peu de câbles entre les modules
  • Boitier 455×350×44.5mm³ (rack 19")

Modules
Le préampli va être fait avec plusieurs cartes :
  • Alimentation
  • Préampli stéréo
  • Contrôle de volume stéréo
  • Préampli mono
  • Mixer 2.1
  • Filtre Sallen-Key mono
  • Contrôle I²C (micro-contrôleur)
  • Interface utilisateur, boutons/LEDs
Les cartes notées en bleu ont déjà été fabriquées et testées, celles en vertes sont en cours de montage, celles en orange ont été conçues et sont en attente de montage, et celles en rouge sont remplacées temporairement par un kit de développement de micro-contrôleur.

Fabrication
Certains modules (préampli stéréo, préampli mono, filtre, contrôle de volume) sont utilisés en plusieurs exemplaires, et donc il devient pertinent de faire graver un circuit imprimé de qualité professionelle.

Update : 05.2016
bare PCBs
cut PCBs

icon Tags de l'article : , , ,

Batterie Dell HW900 : Teardown

icon 2016-04-05 - No comments

Cette batterie est une slice battery, très fine (8mm) qui se pose sous un PC portable.
Elle est donnée pour 48Wh en 11.1V, ce qui donne environ 3 à 5h d'autonomie pour les Dell Latitude E.
Le modèle HW900 est donné pour être compatible uniquement avec les PC Dell Latitude E4300, mais utilise le même connecteur que tous les Dell Latitude séries E. Comme j'ai un Latitude E6420, pourquoi ne pas essayer.

En pratique, deux crochets gènent tombent en face d'une arrivée d'air et empêchent le placement de la batterie. En démontant ces crochets et en tenant la batterie manuellement, le contact se fait, mais la batterie n'est pas détectée par le PC, dommage.

Batteries
Le boitier s'ouvre avec 11 vis (cachées par des pastilles collées) et des clips sur les bords de la base, un peu longs à démonter sans les casser (les deux parties sont collées/gluées), mais le plastique de la base est de bonne qualité.
Dell HW900 hidden screws

Une fois ouvert, on découvre 6 cellules Li-po au format "pouch" reliées par des conducteurs en kapton/cuivre, une carte de BMS et chargeur et le mécanisme de verrouillage des crochets.
Dell HW900 teardown

Les cellules sont des Sanyo UPF574199 (500 cycles à 4.2V-3V, 2.15Ah, 57*41*99mm³) assemblées en 3S2P (d'où les 11.1V nominaux).
Dell HW900 Li-po cell


BMS
Le BMS est noté "Lola Slice" et semble assez compliqué. La seule documentation trouvable sur le PCB renvoie vers une note de conformité, qui a le mérite de lister les spécifications des batteries et des cellules de plusieurs batteries.

Les quelques chips intéressants ne sont pas tous bien documentés :
  • bq20894 : no datasheet available (protection?)
  • bq20870 : no datasheet available (BMS, digital)
  • bq29312 : Analog Front End for bq2084 (BMS, analog)
  • MAX8731A : universal battery charger (Buck) + SMBus control
Par contre le layout du circuit imprimé permet d'identifier chaque partie :
Dell HW900 Lola slice BMS layout

Références

icon Tags de l'article : , ,

D-Link DE-620 PE-EPP

icon 2016-03-29 - No comments

Hardware
D-Link DE-620
La carte est assez simple avec un routage très compact, avec deux buffers TTL 74ALS245 pour le port parallèle, un ASIC custom noté DL3520S (D-Link).
D-Link DE-620 bottom
L'ASIC addresse directement sa mémoire cache (32k x 8bit, 70ns), une eeprom SPI de 128bits (93C46) pour sauvegarder l'adresse MAC et les réglages permanents.
Le bus entre l'ASIC et le contrôleur MAU et RJ45 (AT&T T7213) est isolé par un transformateur d'impulsions.
Le contrôleur MAU -> Coaxial (Myson MTD493V) est relié directement au bus MAU du chip AT&T, mais le port RJ45 est relié au chip AT&T par un autre transformateur d'impulsions.
D-Link DE-620 top

L'alim est commandée par un chip "universel" LT1172 avec un transformateur, qui permet de fournir du +9V et du +5V à partir d'une unique alimentation (12V externe, le port parallèle ne fournit pas de courant).

Compilation du driver pour Linux
Le driver de620 est bien caché et n'est pas compilé par défaut, mais on peut facilement le rajouter.

Avec Debian Squeeze, on va installer les sources et les kernel-headers qui correspondent à notre noyau apt-get install linux-source-$(uname -r |awk -F "-" '{print $1}') linux-headers-$(uname -r)

Une fois tout copié, on va extraire les sources dans le dossier /usr/src/, et préparer le noyau à être installé.
GCC, make et libncurses-dev (dans la même version que celle qui a servi à compiler le noyau) sont nécessaires.
On va commencer dans le dossier contenant les sources du noyau en préparant le noyau :
$ cd /usr/src/linux-image-$(uname -r |awk -F "-" '{print $1}')
$ cp ../linux-headers-$(uname -r)/Module.symvers .
$ cp /boot/config-$(uname -r) .config
$ make prepare
$ make scripts
$ make menuconfig

Dans l'interface menuconfig, il va falloir vérifier que le port parallèle est bien activé CONFIG_PARPORT=m et activer les cartes réseaux (Device Drivers ---> Network device support ---> Ethernet (10 or 100Mbit) ---> Pocket and portable adapters, D-link DE600 & D-link DE620 pocket adapter support)
Si la machine est lente, il est conseillé de retirer le maximum de modules (uniquement réseau, la compilation des autres sera évitée).
D-Link DE-620 driver compilation

On peut vérifier que les modules vont bien être compilés :
$ grep CONFIG_DE6.0 .config
CONFIG_DE600=m
CONFIG_DE620=m


Il ne reste plus qu'à compiler :
$ cd drivers/net/
$ make -C ../../ M=($pwd) modules

Seulement les drivers relatifs au réseau seront recompilés (quasi uniquement DE600 et DE620).
Une fois la compilation et l'édition de liens terminées, on va pouvoir copier les modules
# cp de6?0.ko /lib/modules/$(uname -r)/kernel/drivers/net/
# depmod -a

Depmod permet de mettre à jour la liste des modules chargeables par modprobe.

Utilisation
Avec le driver installé, il ne reste qu'a le charger, configurer la carte réseau, puis l'utiliser.
# modprobe de620
D-Link DE-620 pocket adapter, Ethernet Address: 00:80:c8:xx:xx:xx (32k RAM, UTP)


Dans mon cas, l'interface est reconnue comme eth1, et on peut la régler avec une adresse IP statique avec ifconfig ou bien en dynamique (dhclient est installé par défaut avec Debian).
On peut rapidement tester avec les commandes ping, route, nslookup et arp que tout fonctionne correctement.

Performances
Pour tester sans être dérangé par d'autres facteurs, je branche un PC de test directement sur la carte PE-EPP avec un câble RJ45. Il n'y a que deux machines sur le réseau.
iperf est un outil prévu pour mesurer la bande passante de réseaux, parfaitement adapté à ce cas. J'ai testé en alternant les modes client et serveur, pour mesurer le débit montant et descendant.


[ 3] local 192.168.10.1 port 50051 connected with 192.168.10.2 port 5001
[ 3] 0.0-10.0 sec 2.19 MBytes 1.83 Mbits/sec
[ 5] local 192.168.10.1 port 5001 connected with 192.168.10.2 port 49470
[ 5] 0.0-15.6 sec 2.00 MBytes 1.07 Mbits/sec

[ 4] local 192.168.10.2 port 49468 connected with 192.168.10.1 port 5001
[ 4] 0.0-10.0 sec 1.88 MBytes 1.57 Mbits/sec
[ 5] local 192.168.10.2 port 5001 connected with 192.168.10.1 port 50051
[ 5] 0.0-10.8 sec 2.19 MBytes 1.70 Mbits/sec


Avec plusieurs tests, on a bien 1~1.5Mbit/s en réception et 1.5~1.8Mbit/s en émission, avec une charge CPU élevée.
Ce débit peut paraître lent devant les 10Mbit/s de l'ethernet, mais il ne faut pas oublier que le port parallèle ne dépasse pas 200kio/s en mode SPP, ce qui est cohérent. Il est possible que mon port parallèle et son driver ne fonctionnent pas en mode EPP (2Mio/s maximum et accès DMA).

Note
Plusieurs fois pendant les benchmarks, la carte a arrêté de fonctionner et le noyau a affiché eth1: transmit timed out, network cable problem?. La carte refonctionne après un rechargement de driver (ifconfig eth1 down; rmmod de620; modprobe de620; ifconfig eth1 192.168.10.1).

DOS
Un driver est fourni pour DOS, Windows 3.1 et OS/2, mais DOS n'est pas vraiment pratique.

Références

icon Tags de l'article : , ,

Écran LCD HP L1706 : Réparation

icon 2016-03-27 - No comments

Écran
En général, il est assez facile de récupérer des écrans bas de gamme agés de 5 à 10 ans. Pour la majorité, le rétro-éclairage de l'écran clignote, puis finit par s'éteindre. En général, ce problème est dû à la faible durée de vie de certaines capacités (souvent sous-dimensionnées en ESR, en courant et en température). Parfois, les diodes de redressement s'abiment du fait des pics de courant non-absorbés par les capas usées. Mais en général, une réparation coûte moins de 5EUR.

Sur cet écran (plutôt milieu de gamme), le fusible côté secteur était fondu et les capacités du côté secondaire étaient en bon état.

/!\ Danger
Des tensions dangereuses sont présentes sur la carte d'alimentation, ne rien toucher sans l'avoir débranchée et déchargé la capacité primaire.
/!\ Warning
Dangerous voltages are present on the power board, do not touch it until it is unplugged and its primary capacitor is discharged.

Panne
Sur ces écran, seulement la carte d'alimentation (modèle 715G1502, fabriquée par AOC) est défectueuse, la dalle et la carte gérant l'affichage sont encore fonctionnelles.

En regardant la carte d'alimentation, la capacité qui lisse la tension du secteur (C905) fuit légèrement, et le mosfet de découpage (Q903) a l'air d'avoir bien chauffé.
Faulty 715G1502 power board, primary side
En sortant le multimètre, la capa de lissage n'est pas en court-circuit et n'a pas de résistance de fuite trop faible, par contre le mosfet de découpage est en court-circuit.

Après remplacement par un MOS équivalent, l'écran s'allume, mais le transformateur couine par intermittances à 100Hz, et le mosfet est brûlant (>100°C au toucher).
Mon voltmètre affiche "Hors-Calibre" quand je mesure la tension hachée au primaire du transformateur flyback (AC) et sur la capacité de lissage (DC).
Avec un autre voltmètre (2kV max), je mesure entre 500V et 800V DC et 200V AC aux bornes de la capacité C905, et du coup je n'ose pas mesurer au primaire du transfo...

Réparation
Cette carte converti la tension du secteur en +5V et +12V, permanents, avec un convertisseur flyback. Un deuxième convertisseur (activé uniquement quand l'écran fonctionne) convertit le +12V en 800V~2kV pour les tubes CCFL du rétroéclairage.
Comme la partie primaire ne fonctionne pas, et que le secondaire a des diodes de redressement fonctionnelles, on peut alimenter les sorties +5V et +12V directement, tant que le primaire n'est pas branché.

La première réparation rapide a concisté à brancher directement une alimentation de PC (connecteur Molex 8981) sur les pistes du +12V (Cathode de D902) et +5V (Cathode de D904). Ça fonctionne, mais l'encombrement des connecteurs et les câbles empêchent de fermer la coque de l'écran et d'éloigner l'écran de l'alimentation.
Temporarly fixed 715G1502 power board

La réparation définitive conciste à scier le primaire et le secondaire de l'alimentation (seule la partie "inverter" pour le rétroéclairage CCFL est gardée).
On ajoute un régulateur à découpage 12V -> 5V à base de LM2576 et une banque de capacités de découplage pour les rails 5V et 12V.
Le rail 12V est fourni par une alimentation externe (12V, >3A), via un connecteur "barrel" (DIN 45323 5-2mm ou IEC 60130-10 type A).
LM2576 quick fix

Le câblage du connecteur CN902 est identifiable :
CN902

Fixed 715G1502 power board
Il faut bien isoler la carte d'alimentation 12-5V, et utiliser du scotch isolant pour fixer la carte et les câbles.


Le seul défaut vient de la résistance DC du câble et du connecteur, qui fait légèrement chauffer le câble et le connecteur).
Fixed L1706 monitor

Références

icon Tags de l'article : , ,

Compaq Contura 4/25 : DOS, Windows

icon 2016-03-22 - No comments

Limitations
Le PC n'a qu'un seul disque dur (40Go à la place des 200Mo d'origine), un port parallèle, un seul port série (utilisé par une souris), et le lecteur de disquettes et le modem ne sont plus présents (HS). L'installation de programme va être difficile sans ruser.

On commence par brancher le disque sur un convertisseur USB-IDE pour formatter le disque, le tester et copier les fichiers de DOS, Windows et les drivers.
On peut aussi utiliser Laplink et kermit pour transférer des données avec un câble série ou parallèle.

Qemu
Qemu permet de créer les partitions, de formater le disque et de copier le système de DOS en vérifiant que tout va fonctionner.
Ici, on a une machine avec Linux, le disque que l'on va utiliser s'appelle /dev/sdc et l'image de disquette dos622_1.img.
qemu-system-i386 -m 8 -fda dos622_1.img -hda /dev/sdc -boot a

En quittant le programme d'installation (F3), FDISK permet de créer une partition (attention à la taille visible par le BIOS de 512Mio ou 2Gio, et DOS 6.2 n'allouera jamais de partitions de plus de 2Gio).
Après un redémarrage pour prendre en compte la nouvelle table de partitions (il faudra encore quitter l'installation de DOS), on peut formater la partiton avec FORMAT C: /S et redémarrer en enlevant la disquette, pour tester.
Normalement on doit obtenir quelques lignes avec un prompt :
Starting MS-DOS...

C:\>_

C'est que tout s'est bien passé et qu'on peut copier le contenu des disquettes dans un dossier du disque.

DOS
On peut remettre le disque dans le PC. Si tout ce passe bien, le pc renvoie le prompt de DOS, que l'on peut continuer à installer :
cd \DOSS
setup.exe
(les fichiers ont été installés dans le dossier C:\DOSS\)
MS-DOS 6.2 installation

Il ne reste plus qu'à se laisser guider et choisir les programmes de dos à installer.
On peut aussi installer des programmes supplémentaires (disquette 4) :
cd \DOSS
setup.bat


Quelques programmes sont spécifiques à ce PC et sont fournis par Compaq, mais seuls les SP1728 et SP1743 sont vraiment utiles.

Windows 3.1
cd \WIN31
setup.exe

L'installation est vraiment simple et rapide.
windows 3.1 installed

Windows 95
Windows 95 peut fonctionner avec 4 ou 8Mio de RAM, mais il est beaucoup plus lent que Windows 3.1, du coup je n'ai pas tenté son installation, même s'il avait été installé sur le disque dur d'origine. Windows 98 fonctionne assez mal avec moins de 32Mio de RAM, et refuse de s'installer avec moins de 16Mio.

SoftPaq
Ce sont des programmes fournis par Compaq, habituellement installés d'origine et fournis sur des disquettes :
  • SP1454 : Installe une partition d'hibernation et de recovery, mais risque de casser la table de partition...
  • SP1728 : Driver video pour DOS
  • SP1743 : Programmes de base pour Compaq Contura
  • SP2054 : Configuration du BIOS et diagnostic depuis DOS
Comme les disquettes ont disparu de la circulation, je les ai extraits.

icon Tags de l'article : , , ,

Compaq Contura 4/25 : Hardware

icon 2016-03-22 - No comments

Carte mère
La carte mère est assez compacte, même pour les standards de 2016, et a un nombre impressionant de vias (dont des vias borgnes) et a probablement plus de 6 couches.
Compaq Contura Motherboard multiple vias
En comparaison avec les cartes mères de PC de bureau, il y a très peu de ports d'extension, et donc peu de place utilisée par des buffers et des connecteurs. Il y a aussi beaucoup d'ASICs custom, pour remplacer une partie de la glue logique (les cartes mères de 486 sont habituellement pleines de puces TTL 74xx).

Connecteurs
Compaq Contura Motherboard top side
  • J1 : Clavier (Ribbon 12 pins)
  • J2 : Clavier (Ribbon 14 pins)
  • J3 : VGA externe (DB15-HD)
  • J4 : Pavé numérique externe (Jack 2.5mm)
  • J5 : Écran/inverter "INVERTER BOARD" (ribbon 40 pins)
  • J6 : Clavier/Souris externe (PS/2, mini-DIN)
  • J7 : Extension modem/port série (2*25 contacts board-to-edge)
  • J8 : Extension mémoire DRAM (2*40 pins 0.05")
  • J9 : Port parallèle externe (DB25)
  • J10 : LEDs et boutons, "INTERCONNECT BOARD" (2*6 pins 0.1")
  • J11 : Pile horloge RTC? (2 pins)
  • J12 : Port Série RS232 (DB9)
  • J13 : Lecteur de disquette (Ribbon)
  • J14 : Alimentation "DC-DC CONVERTER" (2*10 pins 0.1")
  • J500 : Disque dur ATA/IDE (44 pins, 2mm)

Circuits intégrés
Face dessus :

Compaq Contura Motherboard bottom side
Face dessous :

Autres
  • Y1 : Oscillateur TCXO, 16.000MHz (clavier? bus ISA?)
  • Y2 : Oscillateur TCXO, 24.000MHz (PLL?)
  • Y3 : Oscillateur TCXO, 32.768kHz (Horloge RTC)
  • SPK1 : Buzzer Intervox BST1811P-06

Écran
La nappe J5 est reliée à une carte inverter, placée sous l'écran. Les signaux de données de l'écran DSTN (deux mots de 4 bits, Hsync, Vsync et DotCLK) sont reliés directement de la carte mère à l'écran. La carte contient une alimentation boost (LTC1172) suivie d'un régulateur LDO (LM337) pour alimenter l'écran LCD avec une tension d'environ -20V. Le reste de la carte est utilisé pour un onduleur résonant qui alimente le néon à cathode froide (CCFL) de l'écran (600~1'200V).
Les deux potentiomètres permettent de régler la luminosité (tension d'alimentation du néon), et le contraste (tension de bias de l'écran LCD).
Compaq Contura inverter

Le brochage du connecteur de l'écran a été identifié en suivant les pistes de signaux et en mesurant les tensions moyennes/pic :
  1. FLM (Vsync)
  2. CP1 (Hsync)
  3. CP2 (Dot CLK)
  4. Vdd (5V)
  5. GND
  6. V- (-21.5V)
  7. DU0
  8. DU1
  9. DU2
  10. DU3
  11. DL0
  12. DL1
  13. DL2
  14. DL3

Modifications
La batterie d'origine a été remplacée par une CR2032, plus courant, en changeant le support, mais elle aurait pu être remplacée en utilisant le connecteur J11.

Références

icon Tags de l'article : , , , ,