I'm looking for the simplest way to generate audio tones. Something like a square or sine wave, but I want multiple tone options. For example, two quick beeps, one at 440Hz, one at 1Khz. The tones should occur at the press of a button, and again at the release.

I am aware that a square wave can be generated with a 555 timer, but I don't know how to produce multiple tones. I also know a simple microcontroller can be used with a DAC, but I have a few requirements:

  1. Parts count and cost as low as possible. Under $1 in higher quantities of components is ideal.
  2. The components must not require FCC certification or SDoC, which is a concern going the microcontroller route.
  3. The audio signal must be a mic-level signal.

Is some kind of MCU unavoidable in this situation? I've yet to find a suitable solution that covers all those bases, so any help is greatly appreciated!

  • \$\begingroup\$ If one 555 doesn't work, try two 555s? I bet you could figure out a way to do this with just one, though, if you tried hard enough. \$\endgroup\$
    – Hearth
    Apr 19, 2019 at 2:22
  • \$\begingroup\$ If you are interested in taking that route, the 556 chip has two 555s in one package. \$\endgroup\$ Apr 19, 2019 at 2:38
  • \$\begingroup\$ A common circuit, dating back so far we were chiseling out our schematics on stone (okay, silicon) tablets, used two 555's (or a 556.) The first one was set to toggle slowly (at whatever rate you wanted to change tones.) The second one was set for one pleasant tone (without interference from the first one) but then the first one was used to modify that tone (using a series resistor from its output) of the 2nd one. I'm sure there must be a 556 (or two 555's) "warbler" circuit out there, somewhere. Do a search. \$\endgroup\$
    – jonk
    Apr 19, 2019 at 2:59
  • \$\begingroup\$ The "under a dollar" says MCU. For FCC, you can always consider a spread spectrum oscillator or else use an MCU with a DCO that can be varied under software control. \$\endgroup\$
    – jonk
    Apr 19, 2019 at 4:03
  • \$\begingroup\$ Commonly this would have been done with a DTMF generator (perhaps a decade or so ago), but today DTMF is almost exclusively done with a small MCU both to scan the keyboard and produce the simultaneous tones. You might be able to get devices like the Holtek 95R65 or the National TP5089 which handled a 16 key keypad to produce simultaneous tones. However like most of these chips used an expensive crystal and are certainly EOL. \$\endgroup\$ Apr 19, 2019 at 5:02

2 Answers 2


This is one of the simpler ways:

enter image description here

Source: https://www.nutsvolts.com/magazine/article/op-amp-cookbook-part-3 Tone control could be done with mosfets switching components (like a parallel cap for C1\C2 (maybe you'd only need one?)

Op amps with the bandwidth you need can be had for the 10c cost range with quantity. Timing would need to be done with a 555 timer. This is probably not the best way, but "a way" to design a circuit like this


By far, the simplest physical implementation is to use an MCU. I would use something like the PIC10F200. The only external components would be a bypass capacitor for the power supply, plus a simple RC filter for the audio output.


simulate this circuit – Schematic created using CircuitLab

The audio output on pin 4 would be a synthesized delta-sigma signal containing the tones, triggered by the changes on pin 3. R1, R2 and C2 attenuate the signal down to mV levels and provide a low-pass function with a 10 kHz cutoff frequency.

  • \$\begingroup\$ I am leaning this direction. It is my current understanding that if the MCU is clocked below 9Khz, it would not be considered an unintentional radiator by FCC standards and could avoid any kind of certification. I would likely use an AVR since that is what I'm familiar with. \$\endgroup\$ Apr 20, 2019 at 3:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.