Sunday, 16 February 2025

Stag P301 EPROM programmer P322 memory upgrade

Way back in 2018, a wrote a post the Stag P301 EPROM programmer.

It is quite a neat all in one EPROM programmer that can be used stand alone or connected to a PC via a serial port.

It is good at dealing with some of the older more esoteric types of EPROM that the modern USB programmers can't touch.

Battery Upgrade Upgrade

In that post, I replaced the dead 8.4V Ni-Cd battery pack with some AAA battery holders and some Ni-MH cells. I originally used 7 cells to match the nominal voltage of the old pack. 

The unit can also run from 12V DC, so I wondered if I could extend the battery life a little. I tested the battery gauge with a bench power supply, and the full 8 bars was reached at about 9.6V. Given that, it seemed reasonable to add another cell to make the nominal voltage up to 9.6V to match.

To test that, I tacked on a single AAA cell holder to make the pack up to 8 cells. That fitted perfectly in the space available.

I did intend to go back and tidy that up with two 4 cell holders, I am sure I ordered a set sometime in the last 7 years........

I guess I will just leave it like that, it has been working well with 8 cells.

RAM Upgrade

When I was writing that post in 2018, I had access to another unit, one that had a P322 1MB memory upgrade. The standard programmer has 128K of RAM and can only program chips up to that size (it would be useful if it could do larger chips in multiple passes).

At the time, I looked at that and it did look like it could be replicated, but I did not have the time to reverse engineer it.

There is a useful resource for owners of these programmers, by Matthieu Benoit.

I contacted Matthieu when I was writing that first post and asked if those upgrade modules were available anywhere. At the time, the answer was no.

Roll on six years, and Matthieu emailed me to let me know someone had reverse engineered the board and published the design files.

I downloaded those and added that to my list of things to do.

Roll on another six months and I finally ordered the PCBs.

The gerber files seemed fine as they were, so I just uploaded them to the PCB manufacturer.

Thanks to Zachary Goode for their redesign work.

The notes on the site suggested using two M5M5408BFP-70H RAM chips, one on the front, one on the back. That was the same part as used on the original.

I couldn't find those from my usual suppliers, so I used a pair of the more readily available (and still in production) Alliance AS6C4008-55.

I tried to find shrouded versions of the pin headers to match the original, but I couldn't find any that looked right, so I went for the pins only version specified.

The lack of the shroud around the pins means it is a little tricky to align the module in place.

I thought it would be safer to take the back off to get better access.

It was also good to confirm the main power supply was a switch mode MC34063A, and there were also a pair of UA723 regulators, so all should be fine with the battery pack upgrade.

It is easier to see now to check it is aligned correctly.

It was a little tricky getting it to fit, I soldered the connectors in the middle of the pads, it was only when I came to fit it that I remembered the guide recommended fitting them closer to the edges.

All fits nicely back in the case.

Time to give it a go.

For reference, this is what it used to say, 128K of RAM installed (1 megabit). Enough for most of the standard EPROM types, up to 27C010, but not supporting the 27C020, 040 or 080 and similar chips.

With the upgrade fitted, that now shows 1M of RAM (8 megabits).

To test this, I went straight to a 1M EPROM, a 27C080. It read that all in one go and then I wrote it out to a freshly erased 27C080.

That passed the program and verify, and I also checked it my usual USB programmer.

Excellent, that should have tested the whole 1M of RAM, with that working, it opens up more devices I can program.

I have some spare PCBs left, if anyone else still uses one of those programmers and wants a RAM upgrade. I don't think I will list these on Tindie, so use the contact link above if interested.


Adverts

There are a selection of repair and upgrade parts for various machines listed on my Tindie store, many of which can be seen on this PET 2001 board.

Be the envy of all your friends with one of the limited edition run of blue PET Diagnostics modules.

Patreon

You can support me via Patreon, and get access to advance previews of development logs on new projects and behind the scenes updates. These are often in more detail than I can fit in here, and this post contains bits from several Patreon posts. This also includes access to my Patreon only Discord server for even more regular updates.

Sunday, 9 February 2025

Mini VIC Revisited Part 5

Over the last few weeks I have been using the Mini VIC a lot for testing, and making a few minor changes along the way. Time to roll up all of those small updates. (this from Patreon November 2024)

Clocks

I identified the clock generation wasn't great in a previous post. I thought I should test out the theory, so make a clock generator that plugged into the 74HC02 socket on the Mini VIC.

I am a little worried that my bodges are getting neater.

I had already laid out the PCB, so I followed a similar arrangement.

This uses a more standard crystal oscillator approach. Two crystal oscillators in fact, so I am only switching the logic level clock signals rather than the connections to the crystal.

That works rather nicely and the system has been very stable throughout the Penultimate +3 testing.

I am pretty happy with that for "non-overlapping clocks".

I had an early NTSC VIC20 on the bench recently and took the opportunity to checked out the clocks generated on that board.

That looks a bit wobbly, but if I do the merge again, it seems clean enough (if the threshold is right).

I also captured the clock pulses on three other VIC20 boards I was using to test things on the Penultimate +3 but unfortunately I have lost all those traces.

When I get the Keysight scope that could do screenshots and save to USB, that was a game changer for showing scope traces in the blog posts. I use these a lot, so I have a script to automatically crop them to 4:3 these days.

When I looked for a USB stick to use, I found this 1GB USB stick that was otherwise not much use and thought it would be ideal. Turns out it wasn't. This USB stick has now spoiled three blog posts. It came from Keysight as part of some promo thing I guess in April 2017 based on the markings.

I lost a load of traces for the Sony cassette recorder post a few months ago, but reformatted it and it appeared to be working again. No more problems until today when it has failed again and lost most of the traces for this post and the VIC-1001 board repair post.


Power

I think the original 2 pin VIC 20 used a 9V AC power supply for convenience. That was the same way the PET had worked, AC in from a transformer and the rectification and regulation all handled on the board.

I am not 100% sure where the 7 pin DIN power supply was first used, the VIC20-CR, the Max or the C64?

Well, I say 7 pin, but many of them only had 4 pins connected. Two are 9V AC, and the rest are either 0V or 5V DC pins. All are wired in parallel on the socket, but the plugs often only have one 0V and one 5V.

It seems to suit the VIC20-CR best. The 5V DC is moved into the power supply itself, so that removes the need for the rectifier and regulator and the massive heatsink. The 9V AC is retained to be backwardly compatible with the userport of the previous model, and also used to generate an unregulated 9V DC supply for the datasette drive. It is regulated down to around 6V for that by the big TIP29 transistor near the port.

The Commodore 64 complicated things. Again the 9V AC is retained to be backwardly compatible with the userport of the previous model and for the datasette power. That unregulated 9V also provides power to a 7805 to generate a separate supply for the VIC-II and clock chip inside the tin can. But it also needs 12V. So the 9V AC feeds a voltage doubler to generate about 15V DC and then is regulated down to 12V for the VIC-II and SID.

Finally, a tap from the 9V AC is used to generate a line frequency reference, a 50Hz or 60Hz pulse that is fed to the TOD (Time of Day) input the 6526 VIA chips.

There are an awful lot of these things around. There is just one problem with them, well two.

Firstly, the 5V supply is flawed, and they quite often fail with the 5V rail rising upwards of 7V, taking out lots of the chips on the C64.

The second problem is they are potted, so you can't repair (or ideally replace) the 5V supply circuitry. Therefore, they should be avoided.

I had to hunt around to find this one for the photo. I have a box of them somewhere. I never use them. This one is showing about 5.31V on the 5V rail, so I wouldn't be happy using that.

I would be mad to design the Mini VIC to use one of those?

Well, I did, but with a very important caveat.

I do not connect to the 5V-7V DC supply at all. I ignore it and just connect to the 9V AC.

As such, it is quite a handy source of 9V AC from something which would otherwise be consigned to a box in a dark corner somewhere (or straight into e-waste).

I designed the board to accept either 9V AC or DC. The input is rectified to give 9V DC, and then regulated with a 7805 to give the 5V DC. The modern logic uses less power than the original board, so the approximately 1A rated supply will do just fine.

You can also power it form 9V DC if you prefer. There is no requirement for an AC dervied time of day signal (as on the C64), or any voltage doubler circuitry (as on the C64), or any other reason for AC on the board itself.

It is fed to the userport for use by external devices. I am not aware of any that specifically need AC. If any userport device requires AC, then feed the board AC. Otherwise, AC or DC is fine.

(and also note the caveat about 9V DC with a bridge rectifier and be aware of any ground loops or shared supplies - http://blog.tynemouthsoftware.co.uk/2024/03/why-dont-you-use-a-bridge-rectifier.html)

There are two sets of pads on the board, one for a 2.1mm DC power jack, as used on all my other kits, as well as one for the 7 pin DIN socket.

Testing

I didn't want to go directly to a C64 power supply, as I wanted to be able to monitor the current during testing, but I wanted to use the 7 pin DIN as that looked better for photos of the board.

I ended up making a 9V DC barrel jack to 7 pin DIN adapter so I could test both versions.

(actually, I made two. The first one I lost and I couldn't find it, so made a better one for these photos. I then almost immediately found the first one. It's been one of those weeks and it's only Monday)

(edit, as I come to post this, I have now lost both of those adapters)

However, the first time I tried it, it didn't work, totally dead. When I checked over, I found the fuse had blown. Not ideal.

I was impatient, so I tried clipping directly to the power switch pins and it worked fine, so I have just been using that throughout the testing.

Once I had finished testing, I had a look at fixing that.

I assumed I must have messed up the layout somehow to cause a short, or there was a solder bridge somewhere. I couldn't spot anything in the design that was wrong, so I took the board out of the VIC20 case and investigated further.

Well, there's ya problem.

Looks like I put the fuse holder too close to the edge of the board. I was trying to keep it away from the metalwork of the cartridge shield, and inadvertently moved it too close to the sideplate.

For the next revision, I have shuffled things around to move the fuse a bit lower, away from all the metalwork.

As a temporary fix, I desoldered that end of the fuse and cut the leg off. I soldered it to the trace on the top of the board and put a bit of tape over the bottom side.

One new fuse later and away we go.

The DC jack is connected to my bench supply so I can monitor the current use and try different voltages to check the limits.

The Mini VIC alone with a vintage VIC chip and MOS 6502 uses about 500mA. Add a Penultimate +3, and that rises to about 750mA. Still within the limits of the 1A supply.

If you need more power for accessories, use a more powerful supply.

I am impressed with how well the 7805 is going just rived to the board with no heatsink just a bit of tinned copper trace on the PCB. It gets warm, but no where near as hot as say the VIC chip.

I have had that running pretty much all day for several days when testing the Penultimate +3. (there are 250+ games on the menu, plus utilities, programming tools, file browser and different memory options, all of which have to be tested).

I will probably suggest a switching regulator for the final version, depends how things work out. Switching to a W65C02S should reduce that a bit. And VIC chip replacement current consumption is yet to be seen.

I did try it with the AC supply again, and it sort of works, but it seems a messed up with the reservoir capacitor. It was meant to be 2200uF, but somehow ended up as 220uF. With an extra capacitor clipped on, it worked fine.


Two problems remain.

  1. The chrominance signal is not very good.
  2. There occasional corruptions to the colour RAM only noticed during the Dead Test or similar soak testing.

(I don't have any of the video signal captures, I am going to have to do all those again, but not today. Frustratingly I have lost the before and after for the mods I did, so I will keep this bit short.)

Here you can see both problems. The R of colour has been corrupted and gone yellow.

This shows why composite video is never going to be as clear as RGB. Composite is just what it says, a composite of a sharp black and white image with some colour information overlaid on top of it.

And yes, I still need to fix the chroma timing on PAL.


Adverts

The Mini VIC kits are not available yet, but there are still Minstrel 2 and Minstrel 3 kits available.

I have also turned back on EU shipping, with a caveat that there will be extra delays and charges at customs, sorry, nothing I can do about that.

You can now get a Minstrel 2 kit for $200. 1980s pricing.

Or you can get a Minstrel 3 kit for $200

Patreon

You can support me via Patreon, and get access to advance previews of development logs on new projects and behind the scenes updates. These are often in more detail than I can fit in here, and this post contains bits from several Patreon posts. This also includes access to my Patreon only Discord server for even more regular updates.