mercredi 14 décembre 2016

Retro-computing...

[UPDATE  06-07-2021 ]  

** OMEGA motherboard available **


Since the initial publication of this post, I have undertaken some open hadware projects. Most of the time, in order not to do a job of collecting informations and materials (components) for 'almost nothing', I make several copies of the project. This is the case with the motherboard of the MSX II Omega compatible computer by Sergey Kiselev : https://github.com/skiselev/omega

One of the boards I made:

The Carnivore 2 cartridge is not included ;-)

Because of this, I have few motherboards like this that are totally built, tested and ready to go. All the 'not vintage' components are original and completely new and of high quality, such as connectors and IC sockets. Vintage components have been tested and validated for several hours.

So I can provide some of these Omega motherboard. Please contact me if you are interested : sillycony [at] mailo.com
                                                                                                                                                                                                                                            

Dans ce billet, je compte ajouter au fil de mes pérégrinations sur le web, les projets qui me semblent intéressants concernant la création d'ordinateurs à 'l'ancienne'. Il peut s'agir de nouvelles machines ou de copies d'anciennes 'gloires', mais toujours est-il que les critères de sélection seront la 'facilité' de montage, l'ergonomie globale du système, la disponibilité des sources matérielles et logicielles ainsi que la possibilité d'approvisionnement de l'ensemble des composants. Je privilégierai les cartes de type SBC ou, avec un bus d’extension s'il s'agit d'un 'vrai' bus d’extension.

Je suis fan de retro-computing depuis toujours. J'ai moi-même réalisé une machine à MC68000 et une autre à base de W 65C816S. En fait je n'ai jamais réellement quitté cet environnement foisonnant des années 80. Une petite 'rubrique' dédiée me semble donc intéressantes.

Je ne citerai pas les sources puisqu'elles proviendront du site même des auteurs. Éventuellement, j'ajouterai des commentaires. Je ne vérifierai pas non plus quotidiennement la validité des projets ou les liens 'cassés'. Si vous, lecteurs, constatez un problème ou souhaitez apporter une précision, contactez-moi.

La sélection suivante est effectuée en toute indépendance, avec mes 'seuls' critères de sélection.

                                                                                                                                                                                                                                            

14/12/2016 : Zeta SBC V2 [Sergey Kiselev]


Un ordinateur Z80 compatible CP/M (Dangerous Prototypes)





Specifications

Zeta SBC V2 features following components:
  • Z80 CPU
  • 16550 UART - for connecting a console
  • 8255 PPI - can be used for attaching a ParPortProp board, a hard drive using PPIDE or controlling some external devices
  • Z80 CTC - can be used to generate periodic interrupts, and as an interrupt controller for UART and PPI
  • Western Digital WD37C65, SMC FDC37C65, or GoldStar GM82C765B floppy disk controller.
  • 512 KiB of battery backed SRAM
  • 512 KiB of flash memory
  • RTC
Zeta SBC V2  is compact and easy to build:
  • Footprint of an 3.5" floppy drive (100 mm x 170.18 mm) and PCB can be mounted under a 3.5" drive.
  • Uses only through hole components.
  • Assumes using commonly available 3.5" floppy drives (not many people have 5.25" drives and even less 8" ones). Although it should work with 5.25" drives too.
  • Only 2 configuration jumpers.
  • Easy to use flash memory instead of UV EPROM.
  • PCB mounted connectors, no need to build cables. 
  • Uses widely available components
  • An easy way to get a "taste" of CP/M era computing.

Liens complémentaires : smbaker.com  dangerousprototypes.com   www.retrobrewcomputers.org 
                                                                                                                                                                                                                                            

14/12/2016 : Afficheur LCD 640x360, STM32F429 et FPGA [Andy Brown]

Une console de jeu graphique 'from scratch'?


Un projet très bien documenté avec une multitude d'informations sur le processeur ST et le FPGA Xilinx utilisés.


Liens complémentaires : Livre Mastering STM32
                                                                                                                                                                                                                                            

14/12/2016 : Carte graphique pour ordinateur Amiga 2000/3000/4000 Zorro II/III [Lukas F. Hartmann]

Une carte graphique 'libre' qui devrait pouvoir être utilisée dans d'autres systèmes qu'un Amiga!
 

Specifications

  • Up to 1280x720p HD screen resolution at 16bit color depth
  • Lower resolutions at true color 24bit or 8bit "Chunky"
  • HDMI graphics output
  • MicroSD card reader (use MicroSD volumes in AmigaOS)
  • RTG compatible driver (Requires 68020 or better CPU)
  • Uses 4MB of Zorro II address space or up to 32MB of Zorro III
  • Amiga Autoconfig(TM) compatible
  • Autosensing Zorro II/III compatibility
  • Upgradeable Spartan 6 LX25 FPGA core (flash from Linux/Windows machine via USB port)
  • Completely Open Source: https://github.com/mntmn/amiga2000-gfxcard
  • Officially supported by NetBSD 7

Liens complémentaires : Pre-Order 2017 batch
                                                                                                                                                                                                                                           

16/12/2016 : ZX spectrum, Harlequin clone [Sergey Kiselev] [Derek]

Un clone de ZX Spectrum monté et testé par Sergey (encore lui) et Derek, avec un circuit imprimé élaboré par José Leandro Novellón Martínez et trouvable par exemple sur le site eBay de ByteDelight. ByteDelight qui semble aussi actif en développement autour du ZX Spectrum sur son site. Le tout sur un travail de reverse engineering de Chris Smith. Le circuit intégré custom ULA est ici remplacé par une série de circuits intégrés standards.

REV G rouge montée par Sergey.
REV G noire montée par Derek.

Une machine qui ne devrait pas être très difficile à monter sachant que ByteDelight propose même sur son site eBay, un kit complet (sauf les ROMs) permettant de monter la machine. Sans doute un excellent projet pour s'initier au numérique...

Remarque : la machine sort le signal vidéo au standard PAL. Un mod permet de sortir le signal au standard S-video. Cette modification a aussi été tentée par Derek et semble très bien fonctionner.

Et pour ceux qui voudraient pousser le bouchon sur le sujet, à savoir l'implémentation du composant ULA dans un CPLD ou même la totalité d'un Spectrum dans un FPGA, voici quelques...

Liens complémentaires : ULA chip for ZX Spectrum  ZX Spectrum on FPGA

24/04/2017 Dans la série ressources complémentaires, le site 'commercial' de ByteDelight qui semble bien actif en ce moment (je l'évoque dans l'intro de ce paragraphe consacré au Spectrum)...


A l'affiche en ce moment, une interface d'affichage HDMI basée sur une RaspBerry PI ZERO :



                                                                                                                                                                                                                                            
21/12/2016 : S100 Computers [John Monahan]

Un site très actif sur le système de bus S100, avec la description de cartes processeurs, vidéo et autres en tout genre. De plus, ce site est d'une incroyable richesse de détails techniques. Sans doute pour des personnes déjà un peu plus expérimentées en réalisation de systèmes informatiques. C'est évident, ici on sort carrément du cadre de l'Arduino. Beaucoup de circuits imprimés sont disponibles en s'inscrivant pour des pré-commandes. Les détails techniques sont fournis avec fichiers sources. Bref, une vraie aventure dans le monde du rétro-computing!


 
Exemple de carte mère à processeur 286.

Le système de l'auteur en septembre 2016.

Le travail présenté sur ce site est absolument superbe...
                                                                                                                                                                                                                                            
22/12/2016 : Build Your Own Microcontroller Projects [Wichit Sirichote]

Impossible de ne pas évoquer dans ce sujet, le site de Wichit Sirichot. Ce monsieur présente des projets très intéressants, avec toutes les informations nécessaires à leur réalisation, depuis 2001. En 2004, je m'étais inspiré de sa carte à processeur 68000 pour élaborer une carte semblable.


Version originale : Wichit Sirichot

Si je retrouve ma carte, j'en posterai une image ici. La différence majeur par rapport à celle de Wichit, était que j'avais utilisé un CPLD de marque Altera pour réaliser la 'glue' logique.

[ Update : 22/01/2017. J'ai retrouvé 'ma' carte à 68000 de 2004, un peu plus de 12 ans, déjà!

Bien des similitudes avec la carte de Wichit. Logique puisque basé sur son schéma....
A titre indicatif, avec des cartes à processeur 68000, il peut être intéressant d'utiliser les ressources logicielles que l'on peut trouver sur ce site http://www.easy68k.com/ 

Eventuellement, il pourrait même être intéressant de tenter le 'portage' de certaines applications sur cette carte, comme un noyaux µCLinux. C'est ce qu'à fait Steve de Big Mess o' Wires avec sa carte à processeur 68008 nommée Katy, dérivée elle aussi du projet de Wichit Sirichote. Carte plus simple puisque basée sur un processeur 68000 à bus de données de 8 bits :
Version Big Mess O' Wires
 ]

Wichit s'est lancé depuis quelques temps dans l'élaboration de kits ayant à peu près tous la même apparence et basés sur différents type de processeurs : 8085, 8080, 8088, 8051, 6502, 6802, Z80. Il y en a pour tous les goûts... 

Toutes les informations techniques sont fournies, et les kits montés sont 'même' trouvables sur eBay (vendeur kswichit) au prix moyen de 130$. Ce qui n'est pas excessif du tout pour ce qui me semble être de la qualité de réalisation (Note : je n'ai jamais testé un de ces kits). Ils possèdent tous un moniteur en ROM qui permet de rentrer les codes machine directement au clavier ainsi que la possibilité de télécharger des fichiers Hexa, créés par un assembleur ou compilateur PC/MAC. A mon avis de très bonnes bases d'expérimentation pour qui veut apprendre 'réellement' le fonctionnement de la logique programmée, sans rentrer dans un univers trop complexe.

La nouvelle carte de Wichit à base de processeur 68000 (68008)
Kit 8085.
Kit 8080A.
Kit 8088.

Kit (microcontrôleur) 8051.
Kit 6502.
Kit 6802.
Kit Z80.
Jolie collection. Je n'ai pas étudié à fond l'implémentation de ces cartes mais elles possèdent toutes un connecteur d'extension donnant accès au bus du microprocesseur, d'un connecteur pour affichage LCD standard de type caractère, ainsi qu'une RAM utilisateur confortable de 32Ko, ou même 128Ko sur la carte 8088. Petit bémol quand même : toutes ces cartes sont équipées d'une connection série de type RS232. Pourquoi pas puisqu'il s'agit de rétro-computing. Cependant, il devient aujourd'hui extrêmement difficile de trouver un PC équipé de ce type liaison. Une connectivité USB eût été à mon sens plus appropriée.

UPDATE 12/01/2017 Comme j'apprécie le type de carte que développe Wichit, je viens de lui commander un kit Z80 non monté. La raison est que je n'aime pas du tout les supports de circuits intégrés fournis avec le kit. Je préfère monter le tout avec de vrais et très fiables supports. Une autre raison pour laquelle j'ai commandé la version Z80 est que ce processeur est toujours commercialisé par Zilog, contrairement à d'autres. De plus il existe des versions du Z80 plus rapides et même plus performantes comme le Z180. Et puis, il existe même le eZ80 qui est optimisé et qui fonctionne à 50Mhz. Pour ceux que cela intéresserait de s'aventurer sur ce type d'architecture, l'évolution est possible, ce qui me semble être un point intéressant. Tant qu'à investir du temps...
La version FPGA fonctionne aussi très bien. J'ai pu implémenter sans problème une version à 50MHz dans un circuit Altera. L'implémentation VHDL du Z80 est d'ailleurs tellement peu gourmande en ressources, qu'il est possible d'implémenter une dizaine de Z80 dans un seul FPGA de capacité moyenne (20 000 portes). Ce qui permet la création de circuits capables de gérer pas mal de choses en temps réel!
                                                                                                                                                                                                                                            

04/01/2017 : Minstrel ZX80 Clone [Dave Curran] [Grant Searle] (info provenant de Dangerous Prototypes)

[ Update 18/01/2017 : L'auteur du Minstrel ayant rencontré du succès avec sa présentation, il a décidé de redéveloppé le circuit imprimé en corrigeant les erreurs et en rajoutant quelques fonctions. Voici la liste des modifications : 
  • Fixes from Issue 1 - A6-INT link and keyboard connector pinout now corrected
  • Edge connector - several people have asked for this, so I have added an edge connector, complete with the ROM_CS line which was not present on the ZX80.
  • Reset button - I've found this useful, so have added one, can be wired to an external switch if you prefer.
  • Integral functions list - Several keywords on the ZX80 (such as PEEK which confused me last time) need to be typed in separately. There is a list on the ZX80 case, so I have added one  to the PCB silkscreen.
  • ROM selector jumpers - There is now the option to select form up to 8 ROM images, so you can have ZX80, ZX81, Forth, Assembler etc. if you choose.
  • Regulator position - I've shuffled the power input around so it can be bolted to the board and to any random bit of metal such as a ZX81 heatsink.
 Le nouveau PCB 'devrait' être disponible vers la fin janvier : Minstrel V2. ]

Pour la première entrée de 2017 dans cette rubrique, je rends une sorte de double hommage. D'abord en présentant la réalisation d'une machine compatible ZX80 et 'éventuellement' ZX81. Puis en en profitant pour souligner l'excellent travail de Grant Searle sur les anciennes machines 8 bits ainsi que leur implémentation en FPGA. Grâce à ses explications, j'ai pu moi aussi commencer à implémenter du matériel vintage en FPGA. Je me suis notamment servi de ses exemples pour tenter d'intégrer la boîte à rythme Drumulator dans un FPGA Altera.

Basé sur le travail de Grant, Dave Curran a créé une carte prête à l'emploi moyennant de 'modestes' modifications puisqu'il s'agit d'une carte prototype. Le résultat est cependant fonctionnel et assez élégant. Cela pourrait être une très bonne base pour qui veut non pas se 'contenter' de monter une telle machine, mais aussi la refaire avec Kicad par exemple, en éliminant les 'petits' bugs actuels. Dave donne tous les détails des corrections à effectuer.


(http://searle.hostei.com/grant/zx80/zx80.pdf)


Passer cette carte de la compatibilité ZX80 à la compatibilité ZX81 requiert la mise en place du mode FAST/SLOW. Cette modification est aussi décrite sur le site de Grant. En un mot, en mode FAST le ZX81 ne gère plus l'affichage et octroi tout le temps CPU à l'exécution du programme Basic. Le programme fonctionne environ deux fois plus rapidement. Ce qui n'empêche pas d'écrire en RAM écran, mais le résultat ne sera visible que quand le programme repassera en mode SLOW et que donc le processeur gèrera de nouveau le rafraichissement écran.

Le ZX80 fût le premier 'ordinateur' sur lequel j'ai posé les doigts en 1982, rapidement suivi en 1983 du ZX81 dans le lycée ou j'effectuais mes études : découverte d'un monde fantastique... Lorsque j’eus les moyens de m'acheter une machine, c'est vers le PC1500 de Sharp (en fait le PC-2 moins cher de Tandy) que je me suis tourné pour son côté autonome.
                                                                                                                                                                                                                                            
23/01/2017 : FAP80 [Deke Nukem] (info provenant de Hackaday)

Encore un développement autour de l'indémodable Z80! L'intérêt de ce projet réside dans son aspect modulaire, à base de cartes qui prennent place sur un bus 'fond de panier' propriétaire. De plus, certaines fonctions habituellement réalisées par des circuits 'hold style' sont ici prises en charge par des micro-contrôleurs rapides. On rencontre de plus en plus souvent ce type de solution qui permet un approvisionnement plus facile par rapport à des composants anciens devenus difficiles à trouver. Cela permet aussi un gain de place car il est assez facile de rassembler plusieurs fonctions dans un micro-contrôleur. Ce projet utilise aussi un développement spécifique à base de carte FPGA Mojo pour la réalisation de l'interface vidéo.


Un projet intéressant dont l'ensemble des ressources est disponible en ligne sur cette page GitHub.


Comme le précise l'auteur, son projet est largement inspiré de cet autre projet Quinn Dunki’s Veronica computer que l'on peut trouver sur le site Blondihacks blog, site que je visite de temps en temps...
                                                                                                                                                                                                                                            
23/01/2017 : Multicomp [Grant Searle]

J'allais 'oublier' le site de Grant Searle. Il ne s'agit pas ici de la description et de la réalisation matérielle d'un ordinateur 'vintage', mais d'un ensemble de ressources en VHDL, suffisantes pour la re-création complète d'un matériel dans un FPGA : 



Tout est bien documenté sur le site de Grant, et les sources disponibles permettent la création complète d'anciennes machines dans un FPGA. Il existe parfois quelques 'incohérences' dans les sources, mais qui n'empêchent pas les systèmes de fonctionner. Incohérences plus théoriques que pratiques. J'ai utilisé à deux reprises les ressources fournies par Grant pour réaliser par exemple la mise en FPGA de la carte mère d'un synthétiseur PROPHET VS équipée d'un 68000 :


'Jolie' carte mère vintage, s'il en est!
Hormis le processeur de clavier (gros pavé verticale de gauche) que je n'ai pas côdé, tous les circuits présents sur cette photo, plus une grande partie de la face avant du synthé ont été codés et fonctionnent parfaitement sur une carte DE2-70!

J'ai encore utilisé ces ressources pour coder toute la partie processeur de la boîte à rythme Drumulator, basée sur un processeur Z80 :

Sur une carte Digi-Asic cette fois, avec le message d'erreur ' normal' au démarrage de la Drumulator.
La encore, aucun problème avec les ressources de Grant. Le travail consiste 'simplement' à traduire en VHDL le schéma de la machine.

Pour ces deux exemples de réalisation personnelle, il me 'reste' à coder les circuits de génération sonore. Il faut 'juste' en décrypter le fonctionnement, ce qui demande 'un peu de temps'!
                                                                                                                                                                                                                                            
06/02/2017 : A 4$, 4ICs, Z80 computer [Just4Fun]

Cette fois il s'agit d'un 'petit projet' à base de Z80 actuellement en cours de développement sur Hackaday.io. Un processeur ATmega32A 'émule' la ROM, gère l'horloge système et fournit quelques entrées/sorties dont notamment un bus série I2C. Le système est 'censé' ne coûter 'que' 4$ en composants. C'est sans doute exagéré puisqu'il s'agit de composants obtenus par le biais d'eBay par exemple, mais peu importe, le coût en circuits intégrés de ce système est très réduit ce qui doit aussi permettre l'élaboration d'un PCB à faible cout. Just4Fun a aussi porté l'interpréteur basic dont les sources sont fournis sur le site de Grant Searle (dont j'évoquais le site juste précédemment) sur son système 'Z80-MBC'. La carte une fois réalisée par WestfW donne ceci : 


Avec pratiquement 64Ko de mémoire reporté par le Basic adapté : 


Le système peut se programmer en Basic, donc,  par l'intermédiaire de son port série, grâce à une émulation de terminal sur un PC/MAC quelconque.   
Il est aussi possible d'y 'enregistrer' directement un binaire par importation d'un fichier au format Intel-Hex, ce qui permet d'utiliser le langage C, de la même façon que le kit à base de Z80 de Wichit Sirichote, cité plus haut.

S'agissant d'éventuelles extensions, la disponibilité d'un port I2C permet d'ajouter facilement des d'entrées/sorties à l'aide de circuits MCP23017 par exemple : 



Voici donc en quelque sorte une version 'condensée' de la carte de développement de Wichit Sirichote, qui me semble tout aussi intéressante pour l'apprentissage de l'électronique numérique à base de micro-processeurs. 

Une version sur plaque d'essais, comportant le système Z80 + un circuit d'extension MCP à été réalisée par John. La fréquence de fonctionnement de cette version a même été portée à 8MHz pour le Z80. Ce qui classe ce 'petit' système comme extrêmement performant aux vue des 6MHz de fréquence maximum qui caractérisait les micro-ordinateurs même professionnels des années 80 : 



Ce projet donne bien envie d'y apporter sa propre contribution!
                                                                                                                                                                                                                                            
07/02/2017 : HC 508, Carte accélératrice pour Amiga 500 [mc68k]

Passons au 68000. 

Comme décrit précédemment, Wichit Sirichote propose 'aussi' une carte à base de 68000 parmis ses différentes cartes d'étude. Carte somme toute relativement basique, il est vrai que c'est justement l'objet de son offre. Ici, il s'agit plutôt d'une carte additionnelle censée booster un Amiga500. Les machines Amiga, et Atari ST, demeurent aujourd'hui des machines très utilisée par de nombreux fans. La particularité de cette étude repose sur l'utilisation d'un processeur 68HC000FN16 à 50MHz! Soit trois fois la fréquence 'nominale' du composant. La chose est-elle possible? Oui certainement, surtout pour un modèle HC dont la consommation d'énergie très faible à la base ne va pas exploser et donc faire surchauffer la puce. Après, d'autres problèmes peuvent se poser qui 'pourraient' empêcher le processeur de fonctionner à cette vitesse et notamment la construction interne des différents blocs logiques qui, s'ils étaient mal agencée, pourrait induire des délais de transmission des transitions logiques générant des dysfonctionnements à 'très' haute vitesse. Cela ne semble pas être le cas.


Quelques cartes assemblées par mc68K.
Outre le fait de proposer un processeur accéléré à 50MHz, la carte HC 508 propose aussi les extensions suivantes : 
  • 40 pin IDE connector for HDD, CD ROM etc.
  • Integrated CF connector
  • 8 MB Fast RAM (1 wait state)
  • 512k FlashROM for Kickstart (1 wait state)
  • Utility for disabling / enabling every module separately (XCPU, XRAM, XROM, IDE)
Pas mal du tout...

Pour en arriver à ce résultat, mc68K a créé quelques prototypes à la main dont la version 50MHz:

Circuit imprimé 'home made' visiblement avec métallisation des vias... à la main!
Et d'autres versions, plus expérimentales, ayant fonctionné à 14MHz dans un premier temps, puis 28MHz : 


Un vrai beau travail d'étude dont le résultat est assez spectaculaire puisque la performance sur un Amiga 500 est à peu près équivalente à celle fournie avec un 68030 à 25MHz!
 

Non mais franchement, un 68HC000FN16 à 50MHz? De quoi se fabriquer une 'petite' carte très performante avec de la SRAM à une vingtaine de nanosecondes de temps d'accès!
                                                                                                                                                                                                                                            
27/03/2017 : Wicher 500i, Carte accélératrice pour Amiga 500/500+ [retro.7-bit.pl]

Est-ce la mode? Je ne sais pas, mais toujours est-il que voici une autre carte accélératrice pour Amiga 500 et 500+ à base de processeur 68000 ou 68010, cadensé à 50MHz. Cette carte propose aussi de mémoire DRAM de type EDO (de 1 à 8 Mo ), plus un port IDE. Ce projet est en cours d'étude et 'devrait' être disponible sans la RAM ni le processeur sous cette forme :

Dans le principe, cette solution d'accélération pour Amiga 500 montre une 'certaine' ressemblance avec la carte HC 508 présentée juste au dessus. Une fois peuplée de son processeur et de sa DRAM, elle ressemble à ceci :


La performance 'semble' être très bonne. Décidément , un processeur marqué 16MHz qui fonctionne à 50MHz, soit plus de trois fois sa fréquence garantie, c'est vraiment intriguant! Il va falloir finir par tester ça, si ça continue...
                                                                                                                                                                                                                                            
28/02/2017 : Building a 68000 Single Board Computer [Jeff Tranter]

Encore du 68000. Sur son blog, Jeff Tranter nous relate les étapes de fabrication d'une SBC basée sur un MC68K. Tout a commencé par un câblage en l'air sur une carte prototype à partir de novembre 2016. Le travail s'est continué par un premier jet sous Kicad puis par la version actuelle, la version 2.1, réalisée avec l'application de CAO en ligne easyeda. L'ensemble des fichiers nécessaires à la reproduction de sa carte se trouve sur son dépôt Git. Apparamment Jeff à fait réaliser le circuit imprimé mais ne l'a pas encore monté. Pour l'instant son travail ressemble à ceci : 
 
Joli travail.

Le PCB final, lui,  'devrait' ressembler à ceci :

Dans le plus pur 'old style'!
Une réalisation à suivre, d'autant plus qu'il semblerait que Jeff tente d'implémenter ce langage Forth sur son système. Langage disponible pour le 68000 sous forme de source assembleur en bas de la page du site ou en fichier zip ici.
                                                                                                                                                                                                                                            
28/02/2017 : Apple I replica : Mimeo [Corey Cohen]

Ici il ne s'agit pas vraiment d'un kit à proprement parler, mais de la fourniture d'une carte mère d'Apple I. Et pas n'importe laquelle des carte mère puisqu'il s'agit d'une reproduction extrêmement fidèle de la carte de 'Woz' : 

La carte assemblée.

Le circuit imprimé face 1
Le circuit imprimé face 2
La carte est 'en principe' disponible ici : http://myapplecomputer.net/
Pour les 'furieux' qui ne sauraient se passer d'une telle légende, même s'il s'agit d'une création contemporaine...
                                                                                                                                                                                                                                            
15/05/2017 : Eight BIT Magazine [http://eightbitmagazine.com/]

Cela fait quelques mois que je n'ai pas effectué d'entrée dans cette 'rubrique'. Cette insertion ne concerne pas un projet matériel mais une publication, le magazine 'papier' Eight BIT. Comme son nom semble l'indiquer, les sujets traités concernent l'environnement des ordinateurs 8 bits, donc principalement des années 80. Au mois de mai, la publication en est à son numéro 3 : 


Il me semble opportun de signaler cette 'initiative'. L'inventivité des année 80 est quelque chose qui m'a profondément marqué. Celle-ci a été très rapidement éclipsée par le raz de marrée industriel mené par microsoft/intel, débouchant sur une standardisation... 'lassante' et une série 'd'innovations' plus commerciales que techniques et à l'utilité... douteuse pour l'utilisateur final.

Depuis quelques années, la scène 8 bits se (re)dynamise au travers de plusieurs types de réalisations : matérielles; forums; évènements; publications. C'est aussi le cas pour les machines 16 bis. Si pour l'instant le monde Atari semble un peu 'amorphe', l'environnement Amiga est en pleine évolution grâce notamment à une forte communauté d'utilisateurs/enthousiastes, et à l'apparition de cartes accélératrices performantes permettant une montée en puissance assez impressionnante de ces machines.

Concernant l'Amiga, cette montée en puissance ne date pas d'hier, il y a eu par le passé nombre de cartes accélératrices à base de processeurs 68000 évoluées, du 68020 au 68060. Mais l'apparition de cartes à base de FPGA et cœurs de processeurs compatibles 68XXX très performants permet à ces machines de passer à une autre dimension, sans compter que cela pallie fortement le manque de processeurs 68XXX, disparus du catalogue Motorola depuis déjà un bon nombre d'année.

A suivre donc...

                                                                                                                                                                                                                                            
17/05/2017 : Carte accélératrice Appolo pour Amiga [http://www.apollo-accelerators.com/]

J'évoquais ce type de carte dans le sujet du dessus consacré au magazine Eight Bit. Apollo propose une série de carte accélératrices pour divers modèles d'Amiga, le 600, le 500+ et bientôt le 1200. Certains 'add-on' proposés peuvent aussi être utiles comme le convertisseur de bus des machines 500 vers un format plus standard qu'est le PCI, etc etc...


Ou comment devenir 'vampirisé'...

Plus d'informations ici : http://www.kipper2k.com/



Au fil des années, bien d'autres carte accélératrices sont apparues pour les Amiga, la plupart du temps à base de processeurs plus puissant que le 68000 d'origine. Je pense que ces solutions ne sont plus valables par le simple fait qu'il n'existe plus depuis des années de production de processeurs 68xxx. Acquérir ce type de carte, si elle n'est pas livrée avec le CPU peut poser quelques problèmes d'approvisionnement en processeur. Les arnaques sur le sujet sont assez fréquentes, donc méfiance!!!

D’où l'intérêt de systèmes basés sur du FPGA....

                                                                                                                                                                                                                                            
24/05/2017 : Carte FPGA compatible M.I.S.T. [http://www.8bits4ever.net/]

Puisque j'en suis à évoquer les matériels à base de FPGA capables d'émuler de façon matérielle plusieurs types de plateformes, en voici une qui me semble intéressante puisque compatible avec le projet M.I.S.T. Différents 'cores' émulables peuvent se trouver à cet endroit : https://github.com/.  Comme cette carte est compatible M.I.S.T., cela 'devrait' fonctionner...

La carte FPGA ressemble à ceci :
Jolie carte...
Il serait bien 'tentant' de tester une telle carte, surtout que la liste des machines émulables est vraiment intéressante :

"Atari ST, Amiga, Amstrad CPC, Radio86RK, Apple II, Apple Mac Classic, Archimedes, Astrocade, Atari 2600, Atari 800, Atari 5200, BBC Micro, BK0011M, Commodore 64, ColecoVision, Gameboy, SMS, Mattel Aquarius, MSX2, NES, PC Engine, ZX Spectrum, Sinclair QL, ZX 81, Vector 6, Sega Megadrive, VIC-20, Videopac and some arcade cores like Pacman, Space Invaders, etc..."

La carte mise en boitier plastique imprimé :


peut être achetée sur le site de https://www.8bits4ever.net/ :

                                                                                                                                                                                                                                            
07/06/2017 : Carte Z80 au format RaspBerry PI : Z-BERRY [https://sites.google.com/]

L'idée est simple : présenter une carte processeur au format physique de la RaspBerry PI, mais sur une plateforme matérielle autre, voir, tout autre puisqu’ici li s'agit d'une carte à base de Z80. L'initiative est intéressante puisqu'elle permet d'utiliser 'certains' boitiers déjà existant pour la Rasp. Les connecteurs d'extension principaux étant compatibles, dans une certaine mesure, avec ceux de la Rasp., il devient aussi possible d'utiliser des cartes d'extensions initialement prévues pour la Rasp. Je n'ai pas essayé donc ceci est à vérifier.

Sympa non?
Les caractéristiques de la carte : 
  • Z80 CPU running at 10MHz (20MHz possible)
  • 32kB ROM
  • 512kB RAM
  • microSD card storage
  • 1 output full 8 bit-port
  • 1 input full 8-bit port
  • 3 independent input pins
  • 4 independent output pins
  • serial interface (57 600 Bd)
  • I2C bus
  • SPI bus
  • PS/2 keyboard connector
  • beeper
  • software driven LED
  • reset button
  • connector with almost full Z80 bus
  • 5V powered via micro-USB connector
  • pluggable daughter board with real-time clock or OLED display
  • total 17 IC chips
  • two layers PCB
  • credit card sized (85x56mm)
  • fits Raspberry Pi cases (but only a few of them fits perfectly)
  • firmware with SD card support
Remarque : j'ai regardé quelque peu le schéma de principe de cette carte et n'ai constaté aucun circuit spécialisé pour gérer les bus série du genre I2C, SPI etc etc... au contraire, ces bus 'semblent' être émulés directement par des ports d'entrées/sorties du Z80 grâce à une couche logicielle appropriée. Il peut donc être utile de s'attendre à des performances relativement médiocres sur ces bus malgré un processeur fonctionnant de base à 10MHz.

Je pense que le concept est sympa et qu'avec un 'petit' fpga judicieusement utilisé, il devrait être possible de créer un système plus puissant tant en terme de puissance de calcul du processeur qu'en terme d'entrées/sorties.

Un projet bien sympa à suivre....

                                                                                                                                                                                                                                            
07/06/2017 : MEGA 65 [http://c65gs.blogspot.fr/]

Comme cela est écrit sur le blog dédié, il s'agit de la création d'un compatible Commodore 64 en FPGA : 


Cela a déjà été fait me direz-vous! Certes, Jeri Ellsworth a déjà effectué ce travail avec son C-One

C'est un fait. Ceci dit, La machine de Jeri était relativement complexe. D'ailleurs elle ne servait pas qu'à émuler le commodore 64. Dans le cas du Mega65, la carte mère est quand même beaucoup plus simple : 



Certes cette nouvelle carte mère n'est prévue que pour émuler un Commodore 64, cependant comme toute carte à base de FPGA, il sera certainement possible d'y implémenter autre chose. Surtout qu'il semblerait que le circuit utilisé soit bien plus pourvu en portes logiques que nécessaire pour un C64. La carte possède de plus un port d'extension qu'il sera sans doute assez facile d'exploiter. Les premiers tests donnent visiblement ceci :


Mega 65 est un projet qui a démarré il y a deux ans maintenant et qui semble passer à un stade de pré-production. A suivre donc de près...

Encore une fois, la scène rétro-computing semble de plus en plus active. Deux plateformes semblent se 'dégager' du lot, à savoir le Commodore 64 et l'Amiga. Quant aux processeurs utilisés, c'est incroyable, mais encore et toujours le Z80... Moi, je trouve ça très bien!


                                                                                                                                                                                                                                            
07/06/2017 : Kerberos [http://www.frank-buss.de/]

Et puisque j'évoque dans le billet du dessus la carte FPGA compatible C64,  voici quelques développements concernant ce C64, pour le coup, dédié à la musique M.I.D.I., la cartouche Kerberos : 

Cette carte, élaborée par Frank Buß, propose en plus de la 'simple' interface M.I.D.I., une extension de RAM de 128Ko Pouvant être utilisés en tant qu'extension de RAM pour les programmes, ainsi qu'une mémoire flash de 2Mo pouvant être chargée avec des images de programmes de 1Mo via l'interface M.I.D.I.

Un logiciel sous Windows ou Mac permet la configuration de cette cartouche ainsi que le téléchargement de fichiers en flash :


Puisqu'il semble donc possible avec cette cartouche d'avoir directement un pool de logiciels disponibles (sélectionnables par le menu de la cartouche), il peut être intéressant de programmer (de nouveau) pour le C64. Après quelques recherches, j'ai 'trouvé' le logiciel de développement "C64 studio" de Georg Rottensteiner :

C64 Studio sous Windows 10/64
Pour presque compléter le tout, un bon émulateur de C64 peut permettre de faciliter le cross développement, cela tombe bien, C64 Studio est prévu pour fonctionner avec VICE. Toujours sous Windows 10, Vice donne ceci :


Rien à dire, au moins ça démarre sans problème!

Comme quoi, un Commodore 64 que l'on 'croyait' mort et enterré depuis des decennies, permet encore et toujours de s'amuser, pour le meilleur évidemment. Plûtot que d'apprendre l'informatique dans les master class à la Microsoft ou l'on va vous apprendre à utiliser un système, un langage et un environnement très particulier, pourquoi ne pas démarrer avec du standard et universel? Evidemment, proposer de programmer en assembleur aujourd'hui, cela peut prêter à sourir mais ne jamais oublier que maitriser à fond un processeur même 8 bits qui fonctionne à 20MHz ou plus, permet de réaliser des choses fort intéressantes sans les contraintes des plateformes dites 'libres' avec OS embarqué. Le tout est de bien décider ou placer la plus-value : chez vous, ou au dessus?

Je vais finir par ressortir le mien!!!

                                                                                                                                                                                                                                            
26/06/2017 : ZX Spectrum Next [http://www.specnext.com/]

Si je récapitule un peu, concernant l'Amiga, bien que pour l'instant il n'y ait pas de 'vraie' recréation de machine, les cartes accélératrices aujourd'hui disponibles permettent de redonner un véritable coup de 'boost' à ces superbes ordinateurs. C'est aussi le cas de l'Apple II qui se voit agrémenté de nouvelles cartes d'extensions et notamment de cartes accélératrices à base de processeur WDC. Il y a aussi quelques plateformes FPGA qui permettent de recréer certaines machines comme la carte MIST prévue à l'origine pour émuler la famille des Atari ST (J'en possède une qui fonctionne très bien). Et puis apparaissent de nouveaux 'designs minimalistes' prévus pour remplacer simplement une carte mère d'un ordinateur 8 bits. C'est le cas du concept Mega 65 prévu pour 'remplacer' le commodore 64. C'est aussi le cas du projet Zx Spectrum Next, prévu pour 'remplacer' le Zx Spectrum d'origine.
 
http://www.specnext.com/

Ce projet arrive avec son lot d'améliorations dont les plus marquants sont d'une part un port vidéo plus moderne puisque l'on dispose du VGA et de l'HDMI en plus du RGB, et d'autre part l'accélération possible en 14 et 28 MHz, soit x2 ou x4 la vitesse max d'origine. D'autres 'goodies' sont au rendez-vous comme le stockage sur carte SD, de la mémoire extensible et un port prévu pour une Pi Zero. Aperçu de la carte FPGA : 

http://www.specnext.com/about/
Et une petite représentation de ce que sera la machine finale : 

http://www.specnext.com/about/

Je trouve ça vraiment pas mal du tout. Et vous?

Ce qui me donne à penser que si ça continue comme cela, je lancerais bien un petit sondage pour avoir votre avis quant au type de machines qui vous semble la plus cool, appropriée, pratique, ou que sais-je encore...

Next......

                                                                                                                                                                                                                                            
04/07/2017 : retroGAMER Collection [http://retrogamercollection.blogspot.fr/]

Et puisque nous sommes en plein rétro-computing, pourquoi ne pas évoquer ce qui va de paire, c'est à dire le rétro-gaming. Outre le charme incomparable du design des jeux vidéos de la 'préhistoire', et étant donné l'engouement actuel pour les rétro-ordinateurs, et, si l'on prend en compte le développement de nouvelles plateformes matérielles compatibles avec les standards que furent à leur époque le C64, Le Spectrum, Les ST, les Amigas, les Apple ][ , pour ne citer que les plus connus, il ne paraît pas idiot du tout d'utiliser ces néos-anciens systèmes pour s'exercer au développement. Nul besoin de monter une équipe de développeurs pour cela. Seul, dans son garage, sa cave ou son grenier, il est de nouveau possible de créer, de la même façon que ce que l'Arduino permet depuis déjà quelques années. Les risques d'obsolescence programmée du développeur est bien moins important que ce que l'on peut trouver avec les plateformes des grands constructeurs qui ne sont pas la pour vous faire gagner, mais plus pour vous faire perdre, après éventuellement vous avoir exploité de façon tout à fait indigne! (voir cet article)

L'occasion donc de faire une petite publicité pour  Retro Gammer Collection :


La banière du site est suffisamment explicite. Une édition papier existe aussi :

Le volume 10, disponible ce mois de juillet.
                                                                                                                                                                                                                                            
16/10/2017 : Carte mère Amiga [http://www.amy-itx.com/]

Un carte mère compatible Amiga 500+ et 600 au format mini-ITX. La carte ne possède pas, sur le côté, le connecteur d'extension standard de l'Amiga 500 mais par contre elle propose deux slots au format Zorro II. Noter qu'il vous faudra posséder les chips custom d'un 500+ ou 600 pour faire fonctionner cette carte : 




Quel peut être l'intérêt de construire une telle carte s'il vous faut presque impérativement posséder un Amiga 500+ ou 600 pour en retirer les chips custom? A première vue aucun. Si ce n'est que cette carte propose des slots Zorro II, ce qui devrait permettre l'installation de cartes diverses et variées comme peut-être la superbe carte vidéo de Lukas F. Hartmann (Lukas F. Hartmann) dont j'ai parlé plus haut.

vendredi 18 novembre 2016

Il va falloir finir par sous-traiter!

Petit post 'vite fait' parce que le travail ne manque pas par ailleurs... Raison du titre de ce billet.
Je ne trouve plus assez de temps en soirée pour mener à bien comme je le souhaiterais mes développements en cours. Au fur et à mesure des avancées je finirai bien par retrouver l'équilibre, mais pour l'instant c'est un peu la course tous les soirs, surtout quand je me retrouve confronté à des petits problèmes qui consomment gentiment leur paire d'heures.

Dans la série nouveau circuit imprimé à monter et à tester, j'ai nommé le switch M.I.D.I. :


Ici encore, ce n'est pas du circuit imprimé de haute qualité (le design, pas la fabrication), mais cela devrait suffire pour effectuer les premiers tests. Le processeur de ce montage est cette fois-ci un membre de la famille PIC32 ainsi qu'un circuit externe contenant 4 ports série. Chaque switch comportera donc 5 ports série dont un dédié à un fonctionnement particulier...

Le projet de circuit de diagnostic pour la boîte à rythme Drumulator avance bien. Le plus gros des tests est implémenté. J'en ai encore d'autres à intégrer. Le développement sur ce système ne pose plus de problème depuis que ma carte électronique a été corrigée (voir post précédent) et que l'environnement de développement et de programmation du processeur fonctionne bien. La majorité des routines de bases étant écrites, l'écriture de code s'en trouve simplifiée. Un petit aperçu :

Présenté comme cela, ça n'est pas obligatoirement très parlant. Tout juste sait-on quel switch de la Drumulator a été appuyé. Mais je vous assure, tous les tests fonctionnent ;-)

Parallèlement je 'tente' de démarrer une 'copie' de la Drumulator dans un FPGA. Parce qu'à étudier la machine comme je le fais, il me devient possible d'en tenter l'implémentation en logique programmable. Pour l'instant j'ai traduit une Drumulator 'very' minimum dans le FPGA mais l'affichage ne démarre pas sur son sempiternel 'Bad', ce qui pour une fois m'arrangerait bien, malgré la nature du message ;-)

21 novembre 2016 : un petit pas pour... moi ;-) 
Après quelques difficultés à donner vie au 'cœur' processeur de la Drumulator sur une carte FPGA, le dernier caractère de la chaine 'bad', le 'd', s'affiche enfin. Pourquoi le dernier? Je pense que la personne ayant programmé la routine d'interruption de gestion de l'affichage à utilisé le mode décrément plutôt qu'incrément. Je soupçonne fort que le système a été développé en assembleur et non pas en 'C'. Et les 'habitués' se rappelleront qu'il est plus facile de faire un test sur zéro, que de tester une valeur. C'est une soustraction de moins à coder! Ce qui n'empêche que j'ai des problème de réarmement de l'interruption sur les routines que je code en VHDL pour émuler le CTC. Mais bon, je vais y arriver ;-)

22 novembre 2016 : pas difficile, en fait.
J'avais effectivement un petit problème de réarmement des interruptions sur l'émulation du CTC que je code en VHDL. Une relecture de la doc de ce composant m'a permis de comprendre mon erreur. Et puis aussi un petit souci sur le code de retour des touches 'virtuelles' appuyées, ou plutôt non appuyées étant donné que je n'ai pas encore codé cet élément et qu'il me faut donc émuler le bon code au bon moment pour signifier au programme qu'aucune touche n'est appuyée. Et comme les concepteurs de la Drumulateur n'ont pas hésité à ajouter une petite gâterie, forcément, je suis tombé dans le panneau ;-) Mais bon, malgré la difficulté que représente toujours la première mise en service d'un 'corps' étranger dans un fpga puisqu'on fonctionne pour beaucoup à l'aveugle, le cœur de cette boîte à rythme fonctionne à priori correctement dans ce gros circuit Altera : 

Message d'invite lorsque la RAM n'es pas sauvegardée...
22 novembre 2016 : Code::blocks
Petite réflexion du jour : histoire de tester quelques algorithmes avant de passer à leur programmation dans ma carte de test (circuit prenant la place du Z80) de la Drumulator, j'ai voulu utiliser le PC pour exécuter quelques lignes de code C. Parce que moi, le C++ ou le C#, en programmation micro-contrôleur, ça ne m'est pas bien utile. J'ai donc tenté la version gratuite du C 'crosoft'. Le constat est toujours le même : des gigas de téléchargement, des possibilités infinies, et au final, impossible de faire du C en mode console. Évidemment, il n'est pas de l'intérêt de 'crosoft' de permettre encore ce genre de chose sous leur système, bien que 'crosoft' soit en train de permettre l'utilisation d'Unix sous windowsx!!! Mais bon, une fois de plus, je constate que l'intérêt de l'utilisateur passe au ixième plan dans la stratégie commerciale de 'crosoft'. J'ai donc supprimé l'installation de cette chose énorme (près de 10Go de fichiers et pas loin de 50 'programmes' devant être désinstallés à la main : serveur web, serveur sql, serveur de déploiement, x versions du .net, etc etc. Une totale invasion. Comme d'aucuns peuvent le dire, un super méga virus, en fait! Chance, après avoir 'à peu près' tout désinstallé, le système fonctionne toujours, et pas un message d'erreur : INCROYABLE!) et inutile pour passer à Code::blocks. 75Mo à télécharger, du C en mode console de façon tout à fait normale, du débogage temps réel bien fait, bref, tout ce qu'il faut pour être opérationnel en quelques minutes seulement sans contraintes matérielles ou logicielles. Un outil fait pour ceux qui ont besoin de se prendre la tête avec leur code, et pas avec une stratégie commerciale douteuse et pénible depuis des... décennies!
Tout ça, pour implémenter le DUMP mémoire de la ROM. Et oui, comme mon système comporte sa propre ROM programme puisqu'il s'agit de la flash du processeur Atmel, il n'y a plus besoin de ROM externe pour le fonctionnement du système de diags. Du coups comme les bus sont libres, cela permet de lire la ROM au même titre que n'importe quel composant de la carte de la Drumulator. Il m'est donc possible de calculer en même temps le checksum de la ROM et donc d'en vérifier l'intégrité de son contenu. Petite fonctionnalité impossible avec le système de diag originel de chez E.M.U.
Je vais mettre maintenant en pause ce travail autour de la Drumulator parce que j'en suis arrivé au moment ou il est nécessaire de comprendre et j'espère émuler le fonctionnement du micro-séquenceur de génération sonore de la machine. Je n'ai pas trouvé d'infos à ce sujet sur le net, et les explications fournies par E.M.U. dans sa donc est forcément... succincte! Quelques tests à l'analyseur logique s'imposent donc..... 


En ce qui concerne la perte de 'paires d'heures' qui arrive parfois, voici une petite mésaventure survenue lors de la ré-écriture du code de test des afficheurs de la Drumulator. Les afficheurs d'origine, des TIL312, ne sont pas très lumineux. Comprendre que pour obtenir un 'éclairage' suffisant, il est nécessaire de leur injecter un certain courant. Je n'ai pas mesuré ceux présents sur la Drumulator, peu importe, seule le principe compte (2,8W sous 10V quand même, affiché sur mon alimentation de laboratoire, pour un afficheur allumé au complet à 20% du temps).
Ce courant, vu la taille des résistances de limitation est de toute façon important, puisque ces résistances  sont au moins des 5W. Retenir que ce courant est potentiellement dangereux pour les afficheurs. Or, le système d'affichage étant multiplexé, chaque afficheur, et LEDs puisque le groupe de LEDs est traité comme un afficheur, n'est allumé QUE 20% du temps. Donc, pas de problème.

SAUF que pendant mes développements, il m'est arrivé de stopper le processus de test alors qu'un afficheur était alimenté, en l’occurrence l'afficheur de droite. Et au bout 'd'un certain temps', une odeur de chaud puis une légère fumée s'est dégagée de la carte de la Drumulateur. J'ai tout éteint immédiatement évidemment, et ai tenté de trouver l'origine du problème. L'odeur venait effectivement de la zone d'affichage. Je suspectait peut-être le 'claquage' d'un transistor de commande.

Au lancement du test suivant, je m'aperçus de suite que le segment horizontal du bas de l'afficheur de droite ne s'allumait plus, le segment D. Pas normal.... mais... logique! Moins logique par contre, le segment B du même afficheur s'allumait alors que ma fonction de test des afficheurs/LEDs allumait les LEDs, justement, et pas l'afficheur de droite : très étrange.

Après quelques instants de réflexion, le test de la résistance du segment D de l'afficheur de droite m'indiquait une résistance inférieur à 10Ohms, donc pratiquement en court-circuit. Et l'explication de l'allumage du segment B devint évidente :

Les flèches rouges indiquent le sens du courant.

Or donc, quand le segment B des LEDs est commandé (bien qu'il n'y ait pas de LED branchée sur ce segment), les autres segments sont éteints, donc à '1'. Le courant part donc du signal CATH0 (correspondant au segment D), traverse le segment D défectueux de l'afficheur de droite et alimente donc l'ensemble de l'afficheur. L'afficheur ainsi alimenté par une alimentation 'fantôme', est en mesure d'alimenter le segment B du même afficheur, lorsque le signat CATH4 est à '0', signal correspondant au potentiel segment B des LEDs. La raison pour laquelle cela n'arrive qu'avec le segment B est que justement, il n'y a pas de LED branchée sur ce segment. Le courant ne trouve donc pas un chemin 'plus facile' pour s'évacuer, et passe donc par le segment B de l'afficheur de droite.

Depuis, j'ai non seulement remplacé l'afficheur défectueux, mais aussi fait en sorte que le signal CATH4 correspondant au segment B soir toujours à '1' lors que j'adresse les LEDs. Parce que lors du remplacement de l'afficheur, je me suis rendu compte que le transistor de d'alimentation de commande de l'afficheur de droite n'était pas totalement bloqué, et qu'une très légère lueur apparaissait sur le segment B de ce nouvel afficheur lors que j'adresse les LEDs. Je n'ai pas changé le transistor de commande, qui fonctionne bien cependant. Ses caractéristiques auraient-elles changées par un excès de courant? Possible!


Sur cette photo, l'afficheur de gauche est un modèle neuf, celui de droite est celui retiré de la Drumulator. Effectivement, ça a chauffé vers le bas de l'afficheur. Alors pourquoi uniquement ce segment, alors qu'il y en avait plusieurs d'allumés? Pas d'explication.

Et pendant que j'y suis, une petite pub gratuite pour Nikolay Nikilov de Bulgarie qui tient la boutique Electron-pv sur eBay, ou je me suis procuré quelques exemplaires de TIL312. Parce que ces TIL312 ont une particularité utilisée sur la Drumulator, les deux points décimaux. Deux point décimaux qu'il est très difficile de trouver sur des équivalents, et spécialement le point de gauche.

Scratch 2 : j'ai été sollicité pour le développement d'une solution adaptée à l'utilisation de ma carte compatible Arduino. Après m'être documenté sur le sujet, et notamment la façon dont la communication entre Scratch2 et la carte Arduino était réalisée, j'ai décidé de ne pas perdre mon temps avec ce sujet, bien que cela m'ait pris quelques heures pour pousser un peu le bouchon et 'tenter' une première approche avec ma carte.

Avis très personnel :
A mon sens, ce système est amusant, je parle de Scratch2, et totalement inutile, j'assume. D'ailleurs cela ne m'étonnerait pas que dans très peu de temps ce système ne soit plus utilisé, une fois que le buzz 'algorithme pour tous' dans l'éducation nationale sera retombé. Je ne développerait pas mes arguments. Tout juste rajouterais-je que les personnes 'vraiment' intéressées par la programmation et la réalisation d'objets autonomes sauront bien mieux atteindre leur objectif avec l'IDE Arduino, et qu'il y a un âge minimum pour cela qui n'est pas 8 ans, mais qui se situe entre 14 et 15 ans (hors cas exceptionnel et sous réserve d'un réel intérêt pour la chose), ou jamais, selon la très grande majorité des personnes... Mais bon, le 'numérique' est la boutique à rêves ("l'opium du peuple") contemporain : bien piètres objectifs!

Histoire de continuer sur ma lancée, certains établissements ont choisi l'utilisation de petits robots comme les Blue-Bot pour initier les 'jeunes' à algorithmie, c'est bien. J'ai personnellement mis à la poubelle au début des années 2000 (je vous rassure, je ne le ferais plus maintenant, et à mon grand regret je n'en ai pas conservé une seule!), un stock de tortues LOGO fabriquées par Jeulin. C'était la même chose, dans le même contexte, à une autre époque. On reprend (presque) les même et on recommence : Logo et sa tortue

L'enfumage politico-médiatique, j'avoue qu'à la longue, ça lasse ;-)

vendredi 21 octobre 2016

C'est la reprise!

Mis à part quelques sujet sur des réparations/modifications d'instruments électronique de musique, je n'ai rien publié à la suite du MakerFaire de Nantes qui s'est déroulé début juillet.

Parce-que finalement, je n'avais rien de spécial à publier. Pratiquement quatre mois après ce MakerFaire, et malgré l'enthousiasme affiché par les 'passants' sur mes présentations, force est de constater que la multitude de contacts échangés à cette occasion n'a rien donné de particulier. Reste malgé tout cet incroyable moment passé à la rencontre de personalités très variées et intéressantes.

Je continue donc, seul, mes développements et diverses expérimentations électroniques.

Lors de ce MakerFaire nantais, j'ai présenté deux thématiques principales :

- l'automatisme dédié à l'habitation, basé sur l'environnement Arduino. Le matériel exposé se composait d'un automate commercial de type Controllino, d'une carte Arduino de type UNO de ma composition, mais possédant DEUX vrais ports série, et d'un écran graphique tactile permettant de commander le tout :


Les évolutions de ce système consistent en une carte d'interface que je développe actuellement pour la carte automate Arduino. Cette interface comportera un circuit industriel capable de gérer la commande de signaux numériques en 24V, ainsi qu'un certain nombre d'entrées analogiques acceptant du 10V et du 5V. tout ceci devant permettre de sécuriser la carte Arduino vis à vis du monde extérieur et permettra de se passer de l'automate commercial Controllino.
Quelques passages en FabLab à titre de conseil en développement de solutions électroniques m'ont permis de constater à quel point il est facile de détruire les entrées/sorties du processeur quand les 'expérimentateurs/trices" ne possèdent qu'une vague notion des grandeurs physiques utilisées.

D'autre part, le type d'écran tactile utilisé à subi une évolution. Ces écrans sont maintenant plus réactifs en affichage du fait d'un système à processeur intégré plus rapide. Ils possèdent aussi une plus grande capacité mémoire, ce qui permet une montée en 'raffinements' d'affichage. Ils possèdent aussi directement l'heure temps réel. Ce qui permet de libérer le port d'extension dédié de ma carte Arduino.

Le schéma théorique de l'interface industrielle est terminé. Il reste encore à créer le circuit imprimé, ce qui sera fait dans les semaines à venir.

- L'électronique dédié aux instruments numériques était la deuxième thématique présentée au MakerFaire. Avec deux présentations matérielles. D'une part un système permettant de prendre le contrôle d'une machine pour y effectuer des diagnostiques et réparations éventuelles. En l’occurrence ce système prend la forme d'un 'émulateur' de processeur Z80, utilisé en lieu et place du processeur d'origine d'une Drumulator :



Cet émulateur de Z80 n'émule pas réellement un Z80, évidemment, mais est en mesure de prendre le contrôle des différents bus du système, et ce, dans le but de commander les différents organes de la machines afin d'en évaluer le comportement. Le gros avantage de cette solution est qu'elle ne nécessite aucun composant externe pour fonctionner. Par le fait, il devient alors possible d'effectuer un DUMP de la ROM d'origine de la machine, et même de tester le bon fonctionnement des mémoires RAM.
Mon étude initiale comportait quelques 'bugs'. Afin de la finaliser, j'ai donc corrigé les erreurs et en ai aussi profité pour changer le connecteur mini-usb en optant pour un modèle vertical. De cette façon, l'émulateur n'occupe que la place d'origine du Z80 et ne déborde plus. Je pourrai remettre en place le potentiomètre que j'avais du retirer.

La nouvelle version est à gauche!
 
Côté pile.

Côté face.
La nouvelle version est bien plus 'propre' que l'ancienne et va me permettre de continuer à développer sereinement les algorithmes de test de la Drumulator.

Autre sujet développé dans cette thématique instruments numérique de musique, une 'nouvelle' liaison M.I.D.I. :


Ces deux modules relient mon clavier maitre K250 et un expandeur sur lequel j'utilise différents sons de piano depuis quatre mois maintenant. Je n'ai constaté aucune erreur de communication malgré une certaine 'rapidité' des notes jouées (je prends par ailleurs des cours de clavier, histoire de me servir aussi de ce que je fabrique!). La topologie de ma liaison M.I.D.I. n'étant plus la même que celle d'origine, je développe en ce moment un switch qui me permettra de non plus faire un simple point à point, mais de créer un vrai réseau de machines. Le PCB de ce switch est créé et ne requiert 'plus' que sa fabrication puis la programmation du système.

Le principe de mise en place de ce nouveau réseau devrait être assez 'ludique', agréable, et pratique, tout en conservant l'existant. Non? si si....

Cerise sur le réseau, avec tous ces développements et matériels disponibles, j'en profite pour développer un petit système de commande pour le Juno 2 que j'ai dépanné récemment. Ce système se comportera comme un PG300 mais à partir d'un des écrans tactiles évoqués plus haut. Il permettra aussi de faire l'interface entre le nouveau réseau M.I.D.I. et les 'anciennes' prises M.I.D.I. de la machine. L'interface graphique ressemblera à ceci :


Et d'ailleurs voici ce à quoi ressemble le circuit imprimé tout fraîchement arrivé de fabrication :


Pour ce montage j'ai choisi de passer sur un processeur de type ARM de chez ST. D'une part ces processeurs sont rapides, mais surtout l'ensemble des logiciels disponibles pour ces circuits est vraiment 'facile' à utiliser. CubeMX permet en effet de configurer de façon graphique les processeurs ST puis de générer le projet contenant toutes les initialisations nécessaires. Projet qu'il suffit d'ouvrir avec System Workbench for STM32 d'AC6 par exemple pour commencer à développer le code dans un environnement Eclipse. Cela fonctionne très bien, une très grande partie du travail fastidieux d' initialisation du processeur devenant automatique.

Carte montée : 28/10/2016

Pas du grand art, mais pour du prototype, ça ira bien!
Carte partiellement testée : 05/11/2016


Pour tester mon montage, j'ai réutilisé une petite carte d'affichage réalisée en 1992 il me semble. Cet affichage faisait parti d'un système de filtrage des canaux M.I.D.I. à destination d'un JX3P.
Insérée directement sur un port d'extension de la carte ARM, elle me servira à afficher des indications sommaires lors du développement logiciel de cette carte.

Et pendant que j'y suis : publicité gratuite pour ST. Je m'empresse de suite de préciser que mon intention n'est pas de dénigrer d'autres fondeurs proposant des processeurs compatibles ARM certainement très intéressants mais je n'ai jamais poussé les essais, la plupart du temps non pas à cause des circuits heux même, mais du fait du manque de logiciels de développement 'faciles d'installation/d'utilisation'. Ce qui m'a fait pencher pour les micro-contrôleurs ST est en tout premier lieux l'application CubeMX ou plus exactement STM32cubeMX. Ce logiciel permet tout simplement de configurer tous les aspects matériels du micro-contrôleur utilisé. Pour qui souhaite développer rapidement une petite application, cet outil est indispensable. Ensuite, vient évidemment la chaîne de développement Système Workbench for STM32 d'AC6. Il s'agit d'un IDE basé sur l'incontournable Eclipse. A ceci près, que l'installation complète de la chaîne de développement se fait de façon extrêmement simple. Ce qui n'était pas encore le cas mi-2015! Je rajouterai à cela que les processeur ST sont complets, rapides et d'un prix très faible. Inutile de plus d'acquérir un programmateur au prix exhorbitant. Pour ma part, j'utilise le STlink2 présent sur une carte Nucleo, qui me permet aussi d'effectuer du deboggage en temps réel : carrément le luxe!

Système quasi fonctionnel : 14/12/2016

Il m'aura fallu un peu plus d'un mois pour arriver à mes fins mais ça y est, l'afficheur graphique me permet de modifier en temps réel les paramètres du Juno 2. Pour l'instant je n'ai pas encore testé la connection au 'vrai' standard M.I.D.I. puisque j'en ai équipé ma carte processeur, mais 'me suis contenté' de faire transiter les informations par mon réseau compatible M.I.D.I. avec la mise en place d'un convertisseur vers l'ancien système M.I.D.I., directement connecté au synthétiseur. Pour imager la chose, je suis maintenant en mesure de modifier les paramètres du son du Juno en live avec l'écran tactile, tout en étant distant de presque 10m, longeur du câble qui relie l'écran au synthé. Et cela fonctionne superbement bien :-)
La fonctionnalité du système étant validée, il 'ne me reste plus' qu'à programmer l'ensemble de l'application et à trouver un boitier adéquate pour loger le tout! 

Je n'ai pas précisé, mais l'émulateur de Z80 est basé sur un processeur Atmel ATmega328pb, ainsi que les modules M.I.D.I. personnels, et évidemment la carte automate compatible Arduino. Pour le switch M.I.D.I. je vais utiliser un microcontrôleur de chez Microchip de la famille PIC32MX.

S'il est possible de débuter la programmation en 'jouant' de l'IDE Arduino sur les cartes du même nom, l'étape suivante qui consiste à programmer tel ou tel type de microprocesseur avec l'IDE du 'constructeur' et un programmateur dédié n'est finalement pas beaucoup difficile, à partir du moment ou les bons outils et le bon environnement informatique est utilisé.
  
Voilà, c'est tout pour l'instant. Encore que... D'autres sujets sont plus ou moins en cours d'étude, qui aboutiront peut-être... ou pas!

mercredi 7 septembre 2016

Encore un STUDIO 440 remis en service!

Pour bien entamer la reprise, quoi de plus intéressant que la remise en service d'un STUDIO 440?

Il y a quelques semaines de cela, j'ai été contacté par le 'malheureux' propriétaire d'un 440 en fâcheuse posture.
La machine reçue pour dépannage:

Machine en bel état malgré son âge.

Ce 440 présente deux problèmes majeurs. Tout d'abord l'alimentation à découpage ne fonctionne plus du tout. Et puis surtout, même avec une alimentation fonctionnelle, le 440 ne démarre pas :

Fâcheux comme 'fonctionnement'

Je possède certaines pièces de 440, heureusement, parce que je ne savais pas du tout ou je mettais les pieds en acceptant le dépannage de la machine. Depuis le dernier dépannage de 440 effectué en septembre de l'année dernière, je me suis équipé d'une alimentation de laboratoire conséquente parce que je m'étais rendu compte que les différentes cartes d'un 440 consomment au final une certaine énergie. Energie que n'était pas capable de fournir les 'petites' alimentations que je possédais. Et pour dépanner un 440, quand toutes les cartes sont à plat sur le plan de travail, ça n'est pas simple de jongler avec plusieurs alimentations. J'ai donc acquis ceci :

Une DP832A
Cette alimentation est précise, puissante et autant que je peux en dire, fiable. Mais bruyante quand même. Elle remplit parfaitement sa fonction et me permet maintenant d'alimenter des cartes 'sensibles' sans problème.

C'est ce que j'ai donc fait avec la carte processeur de ce Studio 440. Après un certain nombre d'heures de sondage à l'oscilloscope, j'ai acquis la certitude que la carte mère fonctionne, mal, mais elle fonctionne. En fait, le programme principal reste 'planté' en accès sur l'afficheur. De plus aucune interruption n'est servie. J'ai fini par en conclure que la carte était tout simplement 'plantée' dans les routines d'initialisation du système. Comme à ce moment du démarrage, c'est vraiment le système minimum à 68000 qui fonctionne, et que visiblement le processeur, la ROM ainsi que la glue logique 'semblait' fonctionner, il ne me restait plus qu'à suspecter la RAM dynamique.

Après comparaison avec une machine fonctionnelle j'ai pu détecter qu'un des deux circuits qui gèrent la RAM dynamique avait un problème, en l'occurrence le plus petit des deux circuits dédiés à cette tâche :

Des circuits pas facile à trouver dans le commerce!

Et effectivement après remplacement du plus petit des deux circuits, l'afficheur s'initialise correctement et les diags se lancent sans problème : grosse avancée.

Le passage des tests m'indique qu'un circuit de mémoire dynamique est défectueux. Ha!, la voilà la raison peut-être originelle du dysfonctionnement de ce 440. Et la commence une partie de cache-cache avec les concepteurs de la machine. Parce que si à l'affichage la 'position' de la RAM défectueuse est bien signalée, il s'agit d'une indication 'graphique' sans plus d'information. La documentation étant elle aussi muette sur ce sujet. J'ai donc tout essayé en logique informatique. Il y avait quatre possibilité, évidemment ce fût la dernière la bonne car la moins logique, informatiquement parlant :

Les quatre DRAM mises sur support. Une seule était défectueuse.
A l'allumage suivant ces opérations, le 440 s'est allumé tout à fait normalement. Le problème était en fait tout simple. Mais pour en arriver à cette conclusion, et en faisant attention de ne pas dégrader plus l'état de la carte mère par des tests hasardeux, il m'a fallu quand même un petit nombre d'heures de recherche, de tests et de modifications. Une autre méthode consiste à ne pas trop se poser de question et à changer tout ce qui peut l'être, en espérant 'tomber' sur le problème. Je ne pratique jamais cette méthode, il est très rare que cela fonctionne. C'est pourtant la méthode utilisée par le propriétaire de ce 440, qui à mis sur support un bon nombre de circuits logiques dont le processeur :

Tous les circuits logiques autour du processeur ont été changés par le propriétaire de la machine.
Et malgré ce gros travail de remplacement des circuits logiques, l'état de la machine n'avait pas progressé du tout. Au moins, il n'y a pas eu de dégradation, le propriétaire sachant visiblement manier le fer à souder!

Ce Studio 440 présentait aussi un des quatre circuits custom défectueux, je l'ai remplacé par un circuit neuf, acquis il y a quelques années auprès de Wine Country. La mise en place du disque dur sur lequel je possède des sons de 440 m'a permis de valider le fonctionnement global de la machine. Pas de problème en ce qui concerne la DRAM d'échantillonnage, pas plus que sur les circuits analogiques de sortie.

Il ne restait donc plus qu'à s'occuper de l'alimentation à découpage d'origine de la machine. En fait, son dépannage a été très simple. Le fusible d'origine n'ayant pas brûlé, il y avait donc de fortes chances pour que rien ne soit en court-circuit sur cette alimentation, et notamment pas le transistor de commutation du primaire du transformateur haute tension. Cette alimentation, une fois connectée au réseau n'émettait pas le moindre bruit haute fréquence caractéristique du hachage du primaire. J'en ai vite conclu au dysfonctionnement de l'oscillateur de commande du transistor de puissance. Chance, ce sont deux transistors classiques qui s'occupent de cela, un 2N2222 et un 2N2907. En test sur la carte, j'ai déterminé que seul le 2N2907 était en erreur. Comme je possédait ces deux transistors classiques en stock, je les ai changé tous les deux. Le résultat fût immédiat :

Alimentation branchées sur une carte personnelle pour présenter un minimum de consommation.
Une alimentation à découpage ne fonctionne pas à vide puisque s'il n'y a aucune demande en courant, il n'y a pas de raison de fournir d'énergie. La boucle d'asservissement est alors à un point critique, hors régulation, l'alimentation ne démarre pas.

Voici ou se trouvent les deux transistors changés sur cette alimentation :


Au final, tous les composants changés sur ce Studio 440 :


Pas grand chose en fait. Mais pour en arriver à ce résultat, cela présente presque une journée complète de travail.

Que reste-t-il à faire sur cette machine? Plus grand chose, techniquement, mais présentant quand même un bon potentiel de temps à passer.

Le propriétaire de la machine devra trouver un lecteur de disquette compatible avec le 440. Celui mis en place est totalement incapable de formater, lire ou écrire une disquette d'origine Sequential Circuits, ou pas. J'ai pu tester le bon fonctionnement du circuit de la carte mère à l'aide d'un lecteur de disquette d'origine.

Il faudra aussi passer au dernier OS disponible, sinon il reste impossible de gérer un lecteur SCSI externe comme les 'vieux' disques 20Mo Apple, identiques à celui dont je me sers régulièrement.

Enfin, je n'ai pas testé l'échantillonnage. De toute façon, s'il y a un problème de ce côté, le nombre de composants mis en jeu est très faible et se situe dans l'environnement immédiat du convertisseur analogique/numérique. Par contre, traiter ce problème demande aussi beaucoup de temps en démontage et remontage de la machine qui, à ce niveau, n'est pas du tout ergonomique.

Bref, voilà encore un Studio 440 sauvé. Même si ce type de machine est totalement dépassé, mal conçue, pas fiable, cela reste un monument de l'épopée de la musique électronique. A conserver donc!