Below is a listing of programs and hardware generally completed while I
attended UC Santa Cruz. In 2005, I was
awarded a BS in Computer Engineering. Please feel free to contact me about
anything listed on this page.
- Charles Shiflett
Wireless Heart Rate Monitor
The picture at right is a prototype embedded system for a small scale water
control project using telemetry. Mid semester, my project changed to a
wireless heart rate monitor. I built upon what I had already engineered
the telemetry project to create a robust heart rate monitor.
The final design was a 1.5 by 3 inch very low noise 64 times over
sampling analog to digital converter which sent an EKG digitally
(wireless or serial) to an interface board
[ Picture ].
The interface board facilitated a wireless module, programming the
chip, and chip to computer communications
[ Picture ].
A snapshot of the development process may be viewed in either picture
[ One ] or
[ Two ].
An idea of the process is also visible in one of my early layouts for the board
[ Schematic ]. On the software side,
[ Screenshot ] of the software. I also
wrote a [ Paper ] on the
[ Code ] or
[ Presentation ] may be viewed.
Further information is available by request.
The picture above with the text "Project Listing" on it is one of my
first projects. It was an HC11 integrated with a 8bit ISA bus (not shown),
which interfaced with the antique 8bit (think 8086) devices that
were quite common and readily available in the 90's. The board used
traditional wire wrapping
techniques similiar to the original apple
[ Wirewrapping Link ],
though not nearly as complicated. Wirewrapping is still in use today,
though with the cost of having a custom fabricated board being only about
$70 [ APCircuits.com ], it is neither
cost nor time effective.
I also have a few robots I made, as well as a board to do
frequency up conversion using hardware fourier analysis of a
square wave. I am in the process of finding robot pictures,
in the meantime, you can take a look at the infinitly less
interesting fourier board [ Picture ].
Bear Markup Language
The Bear Markup Language is a way of embedding SQL queries into
HTML. I created the language to implement a online storefront
tied to a inventory/accounting system
[ Source Code ].
The code is a BML parser written in C, which also includes a
CGI library written in C, and a series of database wrappers, all of
which I wrote. Also included are sample BML files, and SQL (triggers,
procedural SQL, creation routines... See PDA6).
BearPlay A DVD Player for OS X
BearPlay may be used to play DVD's on a macintosh computer. See
below for instructions. BearPlay uses Apple's DVD player framework,
which is included with OS X. It should let you play DVD's without
having to license any software, but will still take advantage of
whatever hardware exists on the macintosh to accelerate DVD playback.
In addition, BearPlay speaks a simple text based language
(play, paws, seek, ...) over the console, making it ideal for DVD
control via remote.
BearPlay is intended for non-linear playback of short DVD clips.
You create the clips using the "gui" interface, for playback on
'g-c3'. 'g-c3' is a stand-alone text controlled DVD player, however,
it must either be invoked via 'gui' or the command line. It is not
intended to be "clicked". Currently, things only work right if
title 1 contains the DVD content.
The two programs, 'g-c3', and 'gui' are collectively known as
The latest and greatest version is available below
[ BearPlay ]
The source code is available upon request. Please direct any interest
in the program to my email address (below). The 'gui' interface is
a little awkward, though in general, it will auto-detect the first DVD you
insert (or mount). You can also load DVD content from the file system
To start 'gui':
Mount the DMG, (you may need to copy the files to your harddisk). Click
on 'gui'. It gives you potentially useful debug information if you load
it from the command line.
MTCW Digital Filtering
Morse The Chocolate Wave is a program which uses
fourier analysis to decompose audio containing morse (dih dat dit) into
thet text to which it corresponds [ Details ].
Boggle is a game involving 16 die each
containing 6 different letters arranged in a random fashion.
I used C-code to implement interactive play and solving (in O(1) time)
[ Source Code ].
I dislike the coding
style used, but... Don't blame me I was just following orders!
It is a scary overuse of Abstract Data Types (ADTs).
A Student forum for grading and evaluating teachers made as an attempt
to show student concern over the switch around 2000 from narrative
evaluations to grades at UCSC. I designed this forum as a general purpose
engine which read page specific data off a database containing the
site. This made the site easy to maintain, but made switching between
hosts a pain. The source code is available on request. Written in PHP.
Are you the proud owner of a Kenwood TR-7950?
If so, download the
[ manual ] here. Includes Schematics!
All are available on request.
- BSH Bear Shell
- BVM Bear Virtual Memory
- BFS Bear File System
- BTP Bear File Transfer Protocoal (like FTP, but single channel)
- Beer Server A HTTPD server
- BGA Bear Genetic Algorithms
- Alife A variant of Xlife, but more popular. "Get Alife"
- Xrect Draw rectangles in X (X11R6)
- Bmodem Not to be confused with bmodem, a way of (de)modulating data
- CgiC Not to be confused with the other cgiC, C wrappers for CGI
< -- B a c k