Serial Wombat
a general-purpose digital interface device for hobbyists, engineers and students

 


Home
Overview
Protocol
Documentation
Getting Started
Connectivity
Pin Mode SDK Beta
Sample Projects
Downloads
Contact Us
Purchase
Forum

Did you know...

 

Serial Wombat Overview

The Serial Wombat is designed to provide low-to-medium speed Digital I/O and analog to digital data aquisition, while taking advantage of the potential available in an external microcontroller.

Many of the Wombat's competitors provide the ability to manipulate digital lines, and take analog measurements, but they don't take full advantage of the capabilities of a microcontroller:

  • Why waste precious bandwidth sending data from a device to its host (PC) when this data will simply be averaged or filtered when it gets there? Filtering and averaging should often be done before data is sent to the host.
  • Why make decisions on the host which could be made faster and more efficiently on the microcontroller? For example, if a temperature of an aquarium is being controlled by a heater and a PC, there are two ways this could be done:
    • The PC can constantly ask the Wombat what the temperature of the aquarium is, then tell the Wombat to turn on or turn off the temperature accordingly. This method uses lots of bandwidth over the serial link, and may kill your tropical fish if your PC crashes.
    • The PC can tell the Wombat, "Wombat, please set pin number 37 as a digital output. Set it high when the voltage on pin 2 (from a temperature sensor) drops below 350, and set it low when the voltage rises above 400." The Wombat will then take responsibility for holding the temperature between 350 and 400. This can be done with a couple of simple serial commands.
  • Some events happen too fast to be communicated in real-time to the host. For example, a rotary encoder knob (such as the ones on many car radios) which is turned by a human typically can change states at around every 500 microseconds. This is far too often to be polled by the host. However, it can be easily monitored by the Wombat. The Wombat then simply tells the host the net number of "clicks" clockwise or counter-clockwise have happened since the last time the host asked.

These problems can also be solved by programming a Microcontroller (such as the Microchip PIC 18F4620 used by the Wombat, or the Parallax BASIC Stamp) to do what is needed. However, this often takes a substantial investment in both time and equipment for a new user (See Microchip's forums for an idea of how difficult implementing even simple concepts can be for the beginner). The Wombat is designed to allow many problems to be solved without writing any code outside of the PC. Some problems, such as the Aquarium example above, can be solved by simply sending a few commands to the Wombat from a terminal such as Hyperterminal.

Sometimes it is necessary to have custom code in your microcontroller. A Software Development kit, coming in May of 2007, will allow the user to write routines in 'C' which will run alongside existing Wombat firmware. The user code will be able to read and modify digital pins, set PWM and analog outputs, read analog inputs, and use the Wombat's built in data processing routines such as FIFO queues. In addition, each channel (pin) of the Wombat provides public data available to all other pins. This allows the user to utilize the built in functions such as keypad or rotary encoder reading, and act on the results with their own custom code. No need to pick through the 4620's datasheet in order to figure out how to configure communication channels, timers, interrupts, A/D converters, etc.

The Serial Wombat design is based on the following principles:

  • The communication protocol between the Serial Wombat and its host should be simple, efficient, and robust.  Loss of synchronization with the host should be unlikely to cause incorrect commands to be executed.  When synchronization is lost it should be detectable by the host after one command, and should be easily resynchronized.
  • The processing power of the microcontroller should be used to relieve the host of mundane tasks, and to make optimal use of host/Serial Wombat communication bandwidth.
  • As much as possible, every pin should be capable of every function (Digital I/O, pwm, frequency measurement, Analog/Digital conversion, communications).  If functionality is not provided by microcontroller hardware resource, then it should be implemented in software.
  • The user should require little to no understanding of the microcontroller inner workings to implement simple projects.  Pins should be refered to by their pin number.  The user should not have to distinguish between pins on different logical ports. Common changes such as communication rate, execution times, and primary pin function assignment should be abstracted to a high leve.
  • The user should be able to access as many of the microcontroller special hardware functions as possible.  In some cases, this may require understanding of the microcontroller's special function registers. To borrow a quote from Perl, "Easy things should be easy, and hard things should be possible."
  • The user should determine how to best use available memory and processor throughput.  The user should be able to determine the most desireable trade-off between pin sampling/update rate and CPU utilization/function complexity.
  • The Serial Wombat should make system level debugging as easy as possible.  The ability to issue typed commands to the hardware through an ASCII terminal such as Windows Hyperterminal allows the user to manipulate hardware before application software is written.  Comprehensive error checking, the availability of an Echo function, and access to numerous internal system state variables allows the user to quickly diagnose problems.
  • The Serial Wombat should use software as possible to eliminate physical components.  Examples include digital filtering of analog inputs and debouncing of switch inputs.
  • The Serial Wombat should be expandable.  The user should be able to develop firmware to run in the microcontroller in partnership with the Serial Wombat application.

The Serial Wombat No-Orphan Guarantee

You don't have to worry about implementing a design around the Wombat, only to find out that we've gone out of business. If the Wombat Interface Products company goes out of business, then the source code to the Serial Wombat will be posted in Microchip's forums, so users can continue to program new parts. Any future sale or aquisition of Wombat Interface Products will be contingent upon the buyer agreeing to continue these terms.

 

Copyright Wombat Interface Products, 2005-2008. All Rights Reserved.