CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: RetroCPC on 09:09, 24 May 20

Title: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 09:09, 24 May 20
Harking back to my teenage years with nostalgia I have very fond memory's of my heavily modified Green screen CPC 464 system :)

IMO this as an era when you could really have fun playing and programming computers - nowdays computers are so sophisticated they are nothing more then a closed "Black Boxes" no FUN!

I ordered a non working CPC6128 from Ebay which is making is way to me from the UK, also from Ebay I found a DKTronics Speech Synthesizer being sold as ZXSpectrum stereo speaker system!

In the Ebay listing I noted that the "ZXSpectrum stereo speaker system" had a DKTronics CPC style housing and the Expansion Connector was key'ed CPC style so I took a chance and purchased the unit (complete with the matching speakers).

So currently I dont have a CPC, but I do have a Speech Synthesizer for it :)

JUST FOR FUN, I wounder how far the design can be Gilded - yes I'm aware of the FPGA implementations... but I lack the skills to program FPGA's so I'll just keep to designing the ultimate SP0256 based Speech Synth - for no other reason then for fun, and that I can :)

I find it helps to "Step back" from ones daily projects and work on something completely different :) opens the mind to look at things from different angles :)

So first step is to trace out the schematic - I have it on paper now, and will publish here once I've fully drawn it up in CAD.

PCB's "Marked AM. V2 Speech - dk 1084 RJG", so I guess "RJG" is the designer - or atleast the PCB designer...


I started with simulating the "Analogue stage" and Low Pass Filter.

Its credit to the original DKTronics designer that the filter while simple  (A Sallen-Key LPF based around a single transistor EF stage) the LPF (Low Pas Filter) corner frequency is set at 1KHz, with -20.7db Attenuation at 5KHz (Which I understand is the FS/2 point of the SP0256 PWM output).

I'd post the LPF Schematics / Frequency response simulations here, but it seems I cannot directly upload image files onto this Forum..

Next step will be to perform some real measurements on the hardware once my CPC arrives and is up and running... Be interesting to see the noise measurements - I recall hearing system noises thorough the speakers as the CPU was processing - and the speech had birdy type background noise. - a sign of significant unwanted  modulation via PSU / Clock etc.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 19:56, 25 May 20
The intended filter for the SP0256-AL you will find in the datasheet section, see Application Notes. It contains a reference design.
And it sounds crap. To MY ear, the filter is way too low pass... it cuts out almost all higher frequencies giving it a very monotone dull sound. It sounds MUCH better and more crisp with a MUCH HIGHER cutoff frequency. You really need to experiment with the real thing and play with the filter values in order to get something that sounds good.


Remember the Amiga 500? That thing also had a low pass filter... and the first thing everybody did was disable that filter or at least put a switch in. Better to have a bit of sampling noise than that dull low lo-fi bassy sound.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 05:09, 26 May 20
Todays the day my CPC should arrive from the UK :) Once its here I'll need to repair it, then face the challenge of how connect the CPC to an LCD monitor.

Also I'll need away to get Data to it!!! maybe WAV file via cassette port then save to FDD (if I manage to repair the drive, apparently the belt has been replaced, but its still not working so it might be a speed issue - or worst) - until I get a ROM board designed...

Once I the CPC working I can start to taking some measurements of the DKTronics design - I'm really fascinated to see the clock phase noise on the SPO's output. Its not going to be helped any that DKTronics cheapen out and used the system master clock rather then the recommend crystal and internal oscillator... While the SPO has a 7bit modulator, I suspect that the system clock phase noise will eat into this resolution!

My plan is to reclock the PWM output with a clean clock / PSU - does it make sense for a 7bit modulator / speech synth? who knows, and that's the "Fun" part to me... nothing sensible at ALL! :D

WRT the audio B/W, from what I understand (bare in mind I've not had a chance to measure the outputs yet) - the output sampling rate is 10KHz, so I need some form of brick wall filter at 5KHz...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 05:20, 26 May 20
It sounds better if you choose the cutoff frequency at 18 kHz.
YES, the effect of the 4 MHz instead of the 3.14 Mhz is that the pitch is higher, and the phonemes do not come out as intended. That is indeed an audible difference, whereas the other effects are more like reading the future from the tea leaves IMHO.
None of this will change the quality of the speech output quality. Filter and clock frequency make a difference though.

EDIT: Here is an idea - how about making the cutoff frequency of the filter variable?
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 06:51, 26 May 20
To prevent aliasing products you need a brickwall filter at FS/2, if FS is 10KHz, then we need a brickwall LPF at 5KHz - thats going to be "Fun"

If the sampling rate (FS) is 10KHz, then there is no usable "Information" above 5KHz...

BTW, created a Dropbox account so I can post links for the Schematics etc.

Heres the simulation schematic of the DKTronics stock LPF:-

https://www.dropbox.com/s/93trqol4yk9rg4d/dktronics%20cpc%20speech%20synth%20lpf%20%20%20section.jpg?dl=0 (https://www.dropbox.com/s/93trqol4yk9rg4d/dktronics%20cpc%20speech%20synth%20lpf%20%20%20section.jpg?dl=0)

The schematic is drawn up to allow me to simulate the filter - to this end, the schematic has extra simulation "Components" to model the output impedance of the SP0256's PWM output pin, L / R Balance and Volume potentiometers & the input impedance of the LM386's. Some of these components are not physically present on the PCB but internal to the respective IC's.

Whats not modeled is the effect of looping though the CPC's Stereo Audio output via the flying lead / 3.5mm Audio jack

Resultant frequency response:-

https://www.dropbox.com/s/jef1p52yt5yaw3p/dktronics%20cpc%20speech%20synth%20sim.jpg?dl=0 (https://www.dropbox.com/s/jef1p52yt5yaw3p/dktronics%20cpc%20speech%20synth%20sim.jpg?dl=0)
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 07:33, 26 May 20
Quote from: RetroCPC on 06:51, 26 May 20
To prevent aliasing products you need to have a brickwall filter at FS/2, if FS is 10KHz, then we need a brickwall LPF at 5KHz - thats going to be "Fun"

If the sampling rate (FS) is 10KHz, then there is no usable "Information" above 5KHz...


We all learned about Shannon's Samplng Theorem in High School, but that's not the point. It just doesn't sound good if you do it that way. You really need to listen to it... your simulations are misleading. If you really want to create something that sound BETTER than the original you will actually have to leave the realm of simulations and listen to it. And hand tune the filters.


It is exactly these "sampling artifacts" above 10 kHz that brings the thing alive.  Every violin maker will tell you that.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 07:50, 26 May 20
Well is seems that we can both agree that NOS (well more correctly non filtered) DAC's sound better then DAC's with sharp FIR digital filters - I wonder how bad an analog brickwall sounds...

I'd be cautious of what others refer to as "Sampling noise" its my experience that they are infact forced to reduce the Audio bandwidth to help filter System / Clock / PSU noise rather then noise due to the limited sampling bitdepth & BW...

I have no recent experience of such a limited bit depth sampling (8bits) in the case of Amdrum, so I'm somewhat curious as to how it will sound once these unwanted modulation effects (PSU noise / Clock jitter modulation etc) are eliminated.

As a side note, actually I had an extremely poor education, and never learnt about Shannon's Sampling Theorem at High School... :)
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 09:15, 26 May 20
In many places it's referred to as Nyquist sampling theorem. You may have learnt about it under that name?

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Gryzor on 09:53, 26 May 20
I now realise my high school sucked. Not only did we never learn about Nyquist*, but they also shut down the school's reactor before we had a chance to make it go boom.

*hey, at least I got to read about it today, interesting indeed.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 10:07, 26 May 20
Quote from: Bryce on 09:15, 26 May 20
In many places it's referred to as Nyquist sampling theorem. You may have learnt about it under that name?

Bryce.

I'm fully are of Nyquist - Shannon Sampling Theorem :)

But for sure it was not taught at my "High School" - if others did at high school, then it just confirms once again how bad my education experience was!
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 10:08, 26 May 20
Quote from: Gryzor on 09:53, 26 May 20
I now realise my high school sucked. Not only did we never learn about Nyquist.....

Your not alone !!! :)
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 10:15, 26 May 20
Seems I was also not taught how to use forums correctly, I've just discovered the method to directly upload image files etc :)

Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 10:49, 26 May 20
I have a real DKTronics Speech Synth (the ROM version) and a spectrum analyser with tracking generator. So if you want me to do any real world analysis let me know and I'll try to find some time for it. Those simulation results look pretty realistic though, I can't imagine the real device will vary much from those values.

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 12:04, 26 May 20
10% resistors & ceramic caps in the LPF fc  is going to be "Loose"  :laugh:  but whats going to impact the audio performance will be the Clock Jitter /PN - especially as the SP0256 is clocked directly from the System Bus clock...

I suspect the Clock PN will be so high that it will be well within the dynamic range of most spectrum analyzers - - I 'd hazard a guess with non clock related spurie say -40dB down..  (I'd not be surprised if its even worst) What would you guess?

The Clock PN is never going to be better then the noise on your PSU rails... trying to improve the clock performance without first improving the PSU is going to be kind of academic ....

In many ways, this is a good teaching aid to demonstrate the ill effects of PSU / poor clock distribution etc... but this is not to take anything away from what was expected at this price point in its time. Ok, so the Amstrad Speech Synth implemented local 3.12MHz Clock, but its just going to be modulated by PSU AM noise so while it will have better performance, its still going to be pretty poor.

I recall how one could listen to the CPC CPU processing via the background noise of its internal speaker... :) The the AY sound chip is clocked by the ASIC which divides down the 16MHz System clock to 1MHz - just for fun I will to perform a spectrograph on the AY Sound Chip clock input to see how much of the CPU processing action we can see on the clock noise floor... :)  - what would be a good guess? noise floor @ -40dB to -50dB down?

I remember a magazine once published a program to generate sound from your ZX81 by tuning a radio to a certain frequency and performing program loop routines to play "Music" in the radios background noise!!!

Today's generation have no compensation of how much computers / digital electronics have developed in the past 40 years!!!
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 14:07, 26 May 20
To be fair to the developers back then, they were most likely under serious pressure to design down to a price, so they would have been given only a few cents above the price of the essentials (Case, SPO and connectors) to get the rest done. Considering those restraints, they did a great job.

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 14:27, 26 May 20
Quote from: Bryce on 14:07, 26 May 20
To be fair to the developers back then, they were most likely under serious pressure to design down to a price, so they would have been given only a few cents above the price of the essentials (Case, SPO and connectors) to get the rest done. Considering those restraints, they did a great job.

Bryce.


Yes for sure, I wasnt being critical of the designers, in fact you have to admire building a Sallen-Key LPF around a single Emitter follower transistor - reminds me of those 5 transistor "Walkie Talkies" we had as kids, designed around 5 or 6 transistors for TX & RX + Morse key :) claim 5 mile range - yet you where lucky if they worked over 100m :D

Crazy that they (everyone was the same at the time) costed down so much when the cost would have been in the molded case, PCB, connectors + SP0256... kind of a false narrative to then save penny's on a crystal / ceramic resonator...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 14:36, 26 May 20
Quote from: RetroCPC on 14:27, 26 May 20

Yes for sure, I wasnt being critical of the designers, in fact you have to admire building a Sallen-Key LPF around a single Emitter follower transistor - reminds me of those 5 transistor "Walkie Talkies" we had as kids, designed around 5 or 6 transistors for TX & RX + Morse key :) claim 5 mile range - yet you where lucky if they worked over 100m :D

Crazy that they (everyone was the same at the time) costed down so much when the cost would have been in the molded case, PCB, connectors + SP0256... kind of a false narrative to then save penny's on a crystal / ceramic resonator...

You mean those walkie talkies whose range was battery-level dependent and drifted all over the radio spectrum? :D Had one too. Our TV screen went white if you pushed the talk key in the living room.


Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Gryzor on 14:49, 26 May 20
Quote from: Bryce on 14:36, 26 May 20Our TV screen went white if you pushed the talk key in the living room.

It just triggered your resident Poltergeist.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 15:24, 26 May 20
I got in serious trouble for this once, when my father was recording a film he wanted to see and I inadvertantly caused a large part of the recording to be white.

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 18:04, 26 May 20
So my CPC6128 arrived - and there's a 95% chance that its original owner has since died of lung Cancer - and to add to the seriously strong smell of nicotine the unit has been stored in a damp cellar or some such... A really NICE combination..

Oh - and to add to this, at sometime in its life it looks like coffee has been spilled over the keyboard...

I've stripped the unit down, PCB's is in good condition (an unbelievable amount of old solder flux on the underside of the board) - I'll rinse it under water to remove the top layer of dust and grime, then drop the whole PCB into an ultrasonic cleaning tank...

I'm now so jealous of those of you with with show grade units :) all I can say is that my room now stinks like an rotten smokey old pub... at this rate I might have to start worry about my own lungs!!!

A quick question, can the CPC6128 read PCW256 CPM disk or will it result in a disk error? The gentleman I purchased the unit from said he replaced the FDD drive belt, but it still did not read disks - however the disks he sent with the unit are apparently from a PCW256... so maybe the drive works, but the disks are formatted differently?

If its not the fact that the disks are CPM disk format, then I also noticed that the FDD drive motor does not spin as freely as I would expect - its rotation seems stiffer then you'd normally encounter with such sized DC motors ... are sticky Drive FDD motors a known issue with the CPC? The Motor is still connected to the PCB so maybe theirs some electric braking (via diodes or some such) even when the drive is unpowered?
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 19:16, 26 May 20
Nothing that 10 litres of isopropanol can't solve!

As for the disks, not a chance, PCW disks are double sided and the CPC drive only has one head. If you install a dual head drive as B, then you can use ParaDOS to read them. As far as the drive itself is concerned, remove the belt and check that all the gunk from the old belt was removed from the wheels. The motor turns at 300 RPM, so it should sound differnt to PC floppy drives. Grab some original disk from someone here or ebay and then give it a test. If it still doesn't read, then let me know and I can give you some tips on getting it working.

Bryce.




Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 20:44, 26 May 20
Bryce,

Thank you for the reply - WRT your suggestion of isopropanol, is that to clean the unit of the nicotine / damp smell?

I have an ultra sonic tank that will clean the PCB, I'll first dissolve the old flux with isopropanol - I find isopropanol just dissolves the flux residue into a thin sticky film that coats the PCB, it then needs to be cleaned off somehow and the best cleaner I've found is SWA Flux foam cleaner from Electrolube.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 01:35, 27 May 20
This is what the original designers thought the filter should look like.
I'd be interested in seeing the results of this compared to the filter you are designing (simulation runs).


Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 01:43, 27 May 20
Quote from: Bryce on 14:07, 26 May 20
To be fair to the developers back then, they were most likely under serious pressure to design down to a price, so they would have been given only a few cents above the price of the essentials (Case, SPO and connectors) to get the rest done. Considering those restraints, they did a great job.
Come on... the developers used the reference designs already provided by GI for the SP0 and figured out how to make a simple transistor amplifier. That's 101 electronics, even in the 70s. I don't think that took them more than 3 days...

IMHO most of the work is in the software, today and even back then. See, the hardware of the whole CPC was thrown together in a couple of weeks. They even threw away the intial 6502 design and switched to the Z80 because they wouldn't have been able to meet their deadlines otherwise, given the availabilty of the Z80 BASIC...

Most of the development labor went into the RSX extension for the DKtronics for sure, not the (simple) hardware.

I think they did a great job, but it is really not an engineering miracle that was produced under extreme pressure or whatever. It is a standard design that every 2nd semester EE student should be able to accomplish in 3 days.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 19:27, 27 May 20
Quote from: VintageAdvantage on 01:35, 27 May 20
This is what the original designers thought the filter should look like.
I'd be interested in seeing the results of this compared to the filter you are designing (simulation runs).


Sorry for the delay in getting back to you - I'm self-teaching myself C++ and all I can say is that I feel REALLY REALLY dumb...

Anyway, took some time out to give my mind a rest from C++ and sim'ed the SP0256 Datasheet LPF - and WOW it rolls off really early, with the -3dB point at just 336Hz, its -12dB at 1KHz and -36dB at 5KHz!!!

Makes the DKTronics LPF look positively HiRES by comparison :D

Attached is the Sim result + schematic just in case I made a stupid error with a component value...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 19:46, 27 May 20
Interesting find. That might explain why it sounded like crap when I implemented the filter from the reference design. Maybe the DKtronics indeed sounds "sharper" and less dull. How about the Amstrad SSA-1, btw? What filter were they using?

Btw, I have both the SSA1 and the DKtronics and another unfiltered implementation, I could record all of them and we could actually listen to the different filters.

Not to mention the elephant in the room... both the SSA1 and the DKtronics came with loudspeakers, and that's probably the biggest factor in the overall sound. I remember my old signal processing prof sometime said - forget about filters, the analog world will take care of it anyway (and by that he meant the loudspeaker basically) 

So maybe we need skin effect thick high quality copper cables and hifi speakers? **snake oil alert** :D 
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 20:14, 27 May 20
I've got no experience of the Amstrad SSA-1, if there's a schematic somewhere I can Sim the analogue section...

I cleaned my newly purchased (from Ebay UK) CPC6128 mainboard in the ultrasonic tank - I might have cooked it a little as the cleaning solution has clean off the coloured bands of some of the resistors!!! the SWA cleaning solution in the tank really brings a really nice shine to the solder / tin, so the PCB edge connectors now look like new - nice and shiny, not 35 years of oxidation! after removing so much flux from the PCB (before I dropped in in to the US tank)  - I can say its never looked so clean :)

Atleast the PCB does not smell anymore of cigarette smoke... the smell was overpowering, I could still smell it in my hair when I went to bed last night!!!

Oddly enough, it appears that the smell seems to migrate into the cables the worst, they are the hardest to get rid of the odor...

The case is too large to fit in my Ultra sonic cleaner - so I'll have to drop it in the bath once the Wifes' not looking...

Keyboards stripped - still work to do, maybe I should have also cleaned it in the ultrasonic tank...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 20:19, 27 May 20
Here you go:
http://www.cpcwiki.eu/index.php/File:Amstrad_SSA-1_Schematic.png (http://www.cpcwiki.eu/index.php/File:Amstrad_SSA-1_Schematic.png)
You can tell that this is ALMOST the reference design.. some capacitors have different values.
I am wondering if DKtronics diverted from the original filter so much because they have a higher pitch due to the 4 Mhz clock instead of the 3.14 Mhz.

Is that SPICE you are using, or something online like this:

https://www.partsim.com/simulator (https://www.partsim.com/simulator)

(that also uses SPICE)

Congrats on cleaning it!
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 20:30, 27 May 20
Yes sim'ed using spice, I use an older software package but IMO the best UI.

For more complex design I have to use Altium - but its UI is so unbelievably bad that I'd rather lobotomize myself then use it for any length of time... I cannot understand how anyone can think its UI is acceptable - what are they thinking!


I'll Sim the Amstrad LPF later - I'm already back working on the C++ code :( - but with the SpaceX launch livestream on in the background - good luck guys! weather looks rather grim for a launch today...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 22:31, 27 May 20
Quote from: RetroCPC on 20:30, 27 May 20
but with the SpaceX launch livestream on in the background - good luck guys! weather looks rather grim for a launch today...
Had to get out of the capsule - more luck next Sunday!  :D No launch, but lunch at home is also nice  :laugh:

Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 23:45, 27 May 20
Quote from: RetroCPC on 19:27, 27 May 20

Sorry for the delay in getting back to you - I'm self-teaching myself C++ and all I can say is that I feel REALLY REALLY dumb...

Anyway, took some time out to give my mind a rest from C++ and sim'ed the SP0256 Datasheet LPF - and WOW it rolls off really early, with the -3dB point at just 336Hz, its -12dB at 1KHz and -36dB at 5KHz!!!

Makes the DKTronics LPF look positively HiRES by comparison :D

Attached is the Sim result + schematic just in case I made a stupid error with a component value...

Nice to see that they didn't take the lazy route and use the reference design.

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 15:54, 28 May 20
Quote from: Bryce on 23:45, 27 May 20
Nice to see that they didn't take the lazy route and use the reference design.

Bryce.


Unlike Amstrad who basically used the same LPF circuit configuration, but modified to use common component values they had in their production arsenal....
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 16:04, 28 May 20
Quote from: VintageAdvantage on 19:46, 27 May 20
How about the Amstrad SSA-1, btw? What filter were they using?

Ok, so I just simulated all 3 variants, the SP0256 Datasheet filter (Red Curve), DKTronics (Green Curve) and Amstrad SSA1 (Blue Curve).

I've normalized the gain on the plots so that the frequency response curves can be overlaid.

The Amstrad LPF implements the same circuit arrangement as shown in the SP0256 datasheet but with the component values rearranged to "Common" production values... so its response is very similar to the original App Note.

DK'tronics have atleast made some effort...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 18:27, 28 May 20
Quote from: RetroCPC on 15:54, 28 May 20

Unlike Amstrad who basically used the same LPF circuit configuration, but modified to use common component values they had in their production arsenal....

Don't knock it. That's efficient DfP (Design for Production). You'd get a bonus for something like that in the industry.

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 20:58, 28 May 20
In case somebody else want to try this kind of simulation - here is a good tutorial using LTspice (which is free)

(Simulation of an LPF)

https://youtu.be/FR29PyRc_Tg
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 20:58, 28 May 20
Quote from: Bryce on 18:27, 28 May 20
Don't knock it. That's efficient DfP (Design for Production). You'd get a bonus for something like that in the industry.

Bryce.


Only if you work for a penny pinching company... I feel sorry for anyone who has to work in such an environment!

Where DfP is more important then performance - it makes me sad... !
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 20:59, 28 May 20
Quote from: VintageAdvantage on 20:58, 28 May 20
In case somebody else want to try this kind of simulation - here is a good tutorial using LTspice (which is free)
https://www.youtube.com/watch?v=X8xdeQfKhx4 (https://www.youtube.com/watch?v=X8xdeQfKhx4)


LTspice is good, very good if you want to simulate switching supplies etc - but its schematic editor is SOOO poor - A simple task such as editing / moving a track or deleting a component is made needlessly difficult...

LTspice has alot of traction with the DiY community, so lots of device models for older components (tubes) etc.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 21:01, 28 May 20
But it's free...
Sparkfun has a whole series of tutorials about it
https://learn.sparkfun.com/tutorials/getting-started-with-ltspice/all
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 21:11, 28 May 20
Took a break from my misadventures while teaching myself C++ and had a first stab at the improved SP0256 LPF filter (Yellow Curve)...

B/W is extended to almost 4KHz x4 the DK'Tronics B/W which was the highest of the lot... the new filter is x10 higher the the Amstrad and SPO256 App Note designs.

I've tried to still achieve decent filtering above fs/2 (above 5KHz) while still having an extended speech B/W...

The original filters + my first stab...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 21:28, 28 May 20
Quote from: RetroCPC on 21:11, 28 May 20
B/W is extended to almost 4KHz x4 the DK'Tronics B/W which was the highest of the lot... the new filter is x10 higher the the Amstrad and SPO256 App Note designs.

Great! At that point, you can abandon the filter altogether and let the loudspeaker do the frequence cutoff anyway  :D
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 12:52, 29 May 20
Quote from: Bryce on 19:16, 26 May 20
The motor turns at 300 RPM, so it should sound different to PC floppy drives. Grab some original disk from someone here or EBay and then give it a test. If it still doesn't read, then let me know and I can give you some tips on getting it working.

Bryce.

Bryce, is there any method to enable the FFD drive motor so that its constantly spinning, then I can measure the output from the index photodiode to confirm 300RPM... Unless there is an easier way to confirm 300RPM without testdisks?  I thought I'd ask first before digging into the issue deeper..

Is there a testpoint on the FDD PCB that outputs the Photodiode signal / motor speed signal?
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 21:09, 29 May 20
Seems like bringing pin 8 Low on the Drive should enable the drive motor - and the index signal is on Pin 2? (Drive must also be selected by bringing the Drive Select line Low).

Looking at the 3" drive schematic, it seems that the Drive motor is not gated with the drive select line?, so both drives (in a dual drive system) will rotate when any drive is selected - is this correct, or am I missing something?

Maybe this behavior was changed with later drives (I'm looking at the schematic in the DDI-1 FD service manual) - this is for sure an early FD drive version with an external motor speed regulator - later drives had the speed regulator circuit internal to the motor body.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 21:48, 29 May 20
Quote from: RetroCPC on 21:09, 29 May 20
Seems like bringing pin 8 Low on the Drive should enable the drive motor - and the index signal is on Pin 2? (Drive must also be selected by bringing the Drive Select line Low).

Looking at the 3" drive schematic, it seems that the Drive motor is not gated with the drive select line?, so both drives (in a dual drive system) will rotate when any drive is selected - is this correct, or am I missing something?

Maybe this behavior was changed with later drives (I'm looking at the schematic in the DDI-1 FD service manual) - this is for sure an early FD drive version with an external motor speed regulator - later drives had the speed regulator circuit internal to the motor body.
That's correct - Motor Enable is shared by all drives and usually spins up all drives no matter what DSx.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 23:45, 29 May 20
VA,

Thanks for the confirmation :)

Wanted to power-on my CPC6128 for the first time this evening, but I found I have nothing that will accept an RGB input! I hoped I had a Scart to HDMI "upscaler" but it turns out its only wired to the composite video signals on the Scart connector :( ...

Wondering if by buffering the H/V Sync signals from the 6845 CRT controller (pins 39 & 40) and taking the RGB signals to an older 4:3 VGA LCD monitor if this would work? Does anyone have experience with trying this?

EDIT:-

So probing the CPC's H/V sync signals (15.628KHz / 50.091Hz) you require an LCD monitor that supports 15KHz frame rate, and these are not that common today.

So it would appear I have 2 choices, a line doubler or purchasing a 15KHz monitor.

WRT the monitor, as far as I'm aware the best option still available today is the BENQ BL702A 17" 5:4 LCD monitor, unless anyone has any better suggestions?

What are others here using (not CRT) with there CPC systems?
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 15:34, 31 May 20
If you have a disk, you can use this program to test the RPM: http://www.cpcwiki.eu/forum/applications/dsktest-v0-1b/

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 23:57, 31 May 20
Bryce,


I currently have no way of getting Data to my CPC6128.

I managed to adjust the FDD to 5Hz (300rpm) using a scope connected to the Index sensor- it was just slightly under at 4.98Hz - I suspect not slow enough to cause an issue.

The Drives still not reading the disks that came with the system (EBay Auction), but I suspect that they are CPM formatted - one disk has Oxford Pascal written on its label...


If the disks are CPM format, can they boot directly?, or do I need to first load the CPM OS (with disks I don't currently have)?

Its been 35 years since I last used a CPC :)

I manged to get a crude B/W picture by using a composite video to HDMI converter - good enough to prove the CPC powers up :)
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: rpalmer on 02:23, 01 June 20
RetroCPC,
There is no "CP/M" disk format. The disks may have been formatted on a different CP/M system which is foreign to the CPC.The formats the CPC can understand with AMSDOS are:
Data Format (180K, 9 Sectors/Track, 40 Tracks, First Sector = &C1, 2K for directory)
System Format (180K, 9 Sectors/Track, 40 Tracks, First Sector = &41, 2 Reserved Tracks for OS such as CP/M, 2K Directory)
Vendor Format (Same as system with out any OS in the reserved tracks)
IBM Format (160K, 8 Sectors/Track, First Sector = &01, 2K directory)
ParaDOS also extends Data/System to 80 Tracks and Double Sided disk (720K) were the drive supports such and to also allow for 800K (10 Sectors/Track).
If you have no functioning floppy drive, you might get further with a GOTEK (or similar) and use DSK files (representing simulated disks). I am assuming there is nothing wrong with the internals on the motherboard.

If you want CP/M to start there are ROM versions which can be used.

Lastly, you can use the tape port to load programs, although this would be a right pain to load anything of substance as they will take a very very long time.

rpalmer
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Audronic on 07:34, 01 June 20
Quote from: RetroCPC on 23:57, 31 May 20I manged to get a crude B/W picture by using a composite video to HDMI converter - good enough to prove the CPC powers up :)



Add a 270 Ohm resistor from the +5volt on the Power socket to Pin 16 (Scart)


Good Luck


Keep Safe


Ray
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 09:01, 01 June 20
Quote from: rpalmer on 02:23, 01 June 20
If you have no functioning floppy drive, you might get further with a GOTEK (or similar) and use DSK files (representing simulated disks). I am assuming there is nothing wrong with the internals on the motherboard.

rpalmer,

Thank you for your concise reply. Good question about the Motherboard - I have no idea as I've just purchased it from EBay - sold as Non Working. The seller had replaced the drive belt - but it was still unable to read the disks he had onhand.

I suspect the discs might not be for the CPC, rather the PCW or CPM... (I have no CPM OS disk to boot into CPM to see if this is true).

I do have a couple of Gotek's but I'm not sure what firmware they have (they where originally purchased to upgrade some other equipment).

From what little I understand, its possible to flash new software into the Gotek - the units I have are standard - no extra OLED display or rotary encoder (not sure if Gotek's in standard form will work)?

Is there a good site that explains how to fit these to the CPC - I'll need to make a cable adapter for starters, then figure the software (I can flash new software if require) - and then where to get the software for the PC side (is any needed for the Gotek?) and then a good location to find the Amstrad .DSK files...

I think getting the Gotek working is best longterm solution anyway...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 09:43, 01 June 20
Quote from: Audronic on 07:34, 01 June 20

Add a 270 Ohm resistor from the +5volt on the Power socket to Pin 16 (Scart)

Good Luck

Keep Safe

Ray


Hi Ray,

The SCART to HDMI converter I'm using is only a temporary solution to test that the CPC powers on - I'm using generic "Cheapie" that upon closer inspection has no internal connection to the RGB signals - supporting only Composite video input. The Aspect ratio mode selection pin is grounded on the converters' Scart input connector...

Just to emphasize for others who might drop into this thread later, This is NOT a recommended converter.

I'm going to try the BENQ monitor + "VGA" connector modifications... once the monitor arrives :)
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: CanonMan on 10:29, 01 June 20
Quote from: RetroCPC on 09:01, 01 June 20
Thank you for your concise reply. Good question about the Motherboard - I have no idea as I've just purchased it from EBay - sold as Non Working. The seller had replaced the drive belt - but it was still unable to read the disks he had onhand.


Replacing the drive belt isn't always enough on its own.


At the very least, you should make sure the pulleys have been cleaned (some people skip this!) and check all the PCB connector pins for dry joints - it's quite common.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 21:31, 02 June 20
CanonMan,

I'll take a look at the pulleys and clean them. There where a few doggy looking solder joints especially on the connectors - some of the main QFP60 controller IC joints look alittle suspect so I'll also go over these - many of the IC's legs don't appear to be wetted during the Wave soldering process, although they dont appear to move when poked...

While I was rummaging around I found one of those tiny I2C OLED modules that can be retro fitted to the Gotek USB drive emulators so I might give that a try.. its a question of finding the time...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 05:06, 23 June 20
Just a quick update WRT to my CPC advantages and getting to work on a few CPC hardware designs:-

I decided to bypass my CPC FDD issues and I just ordered a "AMSTRAD CPC 6128 - GOTEK - 3D PRINTED MOUNT - OLED DISPLAY - FLASH FLOPPY" from Ebay, This also solves how to get software into my CPC in the first place (I understand I can just download .DSK files from the internet onto a USB flash drive and then plug into the Gotek "Drive").

Second issue is that I dont have a suitable monitor - so I ordered BenQ BL702A 17.0 inch LED Monitor which is meant to work the CPC's "PAL" 15KHz frame rate - the idea is to modify my CPC with a "VGA port" - tapping the HSync / V Sync signals from the 6845 CRT controller and using the standard RGB signals... I'm not sure if this will work... but if it does I hope this will be the simplest solution - with no extra signal loss / degradation from an external Scan rate converter.

If this "VGA" modification  does not work out, then as a backup plan I've also ordered a "Gonbes GBS-8200 CGA (15kHz)/EGA (25kHz)/YUV/RGBS to VGA HD Video Converter 8200" again from Ebay... Apparently this PCB can be modified with an external MCU to optimize the boards settings for the CPC...

Shame there does not appear to be a simple display solution for the CPC - as someone whose just getting back into the CPC scene since 1980's this is being my biggest headache... (I'd rather not go back to a chunky / hot CRT monitor)...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 06:34, 25 June 20
Quote from: RetroCPC on 05:06, 23 June 20(I'd rather not go back to a chunky / hot CRT monitor)...
That's what I thought too when I started again. Had (and still have, for the most of it) hooked everything up to a TFT with a converter / upscaler.

However, CRTs add A LOT to the retro experience. Much more fun with a CRT... so maybe you'll change your mind one day again  ;)
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 07:46, 25 June 20
I'm tempted into looking into designing a true digital monitor interface for the CPC - with no conversation from Analogue to digital... this will give a pixel accurate display, my eyes are very sensitive to fizzy pixels...

Windows 10 display scaling is really poor - WindowsXP with its pixel perfect display is so much clearer to my eyes - especially when working on a PCB layout etc...


WRT to a CRT monitor, my little man cave is 5m x 5m (external dimensions) I simply have no space for a CRT monitor... I have 4 dogs who are attached to my every move... they insist on each being in there own baskets on my already limited bench space!!! so I work sandwiched between dog baskets... a CRT monitor is not happening!
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Audronic on 07:51, 25 June 20
Yes be tempted


Ray
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 08:00, 25 June 20
Quote from: Audronic on 07:51, 25 June 20
Yes be tempted

Ray


Thinking of a small PCB that intercepts the signals to the Amstrad ASIC and maybe the CRT controller (for access to timing) - maybe this timing info (Pixel clock) could be recreated in the FPGA / MCU... as I lack VHDL skills, I'd rather use an MCU then FPGA (although this is a really a task for a small FPGA, something like an ICE40 / 50) - maybe I could use a smaller XMOS... it be a way to hone some XMOS programming  skills....


I'd need to first understand how the CPC maps the colour info into memory...  luckily we only have 1.5 bits, 0, 50% and 100% for each RGB colour...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 08:03, 25 June 20
I use a Commodore 1084 CRT with SCART input. It's obviously deeper than an LCD monitor, but doesn't really take up more space otherwise.

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 22:08, 27 June 20
Bryce,

I've had time to wire up a VGA connector + rats nested a buffer to provide the H/V sync from the 6845 CRT controller and now have a stable image on the BenQ LCD monitor but the colors are wrong.

The first powerup text is Yellow but with a very dark blue background (almost black really) - not the typical lighter blue background as seen on the CRT - also on Oh Mummy the expected Yellow background is washed out very dark yellow - with black ghosting edges, could be some kind of video overload... Odd as the text on powerup looks OK (Yellow)

I suspect I have either issues with termination or incorrect video signal levels for a VGA monitor...

Do you have any hints suggestions?

I'm not sure of the correct video RGB levels / termination required for the CPC - maybe I should more correctly say for VGA...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: Bryce on 14:03, 28 June 20
What circuit are you using for the buffer?

Bryce.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 14:15, 28 June 20
Quote from: Bryce on 14:03, 28 June 20
What circuit are you using for the buffer?

Bryce.

I'm only logic buffering the H/V Sync from the 6845 (via a couple of 74HC04 gates connected in series for each Sync signal)... the RGB signals are taken directly from the CPC's Din socket - I've since read that the signal amplitude for VGA is 700mV terminated into 75ohms (150ohms Zout from the source, 150 ohms @ the VGA monitor).

I need to take a closer look at the CPC video circuit...

Found this in the hardware manual:

The input will be the same as the earlier GTM65 versions, i.e. impedance 470 ohms to 0V, analogue voltage input which is linear between 0.8V (Black) and 1.75V (Peak white).
The CM14 colour monitor needs to handle a sixteen level input on each of RGB. The new monitor must present an input impedance of 100 ohms to 0V.

This does suggest I need to pad down the signal to 700mV for VGA, I need to scope the signals to better understand whats going on...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 15:38, 28 June 20
More info on VGA video levels and termination:

Distributing the near end termination resistance is an attempt to reduce reflections at the VGA connector.  However, it's sloppy.  Looking from the VGA output, the nearby resistor looks like nothing more than a resistor, and can be ignored.  Then you see 50 ohm line, then 150 ohms in parallel with the 75 ohm coax and far end termination at the monitor.  150 ohms at the connector in parallel with 75 ohms = 50 ohms.  The 50 ohm line is matched and does not "see" the transition into the 75 ohm line. 

The nominal video level for a VGA monitor is .7 VPP, with black at ground.

All is well if the monitor itself is well terminated.  This is not always the case.  Reflections coming back on the 75 ohm line encounter first, 150 ohms paralleled by the 50 ohm line, or 37.5 ohms, yielding a nasty negative re-reflection.  However, at the far end of the 50 ohm line, the signal will meet the 150 termination at the chip, which makes another nasty but positive reflection.  Keeping the distance between these mismatches short helps to overlap the reflections to achieve some cancellation.  The time skew of several ns between them leads to spikes of noncancellation traveling back to the monitor that are hopefully beyond the monitor.
Title: Interfacing CPC6128 to BenQ BL702A VGA monitor
Post by: RetroCPC on 11:57, 29 June 20
Scoped the Video signals to the monitor, and levels appear correct, but there is so much noise (especially Ground bounce) &  reflections as a result of poor termination, signal integrity is a real mess.

I think one of the problems is the higher video B/W of high resolution monitors is just magnifying the CPC's poor by today standards video output...

The CPC6128 lacks a Ground plane and the ULA the produces the video signal is a distance away from the video output connector resulting in long incorrectly impedance matched RGA PCB tracks + huge ground noise between the ULA ground pins and video output connector...

Pondering moving the ULA, clock circuit and video interface to a small 4 layer daughter board with improved layout to see if this helps to improve video quality...

Attached is a relativity correct photo of the LCD screen  - really odd dark horizontal bars and noise is clearly visible... the vertical bar to the left of the picture is just a result of underscan, the BenQ BL702A monitor cannot overscan - despite supporting 15KHz, its not a great solution...
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 12:13, 05 July 20
Spent more time then I should have understanding the CPC 40010 Gate Array video out.

In the end its very simple - and has 3 states:-

100%: Active pulled high via a very non linear "resistor" I suspect its more likely simply the RdsOn of the Pch device. Measures 75 Ohms when Lightly loaded, nearer 100 Ohms when loaded.


50%: this is Tristate (no active drive) - so the voltage is determined by external resistor values, this allows one to trim the colours.


0%: Active low, pulled down via ~ 22 ohms.


There is significant spectral noise on the GateArray outputs - with significant ground bounce, Jitter and other modulation, adding to the poor signal integrity is the PCB's layout  lack of any ground plane and controlled impedance's which significantly worsens the video signal.

Without video buffering (which will not help with the spectral quality / noise) I can see no way of achieving a fixed output impedance (and thus correctly terminated signals) to drive a VGA monitor (or really any monitor if we where being pedantic).

Now that I understand the GateArrays output stage, I can design an adapter PCB to provide a correct impedance / signal level, low phase noise video output.
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: VintageAdvantage on 02:42, 15 October 20
Is the DKtronics done yet?
Title: Re: Gilding the DKTronics Speech Synthesizer
Post by: RetroCPC on 02:42, 14 November 20
I got sidetracked working on improving the CPC6128 Video quality (I now have a decent picture quality) - then my day job got in the way...

Still plan a Gilded Speech Synth / AmDrum PCB just for the fun of it...

I'll get back to it when I complete my current PCB design...
Powered by SMFPacks Menu Editor Mod