Monday, April 15, 2024

8 Ports USB Midi interface.

 

This topic is a very long-standing one for me. I must have started thinking about it in the early 90s. At the time, the power of microcontrollers did not allow the development of complex systems. I then remember having developed a 68000 system to manage the 8 MIDI ports. I never created this system because I realized that it was far too complex to create and therefore necessarily too expensive.

10 years later, at the beginning of the 2000s, things improved in terms of the possibilities of embedded systems. So I tried to create this multi MIDI port using a micro-controller. I almost got there, but ran into a small problem, it was still difficult to find a circuit offering 8 serial ports and fast enough to manage them.

Everything changed in the early 2010s. At that time, it became possible to find a micro-controller circuit with 8 serial ports and enough power to manage everything. It was then that I looked into ARM type circuits from STmicro. From that point on, the problem shifted from the hardware to myself. In fact, in view of the possibilities of the new circuits, I wanted to add a whole bunch of functionalities, including USB bus management. Then, I entered into a spiral of redefining the functions of the object which, constantly, made me experiment with various solutions, all nevertheless unsatisfactory in my eyes. Unsatisfactory, because of the poorly defined hardware, and/or the software functionalities, which are also poorly chosen.

But, this series of failures allowed me to test a lot of solutions. And, a few days ago, as I was rearranging my stack of synths and rewiring everything, the obvious solution dawned on me. Now, right away, I saw very clearly what system I needed to have on hand to allow me to easily and flexibly wire all of my machines. I also realized that I wasn't far from the real subject, in fact. And that I just had to use all my previous developments and my previous ideas to achieve what I needed.

First, create not a hub or a switch, but simply an 8-port MIDI interface. I already have the prototype almost available. I just need to make some minor modifications to allow my 8 ports prototype to be connected to the USB port. So I have just made the necessary modifications to the circuit. 

The general idea is that it should remain simple to achieve. Thanks to the experience acquired with RISC-V processors during my previous work, I left with this type of processor :


It's a fact, the printed circuit board does not seem very complicated to make. Once the components are implemented, it should look like this:


As you might expect, the MIDI connectors are not shown in this 3D view. In fact, it is not standard MIDI connectors but RJ45 connectors that are used. This is a particular characteristic of my system.
 
The difficulty for me is not the creation of the card but its programming. Working with the USB bus is not always easy. Fortunately, a few years ago I implemented a 2-port MIDI interface on a USB port using an ARM microcontroller from STmicro. So I have a software base, I'm not starting from scratch. Even if this does not guarantee that I will reach the end, I also have no means of debugging the USB bus, I am relying on the experience acquired to complete this subject.
 


Friday, April 12, 2024

A MSX flash cartridge downloadable from USB : the last iteration.

 

 What is it about this time?


  • I did some redrawing work on certain tracks to make them more 'homogeneous'.

  • I powered certain interface circuits directly via the +5V power supply from the MSX connector and no longer with the 3.3V coming from the 5V USB to 3.3V régulator. the goal being to avoid electrical level problems with the test machine, a Panasonic FS-A1. In theory, 3.3V interfacing should not pose any problems, but in reality, it does.

  • And, I also added a small HF remote control module. This involves controlling remotely and without a physical link, an electrical outlet to automatically restart the MSX computer without having to manipulate the main switch, nor having to 'fiddle' with a RESET connection inside the computer. MSX. 


The final circuit should look like this :


Apart from the location of the HF module, the circuit looks almost the same as the previous version. Having written this, I also adjusted the external dimensions of the card so that insertion into the MSX connector no longer presents any potential gaps.

The final appearance should look very similar to this:


As for the code, the two programs concerning the processor which takes care of the USB communication and the one which manages the MSX bus, should not be modified. From the tests done, loading and making the loaded ROM available for the MSX computer works fine now.

Wednesday, April 3, 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! 


Thursday, September 28, 2023

News...

 I published my first post on this blog in October 2020. For more than a year, I regularly posed diverse and varied subjects. During this period, I noticed that this blog did not interest many people. So to speak, no one.

Without even realizing it, I quite naturally ended up stopping my publications focused more specifically on computing and retro computing on this blog, favoring my other more general blog https://synthelectro-fr.blogspot.com.

A little by chance, I was able to observe recently that the consultations of this blog had greatly increased, despite the fact that I have not published anything new for over a year now.


This motivates me again to revitalize this blog. Especially since during February 2022 (last post on this blog), I studied several projects based on RISC-V processors.

Yes, because until then, I often used ARM processors from STMicroelectronics. But I admit to having difficulty, not with these processors, but quite simply with the graphical resource configuration interface, STM32CubeIDE. I know, this type of software is supposed to greatly facilitate the start of any project, but I find that this approach is a little too 'virtual'.

After all, I'm a guy from the 80s where absolutely everything had to be done 'by hand'. I kept this 'root' approach and I think that this makes it easier to 'become aware' of the operation of the processor used.

I came across the RISC-V processors from Nanjing Qinheng Microelectronics Co. 'fortuitously' and in particular their WinChipHead (WCH) brand.

So I now use the CH32V203 & CH32V307 range of processors.


So, since the beginning of 2022, I have started to migrate my projects to this new series of processors. One of the first examples concerns a 4-channel TIMER, easy to use, intended to be the worthy heir of the famous TMS1122 processor from TI. with some improvements, obviously.

I used this project to really discover WCH processors, and also to implement a concept that I appreciate and that I discovered on Facebook, the minimalist computing.

My Timer publication on the 'Minimalist Computing' group :


I am therefore thinking of publishing now on this blog the progress of my projects based on RISC-V processors.


Monday, February 28, 2022

ZX81 finally at home ;-)

After doing some research on the popular modifications to be made on a ZX81, I decided to modify the video output in order to provide a composite video signal directly usable on a monitor with this type of input.

Also, rather than increasing the RAM size to the usual 2KBytes, I decided to implement a 16Kbytes extension.

As a reminder, the keyboard connectors are cut. So I ordered a new membrane keyboard (see previous post). Moreover, after checking the video signal at the output of the PLA (pin 16), I know that the video signal is correctly generated :


In fact, after looking more closely at the video output, I could see that the cursor was indeed displayed. I was able to see 8 successive lines with this type of signal:


So, I decided to set up inside the HF modulator, a small circuit intended to improve the quality of the composite video signal, in particular to solve the problem of the back porch.


This type of circuit (ZX8-CCB) is available at this address

It is also possible to mount yourself a small transistor-based assembly which will have roughly the same effect, except that the back porch is not treated, which can be a problem on some monitors : 



Good, information about how the ZX8-CCB circuit works can be found there.

So here is what the modification of the HF modulator looks like after inserting the circuit  ZX8-CCB:


As I said at the beginning of the post, I also took the opportunity to increase the internal RAM to 16Kbytes. There is enough information on this subject on the web that it is not useful here to describe the implementation process. I used 16KBytes of a 32KBytes static RAM :



Voilà, once these modifications have been made, it remains to carry out the first operational tests.


And the tests to verify that the 16Kbytes are present :


So let's go :


And the result:


Conclusion: These small modifications require a bit of time but do not present any difficulty. With a working ZX81, these modifications allow a very interesting update of the machine for a very modest price.

Also, I didn't use a new membrane keyboard. I just trimmed the original connectors a few millimeters to remove the damaged part. It works perfectly.

Note that I have never been able to obtain an image with the RetroTink 2X Mini converter that I own.


The images shown here are from a ViewSonic brand monitor.

Finally, here I am, the owner of a fully functional ZX81. A computer that I first touched (in the literal sense) in 1983. I will always remember it as a very intense moment. I never bought one, however I was able to do a few programs on it at school the following year. As it was impossible for me to have access to a television set in my bedroom as a teenager, I fairly quickly bought a Sharp PC1500 which had its integrated display and which I had a lot of fun with.

sweet home ;-)


Tuesday, February 8, 2022

New arrival : ZX81

Why a ZX81 and not another computer will you tell me. Well, because it was the first computer I held in my hands. It was in 1983, I discovered microcomputing in magazines and had never seen it for real.

In my memories, it was in the summer of 1983, I was on vacation with my parents and, in a lost town in Burgundy, Montceau-Les-Mines, when I entered a small electronics shop to try to buy a TMS1122, I saw a working ZX81 displayed on a shelf. It was a real emotion for me to hold in my hands this little thing that everyone was talking about.

This is how I received my vaccine not Omicron, but 'Oh-Micro'! Since that date, I have never owned a ZX81. As we are now in 2022, I wanted to finally have a copy before the 40th anniversary of this meeting in Burgundy!

And here is MY ZX81, in superb condition:


The question is, does it work? I don't have any adapter to connect this ZX to a current screen. At first, I therefore contented myself with dismantling it to check whether it showed signs of intervention.

So I disassembled the machine:

At this point, I tested the power supply. The 5V is present and the integrated circuits heat up in a 'normal' way. I also checked the temperature of the Ferranti ULA circuit which is reputed to heat up enormously. After about ten minutes of operation, I obtain a temperature of 70°C, which indeed is a little hot, but not excessive.


The 5V regulator also heats up but in a reasonable way. These first observations lead me to think that the machine 'must' function normally.


After meticulous examination of the electronic board, I nevertheless noted that some weldings were carried out around the capacitor of the power supply:


We can clearly see the traces of soldering also on this side of the printed circuit. The power supply onnector has even been slightly melted with the soldering iron:


In order to get a more precise idea of the operating condition of this ZX, I simply examined the video signal at the output of the Ferranti circuit. It's pretty easy to do, just probe the track near the TV modulator:


On the following picture we can clearly see the horizontal synchronization signal:


And now with the vertical sync signal:


So all of this seems to match what I've been able to find on the internet about the ZX81's video output:

trastero.speccy.org

But then, what could be the problem with this ZX? Because it must have one since it was dismantled in the past. So I don't know if that's it, but the flexible circuit board connecting the keyboard is obviously cut:


It is a great classic of the ZX81. I don't know yet what I'm going to do. I know it's extremely risky to attempt a repair with a soldering iron. In fact, it never works. As the plastic is cut, it is also not possible to repair the tracks with conductive paint. The best would be to replace this keyboard. I have seen announcements in the past about new keyboards being available. I'll look there.

Not available at this time but...


And then, what would be interesting, would be to connect this small machine to a small LCD or VGA screen. And precisely, I found a small project on GitHub that could be suitable:


The project can be found here: https://github.com/holmatic/zx-iot-video.

Last but not last, the ZX81 was an English computer, as well as the 6502-based BBC machines made by Acorn, as well as the line of Acorn-specific computers with RISC ARM processors that power Raspberry boards today: history of English computing continues...




Friday, November 12, 2021

MSX Omega computer : 'Hello world" with the new USB keyboard interface.

The goal of my project is to develop an interface card to connect a keyboard directly to the MSX Omega main board. 

The MSX Omega processor board equiped with the USB keyboard adaptor :


A few days ago, I managed without too much difficulty to simulate a basic operation of the USB adapter allowing me to display characters on the screen.

However, it took me a few hours of additional testing to finalize a reliable mode of operation, including automatic key repeat as well as some modes of operation with the SHIFT key. 

I haven't implemented all the secondary keys yet, but in the current state, I was finally able to program my first "Hello World" :

OK, this tiny step is not going to change the face of the world, but just give me a little satisfaction ;-)

Everything always needs a start!