Adorable Homebrew Waveform Generator


For want of new test equipment, or simply a project, [Enzo] decided he would take a shot at creating his own waveform generator*. Not only is it a great project, it’s also a decent piece of test equipment, with proper signal conditioning, a nice front panel, and a built-in wall transformer.

The guts of [Enzo]’s waveform generator is an AD9833 programmable waveform generator, a neat little chip that can output square and triangle waves fro 0.1 Hz to 3.2 MHz and sine waves from 0.1 Hz to 1.6 MHz. [Enzo] is controlling this chip with a PIC16 microcontroller, with a whole bunch of analog circuitry between the digital domain and the BNC connector on the front panel.

The waveform generator is controlled by a suite of dials and switches on the front panel, giving [Enzo] complete control over his new tool.

* Here’s a Google translation, but good luck with that. Just… get Chrome or something.

25 thoughts on “Adorable Homebrew Waveform Generator

  1. Nice build, very well put together.

    I always like to see point-to-point matrix-board construction, especially when it’s done well. Lets me carry on, knowing I’m not the only one who is crazy enough to love building circuits this way!

  2. I do so love to ADJ my SINUS so it has an OFS.

    The silly thing is there’s more than enough room for full-names on all of those. But it must have been a conscious decision, joking aside.

  3. i always found it strange how people reccomend chrome’s translate over google’s…
    isnt it the same database of translate-data, by the same company,
    on the same server…???

    im NOT trying to hate here, im just confused and i’d like to know,
    there MUST be a reason people keep saying it?

    1. i think in this instance it is because the image-host prevents the google translate homepage from opening the image, where in chrome it is done in the browser itself and so the image host never knows.

    2. Chrome’s translate function just passes the text to google translate, where google translate’s page takes the URL and passes you a whole HTML file. It’s fundamentally more efficient.

  4. Going for 12V to support RS-232 is a nice touch. It’s well built, too.
    The only thing I would suggest to change is: the IEC main input connector. There are versions that hold a small FUSE – a fuse is the first thing I add to any circuit involving mains electricity.

    1. I used a common ICL232 because it is very easy to find on the scrap I have lying around.
      The use of a driver operating at 12v can introduce small noise of this power, dedicated solely to the analog part.
      The absence of a fuse is a lack of this tool :-( Anyway, thanks for the advice and to appreciate my generator.

    2. I would also reverse the power switch so it’s not connecting the live line voltage to an unconnected terminal on the power switch when the device is turned off!

    1. Il problema era attenuare il segnale senza farlo passare in un potenziometro.
      Lo stadio con i due jfets permette di attenuare il segnale partendo da una tensione, e con una bassa distorsione.

      1. Excuse me…
        The problem was attenuate the signal without passing in a potentiometer.
        The stage with the two JFETs allows to attenuate the signal from a voltage, and with low distortion.

          1. The problem is given by the length of the wire needed to connect the potentiometer to the analog board.
            If crossed by a little current, the parasitic capacitance of the cable causes distortion.
            You can solve it by using a low-value potentiometer or by using a voltage controlled attenuator.
            This is nice because it can be controlled by a DAC. Unfortunately, I haven’t done this due to lack of space and other reasons! But this can run…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.