There are times, when you truly don’t know which direction to take. At first, I partially replicated the Drumulator's functionality in a GoWin FPGA. Later, I attempted the same adventure with an Efinix FPGA. That’s when I ran into the challenge of completing the machine—specifically, implementing the entire Z80 interrupt system in this Efinix FPGA. I didn’t succeed.
During this process, I realized that developing something "new" in an FPGA isn’t very practical. The reason? Well, there’s no real-time debugger like you’d find on any microcontroller. So, I tried using a processor instead and went with a very interesting RISC-V processor. Unfortunately, as I progressed, I realized I wouldn’t be able to fully achieve my goal this way.
Then, I came across STMicroelectronics' announcement of a new member of the STM32H5xx family. Looking at its specs, I noticed it was very similar to the previous RISC-V processor—but with every feature doubled: RAM, flash memory, and operating frequency. I figured it was worth giving this microcontroller a shot.
Then, after a period where I could no longer get STMicroelectronics' STM32Cube IDE to work properly on my Windows machines (dealing with installation crashes, missing packages, and other issues), I decided to try again with this new processor. I installed CubeIDE and CubeMX - miraculously, it worked perfectly on the first attempt.
So I embarked on this new adventure, building on the various tests I had previously conducted with the RISC-V processor regarding waveform generation. However, I decided to approach this as two separate projects: first developing the analog section for sound generation and processing, and then - if successful - completing the control panel.
After numerous iterations, here's what the analog board should look like.
This is a first draft. I haven't attempted to route this circuit yet. I may need to make some adjustments to the placement of certain component blocks. And even assuming the circuit works as intended, I'll still need to verify the audio quality - particularly how it handles (or fails to handle) the various interference patterns generated by the processor.
I'm not done yet.
The positive aspect is that with this circuit and the tests I conducted while designing my MSX cartridge (which uses the same processor), I should be able to implement waveform switching relatively simply. This approach eliminates the need for larger PCBs containing multiple memory circuits.
Well, having worked on multiple units of the original Drumulator circuit during repairs, I have to admit the final PCB is significantly more compact and uses far fewer components. It's nothing like the board in EMU's machine.
Of course, there's still the control panel to develop. But even that only requires a few additional elements compared to EMU's version - just some LED drivers, two keyboard multiplexing circuits, and that's about it...
UPDATE 08/01/2025
My Experience with EasyEDA Pro:
I tried using EasyEDA Pro to design the analog section of the Drumulator. After spending some time with it, I’ve concluded that this development tool is absolutely not for me—it just doesn’t suit my workflow at all. The limitations and its general behavior ended up frustrating me to no end. As a result, I’m going back to good old KiCad to redesign the board, with a few minor tweaks. The overall concept remains the same, but I’m changing how some components are physically laid out. Normally, I believe that fewer different elements in a system mean easier debugging and better reliability, but this time, I’m doing the opposite—adding more components to simplify things. Surprising, right?
Tech Rant: The State of Software & Forced Bloat :
And speaking of annoyances, I’m getting increasingly fed up with how systems and applications behave these days. The way they push—or rather, force—users to accept commercial nuisances is beyond frustrating. I’ve already stopped using Firefox except for certain sites that require specific resources. Otherwise, I never use Bing, and Opera and Firefox are now limited to just a few websites.
Unfortunately, I’m stuck with Android on my phone for now, but these so-called "updates" are just excuses to bombard users with checkboxes, tricking them into installing bloatware. And even then, some apps can’t be refused upfront—you have to uninstall them afterward. Needless to say, I won’t be switching to Apple. It’s the same nonsense, just worse and more expensive! This trend is spreading to more and more software.
My Solution? Linux + Minimalist Setup:
So, my plan is to set up a small Linux machine and keep my Windows PC strictly for development tasks. On Windows, I even use a portable browser instead of installing one. As for my phone, the only reason I’m still on Android is one essential app. The second I find an alternative, I’m switching back to my trusty Siemens B615!