News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_nivrig

DIY Cartridge project idea

Started by nivrig, 13:19, 24 May 21

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nivrig

In the absense of C4CPC supply (no criticism intended, I would buy one in a second), I got to thinking (uhoh)...
Something like the DIY Cartridge, with flash (or something) instead of EPROM, and an Arduino/ESP32/RPi/etc. controller to reload the content over WiFi.The goal is to be able to conveniently upload one ROM up to 512Kb to the cart from a PC/Mac/Linux command line and run it on a GX4000/Plus. I'm not considering how ugly it might look.
Some questions and issues:

       
  • I know very little about electronics so this could all be nonsense and I am happy to be corrected :)
  • Controller will need shift registers or io expanders to program the flash?
  • Controller is likely to have 3.3v GPIO so I'm guessing level shifters? (or can I feed 5v to a 74595 and control it from 3.3v GPIO?)
  • ACID ... I'm aware theres a 74-based hack that might suffice, or MITM to an actual cartridge (I have exactly one). Last resort given (1) is a CPLD.
  • I expect it would be bad to write to the flash while the CPC is also reading from it, but I have no idea what to do about that apart from power off the CPC. CPC would need restarted after reloading anyway. I don't see any pins on the cartridge port that could halt or reset the console.
Is this a mad idea? Nonsense? Been debunked before? Any better solutions? How would YOU design it?

Bryce

The easiest and cheapest way to do this would be to make a simple adapter so that the cartridge could be mounted directly onto a cheap EPROM burner. That would save all the RPi / level shifters etc. The only issue is that the write pin of the Flash chip isn't normally routeded to the cartridge slot. To get around this, you would need to change the function of one of the VCC pins, so that when connected to the CPC the flash would be held at 5V (as it should be - Read mode), but when connected to the EPROM burner adapter the burner could control this pin to write data.

Bryce.

nivrig

Ah, I hadn't even considered that!
What price is "cheap" for a flash programmer? I see ones on eBay that do DIP32 for around £50.
Is there room for a ZIF on a cart PCB?

What if, put a socket on the top of the PCB, plug another on to its pins on the underside, then set that into the programmer for flashing?

Bryce

One of the cheaper good burners is the TL866 which can be found for about €40.

A ZIF socket wouldn't fit, but we wouldn't need one. My idea was to make an adapter that fits between the EPROM burner and the cartridge, so that the Flash doesn't need to be removed from the cartridge. It would have 32 DIP pins on the bottom (to EPROM Burner) and an edge connector on the top (to plug in the cartridge).

Bryce.

nivrig

Quote from: Bryce on 08:16, 25 May 21One of the cheaper good burners is the TL866 which can be found for about €40.
Like this?
https://www.aliexpress.com/item/4000052064914.html
Quote from: Bryce on 08:16, 25 May 21A ZIF socket wouldn't fit, but we wouldn't need one. My idea was to make an adapter that fits between the EPROM burner and the cartridge
Got you. I meant the ZIF as an alternative to avoid unplugging the cart from the console as much as possible.
Thanks for the help :)

Bryce

Yes, you can also find the TL866 locally for a few Euros more.

The cartridge edge connector was made to be plugged/unplugged many times, IC's aren't. Either way, the cartridge would have to be much larger than a standard cartridge if you were to put a ZIF socket on it and you you probably remove the cartridge from the CPC to safely remove the IC anyway.

Bryce.

nivrig

Looked at this a bit more.
I'm on Mac, so I'd need a flash programming solution for that and I couldn't find any macos flash programmers.
I think an Arduino would work without any level shifters, and and Arduino Max has enough IO pins to do it without even any shift registers.
Reading the original ACID reversing thread some people were talking about doing the same sort of thing (a reflashable CPC+ cartridge). Not sure if anything came of that.
Would flashing while the cart is in the GX4000 risk damaging the console any way? I imagine the console would need to be powered off to prevent chaos on the bus to the flash chip, or would there be a way to halt the console from the Arduino, maybe by holding the bus reset signal low (like holding down a reset button)?

Bryce

What would the advantage be of flashing the cart while it was still in the GX4000?

Bryce.

nivrig

It would be more convenient to update and more easily automated if the cart is just at the end of a wire (etc.) connected to a modern system being used for CPC development, instead of a manual remove-program-insert cycle. If it's not possible, cool.

So let's say I have:Mac->TL866->[some cable/connector i make]->EEPROM (29F040) on a custom cartridge PCB inserted in a GX4000
...then I can run something from a makefile on the Mac and reload the flash on the Amstrad.
Aside: I found macOS software for the TL866 series programmers so the Arduino isn't necessary:
https://gitlab.com/DavidGriffith/minipro/

Powered by SMFPacks Menu Editor Mod