Bad product design: Wharfedale DX-1

When I moved to a new apartment a few years ago I decided to get a 5.1 home theater system. Wharfedale Diamond speakers are quite nice so I decided to get Wharfedale DX-1 home theater. I have been pretty happy with it except for one major annoyance – the amplifier inside the subwoofer tends to break when I move the subwoofer for cleaning.

Broken Wharfedale DX-1 amplifier module, based on TDA7294.

I changed the TDA7294 chip the first time this happened, but now I think that I will get a class D amplifier module from China and use it instead. I will post some pictures when I complete the mod.

Making an usable solid state relay

Using a microcontroller to control a device which uses mains power can be dangerous. There are products which try to overcome this problem, but I think they still have a lot to improve. If we take a look at the Sparkfun catalog, the Beefcake Relay requires you to find a safe enclosure for your project. On the other hand, the PowerSwitch Tail  comes in a nice enclosure but supports only American power plugs. Moreover, the low voltage connector is a screw terminal which is slow to mate and de-mate. Industrial solid state relays, like eBay Foteks, also require a proper enclosure.

Finding an enclosure which has suitable dimensions is quite easy, but there is quite a lot of boring work if you want to use connectors instead of just running a cable through the enclosure wall.

DIY solid state relay used to turn the heat bed of 3D printer on and off.

Recently I upgraded the heatbed of my 3D printer so I had to figure out a solution to this. I decided to use Schurter 4300.0301 for the mains connection and a 5.5mm DC plug for the low voltage connection. The circuit board, which implements the functionality from the application circuit of the MOC3043M datasheet, is soldered directly to the terminals of the mains connector. The whole thing fits nicely to a Kradex Z56 enclosure.

I hope decent commercial MCU controlled mains switches emerge soon.

Boot selector for Amiga

Over the holidays I had once again the pleasure of tinkering with my friend’s Amiga 500. This time helped him with flashing the HxC firmware to his Gotek floppy drive emulator which he had mounted in an external drive case. The flashing went smoothly, but in order to be able to boot from the Gotek device the Amiga needed a hardware modification.

This came as no surprise as we had done our homework. There are multiple products in the market but I did not really like them as they connected the IC pins to a DPDT switch with a long wire in order to swap the signals in pins 13 and 14. The CIA ICs are getting rare, and although unlikely, killing one with ESD would ruin the day. Moreover, the required switch type greatly limits the selection of switches and mounting methods one can use to make the solution as neat as possible. The prices of the existing solutions are also quite high if you consider the shipping costs as well.

For those reasons I created my own design. It is a really simple solution which uses a 74HC153 multiplexer to do the switching. The top side of the board has a precision DIP socket for the even CIA. The bottom part has the turned male pins for plugging the whole thing to the original IC socket. The circuit will draw its power (approx. 2 mA) from voltage supply of the CIA chip.

Amiga Boot Selector can be bought in my Tindie shop:
I sell on Tindie

Adding input auto-select for Scythe SDAR-2100 amplifier

I have a Sonos system set up at home. The Play:1 speakers start to play music whenever I press the play button on the Android control app; however, the Connect units which hook up to my existing amplifiers need something different. For my AV receiver I solved the problem using Python SoCo library and Marantz telnet interface. For my PC amplifier Scythe SDAR-2100 I had to think of something else as it does not have any control interface.

Front panel without lid.
Front panel without lid.

I took a look at the amplifier and noticed that the preamplifier board is separate from the power amplifier. Therefore I decided to replace the preamp with one that sniffs the inputs and changes the input if needed. As a bonus that way I could get rid of an intermittent volume control potentiometer.

The circuitry is nothing fancy; Arduino Pro Mini takes care of all the processing involved; PGA2311 is used for the volume control. Inputs are amplified with a pair of LM358 op-amps and then fed to the A/D converter of the AVR. A bank of relays takes care of switching the input. Switching regulator AM1D-1205DZ generates the +/-5 V rails from the 12V rail. As a bonus I use the AVR to pulse width modulate the backlight of the VU meters (the black/red cable in the photo).

Modified preamp board.

The trickiest part of the project was to design the PCB layout so that all the potentiometers, switches and connectors meet up with the main PCB and the holes in the enclosure. It involved a lot of measuring. I also experienced some software bugs which resulted in some VERY LOUD output… luckily I tackled those quite quickly.

Overall view of the circuitry.
Overall view of the circuitry.

While I had the amplifier in bits I also replaced the horrible stock speaker jacks to better ones. Overall I am very happy about how the modifications turned out. I no longer have to turn any knobs in order to play music from Sonos!

Arduino core memory shield is ready and for sale

Hi all,

after three hardware iterations my core memory shield is now finished. I am selling it as a kit on Tindie.
I sell on Tindie


Here is all the material related to the kit:


Thanks to Ben North and Oliver Nash at for the inspiration and encouragement!

Building a ferrite core memory, part 2

My ferrite core memory is progressing nicely. I have received the PCB and assembled it for the most parts.

Core memory shield without sense circuit

This evening I tried out how the H bridges worked – after a few tweaks in the Arduino code I was able to get this sequence out:

Bit read values from an array of cores.

The only remaining things are to assemble the sense line circuit and to do the final testing and tweaking, which will most likely take a long time.

Building a ferrite core memory, part 1

A while ago I ordered some ferrite cores from Bulgaria in order to build a vintage memory out of them. Yesterday I managed to build a one-bit memory by following what Wayne has done.

Writing 1,0,0 to memory which was in state 0. Enable pulses in yellow, sense line in cyan.


Now that I have an understanding of the technology and the characteristics of the cores I have I will continue to build a 32-bit version in the form factor of an Arduino shield (my own twist of this project).

Blog is back up

Today I put the blog back online as I think I now have enough time to maintain it since I have completed my studies. I went through the old articles and polished them up a bit. I hope I will soon have exciting new projects to share.

I also enabled commenting as I am hoping there won’t be too much spam. I go through every comment prior to publishing them.