The housing I created for my ACE is basically the housing as used on the ACE 4000 model.
This model was was made from injection molded parts, as opposed to the first ACE which was made using vacuum-forming.
The difference is clear. The edges are smoother, and the top section just sits on the bottom section like the lid of a shoe-box. Five plastic pins then fix the top to the bottom, similar to how it was done on the ZX-80. Now i was actually quite pleased with my version, but recently Alejandro reached out to me. Apart from the fact he is also buiding an ACE clone, he also owns an original one. And he offered to send me some exact measurements on the housing so I could modify my model in such a way that it woud fit an original PCB and look more like the first ACE.
So thats what I did:
Its not perfect yet, and though it should fit my own PCB, it looks like the connectors on the original PCB do not line up, but its getting there.
And it looks like it just fits my build plate:
Lets see how that works out.
But before I got round to printing it myself, Alejandro already had it printed at a professional printing service, and that looks really good:
Here it holds the original ACE circuit board and keyboard. According to Alejandro the measurements are just a little bit off, but that does not seem to be a real problem here.
Now the ACE is complete and functional I've started do do some programming on it. Which is what it's made for, after all. And so I run into an unexpected problem: the noise.
The PCB switches have a nice, firm click. Which is good as feedback, but soon becomes annoying to other people in the room who are not so much into computing...
The problem is that the PCB in the hollow plastic housing does a good job of amplifying each button click, so it is actually really loud. I've tried to dampen it by stuffing some soft cloth under the board, but this does not make much much difference.
So I've started looking for 'silent' switches. The first ones I found are these, sold by AdaFruit:
These are 'Soft Silicone Top 6mm Switches'. So I ordered some, but found out that though the top is indeed soft, the click is not. It is equal, or maybe even sharper than the one I used.
Next I tried these 'Soft Tactile Button, 8mm'
Which are indeed silent and produce no click at all. But the footprint is slightly bigger than the standard 6x6 mm switches, and they are slightly higher so they are not a 1:1 replacement.
My system works fine, but it appears that others are building my design too. And to assist in fault finding it is probably a good idea to document some signals so other builders can compare their results with mine.
Oscillator
Video Section
Basis of the video signal is the 50Hz signal on U11-10. In the pictures below this is shown in the top, and used to sync the oscilloscope. Video signals were recorded with a LCD monitor connected.
U11-10 (50Hz) - U25-11 (Sync)Base of Transistor Q5. Note the scale is 50mV/DivBase of Transistor Q4 - ( VIDEO ) Cathode of D14, video output with a line of characters on the screen Close up of video signal
Though it finally works, the video output is not perfect. On my LCD screen it looks like all characters move sideways one or two pixels, about every 2 seconds. Very annoying. But it could be a LCD monitor issue, just not coping with this non-perfect AV signal. So I connected it to my TRS-80 monitor just to see if it would work better with a device that originates from the same era.
Not really. Apart from the image being shifted to the left, all lines move slightly left and right like a wave is passing through the text.
So, 50.0 Hz is important !
Probing around with the oscilloscope I find the screen update frequency on pin 10 of U11. This is exactly 50.5 Hz, which might be the problem since that is exactly 0.5 Hz off from the required 50Hz, which could explain the 2 seconds period in the wave. I actually did not think this would be a problem on a modern monitor, but it looks like it is.
The reason for this frequency to be off is the fact that I used a 6.5536 MHz crystal instead of the original 6.50 MHz, since that was the closest I could get from Reichelt. Maybe not such a good idea after all. A quick search shows that 6.50 MHz crystals are indeed not very common, but DigiKey does actually sell them.
So I ordered 10 pcs. (they are not expensive). And indeed, after swapping the crystal the video image is rock steady and super clear.
( I just noted that @Ken Yap actually warned me for this when I started the project. And at the time I also answered to him that I could get the right crystal at Mouser or DigiKey. I just forgot about that later..)
After deciding that I needed to change all logic chips from 74HC series to 74LS, I had to wait a week for the arrival of the new set. Nowadays I order all this from Reichelt Elektronik, a German company that has an amazing stock, and supplies components in any wanted quantity to anybody, business or private. ( Professionally I'm used to Farnell and RS, but these companies prefer only B2B) Great company, but delivery just takes 4 to 7 days.
So after swapping all the HC chips for their LS equivalent, I had high hopes when switching it on. But alas: nothing changed ! :-(
Well, the oscillator wouldn't start due to the different impedance, but after I just changed this specific chip back to HC, it worked again. All signals do seem a bit cleaner, but it does not solve the problem. The screen still looks like this:Again: it does react to the keys, so everything seems to be functional, and this confirms my earlier suspicion that the fault must be in the writing or reading of the video memory. Which it was. Another check of the schematics showed that I tied the /CS signals of both video RAM chips together. Obviously not correct. And after fixing this by disconnecting the CS pin on one RAM chip and wiring it to the correct port, the computer showed me this: YES !. That is what I was looking for !. Now let's try the only command I know: VLIST.
EUPHORIA !. Finally, after more than 18 months, it works. Now I still have to check the cassette interface, attach the speaker, and solve an annoying wavy pattern in the video image, but all that will be peanuts compared to the path I've traveled so far.
Th RAM adapter PCBs have arrived, and assembling was easy. So it's time for the next step. After inserting them, I switched on the power, and got this on my screen:
Looks like the video circuit is working, but the content seems incorrect. Turns out the that Z80 does not get a clock, so the processor is not running at all. Which means that the video circuit on its own is capable of generating this pattern, which I did not expect.
But why is there no clock? Tracing the signal from the oscillator, it seems to stop at the base of the transistor that should buffer the signal :
I can see the signal on the base, but there is nothing on the collector. How can ? This is the most basic transistor circuit possible, it should work ! Turns out it doesn't, because I underestimated the frequency involved. 3.5 MHz does not sound like a a high frequency these days, but it is way beyond the capacity of a 2N2222. When used as a switching transistor, the switching times go up to 250nS, which is just too slow. That's why the original Jupiter uses a 2N2369 which has switching times of 12 nS. I did not have that available, so I decide to use a BS170, a N-Channel mosfet which should be capable of switching up to 200 MHz. And that works great. Now the clock on the Z80 is square and clean.
After switching it on again it looks like something happens. The screen is now filled with a different pattern and there are some unrecognisable blobs at the bottom row. But typing on the keyboard does change the content of the bottom row, and when pressing enter I can see the screen scroll, although the general pattern changes. The fact that it responds to the keyboard, and that this changes the screen tells me that the processor is working (after all, it is scanning the keyboard). So the problem must be in the video circuit itself, or the connections to the video RAM chips. After meticulously checking all connections from ant to the RAM, and comparing them (again) with the original schematics I found no mistakes or missing connections. Probing around with the scope however shows a lot of noise an glitches, especially around the 74HC166 shift register. Extra decoupling does not change anything, so I was thinking adding some kind of filtering to the data lines.
Then I realised that I used all 74HC series logic on my board, while every schematic (including mine) has the 74LS series. From my past experiences I do know that the HC and LS series are definitely different. The logic (obviously) is the same, but since the HC series are all CMOS, and the LS uses low power schottky their electronic behaviour may be different. It could well be that using the 1K series resistors in the data lines may not be a good idea for HC variants.
So I could try to solve that, or simply order a full set of 74LS chips so I can simply exchange and compare. After all, these chips are very cheap (between 0.25 and 1 Euro a piece). It only means I have to wait another week before the next test run.
Meanwhile, while going through the Jupiter ACE section on the K? Forum I also noticed that someone else had problems with the video, which were solved after removing C8. This capacitor is there to extend, or clean up , the 'WAIT' signal. Apparently a wrong WAIT signal can delay the Z80 too long so the timing for writing to the video memory is wrong, which could cause a screen similar to what I got. Maybe worth trying, if swapping the chips does not work.
After half a day of soldering, the board looks like this:
Everything fits like a charm, and it really starts to look like a Jupiter ACE. So it's time to start testing, and carefully insert all chips.
Step 1: Check what is + and - on the power connector. It turns out the Tip is ground, and the sleeve is +. Found myself a leftover power supply (12VDC/1.4A) and mounted the 3.5 mm jack plug. Once connected the LED goes green ! This is always a good start. After that I measured the supply voltage on all main chips like the Z80 and some of the 74 series. All seems well.
So I first mount U23 74HC86, which is part of the oscillator, so now we should the 6.5 MHz on pin 8.
Which does not happen. There is a clear oscillator signal (with the right frequency) on pin 9, but its simply not big enough:
The signal gets bigger if I replace R2 with a 470K, just enough to get the signal on pin 8 going:
Still looks a bit wacky, but I think that's also a limitation of my oscilloscope which has a maximum sampling rate of 25 MHz so there are only 4 samples per cycle.
Inserting U9: This is the clock signal divider, so there should be a clock on pin3 of U9:
Well, at least it starts looking like a square wave now. So lets insert the next two counters, U10 and U11. Which seems to work as well, so lets mount all other chips. All good, until I came to inserting the RAM chips:
OH NO !! The footprint is wrong. It took me about half a second to realize what was wrong: I selected the DIP28 footprint for this DIP24 chip. Not something KiCad will warn you for, after all the DIP28 has plenty of pins for a DIP24. After about 10 minute of quiet contemplation (...) I decided that I would have to make some kind of adapter with 28 pins on one side and a 24 pin socket on the other so I could re-route all pins from 12 and up.
Good plan, but after struggling with the first four wires, and realizing I would have to do 3 adapters in total I gave up. Opened KiCad again and designed an adapter PCB in about 30 minutes. Checked with the PCB manufacturer and found that it would cost €19,- to have 15 pcs manufactured.
So we'll have to wait another week until these boards arrive and the testing can continue.
This is probably the most used title on all Hackaday, since it is something that happens to most of us at a certain moment in our project.
Exactly 8 days after I sent my order, they actually arrived. And they are beautiful ! I chose the blue colour to set mine apart from all other Jupiter ACE clones. At least, that's what I thought until I realized that the Minstrel 4th is also blue, though mine have a more blue-greenish tint.
What did struck me at first sight was how close the pads of a TO92 transistor are. I actually thought they were connected, but fortunately a continuity check shows they are not. And a very close inspection using a magnifier shows that there is indeed some separation between the pads.