lundi 16 mai 2022

The problem of front panel prototyping.

With the development of my MIDI switch, I am as always confronted with the mechanical realization of the case. The problem is that I have made good progress in the development of the MIDI switch and I would like to put it in a box. It would be much easier to develop the software, rather than having a whole bunch of modules on the workbench.

But it is not at all easy to find a manufacturer able to produce a front panel at an acceptable cost. In fact, I never found one. 

So, I decided to see if I could use the CNC that I own but have never used. I have owned this Colinbus since 2007, following an article by Elektor :


In fact, for lots of reasons, I never assembled this machine until 2016 or 2017, I'm not sure, where I started assembling it. And then I found myself confronted with the problem of the electronic control board. It was a proprietary board, so you had to get the proprietary software, which I couldn't do. 

It must be said that this machine was no longer offered for a long time and that its electronic board was no longer able to communicate with the manufacturer's current software. So I decided to switch to a more current and above all more standard control board, I opted for a TinyG board from Synthetos :


And, in 2020, thanks to the first confinement in France, I took the opportunity to finalize the assembly of the machine with this new control board I wrote an article about it in French here. I was able to test the machine with the new board, as well as control software whose name I no longer remember. 

But it wasn't working correctly. the X and Y movements were unable to realize the extent of their theoretical displacement. 

Despite a whole series of tests, I was not able to find the cause of this malfunction. I assumed then that it was either the software, or the power of the laptop used, or mechanical alignment problems that prevented the correct operation of the CNC.

I dropped the case again until a few days ago. It must be said that I am really motivated to create a correct front panel for my MIDI switch. This time I used CNCjs. And I also changed the USB cable that I originally installed in the CNC :


And then, I don't know why, everything started working fine. I was able to move all three axes with no problem. The use of the keys of the keyboard for that allows precise and fast test. The only small problem is that I found that the machine generated a lot of extraneous noise, some of which seemed to me to resonate. Which is not good for the precision of the machine.

But, after having checked and perfected the tightening of all the screws of the machine, these parasitic noises have disappeared. So it looks like I am now able to perform drill tests with this machine. I still have to find suitable end mills as well collet chuck for the milling motor. 

Because when ordering the machine, I also asked for a slightly more serious motor than the original one, but was obviously delivered without collet chuck : Optionnal :-(

In short, fifteen years later it seems to me that I have never been so close to finally using this CNC. Hoping that the final precision is correct, even if for my work on the front panel I don't need great precision. 

The CNC, once well adjusted and tested with CNCjs:



lundi 9 mai 2022

MIDI SWITCH.

We do tests on prototype boards, we develop ideas that don't always work. And then at some point, when the concept is in place, you have to connect everything to check that the general idea can work.

what is called a 'noodle dish'
Between the different programming systems, those allowing various logging methods, the USB hub is very busy. And finally, the realization of the first MIDI 'ping'.

The principle is simple:

- We start from the PC in MIDI.
- We enter the MIDI information to the SWITCH.
- We continue from the SWITCH in MIDI to a synthesizer.

And yes: it works!

At the same time, on this path, various changes of media type and communication speed are performed. This is the principle. And the general principle is to make a machine that facilitates MIDI interconnections. 

I seem to be on the path I have set myself. Obviously, there will be 16 channels to manage. For the moment I am not yet able to know if the power of the integrated processor will be sufficient but I think so, it works at a fairly high frequency...

mercredi 27 avril 2022

Shortage of components :-(

It is clear that, although the economy has supposedly recovered, the availability of certain components is still uncertain. As for those that are available again, prices have increased significantly.

This is the case with FPGAs. However, for particular creations, I appreciate the use of FPGAs. I intend to develop my Drumulator clone with this type of circuits. 

And, suddenly, I'm not really sure I can get the modules that I use. So I decided to make an FPGA module myself with a circuit made in China by Gowin.


For now, the goal is to create a test module that can allow me to discover these new circuits. They are not really comparable to Altera (Intel) or Xilinx circuits. They offer less possibility, a priori, but should perfectly suit my basic applications which do not require large resources.

So I chose to use the GW1N-LV4-LQ144 component. It offers 4608 LUTs, 180Kb (22.5 KB) of BSRAM and 256Kb (32KB) of FLASH. I think this should be enough for a minimal Z80 system implementation like that of the Drumulator.

But, to be clear, I'm not sure of anything at the moment... So, as I like to experiment, I developed a small module-type board which, if my tests are conclusive, can be used for a few applications:

Front

Back

The board seems more 'simple' than what we are used to seeing with classic FPGAs. It is precisely that Gowin circuits allow this simplicity. And I like it when it's simple ;-)

I still have the silkscreen to be placed correctly and I will have some printed circuits made.

That's good, I received a Gowin programming dongle this morning:


Let's go for adventure ;-)

dimanche 17 avril 2022

OMEGA MSX : Other projects

Around this OMEGA computer project initiated by Sergey Kiselev, there are other contributions that I think are worth mentioning. 

First, a series of expansions made by Msxmakers, including a 4Mb static memory expansion card. This extension is intended to take place directly on the OMEGA connector, in the space provided for this purpose:


This extension seems interesting to me because it offers enough memory for the development of ambitious projects.

And now a new version of the original Omega board, this time made by Merlinkv and available on the dedicated Github page. The main purpose of this new edition consists mainly in improving the routing of tracks, especially those dedicated to the video part. The goal is to significantly improve the quality of the video output:


Other significant points: The original ROM slot in DIP version has been replaced by two slots in PLCC format, allowing the selection of several types of capacity. All of the decoupling capacitors and other non-chemical capacitors have been converted to CMS format on the back side of the board. Finally, a number of additional connectors allowing the selection of the ROM, the external Reset of the system, and other possibilities of power supply and connection of fan were added.


You can find this information on the Spanish forum: https://www.winuaespanol.com/

If you are interested in MSX type machines, I recommend that you subscribe to the associated Facebook page: https://www.facebook.com/groups/msxhomecomputers

I haven't tried these two projects since I'm currently working on an MSX-ROM type cartridge project that can be downloaded by USB. And this kind of project already takes quite a bit of time...

vendredi 15 avril 2022

Drumulator : It's progressing

There it's done. The audio output tests I'm preparing for my Drumulator clone works fine.

I present to you the prototype of the audio output of my new Drumulator:


And, in order to demonstrate the perfect functioning of the board, here are a few seconds of video. 


(Click on Youtube to have more details)

For the moment I don't have a suitable camera but I was able to use DaVinci to select only the clearest part of the video, and export it to Youtube. You have to start by testing the tools at least before embarking on large publications...

mardi 12 avril 2022

Drumulator in FPGA & OMEGA MSX computer.

THE DRUMULATOR

I continue the experiments of recreating the audio outputs of the Drumulator.

At this stage, I know that I am able to read all the Drumulator sounds correctly with the digital/analog converter used, once the data has been passed through the decompression table to the µLAW standard.

But, for the moment I reproduce the sound directly at the output of the audio converter. I now have to test on the one hand the individual volume adjustment part then the sample&hold outputs, in order to verify that the reproduction is going well on all the outputs.

It's a bit complicated because in order to minimize the need for board routing, I opted for serial interfaces for all the commands. Originally, the interfaces are of the parallel bus type with all that this implies of buffer circuits and bus locking.

And above all, I like to condense ;-)


Apart from the analog converter and the serial control circuit, I use the same components as those present in the Drumulator, just to preserve as much as possible the sound signature of this machine.

THE MSX OMEGA

This morning I received a package directly from Poland. Even if I blurred some information on my home address, I note that the French postal service still retains within it, some real clairvoyant eyes. I doubt that it happened correctly in the machine-reading system... Long live to the world of real people!


And what's beautiful inside this 'survivor' package? 


Everything you need to build a great case for the OMEGA board. All I have to do is find the few screws needed to fix the board to the bottom of the case. Interesting thing: I find that my USB to OMEGA keyboard conversion interface fits perfectly inside the box without any problem. I should even have room to attach a USB connector to the front panel. From the cutout informations, I thought my interface wasn't going to fit inside. In fact, it does it very well and I'm very satisfied!


The difference in this version is that there is no cutout for the Omega keyboard as originally planned since I am replacing it with a USB keyboard. I indeed thought that it was not going to be practical to type on the keyboard placed in the high position. I was right. It will be much more practical with a 'normal' keyboard.

So, I'm thinking about building a cartridge to easily develop software for the Omega. I know that there are many solutions, including the one that consists of using a ROM cartridge of the MSXROM512 type from Raphnet, on which we place an EPROM emulator to easily upload the code, once validated in the emulator,


but I am going to try to develop a cartridge that can be loaded natively via a USB port and also equipped with a serial port. 

Because in fact, I'm not very 'games' with computers but rather communication. I would love to connect this Omega somehow to the NET.

Many thanks to Krzysztof Odachowski for the realization of this enclosure...

vendredi 8 avril 2022

Drumulator in FPGA & MSX news &...

It's been a few weeks since I posted anything. However, I worked on four simultaneous subjects.

  • Troubleshooting the CSQ600.
  • The development of the MIDI switch.
  • The finalization of the USB keyboard converter for Omega.
  • The test of the audio output of my future Drumulator. 

CSQ-600: 


Unfortunately, I couldn't get the machine to work. However, I installed a new processor, but the result is strictly identical to that of the original processor. I just managed to have a different start of the machine by replacing the original oscillator with a signal generator. The result is insufficient for me to get an idea of ​​the problem for now. After a few days of intense investigation, I momentarily put the subject on hold.


MIDI SWITCH :


I made some progress on the subject. I mounted a module with four RJ45 inputs/outputs as well as a small conversion 'pod' to MIDI IN/OUT. I'm currently stuck because I can't get my hands on the small processor used on the PODs. Fortunately, I recently found availability for this processor and ordered a few copies. I am awaiting delivery.

USB KEYBOARD CONVERTER :


I am pleased to announce that the development of this interface is finished. I finalized the code for 'AZERTY' and 'QWERTY' type keyboards. As a reminder, this converter allows you to connect a standard USB keyboard to the MSX OMEGA microcomputer. Also, I'm waiting for some components to manufacture a few copies that I will make available for sale for those who wish to go through this solution rather than building the OMEGA keyboard entirely.

The Omega computer

AUDIO OUTPUT FOR MY FPGA DRUMULATOR :



I completely coded the processor part as well as the waveform sequencer in VHDL. The goal is to fit as many logic elements of a Drumulator as possible within an FPGA. So I still had to study the audio output. 

The problem is of course, that the kind of digital to analog converter used in the Drumulator is absolutely no longer available. The solution adopted therefore consisted in using an available 12-bit converter, and in coding the system making it possible to reproduce the logarithmic transfer function of the original converter.

For this, I started to mount a copy of my analog output prototype:

Quick & dirty test plateform but sound very good!

To do my tests, I used a development board from STmicro equipped with a fairly powerful STM32 processor. This kind of board associated with the ST development software is really ideal. Once the system was set up, I encoded a square signal at 1KHz using Audacity which I exported in µ-LAW format to the development board. The result gives what was expected:



For this kind of test, low precision required and low frequency, the (toy) FNIRSI-1014D is ideal because it does not generate any fan noise. This allows you to leave it on for hours without wanting to throw it out the window at the end of the day ;-).

Finally, I replaced the sinusoid definition file with the one from the copy of the original Drumulator ROM to see the scrolling of all the sounds of the machine, given that I scan the whole 64K of ROM.

In fact I obtained the same result as that obtained by testing the waveform sequencer implemented within an FPGA, by directly sending the addresses to the ROMs present on the motherboard of the Drumulator test:


Basically, I have 'proof' of all the important parts of the Drumulator working. It only remains for me to test the analog output filters, knowing that there are recent components to replace the old SSM present in this section of the Drumulator. Each part works 'in its own corner'. Now it's all about putting it all together on a large prototype board.

I left my job with the madmen of the French national education since a few weeks, and life is much more pleasant now. I develop what I like, at my speed... Peace for ALL!