Affichage des articles dont le libellé est MSX cartridge. Afficher tous les articles
Affichage des articles dont le libellé est MSX cartridge. Afficher tous les articles

vendredi 26 avril 2024

Ultimate MSX cartridge modification



I made two final changes to the design of this cartridge. 

First modification.

The first concerns the interfacing circuits with the MSX bus : Aoineko, the developer of the MSXgl graphics library who also tests the cartridge, reported to me problems with random startup of his computer. After studying his problem and especially after looking at the datasheet of his Panasonic FS-A computer, I realized that the power supply of this machine was 'unconventional' to say the least. This results in potential ground problems :


I guess you 'see' what I mean. The wire that serves as a ground reference is one of the two wires of an AC power supply! Hmm, I don't like that at all. 

With this type of design, the ground is always noisy for anyone who wants to connect to this type of device by taking the electrical reference of this ground. 

I therefore powered the cartridge interface circuits no longer directly with +3.3V via the cartridge's internal regulator, but directly via +5V from the MSX computer. No no, the problem was not a bad adaptation of the signal thresholds. TTL circuits work very well with commands not in +5V but in +3.3V. The HIGH level must be at least 2V, which is the case. On the other hand, it is true that this leaves a noise margin of 'only' 1.3V in the case of supplying the interface circuits with 3.3V, and given the design of the Panasonic FS-A1 power supply, I tell myself that that's a bit fair. 

Very good, but then I just postponed the problem elsewhere? It's true. But the interface circuits used, even if they can be powered by 5V, still accept signals coming from circuits powered by 3.3V. The minimum voltage for a high signal is 1.7V on these circuits. I therefore gain 300mV of noise margin. I hope this will be enough.

I still purchased a USB bus isolator in case my modification does not work on the Panasonic FS-A1. This will at least validate my 'theory'.


Second modification.

This time, it is the automatic RESET system of the MSX computer. I implemented directly on the cartridge, a system which allows the computer to be placed in RESET mode for the duration of the cartridge loading. In doing so, and once the cartridge has been loaded correctly, the MSX computer wakes up and boots directly from the cartridge : great!

The small 'problem' of this solution is that it is necessary to intervene inside the MSX computer to locate the reset system, in order to connect the RESET 'wire' coming from the cartridge. 

This is a very simple operation to carry out for those who know how to do it, but this is not the case for everyone. The solution then consists of finding a way to turn off the power to the MSX computer and then turn it back on once the cartridge has been loaded. Without using any wired connection because it is too dangerous. So I opted for a wireless solution.

I bought some small 433MHZ modules:


These models are simple enough to use and small enough to be integrated without major modification on my cartridge.


And there you have it... The first tests were functional. I was able to easily turn on and off a small LED connected to a receiver module placed a few meters away.

The receiver module:


To finalize the subject, all I have to do is develop the receiving system. It will simply appear in the form of a remote controllable mains socket. However, I use universal AC outlets so it can be used just about anywhere :



This circuit is simple and easy to assemble. I also think I will use it not only for the type of application targeted here, but more simply as a remote-controlled socket. You can easily find small remote control 'keys' on the Internet that will work very well with this HF receiver.

Warning :

The HF systems and the design of the cartridge have not been the subject of any certification request. However, the transmission power in games is so low that this does not pose a problem. However, not to be used in a sensitive environment such as healthcare centers....


mardi 26 mars 2024

A MSX flash cartridge downloadable from USB.

 

We have to be honest, developing quality equipment is not easy. Downloading a cartridge directly via the USB port from your PC to the MSX computer without any manipulation to do is a good idea.

But we must recognize that it is not done like that! I had to overcome hardware problems, software problems, implementation and component supply problems, etc. etc. 

Fortunately, most difficulties come from not having in-depth knowledge of the issues encountered. This is the study side of 'study and development'. We're getting there but it takes time.

So, after a certain number of prototypes, more and more functional, I am now arriving at the 'final touches'.

What is it about? In fact, with the idea of ​​making the loading and restarting process of the MSX computer automatic, just after copying/pasting a ROM file, you have to... restart the computer.

In 'real' life, a computer requires a power off/on sequence to restart on a new cartridge. This is not very practical. So I had the idea of ​​equipping my cartridge with a RESET signal output for the MSX computer.

Subsequently, it did not pose a problem for me to locate the right place on the OMEGA board to force the reset of the MSX computer.

But... that's not the case for everyone. And truth be told, I don't know many people who want to open up their MSX computer to solder somewhere a 'wire' from the outside.

In fact, you have to 'simulate' the action of the ON/OFF button on the computer. Again, there is no question of 'fiddling' with the computer switch. A relatively simple solution therefore consists of making a remote controllable electrical outlet. Obviously, there can be no question of connecting the MSX cartridge to an electrical outlet in any way.

A possible and elegant solution to this problem is to use an HF link. There is no question here of using a complicated or expensive module but rather a basic 'thing' capable of just remote control something.

After some research, I came across these modules:



I ran some link tests. It works really well. So, and as the emission module is very small, I decided to integrate it into my cartridge. In the end it gives this:


All I have to do now is have a few copies of this new version of the cartridge made. Of course, you will also have to make the 'famous' electrical outlet. I have some ideas for making such a socket 'easily' and very simple to operate, while still being safe to use.

Well, I have the impression of building a castle, but, even if it sometimes happens to have difficulty moving forward in the face of difficulties, it is clear that the subject is progressing and that it works better and better, which provides some satisfaction! 

jeudi 15 février 2024

A flash cartridge downloadable from USB, after the first tests in real life : Ready to produce the new prototype

 


I also had to change the three MSX interface integrated circuits which are no longer available for assembly on a production line. 

I can't wait to receive this new prototype and make the few software modifications...


vendredi 2 février 2024

A flash cartridge downloadable from USB : after the first tests in real life.

I had the opportunity to provide a prototype cartridge to Aoineko, the maintainer of the MSXgl graphics library : https://aoineko.org/msxgl/index.php?title=Main_Page

The cartridge works almost as expected. I have planned an improvement in the management of the USB bus because the cartridge tends to disconnect from time to time to his PC. 

I also added the possibility of declaring the cartridge in 64KB mode automatically. In fact, it is the cartridge itself which adapts according to the size of the file received from the PC.

When I studied the cartridge, I did it from the MSX computer I own, which is an OMEGA. So I placed the connector far enough away from the surface of the OMEGA. But this is not enough!

Oups!

So I placed the USB connector higher and took the opportunity to modify the placement of the processor which manages the USB bus. I wasn't totally happy with the USB signal tracks on the previous board. It's now much better. I also placed a precise 8MHz oscillator on this processor. This should make the USB bus work better.


On the other hand I also have cartridge cases. All I have to do now is have this cartridge version made.



mercredi 6 décembre 2023

A flash cartridge downloadable from USB, a few days later.

As I indicated in my previous post, I had almost reached the end of creating my USB downloadable cartridge, but unfortunately, the USB protocol generates periodic activity on the USB bus, which is disrupts operation of my cartridge. This involves unplugging the USB cable once the download is complete. This was not the objective that I had set for myself, namely to leave the cartridge connected to the PC while being used in an MSX computer.

So I had to find a solution. In fact it is very simple, use two processors on the card. The first manages USB communication, the second manages loading the cartridge and providing data to the MSX bus.

Yes, two processors. As the entire software aspect is already developed, all I will have to do is manage the communication between these two processors to finalize the project. As in any case the cost of the additional processor is comparable to that of a DIP FLASH, this solution is not that 'absurd'.

And the result of my thoughts is this:


I must say that the result is quite clean. I still have to check the placement of the notches because on the previous version, I realized that the insertion into the case was slightly forcing.

Ah yes, I also added the possibility of choosing the slot in which this cartridge should operate. Like this, the 'concept' is complete.

vendredi 1 décembre 2023

A flash cartridge downloadable from USB.

Everyone knows the cartridge system of microcomputers from the 80s. The MSX, a machine from that era, is no exception to the rule.

When you don't know anything about this type of machine, and when you finally get one, the first thing that comes to your mind is to see how it works. And so to do this, insert a cartridge, if possible of games, obviously!


This is when the problems start. How to do today when MSX has been commercially dead for more than 30 years. How to find such cartridges. It is of course possible to find them on the second-hand market. But buying 10 cartridges to test 10 games, well, that's not really viable.

The idea came very quickly to see if it was not possible to have a cartridge that could be refilled on demand, by SD card or USB device.

The Carnivore 2 cartridge, which also offers extras, uses a FLASH card to operate. You have to be able to find a compatible flash card, which is not always easy. I was never able to use the one I bought. The FPGA was poorly soldered and the cartridge quickly became unstable.


Straight into the trash :-(

There is the MegaFlashROM_SCC+_SD. It's the only one I managed to use. But to use it, there is a whole procedure to follow which is boring. And if you don't do this every day, you will have to find the documentation each time to successfully re-initialize the cartridge and copy your new game into it. The least we can say is that this solution is not practical at all. In addition, you have to use utilities that are provided in the cartridge while understanding what you are doing. And when you don't know anything about MSX, it's not engaging!


There is also the solution using a USB device like a key. For this, the rookie-drive-nx cartridge seems ideal. But also, after reading the documentation, I have never been able to get a USB device to be accepted by this cartridge: frustrating.


There is also the SD 512 but given the price of my three previous purchases, I decided I was going to discontinue the charges. So I haven't tested it.


Because, in fact, my goal was to test as easily as possible an MSX board that I had just built, Sergey Kiselev's OMEGA computer.


I had been dying to get my Omega board working for a while now. Because I don't want to spend more on a specific keyboard, I took the time to develop a USB keyboard converter to the OMEGA computer. 


I have also made the result of my work freely available on Github at this address: https://github.com/sillycony/USB-keyboard-to-OMEGA-converter.

So... I was looking for a solution to make this machine execute something in a simple way. This is how the idea of ​​creating a cartridge that can be downloaded via USB came to me.

I don't know if this is the easiest solution at the moment because I'm in the design phase and it's not yet finished despite several previous prototypes.

But I know that once finished, the cartridge will be very easy to use. Simply insert it into the cartridge port of the MSX machine while also connecting it to the USB port of your PC. Dragging and dropping your binary file onto the cartridge, which will be seen as a USB key, will be enough to make the ROM for the MSX available in a few seconds.

If the final solution for my cartridge is not ready yet, I am posting about it now because I have almost achieved what I wanted.


But why is the current beta version not satisfactory?

Well it's very simple: because the USB protocol imposes regular requests from the host to the device to check its proper functioning. And it happens every few seconds.

And? Well, the response process requires the processor on the cartridge to respond ;-). And that takes time. Even if the processor used is fast, while it responds to the USB request, it cannot respond to computer access via the cartridge bus. Result: the MSX computer crashes! But, when the USB cable is unplugged, everything works as expected, as shown in the picture above.

I even planned the automatic RESET of the MSX computer while loading a new binary, so that it then restarts on its own on the new game, or new application. It works very well.

I therefore need to dissociate the USB bus management function from that of the MSX bus management. Because I don't use a FLASH strictly speaking, but the flash contained inside the processor. 'Small capacity' flashes in DIP housing and parallel addressing are becoming more and more difficult to find and more and more expensive. 

So I don't have this problem with a processor equipped with the desired amount of Flash. In addition, it makes routing the printed circuit easier.

The final cartridge diagram looks like this:


I know, it's difficult to read. It's just a screenshot. But we can notice two big circuits there. These are the two processors used. The one on the right is in charge of the USB port, the one on the left is in charge of storing the binary of the cartridge and presenting it to the MSX bus. 

This will cost a little more to produce than expected, but as the two processors are the same models, I will be able to take advantage of the quantity order to reduce the final price.

The software is ready and validated. All I have to do is implement each processor with its part and add a small communication protocol between them. The most 'tricky' part consists of creating a new printed circuit board with more components. But I think I can use the design of the current cartridge to facilitate this new implementation.

I must say that this is now the second project that I have carried out with a professional type process with all that this implies of prototyping, extensive testing taking into consideration a whole bunch of parameters including price, ease of realization, reliability etc etc...

I must say that it is a very enriching experience... When I think of what the type of job I had at the French university was, just a few months ago... What mediocrity!