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

 


Home
Overview
Protocol
Documentation
Channel Modes
Direct Control
Controlled Pin
Raw A/D
A/D Averaging
A/D 1st Order Filtering
Matrix Keypad
Servo Control
Analog Direct
Analog Follow
Rotary Encoder
Debouncing
Counter
Hysteresis
Morse Code
Pulse
Unipolar Stepper
LCD Driver 1
LCD Driver 2
HW Pulse Meas.
2D Lookup
SPI Master
HD44780 Generic
Remote Control
DataLogger
Min-Max
Public Data
Timed IO
Getting Started
Connectivity
Pin Mode SDK Beta
Sample Projects
Downloads
Contact Us
Purchase
Forum

Did you know...

 

Channel Modes

Channel modes are at the heart of the Serial Wombat design. Every pin is assigned a channel mode, and this channel mode determines what the pin does. Some modes are very simple, and may simply set a pin high or low. Other channel modes are much more complex, and can do interesting things such as generating Morse Code, controlling a servo, or measuring, filtering, or averaging an Analog Input.

Every channel mode has a unique channel mode number. This number is used by the Configure Channel Mode commands to tell the Wombat what a pin is supposed to do. Many pins may use the same channel mode, and they will all work independently. This allows you to control more than one servo, measure more than one voltage, or monitor multiple rotary encoder knobs.

Available Channel Modes (modes without links have been coded and tested, but not yet documented):

Mode: Channel Mode Number
(Decimal, Hex)
Function:
Direct 0, 0x00 A function in direct mode is controlled by the Host. The host can command a pin to be high, low, or input
Controlled 1, 0x01 Some functions, such as reading a rotary encoder, require more than one pin. When one pin takes control of another pin, the controlled pin's channel mode is automatically set to Controlled.
Morse 4, 0x04 Generate Morse Code signals based on the data in a queue.
Hysteresis 5, 0x05 Control a pin based on the public data of another pin (an analog input, for example). This is the sort of control often used by thermostats.
Raw A/D 6, 0x06 Continuously measure a voltage input, and provide its value as public data.
A/D with first order filtering 7, 0x07 Continuously measure and low-pass filter a voltage input, and provide the result as public data.
Matrix Keypad Scanning 8, 0x08 Scan a matrix encoded keypad, and provide the key states, current pressed key, or last pressed key as public data. Optionally place keypresses or key transitions into a queue for retreival by the host. This mode takes control of other pins connected to the other rows and columns.
Watchdog 9, 0x09 The host periodically resets a timer. If the host ever allows the timer to expire, then a pin is pulsed for a period of time. This can be used to reset the host.
Diagnostics 10, 0x0A This pin monitors an input, and the state of another output pin. If the relationship between the pins is wrong, then the output pin is reconfigured to a safe, default state. This can be used to quickly shut off an output circuit which is short-circuited.
Rotary Encoder Input 11, 0x0B Monitor this pin and another to determine if a rotary encoder knob has been rotated.
Debouncing 12,0x0C Many switches "bounce" back and forth for a few milliseconds when they are pressed. A debouncing input will eliminate these false transitions.
Counter 13,0x0D A pin in this mode can count input transitions. A counter can be incremented on rising, falling, or both edges. Some pins have hardware support to allow very frequent transitions to be counted. The other pins require that the events to be counted occur slower than the frame rate.
A/D with averaging 15,0x0F Continuously measure a voltage input, and average the results to reduce noise.
Pulse 16, 0x10 Pulse an output for a configurable amount of time when some public data changes. This is useful for blinking a user-feedback LED or piezo buzzer in response to a keypad or rotary encoder change. It can also be used with the received-data counter public data to blink an LED whenever the host communicates with the Wombat.
Servo Control 17, 0x11 Control a servo motor based on commands from the host or public data from another pin.
Analog Direct 18, 0x12 Generate a PWM output or drive an off-board D/A or digital potentiometer based on a duty cycle configured by the host. Some pins have hardware support allowing high-frequency PWM generation. The other pins implement PWM in software, allowing the user to choose the trade-off between frequency and resolution. The user can reconfigure a pin to be the chip-select for an external A/D or digital potentiometer using the Hardware Mode command.
Analog Follow 19,0x13 Generate a PWM output or drive an off-board D/A or digital Pot based on some public data. This allows a pin's output to be controlled by the public data provided by some other pin function.
Unipolar Stepper Motor 23, 0x17 Use four of the Wombat's pins to spin or position a Unipolar Stepper Motor
Hardware Pulse Measurement 24, 0x18 Using special hardware available on certain pins, the Serial Wombat can measure very rapid transitions.
2D Lookup Table 25, 0x19 Transform the data provided by a pin using a table of points which you provide. Then output the result as a PWM, or provide the result to another pin
SPI Master 26, 0x1A Control a SPI device using the Wombat's hardware SPI capability
HD44780 LCD
controller
27, 0x1B Control any HD44780 based LCD display
Remote 30, 0x1E Read and decode key presses from Sony Compatible remote controls
DataLogger 31, 0x1F Store the public data from up to 4 pins into a queue at regular intervals
Min/Max 32,0x20 Keep track of a pin's minimum and maximum public data or A/D value
LCD Controller 241,0xF1 Control a WD-C2401 LCD Panel (in add on package)
LCD Controller 2 242,0xF2 Control a 24 x 2 Line HD44780 based LCD Panel (in add on package)
 

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