Google Analytics

19 november 2024

Toepassing: De Cardputer van M5Stack

Het Chinese bedrijf M5Stack richt zich vooral op Internet of Things (IoT) oplossingen en heeft in oktober 2023 een kleine computer uitgebracht ter grootte van een credit card onder de naam Card Computer of kortweg Cardputer. Deze is voorzien van een toetsenbord met 56 toetsen, een 1.14 inch TFT scherm met een resolutie van 240x135 pixels en een verwisselbare computer module. De bijgeleverde computer module is de M5StampS3 die een Dual-Core ESP32-S3FN8 microcontroller bevat en wordt geklokt op maximaal 240 MHz.
Extra ingebouwde functionaliteiten zijn: Wi-Fi, Bluetooth, I2S speaker, digitale microfoon,  infraroodzender, MicroSD/TF kaart aansluiting en twee oplaadbare batterijen. Het geheel kost slechts $29.90.

De Cardputer. Rechtsboven de computer module met USB-C aansluiting

De behuizing is te openen door de twee M2 hex boutjes los te draaien.

Links de bovenkant van de behuizing, rechts bovenkant printplaat

De printplaat rechts bevat een 401525 LiPo oplaadbare batterij voor backup.

Links de onderkant van de printplaat, rechts de onderkant van de behuizing

De onderkant van de printplaat bevat uitleg over hoe de voeding en batterijen zijn aangesloten en in de onderkant van de behuizing rechts is een grotere 602866 LiPo oplaadbare batterij geplaatst.

Toepassingen

De Cardputer is ontworpen voor gebruikers die een veelzijdig klein formaat apparaat zoeken en breed inzetbaar is voor o.a. prototyping van creatieve projecten, ook dankzij de verschillende aansluitmogelijkheden. De belangrijkste aansluiting is de Grove-connector, die zich aan de linkerkant bevindt. Deze gestandaardiseerde 4-pins I2C GPIO-aansluiting maakt het mogelijk om externe modules, zoals sensoren, camera's, servo-aansturingen en meer, eenvoudig te verbinden.

Een Grove kabeltje

Het Eindhovense bedrijf TinyTronics biedt een breed assortiment aan modules die over een grove aansluiting beschikken. Deze modules worden standaard met een Grove-kabeltje geleverd.

Leuk detail zijn de gaten aan de achterkant van de Cardputer met een Lego-vormfactor die gebruikt kunnen worden om externe modules vast te zetten of onderdeel te maken van een Lego project. Gebruik hiervoor Technisch Lego pin onderdeel "3673 - Technic, pin" of "2780 - Technic, pin stroef."

De Cardputer wordt ook wel gezien als de goedkope variant van de zgn. Flipper Zero, die door  pentesters, techneuten, ethische hackers en hardwarehobbyisten wordt gebruikt.

Firmware

Standaard is er demo-firmware op de Cardputer geflashed, waarmee diverse functies worden gedemonstreerd, zoals o.a. een audiorecorder, Wi-Fi netwerk detectie en een chat programma.
De actieve Cardputer development community heeft de nodige firmware beschikbaar gesteld, waaronder de handige M5Launcher. Deze firmware maakt het mogelijk om eenvoudig verschillende applicaties te selecteren en te laden vanaf een SD-kaart (.bin bestanden), of om direct firmware te downloaden en installeren vanuit de M5Burner-repository. Niet alle firmware bevat de code om samen te werken met de M5Launcher, een voorbeeld hiervan is het spel Doom die dan in plaats van M5launcher moet worden geflashed.

Ga voor installatie naar https://bmorcelli.github.io/M5Stick-Launcher/flash0.html, verbind de Cardputer via USB met de PC en selecteer "M5Stack - Cardputer". De M5Launcher firmware wordt nu geïnstalleerd op de Cardputer.

Uitgebreide documentatie is beschikbaar op de website van de maker. Daarnaast is een wiki te vinden op: https://cardputer.wiki/getting-started.html

Op deze site is een overzicht te vinden van M5 firmware: https://bmorcelli.github.io/M5Stick-Launcher/m5lurner.html Let op, niet alle firmware is geschikt voor de Cardputer.

In de onderstaande tabellen is een selectie weergegeven van firmware die werkt op de Cardputer in combinatie met de M5Launcher. De downloadlinks bieden .bin-bestanden die op de SD-kaart geplaatst kunnen worden. Geef deze bestanden direct na het downloaden een herkenbare naam.

Firmware Download Github
Audio stream server: Stream je microfoon download github
Audiospectrum: Grafische spectrum analyser download github
Bluetooth Mouse/Keyboard download github
Bruce: Set hackingtools download github
CardskimmerDetector download github
Dados GPS: GPS demo download
Display_off: Zet display uit tijdens opladen download github
Evil-Cardputer: set hackingtools download github
I2C-Scanner download github
LegoTrainControl download github
Lego Power functions IR remote download
Marauder download github
Marauder GPS download
MicroCOM: Seriele UART communicatie download github
Mini Winamp: MP3 speler download github
Nemo: set hackingtools download github
Resistor Color Code download github
RF433ANY: RF433 signaal decoder download github
RFIDCopy: Kloon MIFARE RFID download github
System Monitor: Computer resources (alleen Linux) download github
TV-B-Mine: Infrarood TV afstandsbediening download
TV Remote: Infrarood TV afstandsbediening download github
User Demo Plus: verbeterde demo download github
WebRadio Dutch: Web radio met Nederlandse stations download github

Enkele spellen

Spel Download Github
A connect 4 game download github
Conways Cardlife: Game of Life download
Gameboy: Gameboy emulator download github
Minicar: Auto dashboard simulatie download github
MiniGotchi:  download github
Snake download
Spacewars download github

Conclusie

De Cardputer blijkt een compacte, veelzijdige computer die speciaal is ontworpen voor ontwikkelaars en hobbyisten. Met zijn krachtige functies en ondersteuning voor diverse firmware biedt de Cardputer een flexibele basis voor projecten zoals IoT-toepassingen, automatisering en prototyping. Dankzij de integratie met de M5Launcher en uitgebreide documentatie, is het eenvoudig om snel aan de slag te gaan en creatieve ideeën tot leven te brengen.

21 oktober 2024

Bouw: De RVPC, een RISC-V computer voor maar €1

Het Bulgaarse elektronica bedrijf Olimex heeft een bijzonder voordelig RISC-V computerbouwpakketje op de markt gebracht voor slechts één euro (excl. BTW).
De kern van dit systeem is de CH32V003J4M6 processor van het Chinese bedrijf WCH (Jiangsu Qin Heng). Deze 32-bit RISC-V2A processor draait op een kloksnelheid van 48 MHz en is uitgerust met 2 KB SRAM en 16 KB Flash-geheugen. De afmetingen (exclusief pootjes) zijn slechts 3.9 bij 5 mm. Op de Chinese markt kost deze processor nog geen 3 cent per stuk.

De CH32V003J4M6 processor met slechts 8 aansluitingen (SMD)

De RVPC is uitgerust met een 5V-aansluiting, een PS/2 connector voor het toetsenbord en een 15-pins Sub-D connector voor de aansluiting van een VGA-monitor. Daarnaast is de RVPC voorzien van een buzzer en een LED die dient als indicatie voor de voeding.

Gezien het beperkte geheugen en de aansluitingen van deze processor zijn de mogelijkheden niet enorm, waardoor het vooral een educatief doel heeft: leren programmeren met RISC. Desondanks is het team erin geslaagd om VGA-routines te ontwikkelen en software te creëren, zoals een WOZMON-achtige monitor en spellen zoals b.v. Tetris en Towers of Hanoi.

Het bouwpakket

Het bouwpakket bestaat uit een printje (Rev. B) van slechts 3 bij 5 cm en de benodigde onderdelen:

De onderdelen en printplaat aan beide zijden
1x 100nF 25V: C1
1x 1N4148: D1
1x HN1x2: PGM/DBG1
1x MDR6_MINI-DIN,PS2: KBD1
1x PWRJ-2mm (YDJ-1134): PWR_JACK1
1x LED 5MM RED: PWR_LED1
4x 2k 1/8W: R1, R5, R6, R8
3x 470R 1/8W: R2, R3, R4
1x 100R 1/8W: R7
1x Speaker QMB-09B-03, SPK1
1x 2N3904,TO-92: T1
1x CH32V003J4M6 SOIC-8: U1
1x VGA15-3.08-14.5T: VGA1





Microscoop opname van de gesoldeerde chip
De voorgeprogrammeerde CH32V003J4M6 processor is een SMD onderdeel en daardoor ook het lastigste onderdeel om te solderen vanwege de hele kleine pootjes. Ik beschik niet over een hotplate of een heatgun en heb nog nooit met tin-houdende soldeerpasta gewerkt dus probeer ik een poging te wagen met een soldeerbout gebruik makend van 0,8mm soldeertin. Ook gebruik ik kontakt soldeerpasta van Stannol voor een goede warmte overdracht.

Het soldeerwerk kan beter, maar ik ben niet ontevreden over het resultaat. 

Voor de zekerheid meet ik na of er geen sluiting zit tussen de pootjes onderling.
Bij de rest van de onderdelen gaat het solderen probleemloos, het is wel opletten op de polariteit van de diode, led en buzzer. Het solderen op de zgn. groundplane en de metalen onderdelen van de connectoren vragen wel veel warmte van de soldeerbout om het tin goed te laten vloeien.
Als laatste wordt een keus gemaakt voor de weergave kleur door een of meerdere soldeerbruggen te sluiten met een kloddertje tin.

Ik kies voor groen (GRN1) om het retrogevoel te versterken.
Volgens Olimex is het project geschikt voor beginners en mensen zonder soldeerervaring maar daar ben ik het niet mee eens. Dit is wel degelijk een klus voor gevorderden.

Het eindresultaat van de RVPC

Het testen van de RVPC

Ik sluit de RVPC linksonder aan op een lab voeding, ingesteld op 5V en stel voor de zekerheid een stroombegrenzing in van maximaal 200 mA. 

Linksboven sluit ik een PS/2 toetsenbord aan en rechts een 15 polige VGA kabel die verbonden is met een TV die over een VGA aansluiting beschikt. Na het inschakelen van de voedingsspanning blijkt het stroomverbruik slechts 52 mA te bedragen en verschijnt bijna direct het voorgeprogrammeerde RVMON monitor programma waarmee het geheugen kan worden uitgelezen, weggeschreven en software kan worden gestart.

Geen strak beeld op de TV

Het geleverde videosignaal is 800x600@75Hz maar aangezien de beschikbare hoeveelheid geheugen slechts 2k is, heeft Curtis Whitley nogal wat trucs uitgehaald om de VGA routines passend en werkend te krijgen. Maximaal 17 regels van 22 tekens worden weergegeven in de RVMON monitor en volgens opgave zou een resolutie van 320 x 200 pixels mogelijk zijn. Het beeld is niet rotsvast zoals hierboven te zien is, maar goed leesbaar en het is ontzettend knap om dit met deze beperkte processor en zonder grafische chip überhaupt voor elkaar te krijgen. Wellicht is de stabiliteit van het beeld nog te verbeteren, door het beter reinigen van de nog aanwezige flux, of gebruik te maken van een kristal oscillator om de klok stabieler te krijgen.

Beschikbare software

De software (en hardware) is opensource en beschikbaar gesteld via GitHub. Hier zijn de spellen te vinden en zijn ook de handleiding en het KiCad schema te downloaden. Verder kun je in deze andere GitHub repository voorbeeld software vinden voor de CH32V003 chipfamilie.

De RVPC wordt geprogrammeerd via een tweepolige aansluiting gemarkeerd met label PGM/DBG1 op de printplaat. De handleiding geeft aan hoe in een Linux omgeving m.b.v. onder andere Python een ESP32-S2-DevKit-Lipo-USB development board kan worden ingericht als programmeer apparaat voor de RVPC.
Het geheel ziet er behoorlijk complex uit en bovendien werk ik niet in een Linux omgeving. Op het moment dat ik een eenvoudige manier heb gevonden om software vanuit een Windows omgeving naar de RVPC te sturen dan zal ik dit blog later bijwerken.

Conclusie

Al met al een leuk en goedkoop zelfbouw project waarbij de focus ligt op het leereffect van zowel het bouwen (voor mij de eerste keer een SMD component gesoldeerd) alsook het leren programmeren met de RISC-V instructieset. Er is bovendien heel wat creativiteit nodig om leuke software te schrijven die past binnen de beperkte geheugenruimte.

17 mei 2024

Reparatie: Philips 15PF4121 TV

Wanneer je met oude retro computers werkt is er behoefte aan een monitor / TV die over diverse niet meer gangbare aansluitingen beschikt zoals Scart, composiet video, S-video, e.d. Zelf gebruik ik een Philips 15PF4121 TV die vanwege zijn compacte 4:3 formaat aan een TV beugel op een verrijdbare reparatie tafel is gemonteerd. Deze TV uit 2007 begaf het echter na vele jaren trouwe dienst. Tijd dus voor een reparatie van dit onmisbare onderdeel.

De Philips 15PF4142 TV

Aan de achterzijde van de TV zijn de volgende aansluitingen aanwezig:
Antenne (RF), Scart (RGB), DVI, Composiet video, S-video en digitaal / analoog geluid.

Symptomen

Bij het inschakelen van de TV is er geen on-screen menu te zien. De TV lijkt wel te reageren op de afstandsbediening door een knipperende led, maar het beeld blijft zwart op alle ingangen. Wel is de LCD achtergrond verlichting te zien. Dit probleem is al een keer eerder opgetreden en kon worden opgelost door de netspanningskabel los te koppelen en deze opnieuw aan te sluiten. Deze keer lukte dit echter niet meer.


Reparatie

De achterkant kan eenvoudig worden verwijderd met zes schroeven.
Binnenin bevinden zich 4 printplaten. Links de voeding (geel), in het midden de video processor (groen), daarnaast een klein printje met enkele video/audio aansluitingen (bruin) en rechtsonder een hulpprint met de infraroodsensor en een groen/rode led.

Het hart van de TV wordt gevormd door de gm5221H-LF chip van Genesis Microchip Inc.
In 2007 is dit bedrijf overgenomen door ST Microelectronics

Als eerste kijk ik naar de voeding en meteen valt een verbrande plek op bij één van de hoogspanning connectors. Deze hoge spanning van 680V wordt gebruikt voor de LCD achtergrond verlichting.


De oorspronkelijke connector die kennelijk vonkte door een slecht contact, is verwijderd en de kabel is direct terug gesoldeerd. Er was dus al eerder een reparatie uitgevoerd voordat ik deze TV bezat. Aangezien de LCD achtergrond verlichting werkt, kan dit niet de oorzaak van het huidige probleem zijn.

De voeding is geproduceerd door Delta Electronics Inc. model DAC-12M018 B1F

Ik heb van deze voeding niet het exacte schema kunnen vinden, wel van een soortgelijke zodat de globale werking duidelijk wordt. Verder valt op dat een aantal elektrolytische condensatoren (Elco's) zijn opgezwollen en hebben gelekt.

De bovenkant van enkele Elco's staan bol en hebben een bruin residu

Goedkopere Elco's gaan maar zo'n 1000 uur mee bij 85°C (bij lagere temperaturen langer), dus ze dienen in ieder geval te worden vervangen.

Het verwijderen is lastig omdat ze met een harde witte lijm zijn vastgezet.

De Elco's zijn verwijderd op één na, de grote Elco links (100uF 450V)
die nog een goede capaciteit heeft en een lage ESR waarde.

Bij meting met een ESR-meter bleek de meeste elco's een te hoge ESR-waarde hadden (>2 Ohm bij 1kHz) en hun capaciteit aanzienlijk was verminderd. De capaciteit van de 1000uF Elco's is zelfs bijna volledig verdwenen!
Aangezien ik de kwaliteit van merkloze Chinese condensatoren niet vertrouw heb ik de volgende radiale Elco's bij Reichelt elektronik besteld.

1x 10uF 50V
2x 220uF 25V
1x 330uF 25V
3x 470uF 25V (oorspronkelijk een van 10V, 16V en 25V op de print aanwezig)
3x 1000uF 25V (oorspronkelijk een van 10V, 16V en 25V op de print aanwezig)

De nieuwe Elco's worden gesoldeerd, waarbij het goed opletten is om de hele kleine SMD
componenten op de onderkant van de printplaat niet te raken met de soldeerbout

Alle nieuwe Elco's zijn nu terug geplaatst.

Na controle van de voedingsspanningen breekt het spannende moment aan om te testen of de TV nu werkt. Wellicht zijn er nog andere problemen.

De TV werkt weer!

Met slechts €2,75 aan onderdelen krijgt deze TV een tweede leven en kan weer worden ingezet voor  retrocomputer reparaties.

18 januari 2023

Bouw: Een Cambridge Mk14 in een PIC

De Microcomputer Kit 14 (Mk-14) is ontwikkeld in 1977 door Science of Cambridge (later Sinclair) uit het Verenigd Koninkrijk. Deze kit is gebaseerd op de 8-bit INS8060 processor van National Semiconductor uit 1976 en hoort bij de SC/MP II familie (uitgesproken als "Scamp") wat staat voor Simple Cost-effective MicroProcessor.

Het doel van de kit was om te leren programmeren door middel van de 46 beschikbare instructies van deze SC/MP processor. De kit bestaat uit een printplaat met 18 IC's (exclusief de 7805 spanningsregulator), een 9-cijferig bubble led-display, een membraamtoetsenbord met 20 toetsen, een resetknop, 512 bytes ROM en 256 bytes RAM (uitbreidbaar naar 640 bytes).

Foto van een originele Mk14. Deze kan worden uitgebreid met een INS8154 RAM/IO IC
(in de rode voet) en een RAM uitbreiding in de andere voetjes. Foto: John Short

Er zijn in totaal 5 versies van de Mk14 gemaakt. Van de destijds meer dan 15000 verkochte exemplaren zijn er tegenwoordig nog maar weinig exemplaren van over. Op dit moment (januari 2023) is er een originele ongebouwde kit te koop op eBay voor een bedrag van maar liefst 3239 euro. In de loop der jaren zijn er verschillende replica's op de markt verschenen op basis van de originele chipset, maar de deze IC's zijn lastig te verkrijgen.

Het PIC ontwerp

Karen Orton† heeft de Mk14 weten te emuleren in slechts één goedkoop IC, de PIC16F876. De PIC wordt geklokt op de maximale klok frequentie van 20MHz en door de emulatie komt dit overeen met een Mk14 op 4 MHz, slechts 11% trager dan de originele Mk14 (4,43 MHz).

Schema van de Mk14 PIC emulator, bron: Karen Orton website

Budgetronics.eu heeft een printplaat ontworpen voor dit ontwerp en levert een complete kit met het voorgeprogrammeerde PIC IC.

De bouw


De onderdelen van de "Mk14 in a PIC" kit

Na ongeveer 1.5 uur solderen is de Mk14 in a PIC gereed.


Werking

Na een druk op de SC/MP reset knop, verschijnt links op het display 0000 (adres) en rechts 00 (data). Dit is het startpunt van het SCIOS monitorprogramma. Hierna wordt het start adres ingetoetst en daarna de Term-toets voor het invoeren van de opcode/data. Door middel van de MEM-toets wordt de inhoud opgeslagen en het adres automatisch met 1 verhoogd, waarna het programma op dezelfde wijze verder kan worden ingevoerd.

De ABORT-toets wordt gebruikt om het invoeren af te ronden. Voer nu het startadres in en druk op de GO-toets om het programma te starten.

De SC/MP instructieset van de Mk14


Enkele verschillen

In tegenstelling tot de originele Mk14, is er op de "Mk14 in a PIC" geen IO-interface beschikbaar voor het aansturen van andere apparatuur.

Zoals uit onderstaande tabel blijkt, is de geheugenindeling van de "Mk14 in a PIC" niet volledig identiek aan die van de Mk14. De ontbrekende items in de standaard Mk14 worden tussen haakjes weergegeven. Het RAM-geheugen van de PIC14 komt meerdere keren voor in de geheugenindeling, maar het zijn slechts kopieën.
In totaal zijn er dus slechts 256 bytes RAM beschikbaar.

Adres   Mk14Mk14 (PIC)          
000
100
SCIOSSCIOS
200
300
SCIOSSCIOS
400
500
SCIOSSCOIS
600
700
SCIOSSCIOS
800(RAM IO)Display
900DisplayDisplay
A00(RAM IO)RAM
B00(Expansion RAM)RAM
C00(RAM IO)Display
D00DisplayDisplay
E00(RAM IO)RAM
F00Standaard RAMRAM

De Sense A-interrupts zijn niet geïmplementeerd en SC/MP-paging is ook niet aanwezig.

Illegale SC/MP-instructies zorgen op de "Mk14 in a PIC" voor een reset. Dit is een voordeel, omdat een programma-crash door een illegale instructie op de Mk14 vaak onopgemerkt bleef en vaak leidde tot het (gedeeltelijk) overschrijven van het RAM-geheugen.


Extra functies

De "Mk14 in a PIC" heeft een aantal extra functies ten opzichte van de originele Mk14:

De geprogrammeerde instructies blijven bewaard in het Flash geheugen, dus zelfs na uitschakeling van het systeem.

Er is een seriële download-functie beschikbaar waarmee een Intel hex-bestand naar de "Mk14 in a PIC" kan worden gestuurd. Deze functie wordt automatisch gestart na een PIC-reset. Als deze functie niet nodig is, kan deze modus worden verlaten door op de SC/MP reset-toets te drukken, waarbij de RAM wordt geladen vanuit het Flash-geheugen. Bestanden dienen te worden overgedragen met een baudrate van 9600, 8 databits, 1 stopbit en geen pariteit. Omdat de verbinding eenrichtingsverkeer is, wordt er geen handshake toegepast.


Kleine hardware aanpassing

De schakeling is ontworpen om RS-232 signalen te verwerken die worden ontvangen via de "Serial-in" aansluiting op de printplaat. Deze signalen variëren tussen de -12V (1) en +12V (0). De ingangsschakeling zet deze signalen om naar TTL-niveau (0V en 5V) en inverteert het signaal door middel van de BC547 transistor. 
Om een bestand vanaf een PC te kunnen versturen, wil ik gebruik maken van onderstaande kabel, die USB-signalen omzet naar serieel TTL-niveau omdat ik deze al in bezit heb.



Deze kabel kan niet rechtstreeks op de "Serial-in" worden aangesloten. Daarom voorzie ik de "Mk14 in a PIC" van een extra aansluiting op TTL niveau. Ik soldeer een extra signaal pin op de plek waar normaal gesproken de collector van de BC547 transistor zit. Vervolgens soldeer ik de transistor aan de onderkant van de printplaat.

De GND aansluiting van de kabel word op de - aansluiting van de "Serial-in" gestoken en de TXD op de nieuwe TTL ingang. Zie rechter foto hierboven.

Software test

Om de "MK14 in a PIC" te testen gebruik ik het programma Babbage, gemaakt door Karen Orton. Dit programma berekent de waarde van Pi met behulp van het Babbage-algoritme. Hieronder staan de hex codes zoals die handmatig op de "Mk14 in een PIC" worden ingevoerd, beginnend op adres 0f20 en eindigend op 0fee.

      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
0f20 c4 0d 35 c4 0f 36 c4 8d 32 c4 32 c8 e6 c4 0f 37
0f30 c4 9b 33 c4 00 c8 dd c4 00 31 c4 04 c8 d7 c3 00
0f40 d4 0f 01 c2 80 cd 01 c4 0b 8f 00 c7 01 1c 1c 1c
0f50 1c 01 c2 80 cd 01 c4 00 8f 00 b8 b9 9c e0 c4 0b
0f60 8f 00 c4 00 c9 00 c7 fc b8 aa 9c cb c0 a5 98 bd
0f70 c7 fc c4 0a c8 9e c4 08 c8 9b 02 c3 00 eb 08 cf
0f80 01 b8 92 9c f6 b8 8d 9c ed b8 88 90 a0 3f 06 5b
0f90 4f 66 6d 7d 07 7f 67 00 00 00 00 00 00 00 00 91
0fa0 03 44 30 92 98 79 00 83 49 41 90 61 93 99 99 24
0fb0 23 26 00 63 93 99 99 21 67 69 55 06 00 00 00 03
0fc0 60 50 72 02 00 00 00 91 19 36 98 99 99 99 99 20
0fd0 55 86 93 99 99 99 99 72 79 06 01 00 00 00 00 99
0fe0 74 90 99 99 99 99 99 62 36 00 00 00 00 00 00

Een alternatief voor handmatige invoer is het omzetten van bovenstaande codes naar het Intel HEX-formaat. Dit bestand wordt dan via de seriële interface kabel van de PC naar de "Mk14 in a PIC"  verzonden:

:100F2000C40D35C40F36C48D32C432C8E6C40F3781
:100F3000C49B33C400C8DDC40031C404C8D7C30097
:100F4000D40F01C280CD01C40B8F00C7011C1C1C33
:100F50001C01C280CD01C4008F00B8B99CE0C40B55
:100F60008F00C400C900C7FCB8AA9CCBC0A598BD1F
:100F7000C7FCC40AC89EC408C89B02C300EB08CFC4
:100F800001B8929CF6B88D9CEDB88890A03F065BA6
:100F90004F666D7D077F6700000000000000009134
:100FA0000344309298790083494190619399992440
:100FB0002326006393999921676955060000000371
:100FC0006050720200000091193698999999992001
:100FD00055869399999999727906010000000099B4
:0F0FE00074909999999999623600000000000069
:00000001FF

Nadat de kabel op de USB poort van de PC is aangesloten, wordt een virtuele COM poort op de PC aangemaakt, die te vinden is in Windows Apparaatbeheer. In mijn geval is dit COM5.
Daarna wordt via een Windows-opdrachtprompt de poort ingesteld door middel van het commando:

mode com5 baud=9600 parity=n data=8 stop=1

Status for device COM5:
-----------------------
    Baud:            9600
    Parity:          None
    Data Bits:       8
    Stop Bits:       1
    Timeout:         OFF
    XON/XOFF:        OFF
    CTS handshaking: OFF
    DSR handshaking: OFF
    DSR sensitivity: OFF
    DTR circuit:     OFF
    RTS circuit:     OFF

De knop "PIC Reset" wordt gebruikt om het programma naar de "Mk14 in een PIC" te sturen. Op de PC wordt dan het volgende commando gegeven:

copy babbage.hex com5

Nadat het programma is geladen wordt het startadres 0F20 ingevoerd en kan het programma worden gestart door op de knop "Go" te drukken. Na een aantal iteraties wordt een benadering van het getal Pi weergegeven op het display.

Het is geweldig om te zien dat het mogelijk is om Pi te benaderen met slechts 256 bytes aan programma geheugen en een beperkte instructieset!

07 januari 2023

Reparatie: C64 #1

Een oud collega kocht uit nostalgie een Commodore 64 (C64) op Marktplaats met de vraag om deze te testen.

De eerste vraag daarbij is: hoe sluit je een C64 aan op een moderne TV / monitor? De C64 beschikt over een composiet video signaal (15kHz) en latere revisies ook over een s-video signaal. Een wat oudere TV die over een RGB scart connector beschikt kan hiervoor worden gebruikt door een speciale kabel te maken, zie hiervoor de volgende blog: https://www.lemon64.com/forum/viewtopic.php?t=72807

Beschik je over een TV / monitor met alleen een HDMI aansluiting dan kan een video naar HDMI converter worden gebruikt. Hiervoor bestaan diverse hele goedkope uitvoeringen maar die geven vaak een vrij slecht beeld.

Zelf ben ik tevreden over de video converter van Tendak die over zowel een composiet als een s-video ingang beschikt. De s-video geeft over het algemeen een beter resultaat. 

Voor en achterzijde van de Tendak video converter

De benodigde bekabeling is kant en klaar te verkrijgen maar kan uiteraard ook zelf worden gemaakt.

Na het aansluiten van de voeding en de bekabeling blijkt de C64 niet goed te functioneren. De tekst is verstoord en de gerapporteerde hoeveelheid vrij geheugen is 14528 bytes in plaats van de gebruikelijke 38911 bytes.
Ik plaats een z.g.n. diagnostics cartridge om een diagnose uit te kunnen voeren en ook hier is de tekst inhoudelijk verstoord met steeds veranderde tekens (zie tweede afbeelding).

Naarmate de tijd verstrijkt wordt de inhoud wel steeds beter, waarschijnlijk door opwarming van één of meerdere IC's.


Tijdens het doorlopen van de geheugentest loopt het programma vast met het volgende patroon:


Uit dit beeld valt af te leiden dat de RAM die gebruikt wordt voor het weergeven van de kleuren wel lijkt te functioneren.

Aanpak

De eerste stap na het openen van de behuizing is een visuele inspectie van de printplaat en componenten;

  • Zijn er verkleurde of verbrande plaatsen op de printplaat?
  • Zijn er elco's aanwezig die zijn opgezwollen of hebben gelekt?
  • Zijn alle IC's goed in de voet gedrukt?
  • Is er corrosie aanwezig aan de IC pootjes of connectoren?

C64 Printplaat uit 1983, in dit geval assy 250407 Rev. B

Wat opvalt is dat IC U8 en U12 in IC voetjes zitten, normaal gesproken zitten deze rechtstreeks op de printplaat gesoldeerd. Er heeft dus al eerder een reparatie (of een poging daartoe) plaatsgevonden. Verder ziet alles er visueel goed uit behalve dan dat de metalen afscherming van het VIC-II video gedeelte (rechts van het midden) ontbreekt. Deze dient niet alleen voor de RF afscherming maar ook voor de koeling van dit IC die behoorlijk heet kan worden.

Ook aan de onderkant van de printplaat zijn geen bijzonderheden te zien.
Dan is het zaak om naar de meest waarschijnlijke oorzaken te kijken van video weergave problemen, dit zijn:

  • De geheugen IC's
  • VIC-II IC
  • PLA IC
  • Logica IC's van het fabricaat MOS.

Testen van de geheugen IC's (U9 t/m U12, U21 t/m U24)

Om niet alle IC's te hoeven desolderen kijk ik eerst of er IC's zijn die erg heet worden. Defecte IC's kunnen veel warmte produceren. Ik meet dit met een infrarood thermometer. Een rode laserstip (zie foto) geeft aan waar gemeten wordt en ik vergelijk de temperatuur van de 4164 RAM IC's onderling. Ik meet hierbij geen noemenswaardige onderlinge verschillen.


De diagnostics cartridge is in staat om het geheugen te testen, maar dat is lastig af te lezen als het beeld zo verstoord is. Na voldoende opwarmen en een goed moment komt vaak het geheugen IC U9 als defect naar voren.

Deze heb ik gedesoldeerd, vervolgens een IC voetje geplaatst en het IC vervangen. Het 4164 IC heb ik getest met de Retro Chip Tester Pro en deze blijkt inderdaad defect. Het defect komt pas aan het licht bij het uitvoeren van een z.g.n. March test, dus een redelijk zeldzame fout.

De vervanging lost wel het probleem met de beschikbare hoeveelheid geheugen op, maar het beeld is nog steeds verstoord.

Testen van het VIC II IC (U19)

Het complexe 6569R3 VIC II video display IC kan het beste worden getest door deze te vervangen door een werkend exemplaar. Deze IC's worden niet meer geproduceerd en er is nog geen goed alternatief beschikbaar dus de enige optie is om een IC uit een werkende C64 te lenen. Dit kan vrij gemakkelijk omdat deze al bij assemblage in een IC voet is geplaatst. Vervanging lost  helaas het probleem niet op.

Testen van het PLA IC (U17)

Het PLA IC wordt ook niet meer geproduceerd, maar hier is wel een goedkoop alternatief voor ontwikkeld door Daniël Mantione: de PLA20V8 op basic van twee GAL20V8B IC's. Zie zijn website https://www.freepascal.org/~daniel/c64pla/ voor verdere technische details.

Het printje kan in de bestaande U17 IC voet worden gestoken. Helaas lost ook deze vervanging het probleem niet op.

Logica IC's van het type MOS

Andere veel voorkomende problemen worden veroorzaakt door logica IC's van het fabricaat MOS. Het toenmalige productie proces uit de jaren '80 bevatte fouten, waardoor deze IC's tegenwoordig massaal uitvallen. Om een C64 toekomst bestendig te maken raadt ik aan om deze IC's altijd te vervangen, ook als ze nu nog werken.
Op deze printplaat blijken er twee te zitten: U27, een MOS 7712 (equivalent aan 74LS08) en U14, een MOS 7709 (equivalent aan 74LS258). Vervanging van deze IC's door hun equivalent blijkt het probleem op te lossen.

De defecte IC's (1984)

Na vervanging van de defecte IC's heb ik ook nog koelribben geplaatst op de belangrijkste IC's: De 906114-01 PLA (U17), SID 6581 (U18) en de VIC-II  6567 (U19).

Testen van de C64

Bij het testen van de C64 wordt gekeken naar de resultaten van de diagnostics cartridge. Bekijk het Tynemouth blog voor meer informatie.
http://blog.tynemouthsoftware.co.uk/2014/10/commodore-64-diagnostics-test-harness.html 

Bij een een aantal IC's wordt BAD weergegeven. Dit betekent niet dat deze componenten ook echt defect zijn. Er zijn namelijk speciaal bedrade connectors nodig die op de C64 poorten worden aangesloten, waar ik niet over beschik. In plaats daarvan test ik het gebruik van de diverse poorten, cassette recorder, joystick, toetsenbord en het geluid door ze simpelweg uit te proberen.
Als enige kwam het slecht functioneren van het toetsenbord naar voren, sommige toetsen reageerden helemaal niet en bij andere moest er meerdere malen of met enige kracht een toets worden ingedrukt.
Oplossing hier is het reinigen van de kontakten. Het toetsenbord is eenvoudig los te schroeven uit de behuizing. 

Maar liefst 23 schroefjes dienen te worden verwijderd om de onderplaat te kunnen verwijderen. Ook de twee draadjes van de shift lock toets links worden los gesoldeerd.


Na het verwijderen van de onderplaat worden de toetsen zichtbaar die allemaal over twee geleidende vlakjes beschikken. Al deze vlakjes worden schoongemaakt met een wattenstaafje gedrenkt in 99,9% isopropanol.

Daarna is de printplaat zelf aan de beurt, veel van de goudkleurige vlakjes blijken vervuild en ook hier wordt alles met isopropanol schoongemaakt totdat ze weer mooi blinken. Het is veel werk maar het resultaat is een weer prima functionerend toetsenbord. 

De C64 is nu helemaal gerepareerd en geschikt voor vele uren retro plezier.

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.