In the beginning... 

Everything has a beginning and the phrase, "The quick brown fox jumps over the lazy dog's back." is one I first heard during my days at Keesler AFB - many, many years ago. The phrase first came up in our typing classes where it was flashed by a projector onto a pull-down screen over a blackboard and we had to type it on those old mechanical typewriters: we had to type it perfectly. The instructor would often change the phrase slightly to try and get us confused.  Later, the phrase was used along with, "RYRYRY....." and "Now is the time..."  to help us align the accuracy of the mechanical teletypes.

An electronic device called a test-set generator should be used for aligning the timing adjustments on the old Teletype machines and punched paper tape with the same information for aligning tape readers. Mostly though, we just typed on the machines while our buddy turned a screwdriver back and forth centering the setting in the middle of the points where garble would appear on the platen. We did the manual adjustment because some prankster would always hide the test-set generator.

Having the right test equipment is light years ahead of having no test equipment at all. Anyone that has ever gotten caught up in trying to resolve a serial communication problem with a microcomputer knows that these problems can be real migraine headache creator. Best practice is to do a loop-back test, but for many people this involves the use of emulator software on a PC, serial-USB adapters, and cables that may be the source of the communication problem! Owning a small, inexpensive device that can send a known good test signal and validate a loopback is invaluable in narrowing down serial communication problems and reducing hair loss.

For years, I had used a QBF generator that I built from a PICAXE 08M2 chip with very minimal options: sending 4800 or 9600 BAUD.  The original BASIC version is here if anyone is interested:  QBF Test Generator.

The QBF test-set I am presenting in this article is made from an Arduino.  I am running an SparkFun Pro Mini from 2x AA carbon-zinc batteries to provide a little over 3+ volts. Most genuine ATmega328 devices in small formfactor will operate at 3'ish volts without issues assuming you do not use a voltage regulator IC or a blocking-diode. I utilized this specific scenario: SparkFun ProMini. And with a TTL 3'ish serial output, this device can be used with all those 3.3 Volt microcontrollers.

The device can even perform a loopback test on itself for sanity purposes and self-test. Every been in a forum and been questioned about whether you are 'really' sending TTL serial into the Arduino? Never again!

You can use 5 Volt Arduino boards and a voltage-shifter if you so wish to but you should read this first is you are not sure about 5V -- 3.3 V serial comms Voltage Level Logic Conversion. And yes, one could use resistor configured as voltage dividers to create a save 5V to 3.3V interface.

About the MODE buttons:

(snippet for a 32U4 ProMicro board, thus the Serial1 designation.)

  pinMode( 4, INPUT) ;     // lFoxActive Low = True

  digitalWrite( 4, HIGH);  // turn on pullup resistor
  pinMode( 6, INPUT) ;     // BAUD hi = 9600 lo = 4800 for setting common GPS rates
  digitalWrite( 6, HIGH);  // turn on pullup resistor
  delay (100) ;

  if (! digitalRead(4) ) lFoxActive = true;

  if( digitalRead(6) ) {
    Serial1.begin(9600) ;  // 1st serial port because 'Serial' translates to USB comm:
  } else {
    Serial1.begin(4800) ;  // 1st serial port because 'Serial' translates to USB comm:
  }

Looking above at the code, you will notice that the "Fox" generation is normally off; that is, nothing is being sent out from the Tx line, Pin #1 in the Pro Micro Pinouts and Connections graphic.  If you wish...

Read more »