CSCI 339 - Embedded Systems


Embedded Systems is a special topics course that I took as a graduate student at The George Washington University during the Spring 2006 semester. The course focused on the design of software for embedded systems. Labs and projects for the course done with the Zilog Z8 Encore! microcontroller. The two main assignments for the course were a presentation and a large scale project. For the presentation I created an IrDA flash loader for the Z8 encore. The final project was an award winning Internet-ready Refrigerator Inventory Control System.

The final project was adapted to the Zilog ZNEO Z16F and entered into a design contest where it was awarded second place. More information about the contest can be found at the contest web page.


The presentation required the implementation of an IrDA flash loader for the Z8 Encore! Z8F6403. The flash loader was created by porting the Pico-IrDA stack for microcontrollers to work with the Z8F6403. The final result was an application to transmit and load Z8F6403 programs through the IR controller with the IRCOMM and IROBEX protocols. The Power Point presentation describing the project, with an overview of IrDA is available for download.

The Presentation: CS339_presentation.ppt (3.01MB)


The project involved the implementation of a system to keep track of the inventory of a refrigerator. The combined power of the Z8F6403 and a Windows PC is used to record, retrieve, store, and speak information obtained from a standard UPC code. A CueCat barcode scanner attached to the Z8F6403 is used to capture a UPC code from a product. The UPC code is transmitted to the PC through a serial connection. The PC retrieves information associated with the UPC code from the internet. The retrieved data is both stored in a database and transmitted to the Z8F6403. The Z8F6403 speaks the name of the product associated with the captured UPC code using a SpeakJet speech synthesizer with a TTS256 text to speech conversion IC. Two temperature sensors are also attached to the Z8F6403 to monitor the temperature of the freezer and refrigerator. Temperature data is periodically transmitted to the PC. The PC makes the temperature and inventory data available through a simple web server. Documents with a basic description and detailed design documentation are available for download.

The Brochure: CS339_project_summary.pdf (198kb)
The Report: CS339_project_finalreport.pdf (728kb)