Creative Commons images are CC BY-NC-SA 3.0

Description: Function generators are useful in a ton of applications from RF to embedded logic. They’re not usually super cheap though. Good news: we found a kit. The FG085 MiniDDS Function Generator is a ‘some assembly required’ kit that becomes a flexible, functional and easy to use frequency generator. Just solder the through-hole parts in place, attach the face/base plates and before you know it you’ll be generating sinewaves at frequencies up to 200KHz! But that’s only one of the tricks this thing can do. Three different operating modes allow the FG085 to generate 7 different types of continuous waveform as well as servo test and control signals in micro-second resolution.

The LCD screen and menu system make this an easy instrument to operate. Frequency, amplitude and offsets can all be set with the number pad and incrementally adjusted with the rotary encoder. The incremental step size can even be adjusted to make sweeps over a wide range easier to handle. The FG805 can generate a peak to peak amplitude up to 10V with an offset range from -5 to +5VDC. It can even be used as an adjustable DC voltage source by setting the amplitude to 0.


  • FG085 miniDDS Function Generator PCB with SMT parts installed
  • Acrylic Faceplate and Baseplate
  • Alphanumeric LCD and Headers
  • Through-hole Parts Bag
  • 15VDC 1A Wall-wart Power Adapter
  • Quickstart Assembly Guide
  • Output cable (BNC + clips)


  • Generates continuous waveforms of Sine, Square, Triangle, Ramp (up and down), and Staircase (up and down)
  • Generates servo test/control signals in micro-second resolution with user programmable pulse width, amplitude, and cycle
  • Set the frequency (or period), amplitude, and offset with number pad - quick and straight-forward
  • Frequency (period), amplitude, and offset can be incrementally adjusted with rotary encoder
  • Settings are memorized after power down
  • Can be used as an adjustable DC voltage source by setting amplitude to 0
  • Frequency range: 0 - 200KHz (Sine)
  • Frequency resolution: 1Hz
  • Period resolution: 1ms
  • Amplitude range: 0 - 10V peak-to-peak
  • Offset range: -5V - +5V
  • Memory depth: 256 bytes
  • Sample rate: 2.5Msps
  • Output impedance: 50 ohm
  • Power supply voltage: DC 15V
  • Current consumption: < 150mA (without loading)
  • Dimension: 155 X 55 X 30 mm
  • Net weight: 100 gram


Recommended Products

Customer Comments

  • The schematic and PCB have remained unchanged for the model Sparkfun carries. Only the BOM was changed with U14 being removed a few months ago by JYE Tech. U14 was designed for possible future expansions and was populated at early productions. However, it has never been used even for the early firmwares. With recent firmware revisions the code space of U6 (ATmega48) has become pretty full. There will be little chance to make any significant change to the firmware in future. So JYE Tech decided not to populate U14 to save some bucks on an unnecessary component. Removing U14 is only an internal production change. It has no impact on functionality and performance of the instrument.

  • This kit requires raisin-core solder, is SparkFun going to stock raisin-core solder or perhaps some currant or sultana based alternative or can I use regular rosin-core solder?

  • Here are the commands to update the firmware under Linux. Note you might have to update the file names, assuming newer firmware. This was done with the Sparkfun AVR Pocket Programmer, Fedora 19. When connecting the programming ribbon cable the red stripe will on your left when looking at the back of the FG085, for both U5 and U6.

        sudo avrdude -F -b 9600 -c usbtiny -p m168p -U flash:w:113-08501-130.hex
        sudo avrdude -F -b 9600 -c usbtiny -p atmega48 -U flash:w:113-08502-050.hex 


    Everything flashes OK, boots fine, but no output…. I’ll report back when I get it figured out.

    • Okay, I did this also, and works fine for me. I have an actual usbTinyISP from ADA Fruit, used the same steps you posted above, and works fine! Output seems to work fine as well.

      P.S. I really like the new SWEEP function!

  • I wanted a case for my FG085 that would protect it and allow it to sit on my workbench. The one that is mentioned in an earlier comment is marked as not working with the latest FG085 on the Thingiverse site. You can see what I came up with in my forum posting here:

  • Some weeks i asssebled this function generator kit with just minor problems with the switches. It worked fine for several days of heavy usage. Suddenly tuning it on it failed and the screen only showed a row of blocks with no power up display. None of the switches are responding. Has anyone an ideaof wht happened and how to fix it?

  • What is the lowest sine wave frequency this can generate?

    • From the user manual:

      Frequency range: 0 – 200KHz (Sine)
      Frequency resolution: 1Hz
      Frequency accuracy: 100 ppm
      Period resolutions: 1ms

  • I finished building this generator a couple of days ago. The build was easy and fun. This product is a good solution for anyone who wants to own a simple signal generator. Word of caution to beginners: the spacing between many of the pins, especially the button switches, is tight. Use a bright light and a magnifying glass to check for solder bridges. That being said, I would recommend it to someone with limited soldering skills. Just make sure you have a good iron and thin solder.

    Follow the building instructions that come with the package. Going to the manufacturer’s web site provides some enlightenment, but their instructions are for another model. I did make one minor alteration when I installed the BNC connector (step 10). I did not cut the wing off the spring. Instead, I bent it at a right angle and soldered a 22AWG jumper between it and the board.

    Thanks, Sparkfun, for carrying this product.

  • I just completed one I got a long time ago and had pushed to the bottom of my to-do list. Many have commented on alignment of the switches not fitting the cover Here is my fix: (1) Use masking tape to tightly cover the switch holes in the cover (do not remove paper protect) (2) Push a screw up from bottom and thread on a standoff with the studs up. (3) Insert all switches with the two “dimples” facing the power connector. (4) Place the taped cover over the standoff studs and make sure all switches are aligned in their hole. (5) Hand tighten the other standoffs to lock the switches in place. (6) Flip over and solder all switches. (7) Remove tape and standoffs and admire perfectly aligned switches!

    My kit did not have the stated 15v wart but any 12v regulated supply works! Happy sparking, Larry

  • Will this freq gen produce a noticeable tingle (mild shock) if terminals contact skin? Am looking for an output with this capability rather than various waveforms of insufficient (micro-current?) output. Will this work or is there a different product you can direct me to? Thanks!

  • Those switches look nice! Any chance of selling them separately from the kit? If not, does anyone know where I can buy them?

  • I built the FG085 and it works great, but it really needed some kind of enclosure to protect the insides and to stablize it on the workbench. I found the H2505-R (Jameco part number 18869, which is 7.9" x 6.3" x 2.5") to be ideal for accomodating the FG085’s dimensions, although ultimately I had to create a new front panel to make it look really good. That allowed me to choose black lettering on a white background, and move the BNC connector slightly outward for better aesthetics. Also, I disassembled the accompanying wallwart power supply (which is a 15v, 1A switching module) and mounted the board into the enclosure with a fuse and a nice AC power switch.

  • My only complaint with this, is they could have done better with the Button Debouncing.

    It gets annoying when I try to enter “200 Hz”, and when i go to press the “2”, it enters “22222”. Very annoying, but nothing I can’t deal with. Also, the Rotary Encoder wheel tends to skip backward quite often.

  • Went together very good, worked on first power up. After about 2 weeks of very occasional use, screen only shows 1 row of blocks. No normal power up displays. Weird thing is - was working well when I turned it off with the power button a few days ago.

  • Would this work as a Zapper as described in Hulda Clark Book? (¼ Volt positive offset, square wave. Lots of resources here


    • Yes, it would. Well, in the same way that the zapper “worked” for the late Ms Clark or any of her unfortunate patients …

      • Haha, well, proper diagnosis with frequencies still require a lot of research to be calibrated to location, surrounding currents, static, humidity, clothing, planets, time, temperature, men in black outside irradiating you with some radioactive gun to stop finding easy cures for everyone… Sadly her technique of finding pathogens inside the body is used by the Mars Rover Curiosity (they even play the “happy birthday” with it, broadcasted live) and no doctor has yet contradicted her explanations of how each virus makes you sick. I honestly believe she knew thousands of times more than any doctor hands you put put your health in. I just noticed most of the frequencies (Rife’s mostly) are above 200Khz :( Thanks for the answer.

  • Hey! The BNC->BNC cable is the right answer for my oscilloscope. You can also use the BNC->alligator clips connector to hook this thing directly to a little speaker. I’m using a 2" transistor radio speaker much like Sparkfun’s COM-09151. Actually hearing the signal made it easier to figure out how sweep and other features worked, and it’s way cheaper than an O-scope too!

  • Just assembled this kit yesterday. The doc is spartan but clear, and I had no serious trouble with it. You should be able to handle a soldering iron with facility before attempting this kit though. I count about 200 solder joins you’ll need to make on the board, although they’re almost all through-hole or to pins. Setting up the output jack is marginally tricky, since you need to solder bits of hook-up wire to it in order to reach the main board from the front panel. Be careful to solder the button switches onto the board straight and flat – use blu-tack or bend the pins outward to get them to lock in the holes to ensure this. The front panel has to fit closely over the plastic buttons, and if they’re crooked you’ll have a Terrible time getting it go together at the end. If you catch one that’s crooked, you can re-heat the pins on one side and press it flat though. The display panel has mounting holes which correspond to holes in the main board, but no display mounting hardware is included in the kit. The display sits on stand-offs which bear on the main board and is stable once you solder its 18 I/O pins in.

    The kit I ordered July 16 2013 did come with the latest & greatest firmware installed per the JYE website, so I’m happy about that. Alas, the only output connector that comes with it is a BNC connector with a pair of alligator clips attached. If you wish to hook it up directly to your oscilloscope, you may need to get a BNC-to-BNC connector cable somewheres. I couldn’t make it work with my oscilloscope probe, probably because I am unclear on how that works. I was able to verify that the machine was generating a signal by pressing the output A-clips into the BNC connector on my O-scope, but I’ll need another cable to really delve through the functions.

  • Just purchased this kit for the electronics repair shop that I work at. Was very simple to assemble and it worked on the first try.

    I love the concept of it, and I love the functions available on the unit (the sweep mode is awesome). The waveform output isn’t all that clean however. On an analog scope it doesn’t appear that they filter the wave all that well as I can still see some jagged-ness in the wave. Selecting voltage outputs in the mV range yields a very noisy looking wave. My PIC-based PWM 1kHz sine wave generator puts out a much cleaner sine wave than this thing does.

    I’ve never worked with the AVR micro, but I just might start learning it in hopes of maybe rewriting the firmware for this thing for a cleaner output.

  • Any possibilities of finding a replacement for the wall wart. I could also use it for other projects that require a little more power than the 9V can provide.

    • You can check with the manufacturer directly-they should be able to tell you if any of their distributors carry the wall wart.

  • For those interested (and with access), I created a “case” to snap on the outer edges of this function generator. View and Download the layout files from Thingiverse:

  • Does anyone know where I can get replacement buttons for this? I can’t find the same style, DPDT switches to fit the board. I messed up while soldering.

  • Kit reviewed here -

  • Bought this kit in December. Followed the link to “Product Page” and great! Has a sweep function - which is exactly what sold me on this low cost device. So ordered. Ugh - No dice. The version Sparkfun sends you is NOT the latest firmware release - which is the version with the sweep function I needed. So off to the races on how to upgrade. Looked across 5-6 different documents to figure out how but got through the upgrade AFTER ordering the programming cable. (bought from Sparkfun - was cheaper than the one from Adafruit. Thought it would work because the schematic for the Pocket AVR Programmer has Limor Fried’s name on it so they must be essentially the same.) So read the JYE Programmer doc to confirm the pins on the FG085 were compatible with the Sparkfun avr programmer cable. Looked on the adafruit website to understand how to use AVR Dude. Installed the software and programmer driver on my mac. Downloaded the firmware hex files from JYE Tech.

    Following instructions on the adafruit site for AVR Dude and applying their programmer instructions to the sparkfun programmer and referring to the JYE Tech documentation for their programmer and the FG085 docs to understand and confirm PIN layout compatibility - got 98% the way there when using AVR Dude to program. Its not documented but you have to use the -F option on the programming command line to force the program to load the hex file on the avr chips - this info was gleaned from the messages generated while using AVR Dude. So loaded the new firmware on both chips in the FG085 and Success!!! Firmware upgraded. Testing confirmed all works as expected. Done!!! A couple of hours of exploring many documents and web sites got me there.

    Now - back to reality - was kind of PO’d - Just wish Sparkfun had sent me a kit with the latest firmware. Would have saved me a lot of hassle and $18 for the Pocket AVR Programmer plus shipping (but i guess in the end, I still have the AVR Pocket Programmer which served me well in this process). Anyway, bottom line is that a firmware upgrade for the FG085 is doable but the understanding to make it happen is spread across a lot of different information sources. I did it so I suspect just about anyone can. Give it a try and most of all, good luck!!!!

  • Hmm! USB-Serial. Perhaps the manufacturer was planning an Arbitrary Function Generator mode, with usb connection to a PC running some arbitrary GUI? If so, I would buy it instantaneously.

  • Got this kit a few days back … some tips When soldering together put the rotary encoder in before the caps MAKE SURE the buttons are aligned the right way make sure the buttons are flat … superglue them on and/or use the faceplate any tilt the buttons will stick! stick some aluminum tape on the top/bottom to reduce noise

    General infos the USB port is fairly useless at baud 115200 when you start it up it shows just general infos … in firmware 113-08501-110 you can use Z#=Foo# command to set boot screen with 113-08501-120 you cant do this also it cannot be used for power

    the output is AC but if you make the offset ½ the set voltage positive than you get DC out

    interface is a bit confusing but after a bit you can get it down!

    the BNC connector’s inside female … thing is a bit sticky/tight

    right next to the USB port is a 3 pin header … using a single col from lets you attach a servo!

    i suggest slapping on a right angle BNC or else your cables will get in the way of the screen

    22R resistor on output so you will get ~500MA at 10v ~250 at 5v

    sine wave works great up to 200khz but any other wave starts to break down and get all spazzy after 10khz

    both the ATMEGA128 and ATMEGA48 have full AVR headers that are populated (if you populate them … ) so you can update firmware or make your own

    there is allota room in the bottom for customization along with a few open i/os from the ISP and the i2c eeprom that can be piggybacked! DS1077 16.2kHz to 133MHz programmable OCC anyone? O3o

    Someone really should make a custom firmware for this thing it has so much potential!

  • So I finished putting together my function generator, did the initial power on test successfully, then put the front and back plates on and tried to power it up with my wife watching and puff! Smoke check! Fortunately, not fatal. I’d managed to drip a glob of soldier on the board somehow when soldiering the bnc connector in place, I guess. My wife is about is non-technical as one could possibly be, but oh how she enjoys watching me cringe as I power something up the first time or two, or run some code the first time. Christ! She’s still cackling in our room!

    This was a really fun kit to put together. I think it would have been even more fun to tackle the smt stuff as well, but this was still quite challenging for me. Those switch leads are awfully close together.

    Anyways, premo kit and somewhat smoke check resistant as well (at least mine was:)).

    I’d love it if sparkfun came up with a similar cool power supply with LED or LCD display. I bought a nice one, but like this function generator, it’s always somehow more satisfying to put something together myself, even if I’m risking a smoke check or two:) Heh, even that’s fun sometimes. LOL, she’s still giggling. Fun for the whole family:) Cool yet another tool in my arsenal:)

    ADDITIONAL: One issue I’ve had is figuring out how to use the servo test/control stuff. I guess I’m lame, but I’m really glad one of the Sparky’s below made mention of how to use the unpopulated 3 hole port (J9?) for this purpose. Otherwise, I’d likely have been doing some silly stuff to get it to work. I wish the manufacturer would have put a bit more time in explaining how to setup and use this. Same thing for how to update the firmware. From other posts here it looks like it might be a bear for a newb-zilla like me. I’ll probably avoid trying to update until and if I actually need the additional functionality.

  • Has anyone updated firmware on this model? Can one use, specifically, the Pocket AVR Programmer (PGM-09825) to do it?

  • Are the waveforms band-limited/anti-aliased?

  • Aaarrgh !! Always read the instructions THOROUGHLY ! Just finished building mine and noticed the push buttons have to be inserted a particular way, even though they have symmetrical pins ! :-( now I see the “Important note : For all the push-buttons, the side with two dips must face the end where power connector locates” in the instructions … where’s my solder sucker … :-(

  • I just got this kit and assembled it in about two hours. You need to be very careful with installing buttons. They are cheap and if not lined up exactly tend to stick on the face plate. It’s also very easy to miss a pin on the buttons. Make sure you double check all your solder joints. I found using a flux pen on the button pins helped me get good joints. I was using lead free solder.

    What most annoyed me was the BNC connector attachment. It appears that, at some point, the manufacturer switched from a BNC connector that stuck out the side, and was easy to solder to the board, to a BNC connector sticking out the front that is connected to the circuit board by only it’s center pin and a lead that you solder to one of the washers used to mount the BNC connector. If I were to get this kit again, I would order the appropriate BNC connector separately and use it instead of the rather fragile scheme you’re told to use in the directions.

    After assembly, mine worked as advertised, except the 3 key wasn’t working. It turned out I’d missed soldering a pin. It was easy to fix. Now everything works fine except for the occasional sticky button. I really wish the manufacturer has gotten better buttons, or perhaps offered a unit with better buttons.

    Still, for the money, I’m satisfied.

    • I spent more time assembling this kit. You can insert all of the buttons, which are of suitable quality, into place by gently bending the pins to hold them in. Then, temporarily installing the face plate, holds them in place and with the assembly supported face down the switches with the recomended solder can be soldered into place. I think BNC connectors always stick out and the one on my kit is as sturdy as anything I have. What I am missing is an easy way to do the latest firmware updates and a way to make the USB port functional. Comming soon I hope. I like this kit.

    • What would be the appropriate BNC connector?

  • Hello, is there any reason of not having Square to higher than 10kHz Freq.?

  • I just put mine together and I’m not happy with this kit.

    The switches are ‘sticky’ and tend not to spring back up after being pressed. This makes the user interface very frustrating to use. It tends to get hung up and unresponsive, so I have to power it on and off to reset it. I took the face plate off so the buttons could be pulled back up manually after depressing. Oh and one of the stand-offs was defective, anyway. Just as well as the only way I can use this function generator is without the cover.

    This was my first dud from Sparkfun. I would recommend passing on this one.

    • Well that was fast. After about 30 minutes of use, the frequency generator is now unresponsive to any button I press. Even when I switch it off and on, it still remains unresponsive and ignores all input. All I was doing was feeding the input into an oscilloscope and watching the waveforms change. Now its stuck on the last the settings I selected before it broke.

  • I already got mine in the mail wensday and was up putting it together nice toy/ tool i ordered this as well as Digital Oscilloscope Kit i saw alot of people had problems with it but not a one for me. between the two they should work well to test some of the many 30+ 1990’s p80c30’s i have and the n80c31’s and a few 8050 i have recovered from dumpster diving. the only question is how and what really is the function on the mini-usb port haven’t gotten it to work yet?

    • The CP2101 is a USB/UART chip similar to the FTDI unit found on Arduinos and the like. Looking at the wiring diagram, it’s set up to allow serial communication between a host computer and the ATmega uC. What functionality that provides, I don’t know… Perhaps the host system can control the generator over USB.

  • …Seriously, SparkFun? This looks like something someone would build for a senior design project.

    Not only does this not use a proper DDS, it doesn’t even use a DAC! It’s a low-pass filtered PWM output that’s buffered.

    You could build this with an arduino, an op-amp and a couple passives in about an hour.

    Why would anyone buy this junk when there are tons of old 2+ MHz function generators that people are practically giving away on eBay? Help cut down on junkyard waste and buy one of those.

    Since this is a “kit” of sorts (why they make kits with half the components already soldered is beyond me…), I assume many people will buy this because they like assembling PCBs (again, beyond me…). In that case, why not just get an analog function generator chip, like a $6 DIP-packaged XR2206?

    If you just need sine waves, and you want accuracy, I’d recommend SparkFun’s AD9835 breakout board. It’ll synthesize a waveform up to 25 MHz, and takes 5 register writes to get working.

    • I like your way to think about the junk others are giving away. Can you help me to find one to zap myself? (most of Rife frequencies are above 200Khz) I wonder which ones are proper to be used as a Hulda Clark Zapper (mutltiple frequency) or if you could build one for me in one hour :)

    • No DAC? How do you explain resistors RN1A to RN4D on the schematic then? They, combined with outputs DA0 to DA1 seem to form a regular R2R DAC. Yes, its no discrete IC, but its quite a bit better than just a “PWM Output”. That AD9835 does look quite nice, and has pretty good accuracy (1 part in 4 billion!) but for things such as audio work I this would work fine.

    • We used to carry a function generator based on the XR2206, and would have loved to continue doing so, but that part went EOL (End Of Life = discontinued) some time ago. I know you can still find them in small quantities, but as a business we need reliable supplies for the parts we use in our products.

      You can certainly find good (and not so good) used test equipment for the same price. But we’ve been looking for a replacement function generator for some time, and we were impressed with the cost and performance of this item.

  • I thought this kit would use one of the Analog Devices DDS chips like the AD9958 but it does not. Looking at the schematic, I don’t see any NCO (numerical controlled oscillator) - it seems to be a DAC driven directly by microcontroller. Does that mean it’s not really a DDS function gen?

    • A DAC driven by a µc is still a DDS, even if the NCO is in software… it just can’t run as fast as a hardware DDS like the AD958.

      • With a 20MHz clock and 2.5Msps sample rate, I believe that’s 8 instructions (including the output). Do you think they are doing a real NCO in 8 instructions or simply outputting from a look-up-table (regenerating the table for each frequency)?

  • The title says FG805 but later on it says FG085, can someone clarify which one it is?

  • I’m interested in the kit, but I really don’t have time to build the kit (I’m a perfectionist when it comes to soldering). Will SFE have a non-kit version of this?

    • Might be able to get it straight from the manufacturer:

      • You can buy the assembled version here, and it costs the same as the kit version. But you have to wait an agonizing 2-4 weeks for it to ship from China to US. The kit is pretty easy to build anyway.

  • That’s awesome!! what kind of projects will this bring??

      • it’s a frequency generator!! won’t this promote different (newer) types of projects?

        • Not really. It’s a tool more than a component. It’s like asking what kinds of new projects a new multimeter will bring.

          In my (somewhat limited) experience, a function generator is generally used to produce input into circuits to test behaviour. Say: build an op-amp circuit to multiply voltage by 2, feed in a 1.0V amplitude sine wave, and see if you get a 2.0V sine wave out. Or see if it clips at the source voltage for the amp.

          • I see…….well, maybe just make projects easier?? I dunno….trying to be happy that it’s finally friday and that we have new products!!!

Customer Reviews

4.7 out of 5

Based on 3 ratings:

5 star
4 star
3 star
2 star
1 star

Great little FG!

The kit was easy to assemble and worked perfectly right from startup. Frequencies and wave forms are clean and accurate. Like to see it work at several MHz. This is a good buy.

Great product

I bought this to help my oldest son with a science fair project. We needed to generate specific frequencies to be pumped into a rubens tube for sound wave measurement. As a bonus I was able to teach him a bit about oscilloscopes when I checked the accuracy of the generator (which by the way was dead on). All in all a very nice little product, well packaged, and fairly easy to assemble. Good project for a beginner that is wanting to try out a build and challenge themselves. One note, the ground leg for the output connector is a hair too short to reach the board, and the instructions say to cut it off and solder in a piece of wire as a replacement. I opted to keep the leg, and make a pair of J shaped hooks to drop in and act as a bridge to the board. I felt that it gave a much sturdier connection that wouldn’t break if there happened to be any pressure applied.

Very nice !

Simple to assemble, it works very well !!! Perhaps white noise can be added …