Hello,I populated the video section of the Apple-1 computer with ICs (left the computer section out) and when I turn it on, I get the following scanning screen for about 2-3 seconds which then turns into a screen with solid white columns (second image). Does anyone know what could be the issue? I've checked a lot of the pins of each IC, trying to trace from the video out to see if I could spot any weirdness but so far I'm not sure what could be the issue. The only thing that is strange to me is that IC D8 (74161) is always HI for pins 12, 13, 14 except when LOAD is enabled for that IC, which is when it drops to LOW for a split second and then goes back to HI. My assumption is that, since it's always HI, the lower dots are displayed for each character and the upper dots are displayed for a split second. The other address pins for the 2513 are all HI except for pin 22 which is LOW. It appears to be showing an underscore but it's always showing the lower dots only which explains the white columns. I just have no idea why it's doing that.
Additionally, why it would be showing an underscore instead of a blinking @ and _ is another question.
There have been several threads on Applefritter on how to debug the video section, the trick is to find them ;-)
They all work by pulling an IC in the video data path and then "inject" a low or high signal in a pin of the now empty socket.
The "tool" to do this is a wire with a microhook at one end (to connect to GND - low - or VCC - high, +5V). The prevent possible damage from slipping / wrong connection, use a serial 220 Ohm (or so) resistor on the other end of the wire which also serves as the "probe tip" and the "handle" to grab it.
Start at the end of the video data path, testing the 74166 shift register. To access its inputs, pull the 2513 character generator from its socket.
Now you can access the relevant 74166 inputs, and by observing what happens on the screen you can check the 74166. You would get thin vertical stripes depending on which input is touched to a "low" logic level. Open TTL inputs count as logic "high".
Once you know the 74166 works, replace the 2513 and pull the 2519. Now, inject your test signal at the 2519 output pins, but as these have pull down resistors to -12V, you need to inject a logic "high" - connect the microhook to +5V. Same would apply to inject signals at the output of an empty 1404/2504 shift register socket ... these have pulldowns to -5V.
With this method you can check which signal in the video pipeline disappears where. And this points to the bad IC (the culprit).
Note that all too many 2519N of Y1977 and Y1978 date codes are bad and if they fail they typically show a screen full of '@'.
About 1/3 of those I had failed in burn-in. I later found a lot of 2519B with a Y1976 date code (yeah !) which were much better, less than 1% failure rate. So my conjecture is that somewhere in Y1977 there may have been a problem in the Signetics wafer fab which was not fully resolved, and sodium ion contamination (i.e. from human sweat soaked skin flakes shedded by the operators) is the most likely culprit. The sneaky feature of sodium ion contamination is that these ICs having "mobile ions" may initially work, and pass wafer sort and end test, and then fail in the field, after a few hours or days of operation. Back in the 1970s this was a huuuge issue in the semiconductor industry wordwide, affecting all MOS processes. Intel was a pioneer to analyze the root cause and this led to the famous "bunny suit people".
The 1404/2504 are the next common offender, but in this case, you would see properly formed characters, but the wrong ones.
Using one of my Apple-1 IC kits with 100% tested and burned-in ICs can save builders these troubles, provided that the solder job is done well, and use of good IC sockets (the "vintage" flat profile TI sockets seen in the original are NOT reliable, they were unreliable even when new, 50 years ago, and they did not improve over time sitting in some warehouse shelf for decades).
Alas, my Apple-1 IC kits are sold out, and the burn-in rigs were dismantled when my IC stock ran out years ago. But a few of the "critical" ICs were rediscovered recently, in a very small quantity, so I can still make a kit occasionally, using one of my regular Apple-1 builds as a burn-in platform. (Send a PM if you want such a kit, but sorry, no shipping to the EU due to their recent, fascistic, evil customs office crackdown on non-RoHS electronic components, even when sent as a private parcel from hobbyist to hobbist).
- Uncle Bernie
Hello Uncle Bernie,
Thank you so much for responding. I would have purchased a kit from you but none were available for sale so I had to source all the parts myself.
I tried doing what you suggested (using the microhook) but I can only go so far with it. So far I was able to verify that the 74166 is okay (it produces vertical lines), the 2513 character generator is okay (able to produce characters based on the selected address) and the 2519B is okay (able to produce an output after pulling down any of the inputs to ground. I stopped at the 74157 (C4) because I kept getting unpredictable results (sometimes I would get the screen to show a random character and most times it would just default to the white columns after showing some random characters for a second or two). I tried replacing all of the 74161s and 74160 and got the same results.
At this point I'm not sure where the culprit could be but I ordered another set of ICs to see if I can find the culprit but they're still on the way. I'm using AM2804 instead of 2504 - maybe that's the issue?
Thanks!
In post #3, 'kalinchuk' wrote:
" I'm using AM2804 instead of 2504 - maybe that's the issue? "
Uncle Bernie comments:
Most of my IC kits came with AM2804, and these never caused any problem, also, very few failed in burn-in. Very good quality as usual for AMD !
But be aware that *NONE* of the usual 1kx1 dynamic shift registers works in an Apple-1 based on 74LSxxx ICs. The only exception I found was MM1404 made by National Semiconductors, these work fine in my "LSTTL" only Apple-1 example. The MM1404 however had a disastrous failure rate of more then 50% right out of the tube. Very few failed in burn-in, though. (Just as a sidenote, a LSTTL Apple-1 draws about 1A from the +5V rail, while a TTL once draws about 1.5 A. So it's barely worth doing.)
I think you should pull these AM2804 and then "tickle" their outputs in the sockets. You should get a very consistent pattern of the same characters on the screen, depending on the 6 bit binary code you produce by injecting logic 1's.
But it also seems, from your description, that your Apple-1 may have a thermal error. Cold spray sparingly applied to individual ICs in the video section can greatly help with that. Note that some thermal errors are bad solder joints, or bad socket contacts, and not necessarily a bad IC.
Also beware of the DS0025. Most you can buy are Chinese counterfeits, which is possible only because the "footprint" of the original DS0025 was adopted by lots of so-called "MOS Gate Drivers" which are ubiquitous. Alas, these MOS Gate Drivers are made in CMOS technologies and these switch too fiercly for the weak Apple-1 power and ground grid (a layout issue). This can be mitigated by adding 75 Ohm...100 Ohm series resistors on the two output pins driving PHI3 and PHI4.
I would not try to buy yet another IC set (costly), instead, try to find out which IC causes the problem.
- Uncle Bernie
Thank you for the insights.
I removed all of the AM2804s and tried to "tickle" the output and it did not change anything. The only one that changed the output was the C11 one. I set the output to HI and got random characters on the screen (see the video below). I also removed the 74157 (C4) to try to drive a specific character and if I, for example, set pin 9 to LOW, I get a character that matches the address. If I stop setting the C11 AM2804 output to HI, it reverts back to columns. Additionally, with D14 A & B shift registers inserted, I'm getting random characters, that don't match the address, at the top and bottom of the screen. If I remove those two shift registers, the characters are all (correctly) the same. I tried swapping for different ones and got the same result. See the images below.
Screenshot 2024-11-03 at 7.50.19 PM.png
Screenshot 2024-11-03 at 7.50.30 PM.png
I counted the lines and it looks like the 24 lines are showing the correct characters and the rest are not. I'm wondering - do I just need to adjust the screen or is the video supposed to crop at 24 lines?
With all AM2804s inserted (except for the C11 one), I get all underscores (solid, not blinking) on 24 lines when I set the output to HI on C11.
Regarding the cold spraying, I don't think any of those ICs are hot to the touch. The -12v regulator does get hot, though. At least the internal heat sink does.
I'm also using a DS0025CN Two Phase MOS Clock Driver.
One other thing I noticed is a spike on the ground line whenever C13 is installed and the clock is running. Checking the voltage between the ground plane and C6 pin 7 (GND), it shows a spike of over 1.2 volts (every clock cycle?) which appears to be traversing all the way to the C11 shift register. I'm not sure if this is significant or not, though.
In post #5, 'kalinchuk' wrote:
" Regarding the cold spraying, I don't think any of those ICs are hot to the touch. "
Uncle Bernie comments:
You have a misconception about the use of cold spray. It is not meant to cool ICs because they are running hot. It is meant to reveal the location of thermal errors / faults. Most semiconductors have drastic changes in their electrical performance, i.e. propagation delays or logic thresholds of digital logic, when they warm up above room temperature. This may lead to system failure. The typical symptom is that the circuit runs fine just after power up, and once it warms up, failures start to manifest. Now, by squirting a small amount of cold spray on suspect ICs you can reverse this and the circuit will work properly again, until the bad IC warms up again, which may take a 10 seconds or a minute or so, depending on how much power it consumes. This is a nearly bulletproof way to find thermal errors. Back in the day, every TV repairman was toting a bottle of cold spray to hunt for bad transistors and bad ICs.
C13 (the 74175) if pulled shuts down all clocks in the system, so of course most of the spikes are gone. The Apple-1 has very poor VCC and GND trace layout (typical for the early 1970s, this layout mistake was common, and I suspect that it was based on the availability of these self adhesive trace spools, the wider ones were rare, so the layouters who glued them to the mylar foil tended to make the VCC/GND traces too narrow. Frankly, I committed the same "crime" against innocent electrons when I glued my own layouts back then. Because PCB layouters would typically work with 2:1 reduction so everything was twice as large on the layout as as on the final PCB, and it looked good on the mylar, and turned out narrow and weak on the PCB.)
A 1.2V spike on GND can definitely wreak havoc and flip flipflops erratically.
I'd recommend you to pull the DS0025 and wire its empty socket pins 5 and 7 to +5V, (you may also plug in resistors to make this connection) so the PHI3 and PHI4 clock phases are deasserted, and nothing bad can happen. You still should be able to get characters and manipulate them if you pull the 2519, too. If the weird behavior of your build is gone after that, I'd suspect the "DS0025" is a counterfeit.
This is based on my experience with various non-DS0025, such as Chinese counterfeits based on modern CMOS "MOS Gate Drivers" and with the DS0026. The DS0026 is a slightly faster version of the DS0025 and it caused erratic behaviour in my first Apple-1 build (I had no DS0025 at the time). The modern CMOS "MOS Gate Drivers" the Chinese counterfeiters relabel as DS0025 will cause the Apple-1 to completely go nuts.
The DS0026 will work in the Apple-1 when my "Reliability Mods" are applied - these have been documented here on Applefritter. Essentially, adding more power supply bypass capacitors.
CMOS "MOS Gate Drivers" in the DS0025 socket will hit the Apple-1 too harshly and even the "Reliability Mods" will not help.
Yet another issue with these CMOS "MOS Gate Drivers" is that some lack the pull down resistors on their inputs. You can measure the suspect "DS0025" input pins #2 and #4 to the -12V rail (pin #3) and in a real DS0025 there should be a resistor there of nominal 250 Ohms (allow for +/-50% tolerance). If that resistor is not there, you have a counterfeit DS0025. If it is there but much larger (nominal 10 kOhms) you have a DS0026.
In case you happen to have a counterfeit IC lacking these resistors, you can put in 1k Ohm pulldowns, I did use 0805 form factor SMD resistors which fit just between the solder blobs on the PCB solder side. But you will also need series resistor of ~75 Ohms at the outputs of these fierce CMOS drivers, otherwise they also crash the system by hammering it too badly. Alas, not all CMOS "MOS Gate Drivers" are specified for the 17V supply voltage they "see" in the Apple-1. But most are specified for 12V in automotive environments and they won't blow up at 17V (although the manufacturer does not guarantee them for this form of abuse).
So far for the suspicion it might be a counterfeit DS0025. If you can measure and find the 250 Ohm resistor on its inputs, it's probably genuine. Then the problem must be rooted elsewhere. It could be a bad TTL, too. But with none of the many, many IC kits I made I ever saw the peculiar behavior you describe.
- Uncle Bernie
Pulling out the DS0025 and tying pins 5 & 7 to +5v did not change anything. Also, pin 2-3 and 3-4 both show 250 ohm so I'm guessing it's not a counterfeit. I really think the issue is with that spike. I just don't know why it would be happening. Just need to keep on trying things.
Update: After pulling out the 7427 and setting DS0025 pins 5 and 7 to HIGH, I got a screen of flashing @ symbols. It seems like progress although my IC tester is saying the 7427 is okay. Might need to try another one.
In post #8, 'kalinchuck' wrote:
" After pulling out the 7427 and setting DS0025 pins 5 and 7 to HIGH, I got a screen of flashing @ symbols. It seems like progress ..."
Uncle Bernie comments:
What the removal of the DS0025 does (yours seems genuine, no known CMOS based "MOS Gate Driver" has 250 Ohm pulldowns in the inputs) is that the 1404 shift registers making the video memory are disabled (they get no clocks PHI3, PHI4 anymore, but these must be hooked to +5V to prevent damage to the 1404/2504/2804).
So what you should see on the screen is these flashing '@' but watch out, it must be 40 characters per line and 24 such lines, no more, no less ! And this should stay so even after warm up. No extra characters appearing, no instability (no screen jumps, no line wiggling, no characters getting deformed ...)
If so, you made some progress because now you know the whole video timing / counter chain works properly. What is left as possible culprits for erratic behaviour is the scrolling logic and the cursor state machine (the seperate small schematic in region A-B 1-3 of the "Terminal Section" sheet).
If there is any problem with any of that, then weird things can happen on screen once the video memory is functional (DS0025 inserted): characters may appear outside of the regular 40x24 character field and the picture may "jump" or scroll erratically. The latter is due to some logic which tries to 'eliminate' bogus cursors outside the regular 40x24 field. So any issue with the cursor source (C11b and part of C13) or the cursor state machine itself can lead to wild behaviour.
You may try to put the DS0025 back (don't forget to remove the PHI3, PHI4 hookups to +5V) and pull shift register C11b (sits below the DS0025 in the same socket) and then see what happens:
- after power up after a longer pause (1 minute or so) you should get a _@_@_@_@_ pattern with the '@' blinking. The long pause is meant to "clear" residual charges from the shift registers. Note that the occasional different character may appear even after a prolonged power off period. These are the (few) exceptions of shift register cells which "wake up" at the other state. No concern here unless that bit is stuck forever.
- activating the CLR SCREEN switch should blank the screen, and you should see a faint dot pattern in the background, one tiny dot per character position. This is known crosstalk due to poor layout. But it helps to see issues with the video timing. There should be four such dots per line outside the regular 24 lines, the rightmost (last) dot aligned with all the other last dots on the regular lines. These four extra dots per line are the locations (in time) where the DRAM refresh cycles happen.
- releasing the CLR SCREEN switch should produce all '@', blinking, in the regular 40x24 character field, the outside of which must stay blank (except for the faint crosstalk dots mentioned above).
If you get there, you could put C11b back and then focus on which possible TTL in the cursor state machine may be the culprit. Try grounding pin #4 of the 74174@C7 first. It is floating and might pick up erratic signals. This is one reason why in my "Tips & Tricks" pdf for Apple-1 builders I recommend to do the tests with all ICs inserted. The partial test with only the "terminal section" IC sockets populated (as suggested in Mike Willegals Apple-1 building instructions) did cause more erratic behaviour and confusion for many builders than it was worth in terms of "protecting" ICs for the "CPU Section" from damage, which is my conjecture why Mike recommended this method.
But if the very first power up is done with all IC sockets empty and if all regulated voltages are measured and verified to be in spec, there is no such danger for any ICs to get damaged.
- Uncle Bernie
The flashing @s are longer than 24 lines. I re-inserted the DS0025 but left 7410 out and I got a flashing @_ pattern but it fills more than 24 lines and also has random characters throughout. Doing a "clear" just replaces the "_"s with "P"s. This is without inserting the 7410. If it's inserted, I get white columns.
IMG_8950.jpeg
Thanks
When I insert the 7410 into its socket and then connect the scope ground to the ground plane (near the heat sink) and the other end to pin 7 of 7410, this is what the signal looks like (blue) on the scope. The excessive noise corresponds with the clock signal.
IMG_8952.jpeg
That noise is just unreal. Any idea what could be causing it? I understand the PCB is not optimal but that noise seems to be coming from something other than the PCB design. It's wreaking havoc.
Thanks
In post #11, 'kalinchuk' wrote:
" .... then connect the scope ground to the ground plane (near the heat sink) and the other end to pin 7 of 7410, this is what the signal looks like (blue) on the scope ..."
Uncle Bernie comments:
This way to measure noise on power or ground rails is meaningless. Also, the Apple-1 has no "ground plane". You can only have a "ground plane" when a whole layer of the PCB is devoted to be that "plane", and you can't do this with a dense digital circuit on a two layer PCB.
The sad truth is that all these thin long VCC and GND traces are inductors of substantial, noticable inductance, and with TTLs turning currents off and on in about one to two nanoseconds (rise and fall time, not to be confused with propagation delays) these inductors essentially behave as open circuits. Which means the supply voltages seen by the TTLs at their VCC pins will collapse, and the GND will bounce up. Everything moves and bounces. There is no "solid ground" anywhere on this motherboard. So don't try to do such oscilloscope measurements . . . they are meaningless.
The power supply bypass capacitors sprinkled all over the PCB will provide local power and ground to the adjacent ICs and mitigate the bouncing.
This is why these digital circuits work at all.
Where it gets dubious is when one signal coming from one IC in the PCB goes to another IC far away and the "grounds" do not agree. This can lead to lots of problems if a bouncing ground kicks a signal across the logic threshold of the receiving IC. If it is a clock, weird things can happen.
But I don't think this is causing the issues you see, assuming:
a) you have used good bypass capacitors of reasonable performance
b) you have used Standard TTL (74xxx) and not some faster logic families such as HC, HCT, A, F, ACT, FCT etc.
Several 100's of Apple-1 have been built and despite the signals generally look horrible on an oscilloscope, they work.
If you don't trust your bypass capacitors, you can always add more (see my "Reliability Mods" published here on Applefritter).
If you have low performance bypass capacitors this might bring remedy, but I think (from looking at your screen shots) you just have some bad TTL IC or some short or open or bad solder joint somewhere.
You can try to remove the 5V regulator and run the Apple-1 with a laboratory power supply at less than 5V. I have had some cases which did not work all too well at 5V, but worked fine at 4.5V or slightly below that. Mix and match of the TTLs helped to remedy these cases.
But make no mistake - when I produced my kits I used to change ICs row by row to "harvest" the burned-in ICs and get a new set in for the next 4 weeks of burn-in. After changing one row I powered up the Apple-1 to see if it still works. Often, it didn't work anymore, and despite I knew that only one (or more) ICs in the most recently changed row could be the culprit(s), there were some really mind boggling cases where even I could not easily find out which one would be the most likely candidate, based on the symptoms seen on the screen. In these cases I just decided to change all ICs in that row again. This was more efficient in terms of time invested than pondering over the schematics.
Your whole case shows how helpful a 100% tested and burned-in IC set can be for Apple-1 builders. But don't despair, I think if you look long enough and think and experiment a bit, you will eventually arrive at a functional Apple-1. But I don't think this "maverick" building approach based on unproven ICs saves any time or money. Even if you agree to take "minimum wage equivalents" (here in the USA typically $20/h, but be aware nobody can make a living from that) you might have "spent" less time = money buying a completely assembled and tested Apple-1 replica from one of the usual sources. (For me this is the "acid test" to check if some journey in electronics wonderland is worth it . . . imagine the "buy" alternative costs $ X and the "DIY" alternative costs Y hours. If Y times $20 is > X, then the "buy" makes more sense unless the learning experience is what is wanted. Of course, for the $20, you may substitute whatever you can earn per hour, after taxes, in your bread job, but $20 is the absolute minimum).
On the other hand, some people actually enjoy to solve these electronic riddles and do it to gain "debugging" experience. Not bad either. But it may take a lot more time (and money) than initially expected to get to the desired result / "victory".
- Uncle Bernie