Verification Hardware

Project Elements
Contact Information
What's New

During firmware development we needed emulation of module function in order to prove correct operation.  This page describes the various forms of hardware we've used since the beginning of our effort.  We call these our "Stepping Stone" hardware platforms.

Test Hardware #1 - PhyTec Board

PhyTec PCM-992 Test Fixture
PhyTec PCM-992

Our first test hardware was purchased not built. Oct 2002 when we started the CAN-Do! firmware effort it was easier to start with the T89C51CC01 processor on this board for some of the tests. It contained the exact same processor so we could try out code and exercise it without depending on working hardware in the Widget. At this time (when we first started) we still did not know how to control the peripherals on the Widget, so having this board allowed us to get to working code before we had fully checked out our Widget hardware. It gave us an alternative context in which to run the new code in order to prove that we coded it well.  The last attempt we made to use this board was to wire it to a parallel port so we could emulate byte-pipe traffic.  This turned out to be complicated and we found ourselves limited to uni-directional traffic over this lash-up.

Test Hardware #2 - Wire-Wrap Board

Wire-Wrap w/Widget - Front Wire-Wrap w/Widget - Back (wired)
Wire-Wrap w/Widget - Front / Back

As soon as our first batches of Widgets (100 in all) started arriving in Colorado Springs we needed to exercise all of them and all their capabilities. (Digital inputs, Digital Outputs, Analog Inputs, Power On/Off control, etc.)  Bdale built the "Wire Wrap" board based on mix of concepts by John Conner, Bdale and Stephen.

Features of this board:

  •  A resistor network gives us a fixed set of values for each of the analog inputs. These values are evenly spaced throughout the analog sensor range. This makes it easy for us to see if any of the analog channels are not working as expected.
  •  10 Dip switches provides control over
    •  All 8 digital inputs (switch for each.)
    •  Enable / disable of resistive load so we can test current sensor
  •  An LED provides easy visibility of switched power output
  •  Two connectors for an Agilent Logic Analyzer (guess who one of us works for ;-) are used to monitor all the digital inputs and outputs
  •  Two connectors at bottom left for parallel cables so we could drive the inputs, read the outputs from our earlier parallel-port control software

During Widget initial testing Stephen drove the CAN bus writing tools and flashing while Bdale drove the Logic Analyzer and the dip switches. Bdale stimulated things and read results. We traded off logging of our results. Randomizing the DIP SW patterns always kept us on our toes ;-).  We tapped a Radio Shack DVM into our CAN/Power cable so we could measure Widget current draw during the testing as well.

   schematic: TBA

   developed by: Bdale Garbee, KB0G, John Conner, NJ0C, and
                            Stephen Moraco, KZ0Q

Test Hardware #3 - PIC-based Pipe-Mode Emulator

Pipe emulator - PIC based
PIC-based PipeMode Emulator w/Widget

As soon as we stepped into development of the pipe-mode firmware it became clear that this could not be made to work unless we had specific hardware.  At our AMSAT annual conference in 2003 we asked for help building such a board.  Steven Bible, N7HPR volunteered to help.  We developed a specification from which he developed and built the board. After getting enough basic firmware working, he handed the whole thing off to Stephen (around Feb 2005) to complete the firmware and get on with developing the pipe-mode firmware. This board worked well. We developed and released the first working byte-pipe firmware using this test environment.

Features of this board:

  •  PIC-based board with onboard FLASH memory for code
  •  ANSI C development environment
  •  ICD-2 in-circuit debugger / firmware loader
  •  Functions controlled via serial port command interface (communicated with running board via hyperterm windows application
  •  Two connectors for an Agilent Logic Analyzer are used to monitor all the digital inputs and outputs
  •  Powered from Widget or from USB cable
  •  Socket mounted crystal allowing us to upgrade processor speeds

Experience with the first implementation (we now have three of these) exposed a limitation in hardware (PIC speed). However, that was quickly addressed by replacing the crystal and the PIC with faster versions. The great thing about using the PIC was that we simply moved to a pin/code compatible faster version with hardly any more work than a re-compile of the code for the new PIC microprocessor.

This test board still serves well today when working on byte-pipe mode testing. Our next immediate effort is to accomplish the 1st implementation of the Pipe-mode file transfer protocol. This board may be a candidate for that testing.

   developed by: Steven Bible, N7HPR

   from specification: Pipe-mode Emulator Test Fixture Spec

   schematics: PIC -based Pipe Emulator Schematic and Board Layout

Test Hardware #4 - Spartan3E Xilinx Demo Board with Widget Adapter

Spartan3E w/Widget I/F board
Spartan3E w/Widget I/F Board

As I was wrapping up my first implementation of the pipe-mode firmware for the Widget, I became concerned that we had not tested the pipe mode function at best speed.  Also, in working with the Arizona Star Camera team, I saw a number of issues.  I found that I needed to better understand what it took to build hardware to interface to our byte-pipe mode Widget. Around the time I identified this need I was asked to better understand Xilinx implementation of circuits for my real work.  I decided to marry these two needs by purchasing the demo board and then designing and implementing a Widget interface for the board. Lyle Johnson, KK7P, kindly guided me through this, my first ever, PCB implementation.

   Features of this board:

  •  Xilinx-Spartan3E demo board
  •  Xilinx tool-chain supporting VHDL/Verilog implementation with support for embedded cores (PicoBlaze, MicroBlaze, and PowerPC)
  •  Two connectors for an Agilent Logic Analyzer are used to monitor all the digital inputs and outputs
  •  A single high-density Soft-touch Pro connector for a Logic Analyzer
  •  Pipe handshake lines are LED-monitored, w/two extra LED outputs for misc. use
  •  Many switches, push-buttons, LED, Ethernet, USB, etc. available for use in design

Testing with this board provides confidence that the current pipe-mode firmware can run with very fast module implementations without negatively affecting Widget performance. This proves that Widget firmware implementation is robust from slow speed module implementations through to high speed module implementations.

In the near future with this board, we will be experimenting with using the GNU compilers for building the file-transfer module side first implementation.

main board: purchased

   Widget I/F board developed by: Stephen Moraco, KZ0Q

   specification, Schematics and Board Layout:
Spartan3E Widget I/F Test Fixture Spec

   Example top-level Xilinx Design: Simple pipe auto-responder

Test Hardware - The future?

These boards each have served us well.  However, if we are to develop more Widgets then we will have to build a basic functional test platform.  Today, each time we prepare a batch of Widgets for use or prepare them even for flight, we find ourselves running the entire test suite by hand using the Wire Wrap board.  This is time consuming as it is an entirely manual process.  Our best improvement here would be to automate the testing and recording of results along with contrasting the behavior of tested Widget against others in the batch.


Now you have a feel for how involved we have been in developing and testing the Widget firmware through 1st implementation.  You can see that we've been investigating all aspects of performance and function. We have been using custom hardware to make this testing as robust as we practically can.

If you have questions, suggestions or would like further
information feel free to contact me.

- Stephen KZ0Q

Home | Firmware Verification | Verification Hardware

 CAN-Do! Website copyright 2007, Stephen Moraco, KZ0Q  (formerly KC0FTQ).
For problems or questions regarding this Web site contact
Last updated: 21-Oct-2007 12:40:48 -0600.