SparkFun MiniGen - Pro Mini Signal Generator Shield

This is the SparkFun MiniGen Signal Generator, a small shield for the Arduino Pro Mini that is capable of generating sine, square, or triangle waves at up to 3MHz, and approximately 1Vp-p. Though the MiniGen is technically a shield it can, in fact, operate as a stand-alone board capable of the the same functionality as it would if it were placed on top of a Pro Mini.

The MiniGen offers two out put sources for you to utilize: a 2-pin 0.1" spaced header and a u.FL connector. The output is at a DC offset of Vcc/2, however neither the offset nor the amplitude can be varied. By default, the MiniGen ships configured with a 3.3V regulator enabled and should only be used with 3.3V signals (or 3.3V Pro Minis if you are using this as a shield) unless the jumper on the back is soldered over to bypass the regulator for 5V use.

Get Started with the MiniGen Hookup Guide

  • 10-bit DAC for good accuracy
  • 2 frequency registers
  • 2 phase registers
  • SPI Interface Driven at 40MHz
  • Operating Voltage: 3.3V (5V when jumper is soldered)

SparkFun MiniGen - Pro Mini Signal Generator Shield Product Help and Resources

MiniGen Hookup Guide

May 22, 2014

Using the MiniGen, SparkFun's Arduino Pro Mini signal generator shield

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Customer Comments

  • ——————– Tech Support Tips/Troubleshooting/Common Issues ——————–

    Example tutorial using Analog Device’s ADALM1000 with the MiniGen => https://ez.analog.com/community/university-program/blog/2015/09/21/adalm1000-interfaced-to-a-dds-programmable-waveform-generator.

  • I used an Arduino Uno R3 to drive this (not the pro-mini as in the docs). Basically, put a blob of solder over the 5V-3.3V jumpers on the board (to be able to run it at 5V), then (Fsync,SCA,SCLK) on the MiniGen to (10,11,13) on the Arduino (and +5V/GND to power the board), and the library and stock example worked on the first try. I initially hooked the two outputs of the MiniGen to an oscilloscope and the frequency, as set in the library was dead-on. A 1V p-p sine wave, at the proper frequency riding on a DC offset of about 4 volts.

    I wish there was a library call for muting the output, but oh well. The board is awesome. Can’t believe it’ll go up to 3MHz or so.

  • So… Why, if the AD8937 will work to 8 MHz (per the data sheet), does the board limit to 3 MHz? Haven’t yet received mine, but I’m guessing C4 is all than limits the bandwidth… or am I reading the data sheet wrong?

  • Rats! I just dropped $### on a B+K 4053 function generator. This might have done the job just as well. (B+K was founded by Phillip Ban and Carl Korn. Did Carl later start that eponymous rock band?)

  • Can you make a version of this as a shield for a regular Arduino? that would be amazing!

  • What is the point of the opamp at the output? Also, zimboy, Analog Devices' demo board for this DDS IC has the same exact issue.

  • Word of warning to anyone planning to use this without the recommended Pro mini. I hooked it up to a Uno using 6 inch connection leads to a prototype board, and could not get it to work. Eventually I traced the problem to significant overshoot on the rising and falling edges of the SCLK, SDATA and FSYNC pins. After adding some 220pF caps to ground to filter out the high frequency components on the SPI pins, the overshoot was removed and everything started working as expected.

    • I’d suggest adding some inline resistance as well, rather than just a capacitor. Increasing the capacitive load the driver needs to push can actually increase ringing issues rather than fixing them.

  • You’re missing the open hardware logo on the product description.

  • Can I hook headphones up to this, or would the DC offset kill the drivers?

  • It has potential. It looks like you could beat AM radio direct to audio. It might be worth it just to try that. You can load two frequencies and two phases and switch between for modulation, giving lots of Secret Squirrel possibilities. For me at least, a ramp (sawtooth) is a lot more useful than a triangle and AD could have easily made that happen. On the other hand, it is cap coupled with 10K to ground before the op-amp, so very low freq might be a challenge. The device doesn’t block any harmonics so external filtering is a must. I guess that is an active filter and I would figure it out if the op-amp circuit wasn’t drawn so goofy. Great op-amp by the way. Help me Jeebus I hate Eagle.

  • The following isn’t a sentence because the word “thought” at its beginning out to be “though”. I think. ==Thought the MinioGen is technically a shield it can, in fact, operate as a stand-alone board capable of the the same functionality as it would if it were placed on top of a Pro Mini.== The same sentence includes the word “MinioGen” where I think you want “MiniGen” == I’ve course, I could be a turkey and wrong in both places but I think I’ve been reading fairly well today. Thank you for existing!!!

    • The following isn’t a sentence because the words “I've” at its beginning out to be “Of”. I think. == “I’ve course, I could be a turkey and wrong in both places but I think I’ve been reading fairly well today.”

  • I wonder how accurately does it track down in the hundreds of Hz range. Could it be used as a musical synthesizer?

    • it has a 3rd order reconstruction filter and a 10-bit DAC. This means low fidelity in conventional audio terms. Also the triangle wave and square wave are not band limited so they will contain strong aliasing components.

    • Data sheet says 0.06Hz resolution. Absolute frequency accuracy would depend on the xtal oscillator.

    • It’s pretty sharp. The step size is sub-Hz, but I can’t totally vouch for its accuracy because all I have to go on is my elderly Tek scope, which tells me it’s at the frequency I thought it was–100Hz out to two decimal places.

Customer Reviews

4.7 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Perfet purchase for prototyping

Purchaed this MiniGen shield with the pro mini and all of the necessary female and male pitch headers. Used this device to prototype a circuit I am designing using the AD9837 DDS chip. I was surprised to see that the board generated up to 6MHz with no real issues except for some losses(using two wire output). It performs well with the 3.3V arduinp(8MHz) because the shield has its own 16MHz reference clock. Its a bit on the expensive side however given their supplied Arduino API and open source schematics its hard to complain about :)

very nice board

I used an Arduino Uno R3 to drive this (not the pro-mini as in the docs). Basically, put a blob of solder over the 5V-3.3V jumpers on the board (to be able to run it at 5V), then (Fsync,SCA,SCLK) on the MiniGen to (10,11,13) on the Arduino (and +5V/GND to power the board), and the library worked like a champ. I initially hooked the two outputs of the MiniGen to an oscilloscope and the frequency, as set in the software was dead-on. A 1V p-p sine wave riding on a DC offset of about 4 volts.

Good quality variable frequency, variable wavefrorm generator

It performs exactly as advertised and is surprisingly stable. A tad pricey compared to similar boards from China, but hey, you can actually get documentation, code examples and a C++ library for this one. Amazing! Easily mates to breadboards, shields and most microcontrollers. Very low power requirements and all on a quality PCB. I’m using this as a component in a ham radio construction project - cheaper and much easier than a complete scratch-build. I Like Analog Devices products and this is a great implementation of the AD9837/AD8045. Just what I needed!