Jonathan's Labbook (1998):
Main Page [ARCHIVED]

Jonathan's Electrical Engineering & Design Lab Notebook (1998)


Non-Linear Contents List

All content is Copyright 1997,1998,1999 by Jonathan Cline under GNU Copyleft as created by the Free Software Foundation (FSF) and only those rights covered under the GNU General Public License are granted; the content (including software) is not in the public domain. Read the GNU Manifesto for more information. This means the content is NOT to be sold for PROFIT, it is non-waranteed, and you may not distribute modified versions without my permission.

This is my online lab notebook. It contains circuits and design notes for the electronics projects I build, as well as software projects. If you are into Electrical/Electronics Engineering then you should enjoy it. Keeping a virtual circuit cookbook is easier than a real one, for me anyway.

Latest project finished! Light Species Derivative Robopet

So You Want To Build a Robopet?

Current Contents of my Virtual Labbook:


General Notes

Professional Hacks

    Hey Mike V.! See below.

  • What to do with two weeks of somewhat-free time in a cubicle? How about write an I2C Driver demo for the Intel 80960 32-bit embedded processor? Check out the cool color pictures courtesy of the office Proshare camera. I2C Driver Demo for the 80960 Processor. The schematics are pretty cheesy, though; I didn't have any good capture software available at the time.

Class Projects

  • PALBot I: A light-seeking PAL-controlled robot using a radio controlled ("R/C") car as a chassis. Designed as the final project for EE359 (1 unit State Machine Lab). For a commercial kit like my PALBot project, see ref 12.
  • Speech Recognition via Digital Signal Processing (DSP): An experiment using Matlab's FFT to distinguish between "yes" and "no" sampled as binary sound files (.wav's). Written for the final project for EE459 (1 unit DSP Lab).
  • PCB design & fabrication of a 2-layer board for my BiMo IV robot (see the PIC section). I'm debating whether to put up the OrCAD schematics & JOB files. Created for the final project for IME157 (3 unit manufacturing class).
  • I built Light Species Derivative Robopet for Cal Poly ME406, Mechatronics II (and also to use in RoboRodentia, a local robot contest). Full source code and about a dozen color pictures are included in the Acrobat .PDF file (800 KB). The document is 32 pages long. Note: The Circuit Schematic is outlined in the Source Code listing; appendix H & I are not included (graphical schematic & drawings). Light Species Derivative is an evolution of my BiMo IV robopet.
  • Undergrad Senior Project: Active Noise Cancellation in Free Space using Adaptive Filtering on a Digital Signal Processor. I want to cancel out broadband noise (~0Hz - 1kHz) with the potential application of use in a vehicle cabin. The algorithm is small, but the system is difficult to realize. The system will use a TI DSP evaluation board (DSK) with the TMS320c31 floating point DSP CPU. A 'calibration' mode will run first, using internally generated white noise to model the inverse of the speaker & microphone's combined transfer function. This inverse transfer function will then be used before the adaptive algorithm in order to pre-filter for the non-flat speaker & microphone response.

PICmicro Devices

    I have a Microchip, Inc. PICSTART Plus programmer. (You can build your own programmer easily, see ref 9.) The following Lab Book pages apply to Microchip, Inc. microcontrollers:
  • The datasheet for the Microchip PIC 16F84 (or more generically the PIC16x8x): Datasheet for PIC16F8x (1.4 Meg). This is the only reference I've used from Microchip (besides their handy fold-out assembly language reference card).
  • Jonathan's Meta-URL for the Microchip PIC Digest
  • Microchip PIC notes: PIC16x84 are my scribbles about their chip.
  • Microchip PIC Circuit #1: PIC16x84 was my first attempt at using a PIC. Didn't know anything about them at the time.. (For another "first PIC circuit", see ref 10.)
  • BiMo I: 'PALBot I' gets a facelift: A light-seeking, roving R/C-car controlled with a PIC 16F84.
  • BiMo II (project cancelled): Used a PIC 16F84 to control an R/C car via servo steering and a current-gobbling drive motor. The servo steering is done via the built-in timer ("RTCC") which generates interrupts. The drive motor was controlled by a 3Amp H-bridge interfaced to the PIC, until I smoked the H-bridge (no, not literally). The way around this would have been to use the R/C Car's own speed controller; the speed controllers are made to handle 5A peak currents and continued operation.
  • BiMo III ("Everclear" platform): A PIC 16F84 microchip controls the two servos which drive a two-wheeled robot.
  • BiMo IV has been completed, with improved software-- allowing many more servos to be controlled and 8 analog or digital inputs. I mounted a 3rd servo on the front of the platform as a 'manipulator arm' & added an 8-channel multiplexer in order to allow more sensor inputs through an 8-bit A/D chip (only the highest 4 bits are used, though). The A/D works well with CdS photocells for black-line sensing (as in a robot maze contest). Including an A/D (ADC0804C) for only 4 bits is a little odd-- further progress in that direction and I'll have to change the design (either PIC16c7x with built-in A/D and no Flash, or a serial A/D with built-in MUX). (I also suppose the name BiMo is non-intuitive, since there are now more than two motors!)
  • In order to debug my PIC projects, I have built a 1-pin Debugger, using a PIC16F84. The project to be debugged needs to dedicate one port pin for output when debugging. The Debugger communicates through this one pin to display debug information from the embedded PIC. It's easy to build & it beats the "blinking LED" approach to troubleshooting.
  • My latest robot, Light Species Derivative, is for the Roborodentia robot competition. It uses a PIC16F84, servo motors, and photocells as sensors. The chassis is based on the Everclear idea but is only half the weight. Check it out under 'Class Projects' above.

Atmel Micros

    Atmel now has a small RISC-based family named "AVR", the smallest member of which competes with Microchip, Inc.'s PIC micros. The benefits? Mainly, the AVRs have an expanded instruction set; the down side is that they are smaller and have less features, since after all, they are pretty new. I'll add more on these later (a sample kit is available which includes the baseline AVR chip-- the AT90S1200-- and a couple manuals, call Atmel).

    Quoting from the datasheet:

    The architecture supports high level languages efficiently as well as extremely dense assembler code programs. The AT90S1200 provides the following features: 1K bytes of Downloadable Flash, 64 bytes EEPROM, 15 general purpose I/O lines, 32 general purpose working registers, internal and external interrupts, programmable Watchdog Timer with internal oscillator, an SPI serial port for program downloading and two software selectable power saving modes. The Idle Mode stops the CPU while allowing the registers, timer/counter, watchdog and interrupt system to continue functioning. The power down mode saves the register contents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset.

    The on-chip Downloadable Flash allows the program memory to be reprogrammed in-system through an SPI serial interface or by a conventional nonvolatile memory programmer.

    Although the datasheet says the chip has 1kbyte of Flash, this only allows 512 instructions, since the instructions are 16-bit wide. The AVR does not divide the clock, like the PIC does, so the AVR gets more CPU cycles in at a given frequency (paraphrased from a note on the PIC email list).

    Microchip had a comparison between the PIC and the AVR, but the link is not currently working.

    Here's a local link to the datasheet for the AVR AT90S1200 (49 page PDF file, 1.5Meg): AT90S1200 Preliminary Datasheet. The Serial Programming connections are on page 40.

    The newer AVR chips are much bigger than the PIC; several dozen-k of ROM and large packages; so it seems the AVR is not really competing with the PIC; Microchip still wins the pico-controller award!

Other Information








Electronics Engineering Webring
[Previous Site] [Next Site] [Next 5 Sites] [List Sites]

PICMicro Web Ring
[Previous Site] [Next Site] [Next 5 Sites] [List Sites]


Jonathan's Lab Notebook (1998)

<jcline@ieee.org> Copyright 1996,1997 Jonathan Cline


[ ,,^..^,,  Lynx Friendly! ] Best viewed with / Dehanced for the Lynx Browser and the Opera Browser.