Mycal's Project History
This is a list of some of the projects I've worked on. Newer Projects are first and I've tried my best to keep them in exact
chronological order. There are many more projects than are currently listed I will be add them as I find the information and documentation on them.
This list has been in construction since Late 2000, it has morphed over time and I've added some older stuff that I've recovered
off of old CD's, floppies and sometimes hardcopy. Hopefully someone might find some of it useful or fun.
net, some very popular and widely used ones. They all leaked memory and were unstable after running for a while. They were also pure timer based which caused multiple requests to happen at high refresh rates that could cause other instabilities. So I created my own that doesn't leak and won't over access the webcam. It will only create one loader at a time and not create a new loader until the first one is done and it has pause and speed control. Could be extended to have much more capability but as it sits it is the most reliable IP webcam viewer I've found.
Imagia Chipset Firmware - Worked on the Imagia Turnkey IP camera firmware adding Multipart JPEG and
Yoics Internet connectivity into its eCos based firmware development system.
Winbond IP camera and Video Server I added alot of features and support to this fimware set, iPhone
support, non IE browswer support, independent channel access, Yoics remote viewing and much more.
Pinewood Derby Race Judge - I designed and built this for the local Pack 3 Cub Scouts.
It turned out pretty good. The best thing is that it hooks to a computer to transfer race results and it will work outside in
direct sunlight. This is a very accurate and simple to build design.
MIDP Java Webcam Viewer - for mobile
phones. Tested on a Motorola V600 and others. This is when I learned how crappy US based Mobile Phone Companies
are and how they made some very fundamental mistakes in MIDP (this is a story for a blog some day.) This
software support 3 methods, Simple JPG gets, JPG gets with keep-alive, and Multi-part JPG push.
Because of the very dumb limitations in MIDP JPG gets with keep-alive worked the best, offering close to 1fps on GPRS network.
This java project is free to use (as in beer) for all.
Yoics - Founded this company in 2006. Created the architecture, patents and a good chunk of the software that this service runs. This service allows you to connect to any device or computer anywhere on the Internet without any knowledge of where the device is or what network it is connected to. Utilizes a combination of P2P, NAT traversal, TCP tunneling and proxy technologies. As far as I know it is the only product of its kind that doesn't require drivers to be loaded. It is truly cross platform with the
software running on Windows, OSX, Linux, BSD, eCos and other RTOS's.
BGW200 802.11b Embedded Wireless adapter - I designed a Philips BGW200
adapter board and married it to both an ARM7 and an AVR processor. I got the design onto a 2 layer PCB board with diversity
antenna support. Soldering this part by hand was a real task!.
Aviosys 9100 Web Scripts - A set of PHP script designed to decode and display an individual channel of the 9100a's multipart jpg stream. This project has been adopted as the base for several other video
surveillance projects available on the net. A version of this code lives on at Sourceforge. I also have a highly optimized C version that is used on the Aviosys ROMs that I have created.
Kleer - Created the software architecture documentation for the firmware that runs on
the Kleer wireless chipset. Designed Frequency Hopping and collision avoidance protocols that are robust and reliable
against 802.11 and Bluetooth.
nVidia Server Chipset - Created the software architecture documentation for remote management of several of
nVidia Transport Offload - Designed a method to do stateless offload for iSCSI CRC in a network adapter.
1 Gbps Ethernet TOE - Both at iRready and nVidia I worked on TCP transport offload hardware.
nChip uNetEthernet - in 2005 I created a serial to Ethernet version of my Internet module. It was never sold on the open market, as I could never get supply of the Ethernet chips from microchip until late 2006. At that time I had licensed out the firmware to several South American companies and I was not up for manufacturing them.
nChip SDIO Stack - I created a SDIO stack to try to get a SDIO Wifi card working. The stack was a sucsess but I could never get any information out the chip vendors to go further (I did at a later date see the BGW200 project).
nChip uNetWireless - in 2005 I created a serial to Wifi version of my Internet module. I never released it since the CF 802.11b cards were never available in any reliable quantity as the switch to 802.11g was happening. This project was abandon.
Simple Electric Motor I built with my son. We were
going to try to recreate a "Scout" motor, but found the design for this one that was much simpler. We still have this motor
and it still runs.
Aqualink Temprature Sensor Repair - Save $45 or more with this Step by Step instructions for fixing this spendy little sensor.
Modified Powerwheels - for a 12 volt Garden Tractor battery and a
plug in charger that cannot overcharge.
nChip uNetSerial - in 2003 I created a serial to Internet module for cellular phones. nChip was a company I created and the first product was the uNetSerial. I created the firmware and the hardware design, the specifications and the manuals. This module sold 100K units from 2003-2006.
MycalPHPdb Database - In 2002 I created a simple flat file database in PHP for my own personal use,
though it found its way into several projects at iReady, like the corprate phonebook, and a bug tracking database.
Blazing fast when the database is small (under 50K records). Perfect for personal database applications.
TCP Overview. Part Two of a presentation I gave in early Feb 2002. Please don't click
on the link unless you're really interested in TCP, because it is quite big and I pay for bandwidth.
IP over Ethernet part one of a presentation I gave in early Feb 2002.
Please don't click
on the link unless you're really interested in TCP, because it is quite big and I pay for bandwidth.
Pirates Life For Me - A parody song I created about modern day Internet download pirates based on the Disney song of the same name. This link includes me singing the song in MP3 format! Unbelievably to me, probably the most popular download on the site, and it continues today.
Internet Vending Machine Demo - with hardware, software and protocol spec. Based on the Microchip PIC processor and the Seiko S7600. This was the base for Microchip Application Note AN731 that I helped write with Microchips' Rodger Richey. I also designed a backend demo that could log the Internet vending hardware data and update it. I'm still amazed at the number of people not designing Internet connected devices correctly in 2007.
TDK Internet Modem Module - I had an idea for an Internet modem, I convinced TDK to produce it in
conjunction with Seiko. I did some of the hardware design and all of the firmware design and patents for this product sold in the early 2000's. This page show the progress of this project, schematics and source code.
Rapid Internet Device Development - Paper for a talk I gave at the Embedded Internet Conference in 2000 (EIC 2000 Conference).
8BitE - my first 8 Bit Ethernet project. It was designed to be my web interface
irrigation controller prototype.
I got the network to work, and the prototype SCR sprinkler switch controlling an irrigation valve from network commands.
This project never progressed passed the prototype stage because I started working on the TDK_IMM full time in early 2000.
Serial Autobaud Source Code - This code does autobaud detection for the AVR processor. But the method could be used on any controller. I actually have a newer verison that doesn't care what
serial speed is used (IE non standard) and will work with any microcontroller frequency. I'll try to post that later.
Internet Appliances + iJack - Including the iTam (internet telephone answering machine), the
iFax (internet Fax Machine), and the iJack a jack on the iTam and iFax that would allow any dumb device internet access like
the first and only internet Elmo! I worked on all these projects and came up with the iJack idea. I also constructed the
Internet Elmo! I think I have the design, click to find out. Y2K was the year.
Basic Tiger to Dialup Internet Adapter - Did this for a Tiny Tiger consultant. Added Internet connectivity to the Tiny Tiger basic computer. This link includes hardware schematic, pictures and source code.
iReady.org - In 1999 in order to support customers better I had the concept of using the open source feel as a support mechanism. iReady.org was one of the first Community Support portals for a commercial venture. It was a very hard concept to sell to the suits that thought the site would be a liability. I even had an ex-Netscape employee tell me I couldn't call it ".org" because we were a "commercial company" and he knew because he was from "Netscape". But I pushed forward and did it anyway, once in operation the whole company saw the benefit as it reduced support costs and created a groundswell business leads. This widely successful concept was copied over and over again by many other companies in the the years that follow.
AVR/8051 uInternet Development Board In Aug. 1999 I was tasked to come up with a development board for the Seiko S7600 chip. This is what I came up with. Was the most widely used development platform for the Seiko chip.
NetBoy, Internet Game Adapter - In 1999 I created the first ever Internet enabled Gameboy. This project included a interactive web backend and a Gameboy cartridge program that enabled users to interact in a poke'mon like world. Somewhere I even have the web backend for this project.
Embedded AOL instant messaging client I wrote for a demo on iReady hardware.
Email Reporting Engine - A ZiLOG/EE Times Driven to
Design Contest Entry I did in 1999 that allowed simple devices to send email reports via the Internet. This design was
one of the early designs that the TDK IMM was based off of.
uWebserver - In early 1999 it was the worlds smallest webserver, easily handled over 80K hits in one day when mentioned on slashdot.org. Full design and pictures are available on this link. A very early example of web control of a device.
SoundTool - A WIN32 graphical sound tool I wrote to do 2:1, 3:1 and 4:1 ADPCM compression and
my own 8:1 compression prototyping. We wrote some hardware compression for the ITAM (Internet Telephone Answering Machine)
and for a simple VOIP demo. Also includes the Unix Snippet reference files for doing simulation verification for hardware
designs. I just tried it out and the executables still runs fine on XP, though I don't know if the project will build with
modern tools, it was built with MSC++V1.5.
IOS - A non-preemptive multithreaded mini-kernel for Intel 186 I wrote this for various
projects we (iReady) did on the Intel processor, though it could easily be ported to ARM, AVR, 68K and others. It is
super small, only a few K. And could be easily run preemptive or as a RTOS with a few changes.
Supported Threadcreate, Threaddstroy, Threadswitch, Timers, events and Semaphores. Source is portable "C" with
a small bit of inline non-portable Assembly that would need to be changed on porting. It is fairly well documented in the sourcecode.
Builds with MSC++V1.5.
iMin OS - A very simple "minimum" operating system for iReady that can handle multiple tasks. Not
really true tasks but a list of functions with priority that could be called when other functions are blocked. Also
included a timer calling method that would call on a timer tick. Not RTOS like, no separate stacks, but was useful
for many projects.
tRouter - An implementation of the iRouter (sort of). I still wanted to do the iRouter
so I did this implementation on the side on my own time. Still could generate no interest so I tweaked it to be a testing
device that simulated network delay and packet loss. Much like a 1997 version of "The Cloud" software popular in 2002.
This does feature a very modular shell with easy module plug-ins, and it does route packets.
RF Digital Signaling Basics - an article I wrote describing
Frequency Shift Keying and Manchester encoding. For a while there were a few projects that were based on the code.
Widely referenced and linked over the years.
Very small and fast CRC16 for embedded processors - I used this in the first embedded PPP/IP/TCP/UDP stack I wrote. Very useful for AVR's, PIC's and other 8bitters.
iRouter - In 1996, back when iReady started I wanted to make a dialup and Ethernet to Ethernet router. I've found some of the design documents here. We probably would of made real money here as personal router comipanies were
being bought out left and right in 1999 for big money.
Stateless TCP - In 1996, one of the early concepts I looked into on the formation of iReady was a concept I called Stateless TCP. It was a way to serve TCP data without keeping state on the server side. The rest of the iReady group killed it, but I think it had some use. I never pursued it very much, but did do some demo's. It is capable of serving almost unlimited amounts of data with almost no CPU utilization. It has the other benefit that it could be done in just a few lines of C code or a few thousand gates of logic. Sounds pretty amazing? It is, click to see some design notes, and when I can find it the windows software demo.
Silicon TCP and iReady - In 1996 a few friends and I founded a company called iReady. We created a TCP/IP stack in gates. Click here for our adventures.
Silicon Valley North - I started this internet provider in 1995 with a friend, fairly successful, sold to Kavara in 2005 for stock and cash. I wrote many of the web based utilities to manage users, passwords, setup webspace
and setup one of the first wireless networks used by ISP's ~1996.
Micom VIP - In the 1994-1995 timeframe myself and a team made up of some ex-Netronics guys created on of the first pieces of Voice over IP hardware ever release on the market. A good chunk of the hardware and software was
done by my team. Micom was later acquired by Northern Telecom which sold this product until ~2002.
Chevy Pulse Converter/Multiplyer - Or software Phase Lock Loop (PLL).
This was a PIC 16C61 project. Designed to operate newer Chevy computers (40k-255kppm) with aftermarket "pulsers"(8kppm), but useful in anyplace you need a clock multiplier. Sorry I lost my hand written design notes on this project so all I have is the source code.
Tokenwatch - a graphical user interface for managing Netronix and Acsys brand bridges and routers. This was a solo project from top to bottom. It replaced a text based remote management tool.
Netronix SNMP Agent - That allowed SNMP reporting and control of Netronix and Acsys brand bridges and routers.
Netronix WAN Link Compression - Added STAC hardware compression to the Netronics bridges.
Netronix Weighted Fair Queueing - Added Weighted Fair Queuing to the WAN link of Netornix Bridges.
Mycal's Micro Power Radio Page - I put this page up in 1994 to contain
my Micropower Radio Information.
FM Micro Power Radio - I self published this book in 1993 through 1994, several
different versions. I think I sold about 500 copies. I recently found a hardcopy of an early version of this book, but
I cannot find the source files (must be on one of those 5 1/4" floppies I can't read. I've scanned it here, but it is huge, so be nice
to my bandwidth.
The Bulletproof 800MW Amp A nice little amp I designed for the
Ramsey FM-10 and FM-25 Transmitters. Very easy to build and almost
impossible to destroy. Very popular and sold as a kit by Free Radio Berkeley for a number of years.
FM-10 FAQ - information on enhancing the Ramsey FM-10 stereo transmitter kit. John Ramsey said I helped sell more FM-10 kits than any advertising he ever did.
Group 42 Sells Out - The first CDROM ever published in HTML format that you could browse with a webbrowser. Very
successful and although of questionable content, set the standard for CDROM publishing. Very cutting edge and widely hailed at the time. It was a very interesting exercise in content creation, publishing, sales and marketing. I used some of the profits to later start Silicon Valley North. I've included a copy here for your enjoyment.
Zipcrack - Source code for a brute force ZIP file archive
cracker. Works on Zip version 1.1 only.
Software Polygon Generator Code - a fast polygon render machine in pure C code. Props to Foley Van Dam's "Fundamentals of Interactive Computer Graphics" book when I was studying computer graphics.
Everex Step Panel Utilities - Back in the 286/386 computer days of 1988 I worked at
a company called Everex. They had a line of computers called the Everex Step, which were the fastest computers at the time. They had a little
LED display on there front panel. These are some TSR programs that can write messages or the date and time to this panel. Useless
today but a good example of 8086 assembly language programming.
Everex - my first job after Chico. EVER for EXcellence!
Rail Guns Circa 1987 - Fast times at Chico State.
Radio KSUC - Pirate Radio Chico State Style 1986. This was before the microradio/pirate radio boom of the early 1990's. We had a spotty schedule; we used a legal transmitter (not a home brew one) and transmitted in stereo with 10 watts of power. Only lasted a few months. But it set up my interest in building transmitters a little down the road.
CSU Chico Fun - Misc Random Stuff from my time at Chico State.