Sunday, 25 January 2026

A New CRTC for the Minstrel 4th? Part 3

The final part (so far) of the development of the replacement CRTC microcontroller for the Minstrel 4th.

To recap, the microcontroller which generates the video sync and steps through the video RAM (the CRTC) on the Minstrel 4th was announced as being discontinued, so I have redesigned it to work on a different microcontroller.

In the previous post, the new code on the new microcontroller was running, but it was running on a curiosity nano development board, wired up to a Minstrel 4th.

Just to be sure, I wanted to try running with just the microcontroller. The development board has an

AVR64EA48 = AVR architecture, 64K program space, E series, A variant, 48 pins

For the final version, I am planning to use

AVR16EA28 = AVR architecture, 16K program space, E series, A variant, 28 pins

Those were not it stock at the time, so I went for

AVR64EA28 = AVR architecture, 64K program space, E series, A variant, 28 pins

The development board has a handy feature where it acts as a USB storage device, so you can program it by copying a hex file to the device, which was neat, and I could do it from the command line.

I don't think I can use that for production programming, I need to check if I can use that mechanism to set all the flags and fuses I need.

To program those, I use the jig I originally made for the Minstrel 4D (where I used an AVR DA series chip for the SD card interface). That uses another of the Curiosity Nano boards, disconnected from it's onboard chip and wired to a ZIF socket to work as a programmer.

I looked all around the new MPLAB X environment, but couldn't find the equivalent of this page from the old Atmel Studio, so I have gone back to that.

That lets me connect to the IC in the ZIF socket and program it.

My plan had been to make a little plug in PCB, like the clock board for the Mini VIC.

But when I looked at the wiring, it was clear the lines were crisscrossing all over the place, so it would have been quite a mess.

I decided to go for a quicker solution, and moved it to a little breadboard and proceeded to wire it into the Minstrel 4th.

The breadboard approach will do for this testing, I will hopefully be ordering new PCBs soon.

I plug the jumper wires into a extra socket, so I can detach them, or move them to a different board etc.

Let's give it a go.

A perfectly square bit of black dirt in the middle of the screen?

Oh no, it's the cursor, but what's it doing in the middle?

Hmm, no, that's definitely not right.

Is the ROM messed up? Let's try a different one.

I mean it's wrong, but it's not very wrong.....

Let's try FOR N=1 TO 22 PRINT N NEXT N (lazy programmer again, NEXT is on the N key, I've been doing that for 45 years.....)

Hmm, it started well....

Ah, OK, I see what's happened, two of the address lines in the row counter have got mixed up.

Give me a second.

That's better.

More testing

Ooops, I left the 2x ZX81 speed ROM in, and now the mummies on Tut-Tut are moving sooooo fast.

Perilous Swamp is now my go-to test for scrolling problems, but that seems OK, even if I did get eaten by a Gorgon.

Maybe I shouldn't have ran around singing "Gorgon is a moron, Gorgon is a moron"...

Hmm, I still don't think I can put it into production like that.

Time to re-route the PCB.

Ouch that looks like it's going to be fun.

I put that off for a while and got on with some other stuff.

Roll onto 2026.

Adapter Board

I decided I should test this further, so rather than redoing the whole board, I made a small adapter board.

This is designed to fit in the ATmega48PA socket and wire the signals up to the AVR16EA28.

I had to add a couple of extra sockets to the stack to clear the video connector.

The AVR16EA28's were back in stock now, so I ordered some of those.

I rebuilt the code for that chip and programmed it.

I am currently moving a lot of things around the workshop, so I only have a small bench space available. I have been managing quite well using a small LCD monitor.

Time to clear away the Mini PET and test this out.

That all looks good.

Even on the small LCD.

There you go, the compulsory VLIST, and now the 10 PRINT.

Now comes the tricky part.

I have proved I _CAN_ do it, but I am not sure if I _SHOULD_ do it?

I have various other changes I would like to make the the Minstrel 4th board if I were to respin it, and those are only designs so far, I need to prototype them up.

The ATmega48PA is also still in stock, and I have bought a few tubes just in case.

I think for the moment I will keep with the original "working quite all right thank you very much, until they said it was discontinued and then don't seem to have actually go through with discontinuing it" microcontroller.

That might all have been an unnecessary journey, but at least I learned a few things along the way.


Adverts

Check out my Tindie store for all sort of kits, test gear and upgrades for the ZX80, ZX81, Jupiter ACE, Commodore PET.


Patreon

You can support me via Patreon, and get access to advance previews of development logs like the ones these posts are based on, and progress on new projects like the Mini PET II and Mini VIC and other behind the scenes updates. Mini PET II Parts 13 and 14 are part written, I just need to do some prototyping and get some screencaps to complete part 13 and then decided if part 14's plan is even possible. This also includes access to my Patreon only Discord server for even more regular updates.