Wednesday, March 18, 2020

Electro Harmonix Rhythm 12 Schematic

I was able to get another obscure drum machine, an Electro Harmonix Rhythm 12.
It has a somewhat unique sound, and I wanted to understand the voices better. There is a schematic available out there, but it's not the clearest. As usual, I decided to redraw it in Eagle CAD.

There are basically 4 voices, but they can be manipulated a bit. Parts of the sounds can be muted or even cut short.

Here is the portion that actually creates the sound. The sequencing and amplification parts are not shown. 

There are four "Twin-T" oscillators present. Three are damped, so that they decay naturally. One is self oscillating, and generates a tone used in the cymbal.

The cymbal and snare noise go through single transistor VCAs. These are pretty crude, and seem to work by offsetting the input into (and out of) the active region of the transistor. This heavily distorts the signal, but it does work.


Most of the other transistor serve to mute drums for pattern variations.

Here is the beginning of a layout. It's very easy to route, and could be done single-sided with some jumpers.

Saturday, March 14, 2020

Radio Shack Electronic Drums Schematic 60-2249

One more attempt to preserve and understand a drum circuit...
This time we have the Radio Shack Electronic Drums from some time in the 80s.
It features four velocity responsive drum pads, and four sounds. There sounds are bass, snare, tom tom, and phaser.



I took a few good picture of the board, front and back. Then I traced them in Gimp. I make layers for things like jumpers, components, holes, top/bottom copper, etc. I also color code things like power rails and audio buses. That makes it easy to view exactly what I need while creating the schematic.



Here's a rough copy of the board in Eagle. Some of the transistors didn't have equivalent footprints, so liberties were taken.



I recognized the configuration as a variation on the classic "Bridged-T" oscillator, or a damped tuned resonator. Three of the voices are basically the same, while the last is gated noise. Nothing terribly interesting, but here it is.


Eagle files and high resolution images available on my github.

Tuesday, February 25, 2020

Eurorack to Oscilloscope Adapter

Here's another very simple adapter. 3.5mm to BNC, to allow patch cables to be plugged into a 'scope.

Required Parts:





Friday, February 21, 2020

DR-55 Battery Backup

I made a simple adapter to run my DR-55 from a wallwart instead of a battery. The DR-55 uses the battery to preserve the pattern memory, and my adapter forced me to remove the battery. So, I added a coin cell that is able to retain the patterns, and leaves room for my adapter.

This modification might still be useful without the wallwart adapter. It lets you remove, or run down your AAs without losing your patterns.
The modification requires:

I chose to replace the battery wires with JST terminated wires. This makes it easy to remove or replace the battery holder. I think it's nice to be able to easily "undo" a modification.

I then soldered a schottky diode in series with the battery. This prevents another power source attempting to "charge", and destroy the CR2032 coin cell. A schottky diode is used for the low voltage drop it offers. This lets the RAM see a higher voltage from the battery, and function longer as the voltage decreases.
The white line of the diode points away from the battery, and the other end is soldered to the red wire. A little heat shrink tubing keeps the diode lead, and wire, from shorting anything.


I attached the battery as shown across capacitor 39, as it bridges the RAM's supply pins.



I closed the machine up and slid the battery holder between the case and PCB. It can also be mounted in the battery compartment with some adhesive foam.


That's it! Make sure the holder is switched to "on" and that you put one battery in it. The holder is made for two batteries, but works fine with just one. In fact, two cells offer a bit too much voltage for the RAM, and may shorten its life.

Breadboard Friendly 3.5mm Jacks

Here's an easy one, breadboard friendly 3.5mm jacks. I got tired of struggling to connect eurorack patch cables and breadboards, so I put Dupont connectors on a 3.5mm pigtail. No soldering required, just crimping.

Here are the pigtail cables , and crimping kit I used.


Monday, February 17, 2020

Williams Defender Sound Disassembly

Here's something different, an in progress attempt to reverse engineer the sound board for the arcade game "Defender" (and others). The sounds are very recognizable, and unique to Williams arcade/pinball machines. They always interested me, so I'm making an attempt to understand them better.

The board is based around a 6808 CPU (relative of the 68000), and a DAC attached to an IO controller. The binary is floating around the web, as is this great disassembler: DASMx. I used it to disassemble the ROM into a code listing, and started commenting it.

Here are the schematics from one of the compatible service manuals:


I was able to use the schematics to figure out the memory map. This helps understand the significance of certain read/writes in the code.
RAM: $0000 - $007F (128 Bytes)
PIA: $0400 - $07FF
ROM: $F800 - $FFFF (2KB)

By loading the ROM into audacity I was able to see some recognizable shapes. These are the waveforms/look up tables stored alongside the code. Some are played directly, while others are used to modulate things like pitch, or volume.

There are some interesting tricks done in the code, and I hope to explain them here one day. Things like dynamically generated delay loops, and something akin to granular synthesis...

Until then, the current version of the commented disassembly lives here.

Friday, July 12, 2019

Cyclone TT-606 Kick Drum Decay Fix

I recently purchased a Cyclone Analogic TT-606 and was dissatisfied with the sound of the kick drum. Comped to my TR-606, it's too boomy. The decay is too long and the transient is muffled. I opened it to see if it could be fixed.

There is a sticker on the underside that covers two screws. This label can be heated and easily removed. I used a reflow station set to to its lowest setting.
There are also some snaps that must be pried apart somehow. I was able to use a guitar pick.

Once inside, there's a nicely labeled PCB with a "BD" section.



The board does not lend itself to being reverse engineered, despite the labeling. The solder resist makes it difficult to see the traces. It also makes it near impossible to shine light through the board. Additionally the solder resist covers the vias, making some signals harder to follow.

Despite this, it wasn't too hard to figure out. It is extremely similar to the TR-606 schematic, including component values.



I redrew the TT's kick similarly, until I found the difference. One of the two oscillators is mostly the same, the other has drastically different values.



It turns out that they roughly doubled the values for the leftmost oscillator's resistors. This increases the Q-factor, affecting the decay.
They also put a digital pot in parallel with R27 to give a kind of tuning control. The digital pot is a 10K that, when in parallel with R27's 6.8K, gives an equivalent 4K down to 500Ω. This is in series with R25, yielding a total equivalent range of  1.18K to 4.68K. Our original TR value of 3.3k falls inside this range, so it doesn't strictly need to be changed.

R28 and R90 sum to 1.24M instead of 680K. Something must be changed here. There are multiple ways to come up with a value around 680k. 1.5M in parallel would work, but I opted to change R28 to a 470K. This gives 710K and I find it suits my taste.



Here we can see a before and after of the kick waveform. Also included is a real TR-606 at the bottom. The TT is much tighter now and the transient is slightly louder than before.


While I was comparing the before and after, I noticed that the TT's triggers are too long! TR triggers are all 1ms while the TT's are 2ms. This is part of the issue with the transient and isn't as simple to sort out. Either a firmware patch is needed, or some kind of monostable osc would have to added onto every trigger.