Ik ben op zoek naar een ROM dump (27c256 eprom) van deze curvetracer. Heeft er iemand dergelijke module en bereid de rom (zit in een voetje) te dumpen. Ik wil sponseren met een T48 eprom programmer als je er geen hebt ( of de waarde ervan op amazon )

De HM8042 was een slordige 30 jaar geleden ontworpen door Václav Müller. Ik kwam een post van hem tegen in dit Facebook topic, waar iemand om de adapter (HZ820) vroeg.
Wellicht dat je hem kan contacteren?

Overigens zou ik zelf ook graag de firmware hebben. ;-)

Bedankt. Ik had die ook al gevonden :)

Ik heb het meeste van de werking al uitgevlooid aan de hand van de service manuals van de 8042 and 6042 ( er zitten enkele grote kemels in die schemas. Gelukkig staat het printonwerp in de 8042 manual, en dat liegt niet.)

De schema's zijn hertekend en ge-de-spaghettificeerd wat de werking een gans pak duidelijker maakt.
De bedoeling is niet om het ding klakkeloos te kopieren.
Veel componenten zijn nu unobtainium, of verschrikkelijk duur, of alleen de krijgen van dubieuze bronnen. (De A/D onderandere...)

Er zitten ook nodeloze complexiteiten in ( zoals het gedoe om om met twee opamps en een analoge een niet geinverteerd, en geinverteerd signaal te creeren. Dat kan met 1 opamp en een J-Fet. )

Het leuke aan dit apparaat is de "cursor" je kan een sweep kiezen en een cursor plaatsen. De uitlezing geeft je dan de parameters op dat punt. Je kan ok 2 cursors zetten bijvoorbeeld de steilheid meten.

Ja, dat kan tegenwoordig allemaal digitaal, maar dit ding heeft een charme.

Het gase processor deel ga ik vervangen door een Atmega1284 met Bascom-AVR.
Al de shift registers vliegen er uit en gaan op i2c (als ik I/O tekort kom, anders direct). Display wordt een 4x16 LCD over i2c zodat alle parameters in 1 klap kunnen getoond worden. Geen gepriegel met menus). De DAC wordt rechstreeks parallel gestuurd.
De A/D wordt de interne A/D van de Atmega en geen multiplexing .

Alle weerstanden zijn SMD en 0.1% (voor de prijs van 0.1% hoef je niet meer op te kijken. die zijn nu spotgoedkoop in 0603. De DAC is nu een DAC0802 . Een verbeterde versie.

Er gaan bepaalde blokken in dit ontwerp veranderen. (zoals de opamp inverters).
Er komt ook een Z-output ( blanking) voor de scoop.

Werking (voor zover ik uitgevlooid heb)
----------------------------------------------------------

De sweep generator is een stroombron met j-fet die een condensator oplaadt. Een transistor kan die condensator ontladen. Twee opamp-comparatoren zetten de start en eindwaarde. De 555 timers zijn niks anders dan 2 flipflops. Ze gebruiken de 555 zelf niet als timer.
Aan de start van de sweep sturen ze een interrupt naar de processor. Die start een interne timer op dat moment.
De sweep kan gestopt worden door de analoge vermenigvultiger (AD833), die de powerlimiter maakt (een funktie die op haast alle amateur toestellen of zelfs de elektuur en ELV ontwerpen ontbreekt), of stroomlimiter.
Een paar relais schakelen de stroommeetweerstanden om.

Cursor en readout : De processor krijgt een interrupt als de sweep start ( de processor is een "slave" en niet in controle van de sweep, die draait zelfstandig in de analoge wereld)
De processor start een timer. Als die verstrijkt stuurt de processor de cursor marker (CRS signaal) wat een verstoring op de Y as veroorzaakt. Je krijgt daar een piekje te zien. Op dat moment leeft de processor ook de A/D uit. Ze doen waarschijnkijk slechts 1 meting van 1 kanaal per sweep. Je hebt dus 4 volledige curve sets nodig om all 4 kanalen uit te lezen. Vandaar dat het display van dit ding "traag" reageert.

wacht op trigger
zet curve DAC op volgende waarde
start timer (waarde ingesteld door rotary encoder)
als timer expired :
als huidig curve = geselecteerde curve : read adc en zend marker.
goto "wacht op trigger"

doe ondertussen de berekeningen , toon waardes en reageer op de "knoppekes"

De rom zou me in staat te stellen een en ander te verifieren (de correcte "understanding", en het verifieren van de veranderingen in het schema die ik maak.)
Daarna kan ik "cleanroom" code schrijven in Bascom die niks gemeen heeft met de 8051 code.

Zéér geïnteresseerd in dit project!!
Ga je het ding her-ontwerpen als plug-in module, zoals de 8042, of ga je er een zelfstandig apparaat van maken, zoals de 6042?

Standalone. Niet idereen heeft dergelijke hameg chassis. en de lege chassis zijn duur en haast onvindbaar. Standaard Hammond kastje.

Aangesloten voorlopige schemas. ( er word nog druk aan gesleuteld. het ontrafelen kost tijd. Ik heb ook de schemas van de 6042 en ben bezig de wijzigingen uit te vlooien. de 6042 is recenter en ze hebben een aantal problemen opgelost zoals het gebruik van een actieve clamp in de current steering brug)

Ik probeer de schemas te tekenen met zo weinig mogelijk crossings. Alle functionele blokken zijn omkadert en hun functie benoemd. Er komt nog tekst en uitleg bij elk blok. Het doel is te "leren", niet klakkeloos na te bouwen. Alles is tegenwoordig knip en plakwerk.

ik heb een aantal blokken gesimuleerd in LTspice. En een deel gebreadboard.

doelstellingen :
- Enkelzijdig SMD bestukte print.
- alleen enkele thru-hole zoals the LM675 , de transfos, de zekering, de 115/230 schakelaar en sommige condensatoren.
- 4 layer PCB (JLCPCB) met V-score ( afbreekbaar. 1 print ligt horizontaal , de andere vertikaal achter het frontpaneel ) . Frontpaneel zelf is een PCB.
- SO verpakkingen (1.27mm) geen gepruts met 0.5mm pitch. makkelijk soldeerbaar.
- 0603 of groter. Analoog pad is 0.1%. Die weerstanden zijn spotgoedkoop tegenwoordig.
- Processor waarschijnlijk atmega1284 in DIL ( misschien dual footprint )
- code in BASCOM AVR (als het een AVR processor wordt. ik ben er nog niet uit wat ik ga gebruiken. Ofwel Bascom, of Mikroe of Swordfish of Oshonsoft of MMBasic. Keuze aan processoren zat.). De processor code is een 'slave' en voert geen aktieve controle uit in het apparaat. De processr schakelt alleen relais en analog muxen en leest een ADC en toont resultaten/instellingen op display. Hij neemt geen aktief deel aan de meting. Dat is wat mij aantrekt in dit apparaat. Alles is tegenwoordig verscholen achter 2 miljoen lijnen code met 500 libraries waarvan niemand snapt hoe het nog werkt.

wijzigingen:

- Analoge scoop uitgangen BNC achteraan , correct afgebufferd met ESD clamp
- Z (blanking) uitgang
- extra clamping en protecties
- Voeding 115/230 volt met simpele Hammond transformatoren (digikey/mouser/tme beschikbaar)
- Aparte relais voeding en digitale voeding
- Sommige componenten zijn :"geselecteerd" . ofwel voor prijs ofwel voor performantie (of beide). De DAC en de analoge muxen zijn andere types.(pin en functie compatibel maar met andere specificaties)

- ik moet nog eens door de weerstandswaardes gaan en de variatie reduceren. JLC rekent aan per "reel" die je op de pick en place zet. het is goedkoper om drie 0.1% weerstandjes met "kromme" waardes (511 ohm) te gebruiken voor de leds ( totale overkill), dan een extra rol van 470 ohm 5% te laden op de pick en place)
Het idee is om JLPCPCB ( of PCBway) alle weerstandjes en transistortjes te laten plaatsen. Je hoeft dan zelf alleen de opamps, dac analog mux en de thru-hole te plaatsen. Die zijn allemaal in SO (1.27mm) verpakking dus makkelijk te solderen. Ondanks dat ze allemaal nog in DIL beschikbaar zijn is de vraag : hoe lang nog... Vandaar de keuze voor SO.

filosofie:
1 knop - 1 functie. Geen gepriegel in menus (behalve voor statische setup. dingen die je niet instelt tijdens meting)
De rotary encoder is alleen voor cursor controle (links/rechts) . Trace selectie heeft zijn eigen knopjes.

2x20 karakters LCD zodat alles in 1 klap zichtbaar is.

2 uitgangskanalen met ALTERNATE mode.
Dit is een functie die ik al al lang in gedachten heb voor een curvetracer. De mogelijkheid om 2 transistoren visueel te matchen zonder dat je een geheugen buis of digitale scoop nodig hebt.

In de standaard versie zijn de kwee kanalen met relais uitgevoerd. Je kan manueel omschakelen.

In de iets duurdere (scheelt pakweg 15$) versie worden OptoMos relais gebruikt. Dit zijn vermogen optocouplers die de Vc/g en V/I-b/g omschakelen tussen de twee kanalen. (Ixys CPC1907 en LCA701)

Door de sweep te alterneren kan je de curves van twee transistors boven elkaar plotten en zo direct visuaal vergelijken.

Schema's , layout als source beschikbaar ( Gerber en Altium formaat. Kicad en andere CAD kan dat lezen dus geen probleem voor iemand die geen Altium heeft)

Hi free, leuk je hier weer actief te zien, da's wel een poosje geleden volgens mij? Leuk project, aan de eprom kan ik je niet helpen maar ik lees met belangstelling mee.

Ja, lang geleden. Trouwen , Covid , Verhuisd, Kindje :) . Ondertussen een paar keer van Job veranderd (STmicro 23j -> Tesla 10j -> Astra space 1j -> Archer Aviation 1.5j-> Figure.AI ).

Voor hobby was er niet veel tijd.

Update : (aangesloten)

sources : https://github.com/vincent-himpe/CurveTraceNew

Er is nog flink wat werk aan... Maar 't geeft een idee.
Ik ben er nog niet uit welke processor ik wil gebruiken. De ATMEGA1284 heeft maar 2 externe interrupts.

Ik zou er 4 willen.
1 voor de sweep start
1 voor keyboard interrupt
1 voor rotary interrupt
1 voor rotary click interrupt.

atmegax64 lijkt me wel wat maar die is in tqfp. ik had dip gewild... Ik probeer zoveel mogelijk 0.5mm pitch te mijden. 0.8 zou leuk zijn.
Alhowel de i/o expanders ook in 0.5MM zijn. maar die kan ik door JLCPCB laten zetten.
Ik zou de processor willen kunnen loskoppelen zodat ik een 8051 module met de ROM er aan kan hangen.
Misschien testheader met 0 ohm weersandjes....

CT9042.PDF

Hola, attachment is verloren gegaan ...

Fijn dat je weer terug bent, free! CO voelt nu voor mij weer helemaal als vanouds. :)

Op dinsdag 26 augustus 2025 17:16:28 schreef free_electron:
In de iets duurdere (scheelt pakweg 15$) versie worden OptoMos relais gebruikt. Dit zijn vermogen optocouplers die de Vc/g en V/I-b/g omschakelen tussen de twee kanalen. (Ixys CPC1907 en LCA701)

Die LCA701 heeft wel een veel hogere Rdson dan de CPC1907. Gaat dat de meting niet te veel beïnvloeden?

Feature request: interface voor de HM8148. :P

De ATMEGA1284 heeft maar 2 externe interrupts.

"The ATmega1284 supports pin change interrupts on all I/O pins, but because they are grouped into ports, the ISR must check the bit in the PCMSK register to determine which pin actually triggered the interrupt."

Die ISR moet je zelf schrijven, en heeft dus wat overhead door dat je het PCMSK register moet controleren. Weet niet of dat voor jouw toepassing een probleem is.

ATmega1284 heeft 3 externe interrupts:

IO Pin. Interrupt
RXD1 INT0
TXD1 INT1
D10 INT2

Eindelijk nog eens een schema dat proper getekend is. Ja, ik ben bewust dat hier meer moeite in kruipt dan wat er nu gangbaar is met die individuele componenten die zonder veel samenhang op een blaadje geflapt worden, echter zijn die schema's zo goed als onleesbaar/onbegrijpbaar.

Dit schema hier is zoveel meer duidelijk. Ook binnen 10 of 20 jaar kan je dat nog zo direct lezen. (wel jammer dat het geen KiCAD is hé, maar ge kunt niet alles willen ;) )

De ATmega1284 is een leuke, echter is die nu toch een beetje passé ? Tijd voor iets moderner met meer van alles voor hetzelfde geld zou ik denken. Een RP2040 of ESP32 of iets in dat genre.

Ik ben fan van de RP2040, waarbij ik een core gebruik voor "het echte" werk en de andere voor knopjes en displays. De PIO's (Programmable Input Output) zijn ook erg handig.

De externe interrupts zouden ook geen probleem moeten zijn:

The RP2040 microcontroller supports external interrupts on almost all of its General Purpose Input/Output (GPIO) pins, specifically the 23 digital pins (GP0-GP22) that are exposed on the Raspberry Pi Pico. You can configure these pins to trigger interrupts on a rising edge, falling edge, change in value, or when the pin is held low or high.

[Bericht gewijzigd door Roland van Leusden op (55%)]

Op woensdag 27 augustus 2025 10:04:20 schreef Swake:
EDit schema hier is zoveel meer duidelijk. Ook binnen 10 of 20 jaar kan je dat nog zo direct lezen. (wel jammer dat het geen KiCAD is hé, maar ge kunt niet alles willen ;) )

Op dinsdag 26 augustus 2025 17:16:28 schreef free_electron:
Schema's , layout als source beschikbaar ( Gerber en Altium formaat. Kicad en andere CAD kan dat lezen dus geen probleem voor iemand die geen Altium heeft)

Geen probleem dus. ;)
Het nadeel van dingen als de RP2040 en de ESP32 is m.i. vooral dat die dingen vanwege het OS nogal een flinke opstarttijd hebben. Een gewone µC is bij power-on meteen bedrijfsklaar.

RP2040 is een MCU, er een OS op draaien is compleet optioneel. Geen opstarttijd.

Wel niet DIP, tenzij je een module gebruikt ipv de kale chip. Dan misschien best een optie?

Wellicht ‘overkill’ voor deze toepassing maar erg leuk om mee te spelen. Goede documentatie ook.

Op woensdag 27 augustus 2025 08:31:12 schreef MNM(tm):
Fijn dat je weer terug bent, free! CO voelt nu voor mij weer helemaal als vanouds. :)

2nded!

Op woensdag 27 augustus 2025 11:37:45 schreef Lucky Luke:
RP2040 <knip> Wel niet DIP

Laat OP daar nu net een oplossing voor hebben in de vorm van een conversie PCB'tje naar een 64-DIP formaat.

Anderzijds, de meeste andere componenten zouden ook in SMD worden uitgevoerd begreep ik. Kan je ineens alles laten bestukken in Chinaland bij de bestelling van de print.

wel jammer dat het geen KiCAD is hé,

Dat is een discussie die we niet meer gaan voeren. KiCad kan Altium bestanden lezen. Dus importeer het en go.

Ik werk al sinds 1986 met Altium ( Toen Protel Autotrax op 1 floppy disk. Versie 1.61). Geen enkele van mijn huidige collega's was toen al geboren (LOL). Iets anders gebruiken is verspilling van mijn tijd.

Einde discussie.

RPxxxx /ESPxxxx zijn geen optie vanwege geen BASIC compiler. ( Ja er is annex RDS maar dat heeft problemen. )

Wifi/ USB en zelfs de uart zijn niet van doen. Er is geen nood aan toegang via externe bediening.

Ik koos bewust voor deze aanpak. Hang het aan een (analoge) oscilloscoop en go.

Er zijn al tal van computergestuurde curvetracers op de markt. Zelfs op aliexpress kan je er vinden met ingebouwd TFT. De focus daar ligt op de software. Ik heb een gloeiende hekel aan al die projecten tegenwoordig waar alles verscholen zit achter 2 miljoen regels code en 500 libraries waar niemand een bal van snapt. Ook de keuze voor BASIC is een discussie die we niet gaan voeren. De processor is courant. Porteer het zelf naar je tool van keuze.

Bij deze is het andersom. De software is er alleen om een cursor te sturen .

De code is slechts een paar kilobyte. In het origineel ontwerp gebruiken ze een 8031 ZONDER externe ram. Die processor heeft 128 BYTES interne ram. En daar doen ze het mee.

Princiepe :

Processor slaapt

Interrupt van keyboard : lees i2c en update relais en multiplexers/ leds . dit is puur lookup table-> sleep
Interrupt van rotary encoder : update marker locatie en/of trace select en/of trace count variabele -> sleep
Interrupt van sweep start :
- incrementeer DAC gebaseerd op sweep nummer. bij hoogste sweep nummer, reset sweep nummer of schakel naar ander kanaal.
- als huidige trace = gekozen trace : Start interne timer met waarde van marker locatie
- >sleep
Interrupt van timer: zend marker, lees 4 adc , doe wat rekenwerk en update LCD -> sleep

Dat is het ongeveer. Meer doet de processor niet. Je kan dit ding eigenlijk sturen zonder processor. hang wat schakelaars aan de relais en analog muxen. Alleen de marker is wat complexer. maar je zou die ook kunnen maken met wat simpele up/down counters en een comparator.

Ook de I2C bus is eigenlijk overbodig als ik een processor pak met veel I/O maar een TQFP100 of 144 is lastig te solderen voor veel mensen.
De I2C maakt ook dat ik slechts een paar signalen nodig heb voor dat ganse frontpaneel. En ik gebruik een I/O expander die een interrupt kan genereren bij een state-change op zijn ingangen. Dus mij processor hoeft alleen iets te doen als er daadwerklijk een state change is. Als er alleeen FF gelezen wordt zijn alle toetsen los -> slaap. Als er iets ander gelezen word weet je direct welke toets er ingedrukt is. Debouncing is al afgehandeld in the IO expanders ( de state change cleart alleen als je ze uitleest. Dus tegen dat de processor een read doet is de bouncing al lang gepasseerd )

Bepaalde keuzes zijn gemaakt om de code zo klein en transparant mogelijk te maken.

Op woensdag 27 augustus 2025 08:31:12 schreef MNM(tm):
Die LCA701 heeft wel een veel hogere Rdson dan de CPC1907. Gaat dat de meting niet te veel beïnvloeden?
Feature request: interface voor de HM8148. :P

de LCA is alleen voor de basis stroom en gate spanning. 0.3 ohm RDSon weegt niet op tegen de 100 ohm stroommeet weerstand. 3ppm....

die printer werkt alleen als je een Hameg digitale oscilloscoop hebt... en die zijn ook onvindbaar.
Ik heb er verschillende keren ene gekocht op ebay. De eerste heeft UPS laten vallen zodat de buis gebroken was. De tweede had een defect kanaal. In de derde rammelde er vanalles binnening. vijzen , hoogspannings weerstand .
End of experiment.

Ik heb twee philips PM33x4 combiscopes en een Trektopnix TAS475 als analog machines.

Mijn alleerste scoop die ik (nieuw) gekocht heb was een Hameg 604. Veel plezier aan beleefd in de 80 en 90-er jaren. Die hameg machienes waren top. Robuust , simpel en begrijpbaar (schematisch gezien).

aan't overwegen om een AVR64DA64-I/PT te gebruiken.
- 5 volt werkspanning
- veel interrupts
- i2c
- veel i/o zodat ik een aantal i/o expanders er uit kan gooien
- updi programmeren via een simpele usb- uart (cp2101). maakt da je geen externe programmer of bootloader (bootloaders zijn een kip en ei probleem. je moet hem er eerst op krijgen... via een programmer) nodig hebt.
- ondersteund door bascom en GCbasic ( Great cow basic )

Op woensdag 27 augustus 2025 19:02:36 schreef free_electron:
[...]
die printer werkt alleen als je een Hameg digitale oscilloscoop hebt... en die zijn ook onvindbaar.

Alleen de HM205 en de HM308, volgens de manual van de printer. De eerste heb ik (al moet ik daar nog steeds de interface kabel voor maken, de instabiele intensiteit en nu ook de stuiterende horizontale afbuiging fixen), de HM308 staat nog op mijn verlanglijstje.
Het enige dat de printer doet als je een uitdraai wilt maken is rechtstreeks het storage geheugen van de scoop uitlezen naar eigen RAM en dan printen.
Ik dacht dus om de printer onafhankelijk te maken van de scoop en het ding z'n data direct uit de tracer laten lezen.

Sfeerbeeldje ...

https://github.com/vincent-himpe/CurveTraceNew/blob/main/smallCT9042.png?raw=true]

Dit is geen render maar een 3d view direct vanuit Altium

Schemas bijgewerkt.
- nieuwe frontpanel layout .
- PCB frontpaneel componente geplaatst
- cover PCB voor frontpaneel beletterd.
- knopjes lcd, leds en rotary encoder gekozen een footprtins aangemaakt met 3D model.

- mockup van display layout gemaakt.
niet alles kan er op in 1 keer , dus is er een nieuwe knop : Page. Staat je toe om door de parameters te scrollen.

banaan bussen zijn 2mm.

Drukknopjes zijn E-switch TL1105 met 1R kapjes.
Rotary knop is OKW (niet de encoder, die is Bourns )
De leds zijn 2mm pinhole LED. Body is rechthoekig maar heeft een uitstekende "mast" die door frontpaneel steekt.
Power knop is momentcontact. Hoofdschakelaar achteraan bij IEC plug. Toestel is in standby ( Door middel van klein hulpvoedingkje. ) Processor schakelt uit.

PDF is te groot geworden om up te loaden.

Staat hier : https://github.com/vincent-himpe/CurveTraceNew/blob/main/CT8042/PDF/CT…

Wordt 4 lagen.

place en route is begonnen. schema's zijn nog niet helemaal af , maar ik moet een idee hebben waar ik alles kan neerpoten. vooral de transfo's en de voeding

https://github.com/vincent-himpe/CurveTraceNew/blob/main/3d.png?raw=true