4846

Versatile low-cost audio signal generator and pulse generator (up to 4MHz) based on Arduino Nano MCU module.

Waveform generators, also known as “function generators”, have been popular DIY projects since the beginning of hobby electronics. There are numerous designs out there offering a broad range of functional features and design complexities. The “Nano” waveform generator sits near the low end of complexity and build cost in the hardware design.  However, it packs a lot of punch into an 8-bit AVR micro-controller to produce a useful instrument for testing audio and low-speed digital equipment.

Audio signal generator apps for smart phones and computers are available, but these don't provide the convenience and versatility of a dedicated device, in much the same way as phone alarm-clock apps don't.

The parts are housed in a small plastic box (130 x 70 x 40mm) making the unit easily portable. It is powered by a 5V USB plug-pack. All the parts needed to build a Nano wave-generator are available at ridiculously low prices from online suppliers.

The design is based on an Arduino Nano (or compatible) micro-controller board plus a 2-line x 16-character LCD module (1602A) with LED back-light, four push-buttons and a potentiometer feeding into an ADC input. The pot controls either signal frequency or pulse duty, depending on the selected mode. Output connectors are panel-mount RCA phono sockets.

For details on design and construction, see the attached PDF document under the tab "Project Elements | Other".

Functional Specification

WAVE mode
    Wave-shapes:   SINE, TRIANGLE, SQUARE, SAWTOOTH (+/-)
    Frequency:
        Low range:    1 Hz ~ 100 Hz   in 12 preset steps
        High range:  80 Hz ~ 8 kHz   in 18 preset steps
                or 50 Hz ~ 5 kHz   continuously variable using pot
    Noise:  Filtered with variable cut-off frequency, or "white" (unfiltered).
    Output coupling: AC or DC
    Output level:  100mV, 200mV, 500mV, 1V, 2V, 4V peak-to-peak
    PWM DAC resolution:    8 bits  (0.4% FS,   approx. 4mV at 1Vp-p)

PULSE mode
    Frequency:
        Low range:  1 Hz ~ 1000 Hz   in 16 preset steps
        High range: 1 kHz ~ 4 MHz    in 16 preset steps
    Duty / pulse width:    1 ~ 99 %   variable using pot, quantized values
    Output level:    3.3V or 5V fixed, 20mA source/sink (at 5V)