Square Wave Box

Silabs-based dual channel 1Hz→100MHz square wave generator with 1.2→5 volt outputs and an easy to read LED display.

Similar projects worth following
I'd like to try to be a part of a collaborative project instead of just doing something myself. I'm also in the need of a decent square wave signal generator to replace my aging HP 3325A that is both huge and limited to 10MHz squares.

So I'm looking for collaborators to specify, design. build and code "The Square Wave Box"

Enjoy this project?



Yann Guidon / YGDES wrote 03/26/2016 at 18:38 point

What is the chip at the heart of this DDS ?

I'm about to build a quick&dirty freq generator with 74HC gates from my drawers, so I suppose it doesn't fit your bill :-)

  Are you sure? yes | no

K.C. Lee wrote 03/26/2016 at 18:56 point

You can use a Si5351A for programmable clock or get a AD9850 DDS for sinewave and squarewave.  Both are programmable from a uC.  Stick a SPI- 8 digits LED, rotary encoder + push button and that's a function generator.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 03/26/2016 at 19:47 point

This means programming.

I try to avoid programming if I want to do something quickly :-/

  Are you sure? yes | no

matseng wrote 03/27/2016 at 02:06 point

My plan was to focus on squarewave and have better performance than the $10-$30 units available at ebay. They are usually 9850-based and specs sines to 20-30Mhz and squares to only 1MHz.   Why the square spec is so low is rather strange since the chip already contains an integrated comparator to generate squares if connected to the sine output.

The Si5351 is nice as it only requires a low speed 25/27Mhz clock compared to a 125Mhz for the 9850. And it also have dual completely independent outputs (and a third that is semi-dependent).  And the newer models can be pushed far beyond the old specs, both upwards and downwards.

But the Si5351 still doesn't go all the way down to the Hz-range, so a divider is required for the lowest range.

Unfortunately a those cheap SPI 7-segments sticks aren't enough. One more digit is required unless we cap the max frequency at 99MHz.

I'd like to have the digits grouped for easy reading, so using three (or four) of 3-digit displays spaced a little bit apart will increase the readability a lot compared to just a long string of digits.

It is basically a rather simple project.  The 5351, some high-speed buffers powered by different vregs,  display drivers, some buttons and a rotary encoder and a mcu to drive it all.

The mcu could actually be a esp8266 to give a "free" external connection to do a remote control panel as an app or a web page.

  Are you sure? yes | no

matseng wrote 03/27/2016 at 02:09 point

Yann,  so you're in agreement with Bob Pease then.. :-)

"My favorite programming language is solder"

  Are you sure? yes | no

Yann Guidon / YGDES wrote 03/27/2016 at 03:17 point

Yes. I'm programming right now, by the way ;-)

  Are you sure? yes | no

K.C. Lee wrote 03/27/2016 at 03:35 point

No reason why we can't redesign the AD9850 circuit to have proper square wave and much better signal integrity on the layout.  Not too keen on not at least having close to solid ground plane on such a simple layout.

The chip itself is also available about same price as the boards though.  For me, it is like 5 minutes of hot air rework to strip a board like that.

The AD9850 takes either a 1 bit SPI for 40 bits of data or 5x 8-bit data.  Can't imagine that DIY DDS is any easier either.

  Are you sure? yes | no

matseng wrote 03/27/2016 at 10:44 point

(hopefully this ends up in the right place in the comment tree - is a really shitty place the have discussions.)

Not sure if the 9850 is ideal. It's limited to about 30 Mhz, but it's an alternative, especially if the internal comparator can actually be used all the way up to 30.

Getting nice and ringing-free edges might require proper transmission lines between dds and buffers and then from buffers out to the connectors. So on the final board a four layer will probably be required, but to keep the cost of a few iterations of development boards down 2-layers might suffice.

  Are you sure? yes | no

jareklupinski wrote 03/26/2016 at 15:55 point

i'm pretty good at esp8266 stuff, and could probably help creating an interface that would let you open a page it generates on your smartphone/tablet to let you play around with settings/calibration/etc

if you want to go basically the mooshimeter route :)

  Are you sure? yes | no

matseng wrote 03/27/2016 at 02:16 point

Using a ESP as the mcu might be a good idea. It got plenty of performance and the connectivity is for free.

The only thing is that it is a bit limited on gpio.  This can of course be fixed with port expanders and plain old shift registers, but that adds up the part count compared to a solution with another mcu with a larger pin count.

Not sure either how it will handle the rotary encoder. The esp have rather long periods of internal housekeeping while handling the wifi-comms. But hopefully not so much that it will affect the sampling of the rotary encoders to the degree that the user notices.

  Are you sure? yes | no

jareklupinski wrote 03/27/2016 at 02:18 point

good point, i'd stick with a more bare-metal chip like an avr or arm for really accurate rotary encoder reading. I've noticed a few hiccups with encoders and the esp8266 using certain libraries

  Are you sure? yes | no

matseng wrote 03/27/2016 at 02:23 point

That that might be a good reason to fix the libraries - or write a new and contribute to the esp-community with "shit that works" :-)

How's the esp32 coming along? Will it be generally available soon you think? Does it have more gpio as well? 

  Are you sure? yes | no

K.C. Lee wrote 03/26/2016 at 12:44 point

Can't help but notice that undershoot looks a lot like an emitter follower without some compensations in my video buffer circuit.  :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates