Aug 7, 2018

Test Equipment You Can Build ...

~ A Tale of Three Platforms ~

"It was the best of times, it was the worst of times" ...
The Aduino Nano, Teensy and ESP32 each contend for honors as the the microcontroller on our Test Gadget motherboard!


Since last episode, three controllers have evolved in consideration of being THE controller on our Test Gadget motherboard ... the Arduino Nano, the Teensy, and the ESP32.  Each has strengths and weaknesses, but why not continue to evolve our "GadgetRack" software to be used on each of those three platforms?!  After all, software for each is developed in the standard Arduino IDE (integrated development environment) and common libraries can be shared in each sketch.

We have been experimenting along these lines with each platform over the past month and we'll be exploring this very opportunity (or dilemma) in our CWTD program on TUESDAY at 8pm ET (0000z). 

Do you want to have a cheap, small, dedicated Gadget?  Or would you like to have an all-inclusive Test Gadget "measurement station" on the bench?  Or perhaps you'd like to have a network-connected Gadget using WiFi?  Well, maybe you can have your cake and eat it too, as discussed and illustrated this month!

Hope to see you on Teamspeak with us at 8pm ET Tuesday.  Access details (and all our previous episode whiteboards & podcasts!) are on the CWTD home page ...

 73, George N2APB, Joe N2CX, Dave AD7JT and DuWayne KV4QB

Live Chat during Show ...

<20:16:15> "George N2APB": A "grid" of various test functions we envision for the Test Measurement Station was shown at the top of our initial episode for this series of shows ...
<21:11:13> "Terry N4TLF": Look at "Random Nerd Tutorials" for ESP32 tutroals as well
<21:20:52> "Leon - WCOE": Thanks guys! I'm not usually around on Tuesday nights, so it was fun to listen live for a change.
<21:21:09> "Terry N4TLF": thanks guys!
<21:21:32> "Gary vk2kyp": Thank you great show


CWTD Episode #89:  A Tale of Three Platforms: Nano, Teensy, ESP32



PLATFORM #1:  Arduino Nano


Here is the platform for our Test Gadgets thus far:  an Arduino Nano for low-cost computing power in an easy-to-use development environment, a 16x2 serial character LCD for display, and a rotary encoder for control, all on a Test Gadget motherboard.  We the add on specific-function Test Gadgets via smaller daughtercards that plug into either side of the motherboard, thus enabling our little fixture to serve (so far) as a signal generator, RF voltmeter and a DC ammeter ... and later as a Scalar Network Analyzer, frequency counter, and more.





1) LCD, blue, I2C serial, 16x2 char:



2) Paxcoo Prototyping Boards ...

3) Arduino Nano Mini ...

4) Solarbotics Power Regulator ...

PLATFORM #2: TEENSY 3.2 ... by Dave AD7JT


While N2APB and N2CX were continuing on with the Nano-based Test Gadget, I decided to explore a little out in advance for a more powerful controller to handle the increased performance needs of sweeping frequencies and even a transceiver capability, yet still retaining the comfortable Arduino IDE development environment.  A number of others in our homebrewing field were starting to take advantage of the Teensy family of controllers, so with many more MIPs and I/O pins available I took the plunge with the Teensy 3.2 platform.




The board on the left is a Teensy 3.2 (  The link takes you to a page that describes the different versions of the Teensy available and directs you to the Arduino odd-ons/plug-ins needed to use the Arduino IDE.  The instructions are pretty good and the whole process went pretty smoothly.  The little blue breakout board is the Si5351 3-output DDS ( ).  The clever copper-clad cabinet holds a rotary encoder and the .98-inch display module.  The discrete components on the breadboard are the simple RF meter.

Here's my GadgetRack2 sketch running this Si5351 breakout board ...

Teensy Resources:

PLATFORM #3: ESP32 ... DuWayne, KV4QB

I designed a simple board to provide two pairs of headers so I could plug in two  4x6 or 5x7 cm. modules at a time, or allow the use of a single 8x12 cm. module.  To keep the size down I have the ESP32 module mounted on the back of the board along with a 5 V regulator to bring the 12 V supply I plan on using down to  5 V to power the ESP32 board.  This allowed me to keep the board size down to the 10x10 cm. size that qualifies for the inexpensive rate from multiple Chinese board houses.

I found an ESP32 from that appears to have just about any IO type you could need.

Here is a list of what is available on the module.  Of course many of the pins are multipurpose so all of these functions are not available at the same time.  The module can be programmed directly from the Arduino environment without pushing any buttons.  The upload speed is 921600 bps, which makes program upload very fast.

                     240 MHz dual core Tensilica LX6 microcontroller with 600 DMIPS  

                     Integrated 802.11BGN HT40 Wi-Fi transceiver, baseband, stack and LWIP   

                     Integrated dual mode Bluetooth (classic and BLE) 

                     4 MByte flash 

                     3 x UARTs, including hardware flow control 

                     3 x SPI

                     2 x I2S

                     12 x ADC input channels

                     2 x DAC

                     2 x I2C

                     PWM/timer input/output available on every GPIO pin

                     SDIO master/slave 50 MHz

                     SD-card interface support

What I liked about this version is that all the IO pins are brought out to single row headers on each side of the module, that is only slightly larger than a Nano.  That and the fact that they are under $10, made this something I wanted to try.




SI5351 Signal Generator Test Gadget

This Test Gadget a Signal Generator based on the SI5351 clock generator.  I had purchased a couple Chinese versions of the Adafruit 5351 module when I was working on the 'Sweeperino Jr. ' and wanted to see how  well they worked. 

This time I decided to mount the board vertical and only use half of the connections.  Since the module only uses power and the I2C bus this made construction very easy.  And, only using one set of connector pins makes connecting the board much easier.  And also left plenty of room to mount an AD8307 log detector, so I can later use it as a SNA or Wattmeter.

For the software I decided to use some in-line code instead of one of the libraries that are available.  I grabbed the SI5351 code from the uBITX by Jerry , KE7ER , and only had to make a couple minor changes to get it to work as a 3 channel signal generator.  This was just removing a couple things that are specific to the uBITX. This code limits the frequency range from .5 to  just over 100 MHz., but that covers everything I am interested in.  The range can be lowered by a changing a value if desired, but you will have to change that value back to get the higher range again.

The use of a Joystick makes frequency selection very easy.  A horizontal movement changes the increment, while a vertical movement increments or decrements the frequency.  A test of the increment value being changed, sets the color/background of the frequency display for that column.  This makes frequency changes very fast.  A short press on the Joystick button toggles through the three channels and a long press brings you back to the main menu. The code is mainly contained in a while loop , with a couple support functions to display the frequency, or display frequency being edited.

Here is a text file showing the functional part of the sketch (software).   And here's the whole sketch:

See my blogspot covering this and all the previous blog entries for the ESP32 test Gadget ...

And BTW, here's N2APB's ESP32 platform connected to (and running) a crude version of Siggen for the DDS-60 card ...