Hello everyone.
This is my first post here. Like all of you, I am a virtual boy enthusiast, and as you all know nowadays it is difficult to get a flashcart, especially for me living in Europe (The VB never arrived in Europe). That’s why I have decided to design my own flashcart thinking to make it as cost effective as possible and also, to share with you the plans and instructions so that everyone can build it, because customs increase the costs and shipping is expensive between countries.
STATUS: (09/06/2022 updated)
Pull down resistor solution: tested and pass ok.
Readings 16mbit with resistor line: ok and 45 sec
Playing with the complete circuit: ok with red alarm
Loading games: — (waiting the PCB to solder the flash on it)
PC sofware to load games: —
Production schematic: v01 not tested
Production PCB: manufacturing, not tested
SPECIFICATIONS
As a first version, I propose a 16Mbit flashcart without nvSRAM ic (save game ic) where the games are loaded from the PC via USB.
PC SOFTWARE
For the tests I am using the freeware CoolTerm, that allows to load BINs through serial port at 230400baud, that seem to me acceptable speeds to load the games available for VB.
DESIGN:
uC: STM32F103C6
Flash: 29F160
Why STM32F103C6?, it is a cost effective uC ARM based at 72Mhz with a very cheap development board (SMT32duino Bluepill), it has enough pins to be used as “Paralell Flash memory Programmer” using a common Serial port at full speed as input. Only one problem, it work at 3.3v, not full 5v compatibility in all pins.
It is not easy to make compatible a STM32 that works at 3.3v with the flash that works at 5v as well as the VB that also works at 5v, this is why you can see many resistors especially in the address pins and the control pins, when the cartridge is connected to the VB, these pins are configured as 0v outputs, so the resistors work as pull downs, it is not a problem for the VB, the data pins (Dx) have been placed in pins that are compatible with 5v.
The flash selected is TTL input compatible, so it can accept 3.3v as logic 1.
8bit programming, The STM32 does not have enough pins to program in 16bit mode, so the BYTE pin of the flash has a pull down to configure it in 8bit mode when it is not connected to the VB. It is not a problem, it is just a programming settings, VB can use 8 bit or 16bit bus data as usual.
NEVER connect the USB cable or try to load a new game with the cart conected to VB (powered or not), this is a limitation of this simple design.
Attached you can see a test circuit.
BR
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months, 1 week ago by
MrFlower.
-
This topic was modified 10 months ago by
MrFlower.
-
This topic was modified 10 months ago by
MrFlower.
-
This topic was modified 10 months ago by
MrFlower.
-
This topic was modified 10 months ago by
MrFlower.
-
This topic was modified 9 months, 3 weeks ago by
MrFlower.
Very nice sir!
My only comment is you probably want to use translators instead of just inline resistors. There’s a reason most of the flash carts use the 245 translators chips and they’re only a couple dollars each. The concern is on the STM32 side. The VB input should work at 3.3V logic.
And if you haven’t already, you’ll want to sign up for the Discord channel. Most activity is there these days.
-
This reply was modified 10 months, 1 week ago by
mellott124.
Oh!! Nice to meet you Sir, obviously i know your excellent work. I want one of your cart π
Thanks for your suggestions!!, 74245 ic is a good solution. i am going to check the resistor fist, and if it doesn’t work i will use it :-).
Thanks a lot.
First test: Reading
I have received STM32 bluepill but not 29F160 flash, i have an old 27c801 eprom, and i can read it at 230400baud correctly :-).
This is not an important thing, but it is the first step.
-
This reply was modified 10 months ago by
MrFlower.
Attachments:
I have detected that i forgot to connect D15 A-1 pin in 29F160, it works as Address input for 8bits MSB in 8 bit mode.
16Mbit read need 45 secconds.
The Schematic has been updated with the changes. π
-
This reply was modified 10 months ago by
MrFlower.
Pull down resistors test.
Well, to be sure that each step works, i have installed some resistor of 5k1 (of Address bus) in a vintex64 repro card, and… The game still working fine in the VB π
next step…
-
This reply was modified 10 months ago by
MrFlower.
Attachments:
RedAlarm reading with resistors.
I have connected the STM32 to the vintex64 cartridge with the Red Alarm game and made a reading with the resistor line on the address bus, and everything is working correctly. It takes 18 seg to read.
In the PC screenshot attached you can see on the right the RedAlarm rom that I downloaded from the internet, on the left the reading done with coolTerm through the serial port.
You can also see how the test circuit has been.
-
This reply was modified 10 months ago by
MrFlower.
Conecting the “flash cart” to a VB
The time has come to connect the complete circuit to the VB to check if everything is still working correctly… and yes, EVERYTHING IS PERFECT.
I have also checked that after playing for a while I can still read the memory correctly.
I can’t do any more tests until the 29F160 memory arrives from China.
I am very happy that everything is going well :).
-
This reply was modified 10 months ago by
MrFlower.
Attachments:
PCB Design
While i am waiting the memory, i have decide to design the PCB, but I’m not going to send it to production until I test everything with the memory.
I have used an USB-C connector but with USB 2.0 setup pins (D+, D-).
-
This reply was modified 9 months, 4 weeks ago by
MrFlower.
Attachments:
I still waiting…
Updated the test Schematic diagram (bluepill based) with the resistor in the /WE line removed.
And attached the production schematic :-).
Now, i am thinking if it possible to use the STM32 as nvSRAM ic to save games…
Attachments:
Hi all.
The memories have arrived and I have tried to solder wires to the TSOP48 pins (the flash memory), I have given up, I have overestimated my soldering skill. So I decided to send the PCB to production in PCB way.
I have to keep waiting, about 3 weeks more.
Attachments:
I can not use the SMT32 as nvSRAM beacuse i have no more I/Os in the STM to manage CS1, CS2 and WE cart pins, and also the chinese version of STM32 not work with the EEPROM emulation i need an external one like 24LXXX, i2c serial eeprom.
Another hardware developer in town. Nice project and progress! Don’t let anything stop you.
Let everyone know how the Red Alarm Repro holds up; I try to make our stuff indestructible. Also, nice get more positive visibly on our repro work.
If need any free/sample connectors to help just let us know.
Ohhhh Vintex 64 team!!!!
Your Red Alarm is very robust no doubt, big vias and big tracks, it is very useful for my tests.
Maybe I can suggest you to use square/rectangular shapes for the PCB, generally for large quantity production it is usually cheaper than cnc machine cutting.
Thank you very much for the encouragement, it is always welcome.
About the connectors, thank you very much for your offer, when I need some connectors I will buy them from you, we are in touch :-). I will only make a few cartridges, this is not my business.