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.


  1. Tom says:

    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. gozaki says:

    MAX038 … where are you gone…

  3. Nova says:

    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.

  4. Septillion says:

    I think it’s a pity the offset and adjustment aren’t controlled by the uC but analog. The comport interface is nice :)

  5. NewCommentor1283 says:

    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?

    • oodain says:

      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.

    • willrandship says:

      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.

  6. Alan says:

    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.

    • Enzo B. says:

      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.

  7. kh says:

    I couldn’t understand the amplitude adjust stage. What are those JFETs doing there? Why not just use a non-inverting amplifier?

    • Enzo B. says:

      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.

      • Enzo B. says:

        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.

        • kh says:

          Why do you avoid using a potentiometer for attenuation? I don’t think they would distort the signal more than the opamp circuit.

          • Enzo B. says:

            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…

  8. Marcy says:

    I do not even know how I ended up here, but I thought this post was great.
    I do not know who you are but definitely you are going to a famous blogger
    if you aren’t already ;) Cheers!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 94,593 other followers