Ask Hackaday: Who wants to build a function generator?

[tari] sent in a tip about a MAX5214 DAC evaluation board AVNET is giving away this summer. The MAX5214 / MAX5216 is a neat little chip providing a 14 or 16 bit DAC with a serial interface in a tiny 8-pin package. [tari] thinks this eval board could be hacked into a function generator, and we’ve got to agree. Now, who wants to build one?

It’s entirely possible to take the MAX5214 chip and put it in a circuit with a small ARM uC, a display, and a few knobs, but that seems like a waste of time given function generators of this caliber are already available for about $60. It seems the most efficient hack of this dev board will be simply adding an amplifier to this board’s output and possibly programming a better interface than the current LabView software available.

If you want to tinker around with some free hardware and make something useful in the process, have a go at making a function generator out of this dev board. Be sure to send it in when you’re done.

17 thoughts on “Ask Hackaday: Who wants to build a function generator?”

Avnet generally does not cater to kids playing with electronics… Therefore, their website is not set up for such. They are a big-time distributor. They sell to large companies. I deal with them all the time. Very good company.

No argument on the quality of the company, but any website that tries to start a video every time you open a tab is by definition bad, intrusive and obnoxious. Please Avnet, make that go away! If we want to learn something more we will download and play the video. We don’t need one autostarting and sucking up our time.

-3dB @ 100kHz, 2.5 mV digital feed-through (which is ~10/40 (14/16 bits) times higher than the DAC resolution -> has to be filtered -> bandwidth!). That’s not an DAC you should use for building a function generator. Maybe for a programmable bench supplies or something like this. Function generators usually use parallel input DACs, that are much faster.

The voltage output settlign time is 14us. Hell, PIC16F microcontrollers have faster settling times! Maybe no the resolution, but hey, it’s a waveform generator.
With 14us you get about 70ksps. Hooray, we can make a very rough sine wave of about 7kHz.

I’d rather make a function with a cortex M4, tied to a high speed via a parallel bus. I believe some STM micro’s also contain a 1MSPS DAC onboard.

Agreed. This isn’t for function generation as we think of it, this is for tweaking things like valves and precision power supplies.

However, if you only care about end states and not so much about quality, distortion, slope or overshoot, you could probably bang out useable audio with it.

This is for servo apps and instrumentation. It really is low power, though – and would be useful for communications work. One could make a nice broadband spectrum analyzer from this, in a very tiny package.

Speaking of Labview: Does anyone know a good way to replace a Labview Gui? I want to replace a piece of software that has one, I need a graph updated a few times a second, a few buttons and sliders, nothing fancy, programmable for instance in C and if possible cross platform and easy to use.
Any ideas?

Also, if you’ve never used a GUI library before, or are just doing this as a one-off project, you should get Qt Creator. It has a WYSIWYG editor built right in and it makes it easy to switch between your C code for signals/slots, the nitty-gritty “QML” layout stuff, and the WYSIWYG editor.

What kind of rule is this? Nyquist gives you 40-50kHz but the sampling rate is in deed much higher (MHz range). It’s the analog bandwidth that reduces the speed. And how do you drive a 50Ohm load with a minimum resistive load of 5k? If you want to put a Vpp=4.6V signal into a 10k resistor, there’s no need for an amplifier, that’s right, but I think, that’s not what you expect from a signal generator, or is it?

If you want to build a function generator, get one of the many AD9851 boards on ebay. 50MHz DDS for 20 dollars. Still need to add some microcontroller, but at least you get some serious analog bandwidth (w/o cpu load)