I'm playing around with a retired Denso ignition coil-on-plug pack. After gaining a marginally better understanding of its limitations, I will convert my test circuit to a proof of concept discussed with my friend Emily Velasco (who gave me this thing to play with): make it into a silly music instrument I've named Sparky Danger Organ.

This ignition coil came out of a Toyota Sienna's V6 engine which probably redlines somewhere around 7000 RPM. At 7200 RPM this coil would be firing sixty times a second, but 60Hz is on the low side for music-making. So my workbench experiments were to find out how much faster I can drive this thing and I think it's somewhere between 1 kHz and 1.5 kHz. (There isn't an exact number because sparks fade out rather than abruptly cut off.) But judging from Wikipedia's list of piano notes and their frequencies, even a limit of 1kHz should be enough to represent an interesting range of music notes.

I then started looking for music I can map to frequencies. I found a Blogspot page Image of 88 piano keys on sheet music with note names, octaves and midi numbers, and downloaded the PDF version of the chart. Then I looked for a relatively simple and well-known piece of music and settled on "Ode to Joy" from Beethoven's Symphony No. 9. I quickly found a simple arrangement by Benedict Westenra intended for piano beginners. Perfect!

Putting all that together gave Sparky Danger Organ its first performance, and it's definitely along the lines of a bear riding a bicycle: the novelty is not that Sparky Danger Organ is a great music instrument, but that it can make an attempt at all. There's only a very limited range of frequencies where it sounds like an acceptable tone, and even within that range the music does not sound great. I may have made mistakes translating piano sheet music into Arduino code. Or maybe the frequency I generated is not what I had intended to generate, throwing the instrument out of tune. The top suspect along these lines is the possibility Arduino framework is doing work behind the scenes and adding delays throwing off the output frequency.

Despite those potential problems, it was a successful proof of concept. Emily has some ideas on how to troubleshoot this device. [UPDATE: the solution was to throw away all of my crappy code and use Arduino tone().] And if we ever get our hands on one or more engine's worth of ignition coils, there may be a Sparky Danger Orchestra.


Public GitHub repository for this project: https://github.com/Roger-random/ignition_coil