Google Analytics

09 februari 2022

Toepassing: Testen met de Retro Chip Tester Professional (deel 1)

In mijn vorige blog heb ik de bouw van de Retro Chip Tester (RCT) Professional beschreven. De afgelopen weken heb ik me verdiept in de mogelijkheden van deze tester en heb een selectie van mijn IC's uit de jaren '70 '80 getest en deze testresultaten vergeleken met een andere bekende merkloze Chinese IC tester. Ondertussen is er een nieuwe firmware voor de RCT uitgebracht en heb ik versie 0.21 beta4 inmiddels vervangen door v0.21.

Bediening en functies van de RCT

Op het moederbord zijn 3 leds en een LCD display aanwezig. Het LCD display wordt gebruikt om het te testen IC te selecteren en geeft informatie over de functie van het IC en waar het in de voet moet worden geplaatst en na afloop van de test wordt het resultaat getoond.

Aan de linkerkant zijn twee rode leds aanwezig waarvan de bovenste aangeeft dat het moederbord van voedingsspanning wordt voorzien en de onderste geeft aan dat het IC van spanning wordt voorzien. Het te testen IC wordt alleen van voedingsspanning voorzien tijdens het testen. Dit is een goede ontwerpkeuze, zodat er niets verkeerd kan gaan tijdens het plaatsen van het IC in de testvoet. De led rechts van het midden geeft aan dat het test proces in werking is. Mocht dat lang duren, b.v. bij RAM IC's dan knippert deze led.
Op de voedingsprint aan de bovenkant zijn 4 leds aanwezig, de rode links geeft de inkomende voedingsspanning aan van de Barrel connector of de USB connector en de 3 groene geven de +12V/+5V/-5V uitgangsspanningen weer.

Op de RCT (versie 1.2k) zijn vijf drukknoppen aanwezig. 

De reset knop initialiseert de tester naar de begintoestand, hiermee kan ook een lopende test worden afgebroken. De functie van de overige knoppen kan verschillen per hoofd/sub menu.

In het hoofdmenu kan met behulp van de Jump knop een van onderstaande hoofdcategorieën worden geselecteerd (v0.21), de daarbij weergegeven typen zijn slechts de belangrijkste.

SRAMs common > 2021, 2114, 6550, xx16
SRAMs uncommon > 3101, 2101, 2111, 8185
SRAMs cypress > x167, x168, x1257
DRAMs common > 2104, 4116, 4164, 4464
DRAMs uncommon > 41128, 4332, SIMM, ZIP
FIFO > 40105, 74222, 74235
EPROM > 27xxx, 1702, ES
PROM/ROM 1 > 23xxx, 6540, 2513
PROM/ROM 2 > 7488, 74S271, 82S321
LOGIC > 74xx, 40xx, PAL, Misc
CUSTOM > Custom definitions
PROGRAMMING > Experimental
SERVICE > Search, Info, Config

Na het kiezen van een hoofdcategorie kan met behulp van de >>>, <<< en OK toetsen een of meerdere subcategorieën worden gekozen en uiteindelijk kan het betreffende IC worden geselecteerd. Vooral bij de selectie LOGIC IC's zijn dit lange lijsten en duurt het lang om één voor één door te stappen, maar als de >>> of <<< knop langer wordt ingedrukt worden er grotere sprongen gemaakt om sneller bij het gewenste IC uit te komen. Persoonlijk had ik voor deze selectie liever een zogenaamde "Rotary dial" (draaiknop) willen zien, maar dit zou ook een hele snelle afhandeling van de rotary dial pulsen door de ATMega microcontroller vergen, dus ik snap wel de ontwerp keuze. De knop "Func Top" brengt je terug naar het begin van de (sub) selectie en met de OK knop wordt een keuze bevestigd of wordt het testen gestart. Bij het testen van ROM's kan met het langer drukken op de OK knop de inhoud van de ROM worden opgeslagen op de SD kaart of kan het testresultaat worden opgeslagen.
Bovenstaande is slechts een beschrijving van de meest elementaire bediening. Er zijn nog veel meer functies aanwezig die uitgebreid staan beschreven in de "Readme_Pro" handleiding.

Vergelijking RCT met een Chinese IC tester

Alhoewel de specialisatie van de RCT zich richt op (oude) typen RAM/ROM/EPROM heb ik me in deze RCT test meer gefocust op het testen van zogenaamde Logic IC's, zodat ik ook resultaten kan vergelijken met een goedkope merkloze Chinese IC tester genaamd "IC tester". 

Deze IC tester heeft in tegenstelling tot de RCT een smalle IC voet waardoor brede IC's zoals de 74116 niet op deze tester getest kunnen worden. Op de RCT kunnen zowel smalle als brede IC's worden getest. Dit zou nog opgelost kunnen worden met een verloopvoet, maar de 74116 wordt ook niet ondersteund door de software.

De IC tester kan logische IC's aan uit de 74HC, 74LS, CD40, HEF40 en de 45 serie aan, maar ook wat analoge IC's zoals Darlington transistor arrays (ULN), enkele Op-Amps (LM/TL), de NE555 en opto couplers. De RTC beperkt zich tot digitale IC's met combinatorische logica en een beperkt aantal transistor arrays en op-amps. De keuze aan te testen logische IC's is bij de IC tester redelijk beperkt, terwijl de RCT bijna alle logische IC's uit de 74 en CD40 serie aan kan.

De IC tester is in staat om bij (goed functionerende) IC's met een behoorlijke nauwkeurigheid heel snel te detecteren welk IC is geplaatst. Dit kan handig zijn als de opdruk niet meer leesbaar is. De RCT beschikt niet over deze mogelijkheid. Ik vind de IC selectie d.m.v. de cursor toetsen op de IC tester handiger en sneller in gebruik dan bij de RCT.

Een heel groot voordeel van de RCT is dat deze ook laat zien wat er fout is, de IC Tester laat alleen goed of fout zien, zonder nadere informatie.

Testresultaten

De meeste IC's uit de 7400 reeks hebben een +5V op de meest linkse pin boven en 0V op de meest rechtse pin onder. maar bij een aantal IC's zit de voedingsspanning op andere pinnen. De RCT zorgt zelf voor de juiste voedingsspanning op de juiste pinnen. Over het algemeen worden de IC's uiterst links in de ZIF voet geplaatst, maar voor een aantal IC's geldt een uitzondering en wordt op het display de positie aangegeven (Pos) geteld vanaf de linkerkant van de ZIF voet. Het is dus iedere keer goed opletten of er een positie op het display wordt aangegeven zodat het IC op de juiste manier geplaatst wordt. Mocht het IC verkeerd worden geplaatst dan gaat deze niet stuk maar wordt het uiteraard als defect getest.

Links een 7496 op positie 4 en rechts op 4049 op positie 9

Ten behoeve van het testen heb ik een aantal TTL IC's geselecteerd uit mijn jaren '70 '80 IC verzameling van diverse merken. TTL staat voor Transistor Transitor Logic die in 1964 werd geïntroduceerd. Deze IC techniek was de opvolger van de DTL (Diode Transistor Logic) die in 1962 was geïntroduceerd. 

Testresultaten TTL (bipolair) IC's

7400PC 4x 2-input NAND Fairchild 1976 Chip Failed
7401PC 4x 2-input NAND OC Fairchild 1976 Chip OK
DM7402M 4x 2-input NOR National Semiconductor 1977 Chip OK
7407N 6x buffer OC Signetics 1979 Chip OK
SN7408N 4x 2-input AND Texas Instruments 1978 Chip OK
7410/FLH111 3x 3-input NAND Siemens ? Chip OK
7420 2x 4-input NAND Geen merk logo jaren '70 3 van de 8 Failed
7430PC 8-input NAND Fairchild 1976 Chip OK
SN7473N 2x J-K FF Texas Instruments 1978 Chip OK
SN7474N 2x D FF S/RS Texas Instruments 1988 Chip OK
7475N 4-bit bistable latch Signetics 1978 Chip OK
7485N 4-bit comparator Signetics 1978 Chip OK
SN7496N 5-bit shift reg. Texas Instruments 1973 Chip OK
N74116N 2x J-K FF Signetics 1976 Chip OK
SN74121 Monostable multivibr. Signetics 1979 Niet mogelijk
SN74148NV 10:4 priority enc. Texas Instruments 1976 Chip OK
N74153 4:1 multiplexer Signetics 1978 Chip OK
SN75189 4x line receiver Motorola 1975 Chip Failed

Een aantal keren kreeg ik "Chip Failed" als eerste testresultaat. Na het opnieuw plaatsen van het IC in de voet en opnieuw testen was het resultaat wel goed. Dat kan verschillende oorzaken hebben:

  • Door opwarming van het IC kan de uitgangsspanning die dan waarschijnlijk net op de grens ligt er net boven komen.
  • Sommige pootje staan niet helemaal recht en door ze 1x in de ZIF IC voet vast te klemmen worden ze beter uitgericht en gecontacteerd. 
  • Oxidatie van de pootjes, vooral de IC's van Texas Instruments zijn bekend om oxidatie (zie foto).
  • Kwaliteit van de ZIF voet.

Links een Texas Instruments IC uit 1973 met zwarte oxidatie, rechts een Signetics IC uit 1978 nog brandschoon.

De IC's die goed zijn getest op de RCT testen ook goed op de Chinese IC tester. Echter bij de falende 7420 IC's bleken de 3 uitvallers op de Chinese IC tester wel in orde te zijn. Dit vraagt om nader onderzoek en voor deze IC's heb ik enkele metingen verricht.

Metingen aan een 7420 IC.

Volgens definitie voor TTL IC's geldt dat de uitgangsspanning groter dan 2,7V bij een logische H (1) dient te zijn en kleiner of gelijk aan 0,4V bij een logische L (0).




In dit 7420 IC zitten twee NAND poorten met 4 ingangen, waarvan de aansluitingen op de afbeelding links is weergegeven. De uitgangen op pin 6 en 8 zijn alleen laag (L) als de bijbehorende 4 ingangen hoog (H) zijn.

De RCT geeft de volgende foutcode aan:

De betekenis van de derde regel is als volgt: Het eerste teken geld voor pin1, het tweede voor pin2, etc. Een X geeft aan dat deze pin niet wordt aangesloten, een V de 5V voedingsspanning (VCC) en een G de 0V (GND). Een 0 of 1 is wat er aan de betreffende pin wordt aangeboden en een L of H geeft het resultaat van de uitgang weer. Een H met pijl naar beneden geeft aan dat een H is gemeten terwijl er een L is verwacht.

Op deze foto wordt de uigangsspanning met een multimeter gemeten van de bovenste poort,
waarbij de 4 ingangen op H (1) zijn gezet

Meetresultaten 7420:
Poort onder: H=3,6V L=0,03V Logica=OK
Poort boven: H=4,3V L=0,03V Logica=OK

Het IC werkt dus. De uitgangsspanning (H) van de onderste poort is beduidend lager dan van de bovenste poort maar beide spanningen vallen binnen de TTL specificatie. De ingangen van TTL IC's zijn stroom gestuurd. Bij verouderde IC's kan het zijn dat deze net meer stroom aan de ingangen vragen dan de RCT kan leveren en daardoor de uitgang niet schakelt.

Met een pull-up weerstand van 10k aan de uitgang wordt de uitgangsspanning opgekrikt en daardoor is de benodigde ingangsstroom waarschijnlijk net voldoende, zie resultaat hieronder.

Het resultaat met de pull-up weerstand is nu wel goed.

In de handleiding wordt aangeraden om bij het meten van TTL IC's in plaats van de USB aansluiting de Barrel connector te gebruiken omdat dan de voedingsspanning die aan het IC wordt aangeboden net iets hoger kan zijn. Ik heb dit getest en ook in dit geval testen de 7420 IC's (zonder pull-up weerstand) goed.

De 74121 monostabiele multivibrator kan niet worden getest, ook niet op de Chinese IC tester. Hetzelfde geld voor de 74122/23/24 en 74130 multivibrators. Ook de 7456/57 frequentie delers kunnen (nog) niet worden getest. Volgens de documentatie zouden deze in een toekomstige versie worden toegevoegd. Een uitgebreid overzicht van welke IC's wel of niet ondersteund worden is te vinden in het bij de firmware geleverde bestand LOGIC_Pro.pdf.

De 75189 line receiver, compatibel met de MC1489 bleek defect, alle uitgangen zijn altijd L (0). Opvallend hierbij is dat de bijhorende 75188 (MC1488) line driver niet getest kan worden. De 75xxx serie kan niet met de Chinese IC tester worden getest. In de comparelist database wordt de MC1489 wel genoemd bij de 75189, maar zoeken op de MC1489 levert niets op.

Ook opvallend is dat voor het testen van een 74133 (13-input NAND IC, niet in deze test) in het menu voor zowel 74133 als 74133+ gekozen kan worden. Ik kan hier in de documentatie niets over vinden, maar bij navraag blijkt dat bij de eerste test een vector test (sampling) wordt uitgevoerd, de tweede betreft een complete test die de combinatie van alle ingangen test en dus ook veel langer duurt.

Testresultaten TTL LS (Low Power Schottky)

De Low Power Schottky versie (LS) gebruikt minder stroom dan de TTL IC's maar schakelen ook wat trager. 

SN74LS00N 4x 2-input NAND Texas Instruments 2000 Chip OK
74LS02N 4x 2-input NOR Signetics 1979 Chip OK
74LS04 6x inverter Signetics 1984 Chip OK
SN74LS11 3x 3-input AND Texas Instruments ? Chip OK
74LS32N 4x 2-input OR Signetics 1977 Chip OK
SN74LS92N divide-by-12 counter Texas Instruments ? Chip OK
74LS154 4:16 decoder Signetics 1979 Chip OK
SN74LS192N 4-bit dec counter HLF? 2019 Chip OK
DM74LS193N 4-bit bin counter National Semiconductor 1978 Chip OK
74LS194 4-bit shift reg. Signetics 1974 Chip OK
74LS240 8x buffers INV Signetics 1990 Chip OK
SN74LS373N 8x register Texas instruments 1983 Chip OK

Alle 74LS IC's functioneerden goed uit deze test. De 7492 kon niet ter vergelijking op de Chinese IC tester worden getest.

In de volgende blog komen de testresultaten aan bod van de CMOS IC's, de geheugen RAM/ROM IC's en diverse soorten andere IC's en displays.

08 januari 2022

Bouw: Retro Chip Tester Professional

Wanneer je oude 8-bit computers onderhoud en repareert heb je behoefte aan een IC tester die digitale IC's uit de jaren '70 en '80 kan testen. Stephan Slabihoud van 8bit-museum.de had voor zijn uitgebreide verzameling dezelfde behoefte en heeft hiervoor de Retro Chip Tester (RCT) Professional ontwikkelt. Hij biedt de printplaat met een voorgesoldeerde ATmega2560 microcontroller en de DC/DC-module printplaat aan tegen kostprijs van 38 Euro via een contactformulier op zijn website. De overige componenten moeten zelf worden aangeschaft (ca. 40 Euro). Een deel had ik zelf op voorraad en een ander deel heb ik besteld bij Reichelt.nl. Vanwege de wereldwijde chip schaarste heb ik helaas twee maanden moeten wachten op de RD-0512D DC/DC converter uit Taiwan.

De RCT printplaat revisie 1.2k met de voorgesoldeerde ATmega 2560

De tester richt zich voornamelijk op het kunnen testen van DRAM / SRAM / ROM IC's maar ook een ruime selectie logische IC's en exoten als Russische IC's. De inhoud van een ROM of EPROM kan worden weggeschreven naar een micro SD geheugenkaart. Een database met 300000 registraties is aanwezig voor de herkenning en het kunnen labelen van deze ROM's.
Zo'n 3350 verschillende IC's kunnen direct worden getest.

De voedingsspanning kan op diversie manieren worden aangeboden. Aan de linker bovenkant via schroefterminal aansluitingen of aan de linkerkant via een barrel connector (7-9V), een USB B of een micro-USB aansluiting.

Sommige IC's hebben naast de 5V ook 12V of -5V nodig. De RCT is uit te breiden met een opsteek printplaat die met behulp van een DC/DC converter in deze extra spanningen voorziet. Er zijn diverse variaties van deze opsteek print beschikbaar.

Ten behoeve van de bouw en de bediening is een zeer uitgebreide handleiding van 185 pagina's beschikbaar (versie 2022-02-05).  Als deze nauwkeurig wordt gevolgd kan de bouw eigenlijk niet fout gaan. In de 51 pagina's tellende Bill Of Material (BOM) handleiding is er veel aandacht voor de te gebruiken componenten en eventuele alternatieven.

De Bouw

Als eerste worden de laagste componenten gesoldeerd: de drie draadbruggen, weerstanden, diodes en Zener diodes.

De tweede print betreft de gekozen DC/DC converter module (revisie 2.4) die voorziet in de 12V, 5V en -5V voedingspanningen die nodig zijn bij bepaalde type geheugen IC's. Deze print wordt op het moederbord gestoken m.b.v. connectoren aan beide zijden van de opsteek printplaat.

Naar keuze kan een DD1718PA DC/DC converter worden geplaatst of een RD-0512D. Ik heb voor de laatste gekozen omdat deze het meest stabiel is. 
Na ruim 4 uur solderen nadert de tester zijn voltooiing.


Het rode gereedschap aan de rechterkant op de foto is een buigtool om de pootjes van de componenten op gelijke afstand om te kunnen buigen. Boven het midden op de foto zie je een LCD2004 display module (4 regels van 20 tekens) die met een connector op het moederbord wordt geplaatst.

De LED voorschakel weerstanden R1 t/m R4 op de DC/DC-module en R58, R81 en R82 op het moederbord heb ik nog achterwege gelaten aangezien ik high brightness leds op voorraad heb die al heel fel oplichten bij een lage stroom en deze helderheid ook per kleur verschillend is. Ik bepaal de weerstandswaarde met behulp van een weerstandsdecade.

Weerstandsdecade, elke waarde tussen 1 en 9999999 Ohm kan m.b.v. jumpers worden ingesteld.

Na het inschakelen van de voedingsspanning en het uitproberen van diverse weerstandswaarden kom ik bij gelijke helderheid op: R1=2k2, R2=10k, R3=47k, R4=10k, R58=2k2, R81=2k2 en R82=1k.
Naast het testen van een ROM, PROM, EPROM of EEPROM kan de inhoud van deze IC's ook worden opgeslagen op een micro SD kaart door middel van een standaard Micro SD kaartlezer die over een Serial Peripheral Interface (SPI) beschikt. Deze kost circa 2.50 Euro.

De haakse pinheader heb ik vervangen door een rechte, die aan de onderkant van de print is gesoldeerd, zodat het geheel evenwijdig aan het moederbord kan worden geplaatst. Daarnaast is een rubber voetje geplakt om het doorbuigen te verhinderen.

Programmering van de ATmega2560

Om het geheel te laten werken moet de ATmega2560 worden geprogrammeerd met de laatste firmware. Dit kan met behulp van een AVR programmer die op de beschikbare 6 pins In System Programming (ISP) interface wordt aangesloten. Niet elke AVR programmer kan worden gebruikt voor microcontrollers met meer dan 128kB Flash geheugen zoals de ATmega2560. Daarom heb ik gekozen voor een van de aanbevolen programmers: de Diamex USB ISP-Programmer Stick voor AVR. Deze kost ongeveer 20 Euro.
Deze programmer wordt direct door Windows 10 herkent en er zijn dus geen extra drivers nodig. Windows maakt een virtuele COM poort aan die kan worden gebruikt voor de data overdracht. In mijn geval is dat COM4: Het gebruikte protocol is STK500.

De AVR programmer aangesloten op het RCT moederbord.

Voor het programmeren moet eerst de Micro SD kaartlezer worden verwijderd omdat dezelfde datalijnen worden gebruikt door de AVR programmer. De AVG programmer voorziet zelf in de voedingsspanning van 5V als beide dipschakelaars op "ON" worden gezet. Er wordt dus geen externe voedingsspanning aangesloten op de RCT. Om het stroomverbruik te minimaliseren verwijder ik ook het LCD display.

Het programmeren gebeurt in twee stappen: de fuses en de firmware. Met de fuses kan de ATMega2560 configuratie worden aangepast. Ik gebruik het opensource programma avrdude die met AVR microcontrollers kan communiceren. De batchfiles voor het uitvoeren van de juiste commando's en de firmware kunnen worden gedownload van de support dropbox van Stephan.
Het spannende moment is nu aangebroken om te kijken of de communicatie met de ATMega werkt. Ik lees daarvoor eerst de fuses uit m.b.v. het commando:

avrdude.exe -C"avrdude.conf" -B 4 -patmega2560 -cstk500 -PCOM4 -U lfuse:r:-:i -U hfuse:r:-:i -U efuse:r:-:i

Dit werkt zonder problemen. Vervolgens worden de juiste fuses gezet (o.a. gebruikmaking van de interne Full Swing Oscillator en opslag in EEPROM) m.b.v. het commando:

avrdude.exe -C"avrdude.conf" -B 4 -patmega2560 -cstk500 -PCOM4 -U lfuse:w:0xf7:m -U hfuse:w:0xd7:m -U efuse:w:0xff:m 

Ook hierbij worden geen foutmeldingen getoond en worden de fuses nogmaals ter controle ingelezen.
Dan volgt het programmeren van de firmware: v0.21 beta4 met behulp van de bijgeleverde batchfile, waarbij het programmeren in de loop hieronder plaatsvindt. De RCT firmware wordt regelmatig verbeterd, ge-update en aangeboden.

for %%f in ( Chip-TesterPro-FW-v0.??.hex ) do (
    if exist %%f avrdude.exe -C"avrdude.conf" -v -patmega2560 -cstk500 -PCOM4 -Uflash:w:%%f:i
)

Ook dit verloopt zonder problemen en foutmeldingen. De programmer wordt verwijderd en het display weer aangesloten. Nu wordt de voedingsspanning aangesloten en de RCT start op.


In de volgende blog ga ik in op de bediening, de mogelijkheden en het uitproberen van de Retro Chip Tester Professional.

27 december 2021

Toepassing: TTGO VGA32 microcontroller

Tijdens het zoeken naar een geschikte terminal emulator stuitte ik op een ESP32 controller met PS/2 aansluitingen voor keyboard en muis en een VGA scherm. Aangezien de prijs laag was (ongeveer 13 euro op AliExpress) heb ik er een besteld om de mogelijkheden ervan te onderzoeken.

De TTGO VGA32 v1.2 van LilyGo

Hardware

De afmetingen van deze microcontroller zijn slechts 67 bij 32mm en 17mm hoog (afgerond en exclusief het uitstekende deel van de VGA connector).
De kern wordt gevormd door een ESP32 dual core processor op 240MHz met een voedingsspanning van 3.3 V. Deze controller bevat onder andere 4MB flash geheugen en maar liefst 520KB SRAM.

Op de printplaat is ook Bluetooth en Wi-Fi aanwezig en een TP4054 IC voor het laden van een oplaadbare Li-ion/Li-Po batterij. Links op de foto zien we de VGA connector en rechts de PS/2 aansluitingen voor de keyboard en muis. Aan de bovenkant zien we net boven de processor een aansluiting voor een Wi-Fi antenne en een tweepolige Molex Picoblade connector voor de batterij. Aan de voorkant links zit een 3.5mm jackplug voor de audio, een aansluiting voor een speaker en een micro usb aansluiting voor de 5V voedingspanning en het uploaden van software.

Inmiddels (december 2021) zijn er 3 versie's uitgebracht: 1.1, 1.2 en 1.4. De plaatsing van de connectoren verschilt onderling.

vlnr: versie 1.1, 1.2 en 1.4

Ten opzichte van de eerste versie (1.1 april 2019), beschikt versie 1.2 (juni 2019) over een een 3.5 mm audio jackplug en connector voor de speaker uitgang. De micro USB aansluiting is iets lager geplaatst en de Reset en "IO36" drukknopjes zijn allebei aan de rechterkant gezet. In versie 1.4 (april 2020) is een Micro SD kaartlezer toegevoegd en zijn de drukknopjes weer aan weerszijden van de print geplaatst, alhoewel lager dan bij versie 1.1

Er zijn diverse ontwerpen voor een bijbehorend 3D geprint kastje beschikbaar, let dus goed op dat het 3D ontwerp past bij de juiste versie van de module.

Bijbehorende 3D geprinte kastjes (v1.2) met dank aan collega PJ.
Het laatste ontwerp (1.4) is nu ook beschikbaar op Thingiverse.

Software

De TTGO VGA32 controller is net zo te programmeren als andere microcontrollers door bijvoorbeeld gebruik te maken van de Arduino IDE of PlatformIO software.
Voor de TTGO VGA32 kan de zogenaamde FabGL library worden gebruikt, ontwikkeld door Fabrizio Di Vittorio. Deze bibliotheek kan via "Reference > Libraries" worden toegevoegd aan de Arduino IDE en bevat ondersteuning voor ontwikkeling van een Grafische User Interface en een "Sound en Game Engine". Volg de volledige installatie instructie hiervoor op Youtube.

Toepassingen

Na installatie van de software bibliotheek zijn er een groot aantal kant en klare voorbeelden beschikbaar, zoals:

  • Een ANSI/VT terminal emulator (waar ik naar op zoek was).
  • Emulatie van computers zoals de Altair 8800 en de VIC-20.
  • Emulatie van de spelklassieker Space invaders
Ook heeft Fabrizio het voor elkaar gekregen om CP/M 2.2, DOS 3.31 en Windows 3.0 te draaien op deze microcontroller.
Al met al blijkt de LilyGo TTGO VGA32 een zeer krachtige microcontroller te zijn voor weinig geld, waarvoor al veel software is ontwikkeld.

11 december 2021

Bouw: Retroball, een vierpersoons led spel

In 2017 is een crowdfunding actie gestart op kickstarter voor de productie van het zelfbouw spel Retroball. Dit spel is gebaseerd op het spel pong (een van de eerste videospellen) maar dan voor maximaal 4 spelers. Elke speler beschikt over een draaiknop en kan daarmee het "batje" besturen om "de bal" terug te kaatsen. Dit kunnen ook meerdere ballen zijn, naar gelang de ingestelde moeilijkheidsgraad. Bij elke misser gaat er een punt af en de speler die als laatste overblijft wint.

Retroball © Bradley Slattery, Bradsprojects

Helaas is de kit inmiddels uitverkocht, maar ik heb er nog een kunnen bemachtigen op eBay van iemand die er niet aan toe was gekomen om deze te bouwen en hem kwijt wilde. Aangezien Retroball opensource hardware betreft is ook het mogelijk om de PCB te laten maken bij b.v. PCBWay en de onderdelen los te bestellen. Alle benodigde informatie hiervoor is onderaan op de Bradsprojects pagina te downloaden.

Het led display

Het display is een kant en klaar 32x32 RGB led matrix paneel. Op dit paneel zijn 1024 smd leds gemonteerd (type 3528) met een onderlinge afstand van 5mm. Ze zijn op o.a. Aliexpress te verkrijgen voor ruim 10 Euro. Het paneel wordt voor de afwerking in een gebogen donker gekleurde Plexiglas plaat geschoven.

Aan de onderkant van de RGB led matrix zijn drie connectoren aanwezig, een voor de aansturing via een HUB75B interface, een voor de 5V voeding en een derde is voor het doorlussen naar een volgend led paneel. Omdat we maar een paneel gebruiken, wordt de rechtse connector in deze toepassing niet gebruikt.

De HUB75 interface

De HUB75 interface bestaat uit een gestandaardiseerde IDC connector van 2x8 pinnen en een data protocol.

Pin layout van de connector


Het data protocol is als volgt:

1. Klok de data in voor de 16 kolommen (bij 1 paneel) in de volgorde R1,G1,B1,R2,G2,B2 m.b.v. CLK.
2. Maak OE hoog (1)
3. Selecteer het rij adres via A,B,C,D (0-15)
4. Maak LAT hoog (1)
5. Maak LAT laag (0)
6. Maak OE laag (0)
7. Herhaal dit totdat alle 16 rijen zijn ingesteld.





De kit en het ontwerp


De diverse onderdelen van de kit uitgestald op de werktafel.

De afmetingen van de zwarte printplaat zijn 24x24 cm. De aansturing is naar keuze door middel van een voorgeprogrammeerde PIC 18F46K22 microcontroller of een Arduino Uno.

Later is aan het ontwerp ook de mogelijkheid toegevoegd om een Teensy microcontroller te plaatsen omdat de Arduino Uno een beperking heeft dat er maar maximaal twee van de vier potentiometers kunnen worden gebruikt.

Bij gebruik van de Arduino of Teensy moet de PIC controller worden verwijderd en daarom word de PIC controller in een IC voet geplaatst. Er kan ook een batterijhouder worden toegevoegd voor de Teensy om de Real Time Clock (RTC) van een continue spanning te voorzien. Daarnaast is een selectie mogelijk om de 5V voor de potentiometers te verlagen naar 3.3V ter bescherming van de Teensy.

De bouw


De PIC microcontroller voet, potentiometers en connectoren zijn gesoldeerd.
De ruimte boven is voor een Arduino Uno of Teensy controller.

Een leuk detail is dat aan de onderkant van de potentiometers siliconen plakvoetjes worden bevestigd zodat het geheel krasvrij op tafel kan worden geplaatst.

Ik plaats ook vast male pin headers voor een Arduino Uno om later te kunnen experimenteren met zelfgemaakte spellen en andere display toepassingen. De Teensy female pin headers laat ik weg omdat ze de Arduino Uno in de weg zitten. Mocht ik later over willen stappen dan kan ik ze alsnog plaatsen, daarmee vervalt dan de Arduino Uno mogelijkheid.

Een Arduino Uno geplaatst i.p.v. de PIC microcontroller

Na het plaatsen van de PIC controller in de IC voet is het alleen nog een kwestie van het aansluiten van de voedingskabel en interface kabel aan de printplaat en het led paneel.


Daarna bevestig ik het led paneel met 4 bouten en afstandsbussen op het moederbord.
Aan de rechter zijkant is een USB-B connector aanwezig voor de 5V voedingsspanning. Het gemeten stroomverbruik is maximaal 0.25A.

Naast het Pong spel is er nog een "Secret menu" aanwezig met 7 andere mogelijkheden, zoals een race spel en een dobbelsteen. Deze is op te roepen door de potentiometer rechtsonder eerst volledig naar rechts te draaien en daarna volledig naar links.

Deze zelfbouw kit voor beginners is eenvoudig te maken waarbij met name de aansturing via een Arduino Uno of Teensy interessante mogelijkheden biedt om verder te experimenteren en de toepassingen uit te breiden.

03 december 2021

Bouw: Maak en speel je eigen retro games met de uSVC

uSVC staat voor uChip Simple VGA Console. Met deze zelfbouw hardware ter grootte van een creditcard kun je zelf retro games maken en spelen. De kern wordt gevormd door de uChip microcontroller.

De uChip

De uChip is in 2019 ontwikkeld door het Italiaanse bedrijf ITACA Innovation. Het is een van de kleinste controllers die ik tot nu toe heb gezien. Het printje meet 10.2 mm x 28.5 mm en weegt 2.5 gram. 

De kleine uChip (rechts) in verhouding tot een Arduino Uno (links).

Op de uChip is een Atmel Cortex M0+ ATSAMD21 microcontroller aanwezig die compatibel is met de Arduino Zero. Deze 32-bits controller wordt geklokt op 48MHz en beschikt over maar liefst 256 kB Flash geheugen en 32 kB RAM geheugen. Verder bevat het printje een reset knop, een led en een Micro USB connector. Er is er ook nog een geïntegreerde stroomvoorziening aanwezig van 3.3V en 5V, 0.5A. De uChip kost nog geen 16 Euro.

Microscoop opname van de controller, links de resetknop rechts de USB aansluiting

Ook aan de onderkant zijn componenten aanwezig


De uSVC

Het bouwen van de uSVC is redelijk simpel, de micro SD kaartlezer is al voor gesoldeerd en de Engelstalige handleiding laat zien waar en in welke volgorde de 34 componenten geplaatst worden met aandacht voor de juiste polariteit en IC richting.

Boven v.l.n.r. USB-B connector voor de 5V voeding, een audio plug en de VGA connector.
Aan de onderkant de micro SD kaartlezer.

Op de print zit links een 16 MHz kristal en een voetje voor de uChip gemaakt van 2 female pinheaders i.v.m. de hoogte. Rechts onder een 74AHC245 IC. Dit is een achtvoudige tri-state bus-transceiver t.b.v. buffering van het VGA signaal. Daaronder een gele power led en een rode led geeft activiteit op de SD kaart weer.

De uChip in de voet van de uSVC geplaatst.

Het geheel kan in een 3D geprint kastje worden geplaatst. Deze is apart bij het bouwpakket te bestellen.



De uChip resetknop kan aan de bovenkant van het kastje worden bediend.

Op de uSVC kan een VGA monitor worden aangesloten en via een USB-A (female) naar micro USB verloopkabel is een een USB keyboard aan te sluiten. De USB connector kan ook met de PC worden verbonden om de software te updaten. De spellen worden via de PC op de Micro SD kaart gezet. De aanbevolen grootte van de micro SD kaart is 1Gb.

De uSVC is te koop via crowdsupply en kost (2021) ruim 28 Euro exclusief verzendkosten. 

28 november 2021

Upgrade: ZCN: een CP/M hack voor de Amstrad NC100

In een eerdere blog werd een reparatie van de Amstrad NC100 beschreven. Deze notebook computer is voorgeprogrammeerd met een tekstverwerker, calculator en een dagboek.

Ook is een krachtige BBC Basic aanwezig. Deze programmeertaal is oorspronkelijk geschreven voor de Britse omroep BBC en is te starten door middel van de Function+B toetscombinatie.

Kijkend om meer te kunnen doen met de NC100 stuitte ik op de mogelijkheid om het CP/M operating system te installeren. Specifiek voor de Amstrad is ruim 20 jaar geleden een speciale versie geschreven genaamd ZCN. De laatste versie hiervan is 1.3 en is gebaseerd op CP/M 2.2

CP/M (Control Program/Monitor) is een operating system geschreven door Gary Kildall in 1973 en is de voorloper van het meer bekende DOS (Disk Operating System). Voor CP/M is veel public domain software geschreven die nog steeds van internet is te downloaden. Denk hierbij aan spellen, een C-compiler, allerlei hulpprogramma's, etc.

In de nu volgende stap voor stap handleiding wordt beschreven wat er voor nodig is om ZCN op een Amstrad NC100 te installeren en hoe dit te bereiken is.

Benodigde hardware

De 64kB geheugen in een NC100 is niet voldoende om CP/M te installeren en daarom is een geheugen uitbreiding nodig in de vorm van een "PCMCIA" of "PC Card" insteekkaart. Deze gestandaardiseerde geheugen uitbreiding was vooral begin jaren 90 in gebruik bij notebooks. De maximale hoeveelheid geheugen die de NC100 aan kan is (slechts) 1 Mb. Er bestaan verschillende type PCMCIA kaarten, zoals static RAM (SRAM) en Flash RAM kaarten. Alleen de SRAM kaarten werken in een NC100. Tegenwoordig zijn ze bijna niet meer te krijgen en als ze worden aangeboden (meestal via eBay) dan zijn de prijzen zeer hoog. Voor dit experiment heb ik een 1MB SRAM PCMCIA kaart kunnen bemachtigen op eBay. Deze is van het merk Sunmax. Om het geheugen actief te houden worden SRAM kaarten in tegenstelling tot Flash kaarten voorzien van een CR2025 lithium batterij. De + van de batterij moet gericht zijn naar de voorkant van de kaart, zoals op de foto. Deze zou ongeveer een jaar mee moeten gaan voordat deze weer aan vervanging toe is.

De NC100 wordt verbonden met een computer via de seriële poort om de nodige bestanden over te kunnen zenden. Dit is o.a. mogelijk door middel van een virtuele COM poort via USB. Je hebt hiervoor een USB A naar RS232 nullmodem kabel nodig. (Sub-D 9 pins female). Bij een nullmodem kabel zijn de transmit, receive en handshake signalen gekruist. Aangezien zo'n kabel moeilijk te verkrijgen en vrij duur is, kies ik voor een losse USB A naar RS232 kabel en een losse nullmodem kabel die gewoon aan elkaar zijn te koppelen.

Links de USB A naar RS232 kabel en rechts de nullmodem kabel

Het voordeel van de hier gekozen datakabel die is uitgerust met een Prolific chipset is dat deze direct wordt herkend door Windows 10, dus installatie van een aparte driver is niet nodig.
Na het aansluiten van de kabel hebben we de beschikking over (in mijn geval) een virtuele  COM3: poort. Het COM poort volgnummer kan variëren naar gelang er al andere (virtuele) COM poorten eerder zijn geïnstalleerd.

Benodige software

Download de ZCN versie 1.3 software: zcn13.zip Dit zip bestand bevat alle benodigde bestanden en pak deze vervolgens uit op de PC.
Daarnaast is een programma nodig die bestanden via de seriële poort kan versturen met het XModem protocol. Ik heb gekozen voor ExtraPuTTY, een afsplitsing van de bekende PuTTY terminal software die in bestandsoverdracht via diverse protocollen voorziet.

Software installatie

In de hieronder aangegeven stappen is COM3: als seriële poort gebruikt, dat kan natuurlijk worden vervangen door een andere poort. De gebruikte snelheid is 2400 baud. Dit is vrij langzaam maar wel het meest betrouwbaar op een NC100.

Start extraPuTTY en stel de seriële verbinding in op COM3 en 2400 baud.

Bij installatie van ZCN gaan alle aanwezige documenten en NC100 instellingen verloren. Als deze bewaard moeten blijven doorloop dan eerst de stappen tot aan het kopje "Vervolg".

Stappen op de PC.

In de PuTTY sessie selecteer Files Transfer > Xmodem > Send en selecteer het rrinit.bin bestand uit de map ''bin'' van de uitgepakte zcn13.zip op de PC.

Stappen op de NC100

Verwijder de geheugenkaart op de NC100.
Er moet tenminste 1 bestand opgeslagen zijn op de NC100 anders is er geen bestandsoverdracht mogelijk.

Ga naar het terminal programma: Function+S
Stel 2400 baud in: Menu, down*3, left*2, Stop
Stop het terminal programma: Stop
Laad een document: Function+L
Ontvang het rrinit bestand: Menu, T, M, rrinit, return
Wacht tot het bestand is ontvangen en druk op Stop
Plaats de geheugenkaart in de NC100.
Formatteer de geheugenkaart: 
Menu, F, Y, Stop
Zorg dat het rrinit bestand is geselecteerd.
Bewaar het rrinit bestand op de geheugenkaart: 
Menu, T, P, Stop
Stop de bestandsselectie: Stop
Run rrinit: Function+X
Het display geeft nu aan: "Snapshot written - press Stop".
Druk op
Stop om terug te keren naar het hoofdmenu van de NC100.

Vervolg

Stappen op de PC.

In de PuTTY sessie selecteer: Files Transfer > Xmodem > Send en selecteer het zcn.bin bestand uit de map ''bin'' van de uitgepakte zcn13.zip op de PC.

Stappen op de NC100

Laad een document: Function+L
Ontvang het bestand als tmp: Menu, T, M, tmp, return
Wacht tot het bestand is ontvangen en druk op Stop
Ga naar Basic: Function+B
Laad het tmp bestand: *LOAD TMP 6000
Start ZCN: CALL &6000

ZCN start nu op en onderstaande tekst verschijnt op het display:


Om meer tekst weer te kunnen geven wordt een kleiner lettertype gebruikt zodat in plaats van 8 regels van 80 tekens er nu ruimte is voor 10 regels van 120 tekens.

Er zijn 4 drives beschikbaar A: t/m D:. Formatteer drives B: C: en D: door:

format b:
format c:
format d:

Maak de A: drive "bootable": sys a:

Test het opstarten door middel van een koude herstart:
Zet de NC100 uit.
Houd te toetsen
Function, Stop en <-Del tegelijk ingedrukt en zet de NC100 aan.
De NC100 start nu normaal op, druk op
Function+X om ZCN te starten.

Met behulp van het interne ZCN commando rexec kan naar keuze de rest van de bestanden worden overgezet.

Als voorbeeld zetten we het programma qterm.com over, die ook te vinden is in de uitgepakte zcn.zip in een uuencoded formaat (qterm.uue) omdat de bestandoverdracht van rexec op ASCII formaat is gebaseerd. 

Op de NC100

Ontvang een bestand: rexec qterm.com

Stappen op de PC

Open een opdrachtprompt: Windows-toets+R, cmd, OK
Stel de baudrate in op 2400 baud:
mode com3:2400,N,8
Kopieer het qterm programma:
copy qterm.uue com3:

Nadat het kopiëren is afgerond staat het programma op de NC100 A: drive.
Vervolgens wordt qterm zelf gebruikt om de overige bestanden (in binair formaat) over te zetten. Via qterm kunnen bestanden ook naar de PC worden gestuurd om een backup te maken.

Vanaf dit punt valt er natuurlijk nog ontzettend veel te verkennen en te leren en ik wens iedereen die een NC100 / 150 of 200 heeft en dit ook wil uitproberen veel plezier.