We needed a function generator in PCBheaven and instead of buying one we decided to build one from scratch. The whole idea is based in maxim's MAX038 chip. This chip is rather expensive, yet has many capabilities. It can provide 3 different types of waveforms, triangular, rectangular and sine wave, as well as it provides a TTL output with 50% duty cycle for synchronization reasons. The frequency can be adjusted from 0.1 Hz up to 20 MHz.

The frequency range can be selected by placing a different capacitor to the COSC input. A 12 positions rotary switch with 12 different capacitors is perfect for this reason. The output frequency can be selected from within the frequency range by a potentiometer and another pots is responsible for the fine tuning

The DADJ input of the chip is the control for the duty cycle of the waveform. It has a switch to either disable it (50% fixed duty cycle), or enable the duty cycle adjustment. If enabled, the duty cycle can be adjusted by a potentiometer.

The output waveform type can be selected from a "FUNCTION" switch. This is a 3-position rotary switch. The common of the switch is driven HIGH, while the two inputs of the chip, A0 and A1 are pulled LOW with 10K resistors. When both inputs are '0', the output is square wave. When A0 is '1', the output is triangular waveform, and when A1 is '1' and A0 is '0', the output is sine wave.

The output is buffered with an OP37Z OP-AMP. The peak to peak amplitude is also controlled a potentiometer. By default, the output waveform is symmetrical to the ground. A DC offset can be added to the output if the switch "OFFSET ENABLED" is closed. The DC offset is also controlled by a potensiometer.

Step 1: Materials

Here is a rough list of materials used for this project. Since completion some changes have been made but you can read them in the worklog.

R1  10K          R13 75 Ohm     C1  0,1uF     C16 22uF       D1    1N4001
R2  10K          R14 330 Ohm   C2  0,1uF     C17 100uF    D2    1N4001
R3  47 Ohm   R15 6.8k            C3  0,1uF     C18                 IC1    MAX038
R4  10K          R16 820 Ohm   C4  0,1uF     C19 0,1uF      IC3    OP372
R5  1K pots   R17 100K           C5  0,1uF     C20 10nF       IC4 A    TL072P
R6  1K pots   R18 100K           C6  22pF      C21 0,1uF      IC4 B    TL072P
R7  1K pots   R19 100K           C7  82pF      C22 0,1uF      IC5    LM741P
R8  5K pots   R20 100K           C8  330pF   C23 0,1uF       IC6    7805T
R9  10K          R21 10K             C9  1nF        C24 0,1uF       IC7    7805T
R10 1K           R22 10K pots    C10 4,7nF   C25 1000uF    S2    12 pos. rotary switch
R11 1K           R23 500 Ohm   C11 32nF    C26 0,1uF       
R12 10K         R24 500 Ohm   C12 68nF    C27 1000uF       
                                                      C13 330nF C28 0,1uF       
                                                      C14 1uF      C29 1000uF       
                                                      C15 4,7uF   C30 1000uF       

Apart from the electronics, 2 acrylic glass plates 16x10cm used as face plate for the controls along with some colored buttons to give a more pro look.

Step 2: PCB

PCB and finished result.
Keen eye can observe some slight modifications form original schematic. Since this is going to be used in our labs near the main power supply, the 7805 and 7905 chips have been removed. Instead,  the +- 5 volts come directly from power supply. Also the PCB was created with the IC2 (TL72P) to control the frequency select and fine tuning. But during the tests, didn't behave as expected  and therefore was replaced with two 10K resistors. Updated schematic can be found here.
The etching came out perfect with our home made etching bath but that is another instructable to come.
The soldering of the parts had to be done very carefully, as the grounding layer had just .1'' insulation.

Step 3: Range Selector

The range selector is a 12-position single pole rotary switch. Each switch position corresponds to a different capacitor. So, either you solder the capacitors to the PCB and draw 12 (+1 for common) wires to the selector, or do this:

First, make a ring with a thick single core wire (2.5 mm2). The diameter should be about 10mm larger than the diameter of the rotary switch. Cut and solder the two edges of this wire to make a closed ring. Then,  solder one terminal of a capacitor to one position of the rotary switch. The other terminal of the capacitor is free, outside the switch's diameter. On this terminal, solder the ring. Then, on the symmetrical pin of the switch, solder likewise another capacitor. Do that for all 12 capacitors. When finished, all 12 capacitors connected directly on the selector switch, and only 2 wires would now be required from the PCB, the 0V wire which is connected on the ring, and the COSC input for the chip.

Step 4: Artwork and Face Plate

The need of a casing is not in the plans since the whole project will be put in a big closet that houses the mains supply and other staff.  The only thing needed is a plate to mount the pots and switches and a nice face plate so you know what that knob is doing, the design is kept to the bare essentials.
As mounting plate we took a 10x16 cm 10mm thick white acrylic. When artwork was done we made a cut-out mask for the holes and the wood that will hold all. After finishing the holes and wood cuts the whole thing was in place and another 10x16 transparent acrylic plate was put in front of all to give that nice proffesional look.

Step 5: Finished and Mounted

All done and mounted.
Complete worklog and details can be found here.

<p>hello. we did this project and our supply V- = -5v and</p><p>V+ = +5v. but why does the input voltage in pin1 is in negative??:( Vref= -3.5v)</p><p>pls help us. this is for our project study.. thank you!! :)</p>
I've just finished repairing an old (70's/80's) oscilloscope/signal generator (actually an Open University Generatorscope HK/2A) combo which someone gave me, that uses exactly that style of mounting components on switches for the input attenuator, and for timebase preset resistors - so the idea's been around quite a while.<br><br>I'm a bit dubious about soldering the ends of the ring common connection together though - for the higher frequencies wouldn't it be better if this was left open?
Haha. I like the idea of soldering the caps right on to the selector switch using a ring! Very neat and tidy. Also won't take up too much space on the board that way!
Yes, only problem is when switch fails. :)
I was trying to find a supplier of the old 8038 chip some time ago but it had been discontinued some time before.&nbsp; Looks like the MAX038 is a recent replacement for it.<br />
Didn't knew there was an older chip. When we searched Maxim this one came up and we just used it since it was suitable for what we wanted. :)<br />
Looking at the MAX038 datasheet it says it has been discontinued too, so it looks like a case of &quot;get 'em while you can&quot;. Where did you get yours?<br />
Around February this year from Maxim. :)<br /> Didn't knew they discontiued it.<br />

About This Instructable




More by pcbheaven:High Frequency Function Generator with the Maxim MAX038 Homemade Foot Pedal For PCB Drills 
Add instructable to: