Google Analytics

31 mei 2022

Toepassing: P1 aansluiting slimme elektriciteitsmeter

Onlangs zijn mijn slimme elektriciteit en gas meters vervangen. Netbeheerder Liander geeft aan dat de oude meter wordt uitgelezen via het GPRS (General Packet Radio Service) netwerk, waar kosten voor worden gemaakt bij een externe provider. GPRS is verouderd en blijft nog tot 2025 in gebruik. Om dus voorbereid te zijn op de toekomst hebben Liander en Stedin een eigen draadloos netwerk ontwikkeld op basis van CDMA (Code-Division Multiple Access) technologie op 450 MHz, de zogenaamde PAMR band.

De nieuw geplaatste elektriciteitsmeter is een Landis+Gyr E360 SMR 5.0

De gasmeter is een Flonidan SMR 5.0 G4 G6. Deze heeft een draadloze verbinding met de elektriciteitsmeter en geeft het gasverbruik elke 5 minuten door.

De P1 aansluiting

Het interessante aan de elektriciteitsmeter is dat deze over een zogenaamde P1 aansluiting beschikt, waarmee het mogelijk wordt om met behulp van extra elektronica het dagelijkse energie en (sluip) verbruik realtime te monitoren en het verbruik en kosten op een smartphone te tonen. 

Achter het klepje bevind zich de P1 aansluiting aan de bovenkant

Op deze P1 aansluiting kan een male 6 pins RJ11 (6P6C) connector worden aangesloten. De connector aansluitingen (SMR 5.0) zijn als volgt:

1 +5V
2 Data Request
3 Data Gnd
4 Not connected
5 Data
6 Power Gnd

Het seriële datasignaal (115200 baud) is volgens de DSMR (Dutch Smart Meter Requirements) standaard, waarbij o.a. een "0" is gedefinieerd als > 4V en een "1" < 1V, dus precies omgekeerd dan gebruikelijk is bij digitale IC's.

Energieverbruiksmanagers

Er zijn nogal wat aanbieders van zogenaamde energieverbruiksmanagers om de P1 aansluiting in te lezen en op te slaan.

Het ligt natuurlijk voor de hand om als elektronica hobbyist zelf een oplossing te bedenken / bouwen op basis van b.v. een Raspberry Pi en opensource software, maar om een aantal redenen heb ik hier deze keer niet voor gekozen.

1. Ik heb geen stopcontacten en internet in de meterkast, De stopcontacten kan je zelf aanleggen, maar officieel moet dit door een erkende installateur worden gedaan en dit is niet goedkoop.

2. De Raspberry Pi is nog steeds heel moeilijk te verkrijgen door de chip schaarste.

3. Mijn Landis+Gyr E360 SMR 5.0 beschikt over een interne 5v 100mA voeding zodat een verbruiksmanager "plug & play" kan worden aangesloten.

4. De kosten van een goedkope verbruiksmanager, b.v. de Wi-Fi P1 van HomeWizard Energy zijn lager dan die voor zelfbouw. Deze kost € 29,95.

Daarom heb ik in mijn specifieke geval gekozen voor de oplossing van HomeWizard Energy.

De HomeWizard Wi-Fi P1 meter. Het binnen gedeelte is een drukknop,
met daaromheen een ring die oplicht met een bepaalde kleur.

Installatie

De Wi-Fi P1 meter kan direct op de elektriciteitsmeter worden aangesloten. Hierna licht de ring wit op om aan te geven dat er voldoende stroom aanwezig is.

Op de smartphone kan de app "HomeWizard Energy" worden geïnstalleerd. Er dient een account te worden aangemaakt voor het kunnen koppelen van de telefoon aan de P1 meter. Het gebruikte mail adres voor het account wordt overigens niet gebruikt voor validatie. Houd vervolgens de knop enkele seconden ingedrukt totdat de ring blauw begint te knipperen (koppel modus). In de app kan het gebruikte netwerk worden gekozen met bijbehorend wifi wachtwoord en daarna wordt op het netwerk de P1 meter gezocht en toegevoegd. 

Links een voorbeeld waarbij het Elektriciteit- en gasverbruik op de smartphone worden weergeven. De weergave is in kWh en in kosten als het geldend tarief is ingevoerd. Bij gebruik van zonnepanelen is de terug levering  ook zichtbaar. 

Alle basis functies zijn gratis te gebruiken en het verbruik kan een jaar lang worden teruggekeken. Enkele andere functies zoals b.v. een notificatie bij een plotselinge stijging van het verbruik, exporteren van de gegevens naar een bestand of langer kunnen terugkijken zijn mogelijk als hiervoor een abonnement wordt afgesloten waarvoor maandelijks 0,99 eurocent moet worden betaald.

De Wi-Fi P1 meter is geschikt voor 1-3 fasen en kan alleen verbinden op het 2.5 GHz (b/g/n) Wi-Fi netwerk dus als alleen 5 GHz beschikbaar is zal het niet werken. Ter beveiliging wordt de data versleuteld overgezonden.

Het sluipverbruik kan worden bepaald door naar de minimum waarde over een dag te kijken. In mijn geval was dat 83 W en dus kan de speurtocht beginnen om uit te zoeken hoe dit kan worden verlaagd.

15 mei 2022

Upgrade: Minix Neo X7

Op zolder vond ik een oude mediaspeler uitgebracht in juli 2013: de Minix Neo X7. Deze had als doel om van je TV een smart-TV te maken en als media center te fungeren. Tegenwoordig is deze functionaliteit al bijna standaard aanwezig in nieuwe Tv's en is de mediaspeler in onbruik geraakt.

De specificaties waren indrukwekkend destijds:

CPU:   Rockchip RK3188 Quad-Core @1.6GHz (ARM Cortex-A9)
Flash: 16GB - 2x SK hynix H27UCG8T2BTR-BC (MLC NAND 8Gb x8)
RAM:   1GB - 2x SK hynix H5TQ4G63AFRP-BC (DDR3 SDRAM 4Gb)
WLAN:  AMPAK AP6330 (BCM4330/BCM40183) (Wi-Fi, Bluetooth 4.0)
USB:   SMSC USX2064AEZG - USB 2.0 4-port Hub Controller
LAN:   Realtek RTL8152B - 10/100 Mbps Ethernet Controller
Audio: Realtek ALC5616 - Ultra-Low Power Audio CODEC
HDMI:  iTE IT66121FN - Low Power Transmitter HDMI 1.4
PMIC:  Active ACT8846QM - Power Management IC Controller

Het geheel draaide bij het uitkomen op Android Jelly Bean (4.2) en kostte 142 euro.

De Minix Neo X7 met afstandsbediening

Om de bediening te vergemakkelijken kocht ik destijds als aanvulling een Mele F10-PRO die aan de ene kant een afstandsbediening heeft en aan de andere kant een toetsenbord. Daarnaast beschikt de F10 over een Flymouse en een ingebouwde microfoon en luidspreker.

Benieuwd of de speler nog functioneert heb ik deze aangesloten en deze startte na bijna 9 jaar nog werkend op behalve de playstore voor het downloaden van software. De server van Google waar naar werd verwezen blijkt inmiddels niet meer te bestaan en daarom vroeg ik me af of de speler is te upgraden om het weer 100% werkend te krijgen.

Bovenzijde van de printplaat

Het is goed om te controleren of de oplaadbare CR2032CL batterij nog functioneert en zo nodig te vervangen.

Onderzijde van de printplaat

De laatste officiële firmware

De laatste officiële firmware voor de Minix Neo X7 is versie 250 uitgebracht in oktober 2018. http://theminixforum.com:9009/firmwares/x7-rk3188-250.rar

Deze bevat naast de firmware Android versie Kitkat (4.4). De Minix is als volgt te upgraden:

  • Sluit de Mini X7 nog niet aan op de PC om te voorkomen dat Windows de default driver gaat installeren die niet zal werken.
  • Pak het .rar bestand uit op de harddisk van de PC. Het starten van de Flashtool zal in Windows 10 niet werken vanaf een netwerk drive.
  • Installeer eerst de Windows 10 drivers uit de map \RK_DriverAssistant\Release_DriverAssistant\Driverinstall.exe en start de PC opnieuw op.
  • Sluit de Minix aan op de spanning en sluit hem aan op de PC met de bijgeleverde kabel. Dit is een speciale USB kabel met een micro USB connector waarvan het metalen deel langer is dan een standaard micro USB connector.
  • Zet de Minix in flashmode door een paperclip in de recovery opening te drukken en houd de powerknop 2-3 seconden ingedrukt totdat Windows een geluidsignaal geeft dat een nieuw apparaat is gevonden.
  • Start nu de flashtool \Batchtool\RKBatchTool.exe
    Als de Minix wordt gevonden zal één van de vakjes in "Connected Devices" groen gekleurd zijn.
  • Selecteer nu bij FW Path het image bestand "kernel-cpu1800-gpu798-ddr800.img" en druk op de Restore knop.

Na enige tijd is het flashen voltooid en het resultaat (Succes of Failed) zal worden weergegeven. Hierna kan de Minix opnieuw worden opgestart.
Alles blijkt nu correct te functioneren inclusief de Google Play Store.

Wasser firmware

De huidige Android versie is inmiddels 12 (mei 2012), maar niet elke Android versie kan worden geïnstalleerd op de Minix omdat deze daar speciaal geschikt voor moet worden gemaakt.

In 2014 is de zgn. Wasser firmware 3.0.6 gemaakt die Android naar versie Lollipop (5.1.1) brengt. Deze firmware is moeilijk te vinden omdat bijna alle forums verwijzen naar de site www.freak-tab.de die al geruime tijd niet meer is te benaderen.
Gelukkig heeft iemand de moeite genomen om de firmware beschikbaar te stellen op Dropbox en deze kan via de volgende links worden gedownload.

wasser-3.0.6-minix-x7-rk3188.img

kernel-cpu1800-gpu798-ddr800.img

Het flashen van de firmware gaat op dezelfde manier als hierboven beschreven.
Na installatie blijkt ook hier alles perfect te functioneren.

Finless custom ROM

Alhoewel de Minix Neo X7 video's kan afspelen met een full-HD resolutie (1920x1080) is de resolutie van de desktop vreemd genoeg beperkt tot 1280x720 pixels waardoor de pictogrammen er groot uitzien en er weinig ruimte is op de desktop.

Bob Finless heeft een custom ROM / firmware gemaakt waarbij ook de desktop op full-HD resolutie draait.

Ook deze firmware is moeilijk te vinden maar heb ik terug kunnen vinden in het "Waybackmachine" internet archief:
https://web.archive.org/web/20140912183850/http://www.freak-tab.de/finless/neo_x7_4.2.2_finless_19.zip

Deze firmware bevat nog een probleem met de TCP stack in de 010 ROM, die een beperking in de internet snelheid veroorzaakt. Gebruiker "Ant" heeft hiervoor de volgende update gemaakt:
https://web.archive.org/web/20140912183331/http://www.freak-tab.de/finless/neox7_finless19_fixed_bootimgs.zip

In het eerste zip bestand zitten andere drivers (t/m Windows 8) en een andere flashtool (ROM_Flash_Tool_137.exe) dan hierboven beschreven.

De combinatie van driver en Flashtool blijkt niet te werken onder Windows 10, waarschijnlijk door het verhoogde beveiligingsniveau en de Minix zal niet worden gevonden.

Onder Windows 7 werkt het wel. Het flashen van deze firmware is niet zonder gevaar, want eerst wordt aangeraden om de NAND (IDB) te wissen, maar gaat er dan iets mis tijdens het flashen dan zal de Minix niet meer opstarten en wordt herstel heel moeilijk.

23 april 2022

Toepassing: Een 6502 CPU tester

De 6502 Central Processing Unit (CPU), ontwikkeld door MOS is in 1975 op de markt gebracht. Veel home computers uit de jaren 70/80 maakten er gebruik van zoals de Commodore PET en VIC-20, de Acorn en Apple homecomputers, enkele Atari computers en nog vele andere.

Er bestaan ook veel varianten op de 6502 processor, zo is voor de Atari de 6502C, ook wel Sally of C014806 gemaakt. Deze versie bevat een extra Halt signaal op pin 35 waarmee de processor tijdelijk kan worden gestopt. De 6510 versie is gebruikt in de Commodore 64 en bevatte 6 extra I/O poorten en de 8502 is gebruikt in de Commodore 128. Door de extra I/O aansluitingen verschillen de 6510 en de 8502 aansluitingen nogal, ook de voedingsspanning zit op andere pinnen en daarom zijn deze IC's niet zo maar uit te wisselen. De 85xx serie verschilde van de 65x serie alleen in het fabricage proces.


Een originele MOS 6502 uit 1985.


Een moderne 65C02 van Western Design Center (WDC) uit 2022.


Een 6502C (Sally) voor de Atari uit 1980.


Een 6510 gebruikt in de Commodore 64 uit 1984.


Een 8502 gebruikt in de Commodore 128 uit 1988.


Aansluitingen van de vergelijkbare 6502 varianten

De verschillen in aansluitingen van de 6510 (c64) en de 8502 (C128)

Ten behoeve van het testen van oudere CPU's wordt tegenwoordig vaak gebruik gemaakt van zo genaamde "NOP testers". Deze eenvoudige testers maken alleen gebruik van de No Operation (NOP) instructie van de processor. Die instructie voert op zich niets uit en verhoogt alleen de adresteller. Door het aansluiten van leds op de adreslijnen wordt zichtbaar of er enige activiteit is. Het mag duidelijk zijn dat dit soort testers alleen een indicatie geven dat er iets op de processor gebeurt maar helemaal betrouwbaar is het niet.

Een betere benadering heeft de MOS6502/WDC65C02 Tester die een stap verder gaat en een testprogramma uitvoert die is opgeslagen in een 27C512 EEPROM. Hij is ontwikkeld voor het testen van de 6502 CPU en de varianten 65C02 en 6502C (Sally).

Rechtsboven zijn 16 leds geplaatst om de activiteit op de adreslijnen weer te geven en daaronder 8 leds om de databits weer te geven.
Met de dipschakelaars links kan de juiste klokfrequentie worden ingesteld op 1, 2, 4 of 8 MHz en met de schuifschakelaar kan gekozen worden voor de 6502 of de 65C02. Het geheel word gevoed door een 5V adapter aangesloten op de Mini USB aansluiting rechtsboven.
Met de resetknop onder kan het programma worden gestart. In de 6502 stand kan ook het verschil worden bepaald tussen een 6502 en een 65C02 (Sally). Dit kan door het indrukken van de "Halt Sally" knop. Gebeurt er niets dan is het een 6502 en stopt het uitvoeren dan betreft het een "Sally".

Het type 6502 staat toch op de IC opdruk? Dat klopt maar het komt echt voor dat vooral Chinese IC verkopers de ene processor verkopen voor een andere door de originele opdruk weg te polijsten en van een andere te voorzien om zo meer geld te kunnen vangen.

Bij een goed werkende 6502 CPU zullen de databit leds afwisselend oplichten zoals in de animatie hieronder.

14 april 2022

Bouw: Een kwantumfluctuatie display

Vandaag, 14 april is het wereld kwantum dag en dat sluit mooi aan op de bouw van een kwantumfluctuatie display. De basis voor dit bouwpakket, ook bekend als de "Random Retro Blinker" of de "Really Random Blinker" is een transistor die op een verkeerde (onbedoelde) manier is aangesloten.

De emitter van de transistor is omgekeerd aangesloten op een 12-18V gelijkspanning. Aangezien de elektronen zich een weg proberen te banen door de silicium N-P overgang ontstaat een volkomen onvoorspelbaar gedrag en worden op die manier willekeurige pulsen gecreëerd die bepaald worden door kwantummechanica. Deze methode zorgt voor een echte willekeurigheid (true random) in tegenstelling tot b.v. willekeurige getallen die via een computer algoritme worden gegenereerd (Pseudo random).

De willekeurige pulsen worden geleid door een 64 bits schuifregister waarop leds zijn aangesloten in een 8 x 8 matrix. op die manier kunnen 2 tot de macht 64 oftewel 18446744073709551615 combinaties worden weergegeven. Dat getal is groter dan het aantal zandkorrels tezamen op deze aarde. Het effect wat ontstaat is te vergelijken met de knipperende lichtjes op oude computers, zogenaamde "Blinkenlights".
Op de printplaat zijn twee potmeters aanwezig, Een voor de snelheid van de afwisseling van de patronen en een voor instelling van de waarschijnlijkheid van het oplichten. Er zijn dan gemiddeld meer of minder leds tegelijk aan.

Het bouwpakket is te koop bij Budgetronics.eu exclusief de leds die in een kleur of kleuren naar keuze kunnen worden bijbesteld en exclusief de benodigde voeding van 12-18V.

Wat heb je aan een kwantumfluctuatie display? Helemaal niets, maar het betoverende effect van de knipperende leds en de herinnering aan oude computers met hun vele "blinkenlights" maken het leuk om er naar te kijken.

De Bouw

Bij het pakket zitten bouwinstructies die eenvoudig zijn te volgen. Op de ene kant van de print worden alle componenten gesoldeerd en op de andere kant de 64 leds.

De twee geleverde potmeters hebben verschillende waarden (10k en 100k). Aangezien de waarde niet op de potmeter zelf is aangegeven dient deze eerst gemeten te worden tussen de pootjes met de kortste afstand voor dat deze op de juiste plaats kunnen worden gesoldeerd.
De componenten opdruk op de printplaat is niet helemaal foutloos. Zo ontbreekt de waarde voor R79 (1k) en worden er diverse waarden voor de keramische condensatoren op de printplaat aangegeven, terwijl deze allemaal 100nF blijken te zijn. Maar de grootste valkuil is de fout aangegeven oriëntatie van de leds. Zo wordt in de handleiding aangegeven dat de vlakke kant van de led uitgericht moet worden met de vlakke kant zoals op de printplaat staat afgedrukt. Het gevolg is dat de leds dan precies verkeerd om worden gesoldeerd. En het is een heel karwei om dit achteraf te corrigeren. Beter is om te zorgen dat het kortste pootje van de led (kathode) wordt gestoken in het vierkant gemarkeerde gaatje, dan gaat het altijd goed.

Verbetering van het ontwerp.

Het gebruik van de schuifregisters komt zichtbaar terug in de led patronen waarbij deze steeds per klokpuls opschuiven. Persoonlijk vind ik dat minder mooi. Ik zou er zelf voor kiezen om het willekeurige patroon 64x in te klokken en dan pas zichtbaar te maken. Aangezien de gebruikte 74HC164 schuifregisters niet over een latch beschikken, zou dit gerealiseerd kunnen worden door het patroon heel snel in te klokken (b.v. op de maximale frequentie van 3 Mhz) en daarna met de gewenste wisselsnelheid (oorspronkelijke kloksnelheid) te wachten op de volgende serie. Dit is mogelijk met een aangepast klokgenerator ontwerp met behulp van een CD4060 IC. In een van de volgend blogs kom ik hier zeker nog op terug en zal ik het ontwerp en verschil demonstreren.

Midjourney interpretatie van een quantum computer op basis van buitenaardse technologie. (Dec. 2022)

26 maart 2022

Bouw: De "mini" Microcomp-2 een controversiële computer

In 1981 verscheen in Australië het eerste nummer van het elektronica tijdschrift Talking Electronics, opgericht en gepubliceerd door Colin Mitchell. 

Het eerste nummer van Talking Electronics

Het tijdschrift verscheen onregelmatig en was gericht op de beginnende elektronica hobbyist. Het  bevatte allerlei leuke ideeën voor het bouwen van diverse zelfbouw schakelingen. In mei 1989 verscheen het laatste nummer: 15.

Het Microcomp-1 ontwerp

In de delen 13 en 14 verscheen het ontwerp voor een computer gebaseerd op de Z80 processor met een minimum aan onderdelen: De Microcomp-1. Deze computer bestond uit slechts 3 IC's en bevatte 2 7-segment displays, een 4x4 led matrix, 8 uitvoer leds en een buzzer. Daarnaast bevat het een reset knop, twee bedieningsknoppen A en B en een 8 voudige dip schakelaar waarmee een programma kan worden geselecteerd.

Het printontwerp is enkelzijdig waardoor er veel draadbruggen nodig zijn en ook de led matrix dient aan de achterkant met draadbruggen aan elkaar te worden verbonden. De afmeting van de printplaat bedraagt ongeveer 17 bij 10 cm.

Er kunnen ook uitbreidingen op worden aangesloten zoals een telefoon kiezer, een morse trainer of een 4 cijfer display.

Het controversiële aan dit ontwerp is dat de Microcomp-1 geen RAM geheugen heeft, alleen een EPROM waarin het programma is opgeslagen. Dit beperkt de mogelijkheden van deze computer behoorlijk aangezien alleen de 11 interne registers en de 7 schaduw registers van de Z80 kunnen worden gebruikt voor het vastleggen van gegevens. Bovendien kunnen bepaalde Z80 instructies die met de geheugenstack werken zoals CALL/RET, LD (xx),yy, PUSH/POP en RST xx niet worden gebruikt.

Nu (2022) ruim 40 jaar later is Colin Mitchell nog steeds actief en biedt de meeste van zijn ontwerpen aan als kits via internet. De Microcomp-1 ontbreekt helaas en daarom heeft Brian Chiha met toestemming van Colin een nieuw kleiner formaat (12 x 6,5 cm) printplaat ontworpen: de "Mini" Microcomp-2.

Op deze nieuwe dubbelzijdige printplaat zijn geen draadbruggen meer nodig.

Alhoewel met deze computer niet gauw een praktische invulling is te bedenken, heb ik er wel een gevonden: Een Z80 Central Processing Unit (CPU) tester. De meeste eenvoudige CPU testers zijn zo genaamde NOP testers. NOP (No Operation) is een processor instructie die zelf niets uitvoert en alleen de instructieteller verhoogt. Deze NOP instructie wordt voornamelijk gebruikt bij het testen en debuggen van software. Door een stel leds op de adreslijnen aan te sluiten zullen deze bij een werkende processor allemaal (al dan niet knipperend) oplichten. Echter de processor wordt maar heel beperkt getest. Met dit ontwerp worden veel verschillende processor instructies gebruikt en dat maakt de test betrouwbaarder.

De Bouw

Om het testen van Z80 CPU's te vergemakkelijken, soldeer ik een ZIF-voet in plaats van een standaard IC-voet.

De aansluitingen van een Z80 CPU

Het elektronica ontwerp is nog van voor het USB tijdperk en heeft een 9V wissel of gelijkspanning als voedingsingang. Ik ga dit ontwerp aanpassen met een 5V USB B connector en laat alle componenten die nodig zijn voor de oorspronkelijke voeding achterwege.

De buzzer rechtsonder die kan worden gebruikt om signalen op de print hoorbaar te maken ten behoeve van foutopsporing heb ik ook achterwege gelaten.

Links op de foto hierboven zie je een USB B connector op een breakout printplaatje (onderzijde), deze wordt gesoldeerd op de plaats van de 1000uF condensator (net boven de blauwe instel potmeter) en levert dan direct de 5V voedingsspanning. 

Er is dan geen ruimte meer voor de 1uF condensator die gebruikt wordt voor het reset signaal, dus is die soldeer ik aan de onderkant. Ook wordt de in- en uitgang van de niet gebruikte 7805 spanningsregulator met een draadbrug doorverbonden (links). Een dikke dubbelzijdige sterk klevende tape zorgt voor fixatie van de USB printje op de hoofdprint (rechts).

De Software

In het Talking Electronics tijdschrift verschenen diverse software lijsten die door Brian Chiha zijn verzameld. Ook heeft hij zelf enkele toepassingen geschreven zoals spellen en deze gezamenlijk in een bestand ondergebracht die kan worden gebruikt om een 2732 EPROM te programmeren. Deze is te downloaden op github.

De software is opgedeeld in twee geheugenbanken. Door middel van een miniatuur schuifschakelaar in het midden van de print kan tussen de twee banken worden geschakeld.

De eerste bank (schakelaar naar rechts) bevat de volgende programma's:

  • 99 op/aftel teller (dip schakelaar op 0)
  • Quickdraw (dip schakelaar op 2)
  • Scrollende tekst (dip schakelaar op 8)
  • Weergave geheugen (dip schakelaar op 20)
  • Led Demo 1 (dip schakelaar op 30)
  • Dobbelsteen (dip schakelaar op 47)

De tweede bank (schakelaar naar links) bevat de volgende software die door middel van een menu met knop A kan worden doorlopen en met knop B kan worden geselecteerd:

  • Blackjack spel
  • Mastermind spel
  • NIM spel
  • Tug 'O War spel
  • LED demo 2

Het programmeren van de 2732 EPROM bleek een behoorlijke uitdaging. Dit verouderde type EPROM wordt door zijn lange programmeer tijd en/of hoge programmeer spanning niet goed meer door moderne EPROM programmers ondersteund. De 2732A werkt met een programmeer spanning (Vpp) van 21V. en de 2732B met 12.5V.

De laatste versie van de populaire TL866II programmer kan nog maar tot 18V programmeren. Oudere versies van de TL866 konden wel tot 21V. Ook het programmeren van de 2732B versie op 12.5V lukt niet met de TL866II omdat de benodigde stroom niet kan worden geleverd en zelfs de langzaamste instelbare programmeer timing toch nog te snel blijkt voor dit type IC.

Uiteindelijk is het wel gelukt door een 2732A type te programmeren met behulp van een GQ-4x4 EPROM programmer. Deze programmer is echter wel ruim 2x zo duur.
De stoom geleverd door de 5V USB aansluiting bleek niet voldoende dus dient ook een externe 9V voeding op de programmer te worden aangesloten. De programmeer snelheid dient bovendien te worden verlaagd door Speed: 0 in te stellen.

Links de TL866II programmer en rechts de GQ-4x4

Het eindresultaat


Een werkende "Mini" Microcomp-2 met het op/aftel programma en een werkend geteste Z80 CPU.

Rest nu nog om in een vervolg project software te schrijven die speciaal gericht is op het testen van Z80 processors door het uitvoeren van zo veel mogelijk instructies en bovendien softwarematig kan detecteren of het een NMOS of CMOS type Z80 betreft.

16 maart 2022

Bouw: EPROM emulator NG

In veel oudere (8-bit) computers worden Erasable Programmable Read-Only Memory (EPROM's) gebruikt voor de opslag van software en gegevens. Deze geheugens kunnen met behulp van een programmer zoals de populaire TL866II worden geprogrammeerd. Eenmaal voorzien van de data blijft deze opgeslagen in het IC, ook als het IC niet op de voedingspanning is aangesloten. Het geheugen kan dan telkens opnieuw worden uitgelezen.

Om een EPROM opnieuw te kunnen programmeren dient eerst in inhoud te worden gewist door middel van Ultra Violet (UV) licht van een specifieke golflengte voor een duur van ongeveer 15-30 minuten. Daarna kan deze weer met nieuwe gegevens worden geprogrammeerd.

Een EPROM uit 1987 van het type AM2732 (4k x 8)
D.m.v. het glaasje in de behuizing kan de inhoud van
de inwendige chip worden gewist met UV licht.

Met name bij ontwikkeling van nieuwe software en het testen daarvan kost het steeds wissen en opnieuw programmeren van de EPROM veel tijd. Het zou heel handig zijn als de software aanpassing die op de computer is gedaan direct in het apparaat waar de EPROM in zit beschikbaar is.

Om deze reden heeft Kris Sekula van My Geeky Hobby een EPROM emulator ontwikkeld: de zo genaamde "EPROM Emulator NG". Deze emulator kan de volgende EPROM's emuleren: 2716, 2732, 2764, 27128, 27256 en de 27512.

Op de website van My Geeky Hobby zijn voorbeelden te zien waar deze emulator zoal kan worden toegepast.

De Hardware

De printplaat van de EPROM Emulator NG versie 2.1

De onderdelen worden gesoldeerd
De printplaat bevat onder andere een Arduino Nano t.b.v. de communicatie met de PC en de aansturing van de onderdelen op de print, een AS6C1008 (128k x 8) SRAM voor de opslag van de data, een 25LC512 (64k x 8) seriële SPI EEPROM ten behoeve van "permanente" opslag en enkele schuifregisters en logica ten behoeve van de aansturing en twee transistors voor de aansturing van de externe reset signalen.

Op de print wordt een 34 polige IDC connector geplaatst waarop een bandkabel kan worden aangesloten die aan het andere uiteinde een 28 polige voet bevat die in de IC voet van de EPROM kan worden gestoken. Daarnaast zijn er nog twee testclips beschikbaar waarmee een reset kan worden uitgevoerd op de computer waar de EPROM aanwezig is.

Ik plaats IC voeten voor de IC's en twee hoge header connectors voor de Arduino Nano omdat eronder ook nog onderdelen zitten.

De printplaat is gereed en de Arduino geplaatst.

Nu kan de bandkabel worden gemaakt en dit bleek nog niet zo eenvoudig. De bandkabel IC plug van Electrosonic, type FDP-628-T kon ik alleen vinden bij het Amerikaanse DigiKey.
De verzendkosten van 18 euro zijn pittig, het beste is om de bestelling dan maar te combineren met andere in Europa slechter verkrijgbare onderdelen.

Ik heb een 40 aderige bandkabel gebruikt die ik nog had liggen en deze gestript op 30 aders. De bandkabel wordt op de gewenste lengte geknipt waarbij twee draden voor de test clips langer worden gelaten. Op de printplaat is een 34 polige IDC gebruikt omdat deze connector gebruikelijk is en goed te verkrijgen. Let er op dat de bovenste 4 aansluitingen op deze connector worden vrijgehouden.

Ten behoeve van het bevestigen van de connectoren op de bandkabel gebruik ik een krimptang zoals op de afbeelding links. Let erop dat de connectoren precies haaks op de bandkabel staan voordat deze erop wordt geperst. Het ging goed bij de normale IDC connector, maar het ging al meteen mis met de IC plug. Op de onderkant komt zoveel druk te staan dat deze connector direct door midden breekt. Het beste is om hier een mini breadboard te gebruiken zodat de pinnen van de IC plug hier in kunnen worden gestoken en het geheel in een bankschroef kan worden samengedrukt.

Nu kunnen de reset clips worden gesoldeerd. Met behulp van deze clips (actief laag of actief hoog) kan de aangesloten elektronica automatisch worden gereset nadat de inhoud van de ge-emuleerde EPROM is gewijzigd. Aangezien de bandkabel draden nogal fragiel zijn heb ik de draden bij de "ingang" de plug vastgezet met een druppel "hot glue".

De EPROM Emulator NG compleet met bandkabel en reset clips.

De Software

De software bestaat uit twee delen:

  • De software voor de Arduino ten behoeve van de aansturing van de print en communicatie met de PC, geschreven in C++
  • De software voor de PC ten behoeve van selectie van het type EPROM, de COM poort, het bestand met de EPROM inhoud en andere instellingen, geschreven in Python.

De EPROM emulator NG software is beschikbaar op Github.

Voor de Arduino Nano heb ik firmware versie 2.0rc4 (EPROM_EMU_NG_FW_2.0rc4.ino) gebruikt. Deze software heb ik met behulp van de Arduino IDE op de Arduino Nano geladen.

Om het Python script (EPROM_NG_v2.0rc3.py) op de PC te kunnen gebruiken dient eerst Python zelf te worden geïnstalleerd en vervolgens nog de libraries pySerial en pySimpleGui door middel van:

pip install pyserial
pip install pysimplegui

Hierna kan het script worden gestart met parameters op de command line, bij voorbeeld:

python EPROM_NG_v2.0rc3.py -mem 27256 -spi y -auto n 27256.HEX com4

of zonder parameters om de grafische interface te starten:


In een van de vervolg blogs zal ik deze EPROM emulator gaan testen in combinatie met een nog te bouwen retro computer.

20 februari 2022

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

In mijn vorige blog zijn TTL en TTL LS IC's getest met de Retro Chip Tester (RCT) Professional. In deze blog komen de resultaten van o.a. een selectie CMOS IC's aan bod. CMOS staat voor Complementary Metal Oxide Semiconductor. Dit is een halfgeleider techniek die gebruik maakt van metaaloxide-veldeffect transistoren. In tegenstelling tot de stroom gestuurde TTL IC's zijn de CMOS ingangen spanning gestuurd en zouden dus probleemloos getest moeten kunnen worden door de RCT.

De Hoge en lage uitgangsspanningen zijn bij een 5V voedingsspanning anders gedefinieerd dan bij TTL: voor CMOS IC's geldt dat de uitgangsspanning groter of gelijk aan 4,95V dient te zijn bij een logische H (1) en kleiner of gelijk aan 0,05V bij een logische L (0).

CMOS IC's zijn trager dan TTL IC's en veel gevoeliger voor statische ladingen.

Testresultaten CD/HEF/MC CMOS serie.

HEF4001BP 4x 2-input NOR Philips 1991 Chip OK
HCF4011BE 4x 2-input NAND SGS 1993 Chip OK
MC14012BCP 2x 2-input NAND Motorola 1978 Chip OK
MC14013BCP 2x D FF S/RS Motorola 1981 Chip OK
HEF4016BP 4x analog switch Philips 1984 Chip OK
HEF4017BP 4-bit dec counter Philips 1986 Chip OK
HEF4018BP 5-stage Johnson counter Philips 1979 Chip OK
MC14023BCP 3x 3-input NAND Motorola 1978 Chip OK
CD4026BE Decade counter 7-seg RCA 1979 Chip Failed
HEF4027BP 2x J-K FF S/RS Philips 1979 Chip OK
HEF4030P 4x 2-input XOR Philips Geen datecode Chip OK
HCF4040BE 12-bit counter STMicroelectronics 1991 Chip OK
HEF4042P 4x latch Philips Geen datecode Chip OK
HEF4046BP 2x 3-input NOR/INV Philips 1988 Chip OK
HEF4049BP 6x inverter Philips 1975 Chip OK
HEF4050BP 6x buffer Philips 1979 Chip Failed (2x)
HEF4066BP 4x analog switch Philips 1980 Chip OK
CD4069UBE 6x inverter RCA 1974 Chip OK
HEF4071BD 4x 2-input OR Philips 1972 Chip OK
HEF4072P 2x 4-input OR Philips 1979 Chip OK
HCF4093BE 2x 2-input NAND STMicroelectronics 1991 Chip OK
HEF40097BD 2/4-bit buffer Philips 1985 Chip OK
HEF40098BP 2/4-bit buffer INV Philips 1988 Chip OK
40106BP 6x inverter ST Philips 1984 Chip OK
HEF40193BP 4-bit bin counter Philips 1989 Chip OK
HEF4528BP Multivibrator Philips 1988 Niet mogelijk
HEF40097BD Shift register Philips 1978 Chip OK

4016
De HEF4016 (analoge schakelaar) wordt alleen digitaal getest. In de professionele testwereld zou b.v. ook de uitgangsweerstand worden gemeten als functie van de ingangsspanning zoals in onderstaande opstelling met externe spanning- en stroombronnen.

4026
De RCT geeft aan dat bij IC 4026 (een decade teller met 7-seg display uitgang), de 7 segment display uitgangen A, D, E en F defect zijn (altijd laag): C01HHHLGHHHHH00V
De letter C op pin 1 geeft aan dat hier een clock signaal wordt aangeboden.
Metingen bevestigen de uitkomst van de RCT. De Chinese IC tester kan dit IC niet testen. 

4050
Bij de 4050 (6 voudige buffer) blijken enkele uitgangen defect en ook de Chinese IC tester geeft aan dat dit IC defect is.

4528
Zoals ook bij de TTL IC's kan het IC 4528 (multivibrator) niet worden getest op beide testers.

40097
Het 40097 IC kan niet op de Chinese IC tester worden getest. Alhoewel er na de keuze "CD40" 3 cijfers ingevoerd kunnen worden kan simpelweg geen 0 worden gekozen voor het eerste cijfer. Dit is een duidelijke tekortkoming in de bediening.

De RCT richt zich voornamelijk op oude IC's, maar hoe zit het dan met moderne high-speed CMOS IC's, zoals de HC serie?

Testresultaten HC serie (High-Speed CMOS)

SN74HC00N 4x 2-input NAND Texas Instruments 2021 Chip OK
74HC04 6x inverter Chinese kloon 2018 Chip OK
SN74HC08 4x 2-input AND Texas Instruments 2020 Chip OK
SN74HC175N 4-bit D FF Texas Instruments 2017 Chip OK
SN74HC245 8x buffers Texas Instruments 2021 Chip OK
CD74HC4017 (4017) 4-bit dec counter Texas Instruments 2018 Chip OK
CD74HC390E 2x 4-bit dec counter Texas Instruments 2018 Chip OK
SN74HC541N 8x buffers Texas Instruments 2021 Chip OK
SN74HC595 8-bit shift reg. Chinese kloon 2018 Chip OK
CD74HC597 8-bit shift reg. Texas instruments 2004 Chip OK

Hier testen alle moderne IC's OK, ook de goedkope bij AliExpress gekochte Chinese IC klonen functioneren prima.

Als de CD74HC4017 in de Comparelist.html database wordt opgezocht, wordt deze niet gevonden, terwijl deze wel als 4017 getest kan worden. De verwijzing van de CD74HCxxxx  serie kan wellicht nog in deze database worden opgenomen.

Testresultaten DRAM

MN4164P-15A DRAM 64k x 1 Matsushita 1983 Chip OK

De test cyclus die hier wordt doorlopen bij de standaard instellingen is:
Checking 0, 1, 0101..., 1010..., rnd(2)
De totale testtijd voor dit IC is 1:01, gemiddeld circa 12.4 sec. per cyclus.
In het instellingen menu kunnen de March Y en March U geheugentesten worden toegevoegd, als beide worden aangezet dan bedraagt de totale testtijd 2:48.
Met March Y kunnen fouten als "Address-Decode Fault" (AF), "Stuck-At Fault" (SAF), "Transition Fault" (TF) en sommige "Coupling Faults" (CF) worden opgespoord.
Met March U kunnen niet aan elkaar gelinkte geheugen fouten worden opgespoord.
Al deze mogelijkheden maken het testen van de geheugen IC's zeer betrouwbaar.

Testresultaten SRAM

AS6C1008 (xx1024) SRAM 128k x 8 Alliance 2021 Chip OK

Bovenstaande IC codering is een voorbeeld van dat het niet altijd direct duidelijk is met welke RCT selectie een IC gemeten kan worden. Met de bijgeleverde database "Comparelist.html" kan dit IC worden opgezocht en wordt aangegeven met welk type gemeten moet worden, in dit geval de xx1024.


Testresultaten ROM

901229-03 (2364 8k x 8, 24p) Commodore 1541 fdd
(Active states L=20)
MOS 1985 CRC32: 9126E74A
310654-03 (27256 32k x 8, 28p) Commodore 1571 fdd MOS 1985 CRC32: 3889B8B8
318045-01 (27256 32k x 8, 28p) Commodore 1581 fdd MOS 1987 CRC32: 113AF078
251913-01 (23128 16k x 8, 28p) C64 Basic 2r2 / Kernal
(Active states L=20, 22 H=27)
MOS 1985 CRC32: 0010EC31
318018-02 (23128 16k x 8, 28p) C128 Basic 7.0 low MOS 1985 CRC32: 6AAAAFE6
318019-02 (23128 16k x 8, 28p) C128 Basic 7.0 high MOS 1985 CRC32: D551FCE0
318020-03 (23128 16k x 8, 28p) C128 Basic 7.0 / Kernal MOS 1985 CRC32: 1E94BB02
390059-01 (2364, 8k x 8, 24p) C128 Character US MOS 1985 CRC32: 6AAAAFE6
Amstrad (232000, 256k x 8, 32p) NC100 firmware v1.06 English (Amstrad) 1992 CRC32: 849884F9

De ROM's kunnen worden herkend op basis van de CRC32 door plaatsing van het bestand customcrc32.txt en het index bestand customidx.bin op de SD kaart van de RCT. Het txt bestand kan verder worden uitgebreid door extra regels toe te voegen en het index bestand opnieuw te genereren met het programma customcrc32.exe.

Voorbeeld van herkenning van een C128 ROM.

Testresultaten EEPROM

W27C512 64k x 8 C64 Pika Cartridge Winbond
CRC32: 3CBD64C6
AT27C512R 64k x 8 C64 Ultimate Diag. Test Cart. Atmel 2020 CRC32: 633A951A
AT28C16 (2716) 2k x 8 (onbekende inhoud) Atmel 2005 CRC32: DB79A334
AT28C16 (2716) 2k x 8 (onbekende inhoud) Atmel 2012 CRC32: C3DD91A9
AT28C16E (2716) 2k x 8 (onbekende inhoud) Atmel 1990 CRC32: B9173830
AT28C16 (2716) 2k x 8 (onbekende inhoud) Atmel 2013 CRC32: 61574F2D
AT28C16 (2716) 2k x 8 (onbekende inhoud) Atmel 1985 CRC32: 881E2701

Wanneer een van de AT28C16 (als test) met opzet 180 graden gedraaid in de ZIF voet wordt geplaatst is aan de dimmende verlichting van het display te zien dat er redelijk veel stroom wordt getrokken. Door de begrenzingen (weerstanden en Zener dioden) levert dit geen schade op aan het IC of de RCT.

Wanneer de OK knop langer dan 1 seconde wordt ingedrukt, wordt de inhoud van een ROM opgeslagen op de SD kaart. Als bestandsnaam wordt de CRC32 uitkomst gebruikt.

Testresultaten EPROM

D27256 32k x 8 Intel 1986
CRC32:1B43EABD (leeg)
D27256 4x 2-input NOR Intel 1986 CRC32:1B43EABD (leeg)
D27256 6x inverter Intel 1986 CRC32:1B43EABD (leeg)
M27C256B C64 JIFFY / JAFFY STMicroelectronics ? CRC32: B141FAD6

Opvallend is dat wanneer het IC D27256 met lege inhoud verkeerd wordt geplaatst (180 graden gedraaid), een andere CRC32 wordt weergegeven: 4F65CB62. Er is dus geen indicatie dat het IC verkeerd is geplaatst, ook wanneer er geen IC wordt geplaatst wordt de CRC32 van een leeg IC weergegeven. Er kan niet worden bepaald of de EPROM geheel of gedeeltelijk defect is.

Overige IC's

Onder menu Logic > Misc Logic Tests 2 zijn IC's te vinden zoals Transitor arrays, Darlington arrays, Opamps en een tweetal Commodore PLA's, Mijn C128 PLA 315012-01 kan niet gemeten worden omdat deze maar liefst 48 pinnen heeft en dus niet in de voet past. Ook een SN754410NE kan niet worden getest.

Testresultaten overige IC's

ULN2003L 7x Darlington array Unisonic 2020 OK
ULN2803APG 8x Darlington sink driver Toshiba 2020 OK
741HC Opamp Fairchild 1975 OK
315012-01 C128 PLA MOS 1986 Niet mogelijk
CA3086 NPN transistor array RCA 1990 Chip Failed
SN754410NE 4x Half-H driver Texas instruments 2013 Niet mogelijk

741HC
IC's in TO behuizingen kunnen ook worden getest, zoals deze 741 Opamp in TO-99 behuizing.
Let bij het buigen van de pinnen op de juiste pin volgorde. Het metalen lipje geeft bij dit IC pin 8 aan.

CA3086
De RCT geeft de volgende foutcode aan bij het testen van de CA3086 L001L10L10L10L


Dit zou een defect aan de transistor tussen pin 1 2 en 3 betekenen. Echter wanneer deze transistor wordt aangesloten op een transistor tester blijkt deze wel te functioneren. Wellicht heeft de RCT nog een probleem met het correct testen van dit IC.

De transistor op pin 1, 2 en 3 aangesloten op een transistor tester,
geeft een correct functionerende NPN transistor aan.

Update 28-02-2022: Naar aanleiding van mijn feedback heeft de ontwerper van de RCT Stephan Slabihoud de test bekeken en vastgesteld dat de basis stroom te laag was om de transistor te verzadigen. Hij heeft de test aangepast en vanaf firmware versie 0.22 kan dit IC correct worden getest.

Testresultaten displays

Een heel andere mogelijkheid is het testen van cijfer/tekst displays. Deze mogelijkheid is te vinden onder het menu: Logic > Misc Tests.


A 745-007 (TIL311) Dialco 1979 OK
B HDSP-2000 HP 1988 Niet mogelijk
C HP5082-7466 HP 1983 Niet mogelijk
D QDSP-6061 HP 2016 Niet mogelijk
E HPDL1414 (DL1414) HP 1993 OK
F FND507 (1x7 seg, 10p, CA:3,8) (Korea) 1984 1defect van 3
G ACD8143 ADH-Tech 1983 Niet mogelijk
H KW2-561CGA (2x7 seg, 18p, CC:13,14) Lucky Light 2019 OK
I KW2-561ASA (2x7 seg, 18p, CA:13,14) Lucky Light 2019 OK
J 5621AS-1 (2x7 seg, 18p, CC:13,14) XLITX 2019 OK
K HDSP-523G (2x7 seg, 18p, CC:13,14) Avago 2018 OK
L SA56-11EWA (1x7 seg, 10p, CA:3,8) Kingbright 2016 OK
M TDSR5150 (1x7 seg, 10p, CA:3,8) Vishay 2018 OK

Door de lage stroom lichten bij de 7 segment displays alleen de "high brightness" varianten zichtbaar op.

HDSP-2000
Dit is een 4 cijferig alfanumeriek display (14 pins).

HP5082-7466 en QDSP-6061
Dit zijn vijf cijferige bubble displays en worden niet ondersteund.

HPDL1414
Het resultaat van dit IC is altijd "Chip OK" of er nu wel of geen display is geplaatst of verkeerd is geplaatst. De correcte werking dient van het display zelf afgelezen te worden. Van links naar rechts wordt achtereenvolgens getoond: 0 1 2 3 gevolgd door L M N O.

FND507
Van dit 7 segment display was er 1 defect, foutcode: HH1HHHH1LH. De L op positie 9 geeft aan dat segment f defect is. Dit is ook door meting bevestigd.

ACD8143
Dit is een tweevoudig 3 kleuren 7 segment display (14 pins) en wordt niet ondersteund.

Conclusie

De RCT blijkt een goedkope en betrouwbare tester te zijn waar zeer veel uiteenlopende IC's mee getest kunnen worden. Vooral op het gebied van de oudere IC's (RAM/ROM) die niet meer op moderne testers getest kunnen worden, onderscheid deze tester zich van andere.
Handig bij reparatie van oude (spel)computers of andere retro hardware.
De uitstekende handleiding van maar liefst 185 pagina's (versie 2022-02-05), geeft ook goed aan waar valkuilen kunnen zitten tijdens het meten, waar op te letten en wat de beperkingen zijn van de RCT tester.

De basis van deze test was mijn verzameling (oude) IC's. Uiteraard zijn er nog veel meer mogelijkheden op deze RCT tester aanwezig waar ik nog niet op ben ingegaan zoals de vele conversie printplaatjes die in de ZIF voet gestoken kunnen worden waardoor er nog veel meer getest kan worden. De tester wordt bovendien steeds uitgebreid met nieuwe mogelijkheden en van tijd tot tijd verschijnt er dan nieuwe software zoals de mogelijkheid om oude EPROM's te kunnen programmeren vanaf firmware versie v.20.

Alle IC's gaan een keer stuk, het moment waarop deze defect raken is afhankelijk van zeer veel verschillende oorzaken. Door het steeds opwarmen en afkoelen van een IC kan een mechanische spanning op het silicium kristal ontstaan waardoor deze kan breken. Wordt een IC ongebruikt opgeslagen dan gaat deze dus langer mee dan wanneer gebruikt. Er zijn ook tal van andere oorzaken, zoals ionen dispersie uit het substraat of chemische processen die leiden tot hogere weerstandswaarden of onderbrekingen. Complexe IC's met hele kleine afmetingen zullen eerder defect raken dan de simple logica IC's uit de jaren 70 die ook nog in verhouding een veel groter silicium kristal hebben.

Het oudste IC uit mijn collectie is bijna 50 jaar oud en functioneert nog prima! Uit zo'n 100 geteste IC's bleken er maar 5 echt defect, dat had ik niet verwacht en heb mijn prognose over de verwachte levensduur van IC's naar boven bijgesteld...