04/18/2021 at 20:02 •
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.
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.
12/07/2020 at 21:04 •
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..)
11/29/2020 at 19:18 •
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.
11/16/2020 at 08:58 •
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.
11/01/2020 at 12:53 •
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.
10/27/2020 at 21:02 •
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.
10/26/2020 at 20:16 •
While working on the Jupiter ACE project I was amazed, over and over again, by the power of the available free software tools.
First there is DesignSpark Mechnical. An extremely powerful 3D CAD program from RS Components. It's a trimmed down version of SpaceClaim Engineer, a truly high-end CAD package. Which also means it misses some features, like directly placing texts, the option to mirror 3D objects, and the possibility to export to STEP files. Which sometimes makes makes it harder to get some things done, but usually there is a workaround. It does however support import of images or photo's. Which can be place and rotated in 3D space. Something that was tremendously helpful when drawing the Housing.
Second, of course, there is KiCAD. The free, open source, multi platform, Electronics Design package. With the release of version 5 it has really become a serious piece of software. It works flawless, and I've not seen it crash anywhere during my whole design process. The work flow has significantly improved since the previous version, and the available libraries are extensive. OK, you still cannot drag a component on your PCB while keeping the traces connected, but that's my only (minor) complaint. Tools like 3D view and STEP export on the other hand are truly amazing, and the only reason I could make an image as shown above.
And last, the PrusaSlicer. A fork of the (already pretty good) Slic3R. Since Prusa Printers forked it, and put a (full time) team of software engineers on it it has grown to be awesome. Adaptive layering, advanced move and align tools, customizable support, 3MF project support, its got it all.
10/17/2020 at 11:32 •
Now the routing is complete, and the moment where I have to send the design in for PCB production, it's time to go over the last details.
Someone mentioned that not all chips have a decoupling capacitor, and that could lead to problems. So I went over it and placed some extra 100nF wherever there was still space.
Next, I added the letters / figures to the keys so they would be visible on the silkscreen. I first made all text in font-size 2x2, which seemed big enough on the screen. But when I printed the board 1:1, they appeared a bit small. So I found that the KiCad PCB file format is actually text, and that it was really simple to do a search / replace action to change the font size.
Checking the few footprints I was not sure of. Especially the transistors are notoriously difficult to get right. Countless are the boards where you have to mount the transistors backwards, on the bottom or worse: with two pins crossed. I also had my doubts about the 3.5 mm connectors for power and audio, but they matched perfectly on the paper printed layout,.
Zone fill for Vcc and GND
Added a few more 'zone fills' for VCC and GND. So far I routed all power lines using 1mm traces, but that is not much and could possibly cause problems with the (relatively) power hungry TLL chips. So adding a bit of copper here will definitely help.
Check the outlines
I found that I had two board outlines drawings. The first one was the one that I drawn by hand in KiCad itself on the Edge.cut layer, and the second one is the version that I imported from the mechanical drawing (which was more accurate) on the 'Dwgs.user' layer. So I removed all lines from the 'Edge.Cut' layer, and moved all relevant lines from the Dwgs.user layer to Edge.cut.
Add Diode and LED
As someone mentioned that the power plug polarity on the Jupiter ACE is different from that on the ZX80/81, I suppose its a good idea to add a diode to the power line. And then, it's always good to have a LED on the board so you can immediately see if the power is actually present.
So, finally, I think it's time to send it to China, and have some boards made. I chose Seeed Studio for that. I've used them a few times before, and the boards are always very nice. The whole process of sending the files and placing the order is described on their site, and it is super simple. And they have their own Gerber viewer, so you can quickly see exactly what the boards will look like.