Did you know...
Serial Wombat Pin Mode Software Development Kit (BETA)
Note that the SDK is in Beta at this
time. The SDK interfaces may change for the final released
version, requiring reworking of your code.
The Serial Wombat comes pre-loaded with firmware that allows
its pins to do lots of
interesting things, under the control and guidance of a
smarter host, such as a PC or Palm Pilot.
In developing these pin modes, I've tried to support lots of
different common tasks that people use microcontrollers to
perform. Unfortunately, there is a limited amount of flash
(program storage) space in the Serial Wombat. Therefore, I can't
support everything! Or, at least, not everything at once. This
was the original reason I envisioned the SDK. It would allow me
to create separate, downloadable add-on modules to support a wide
variety of tasks and hardware. The SDK has become sufficiently
general and useful that I want to make it available to everyone
who uses the Serial Wombat.
Download it here!
There are a number of reasons you may want to create your own
- The existing firmware doesn't support some piece
of hardware you wish to use. Perhaps it's a
graphical LCD, a spi-based accelerometer, or a classic
Nintendo NES controller. Whatever the case, you've
decided that you can't interface it effectively by flipping
pins under host control, so you want to create a pin
- You want to offload some highly specific logic to
the Wombat. Maybe you want to set pin 27 low if
the A/D on pin 2 is above 38000, pin 19 is high, and pin
20 and 21 are both low. You could implement this logic on
the host side, but your reaction speed would be limited
by the serial link. By putting such logic inside the
Wombat, you can easily do this hundreds or even thousands
of times per second.
- You want to create pin modes that can function
faster than existing Wombat modes. The Wombat
firmware works very hard to make all pins look the same
to the user. Doing this requires a couple of layers of
hardware abstraction in the code, and this abstraction
takes time to execute. Since I don't know what you're
going to use your Wombat for, I try to make it as general
You, however, have no such limitations. By skipping
through some layers (Reading directly from the PORT
registers, for instance), it is possible to create
special-purpose pin modes that can perform substantially
faster than modes that use the system calls I provide.
The SDK is designed to be easy to use as well as powerful:
- The SDK only requires a few files I provide, plus the
free, standard MPLab IDE and C18 compiler (student edition)
provided by Microchip.
- The SDK allows you to program in ANSI C, not some
proprietary derivative of BASIC, or other interpreted
- The SDK compiles code into actual machine instructions.
There's no interpreter to slow you down. As such, the
Serial Wombat allows you to write pin modes that are much
more compact and faster executing than would be possible
on many BASIC based solutions
- Since the SDK uses ANSI C, you can take your code with
you if you ever start designing for blank
Microcontrollers, such as the Microchip 18F4620 PIC that
the Wombat is based on.
What the Pin Mode SDK is not:
- The SDK is not designed to replace the Serial Wombat
- The SDK is not meant to help develop a stand-alone
application. It's only meant to allow you to expand the
capabilities of the Wombat.
- The SDK isn't meant to allow the Serial Wombat to behave
like a Basic Stamp or PICAXE.
A note about support:
The Pin Mode Software Development Kit is not officially
supported. That is, I may not be able to help you if you have
trouble creating or modifying a pin mode. Please understand that
I develop the Serial Wombat as a second job, and simply can't
afford the time required to help people learn embedded software
development when my net margins are less than $10 per chip.
That said, if you have trouble, drop me an email anyway. If
I'm not busy, I'll try to help you solve your problem. My
favorite part of the Serial Wombat business is interacting with
my customers, and learning about the problems they're using the
Wombat to solve. But I can't guarantee that I'll get back to you
with questions on this topic, especially if I am doing overtime
at my first job (which pays the mortgage), or assisting other
Wombat users having trouble with basic functionality.
- Pin Mode Creation Process
- Restrictions (or, playing by the
- Pin Mode Overview
- Example 2: Using a Pin's
- Example 3: Processing incoming
- Service Functions List
- The SDK files
- Creating a Pin mode which uses more than one pin
- Using the SPI
- Building a module with more than one pin mode
- Right Down to the Metal
Other Examples created with the SDK: