A collection of projects and writing on embedded Java, mobile phone programming and embedded systems.


AtomicRhubarb hosts a number of projects Im working on and the main content for two graduate classes I teach. I have been cleaning up files again, so If you arrived here through a now dead link then you can probably find what you are looking for by browsing the navigation tree to the right, or select from the major categories below:

Designing Embedded Internet Devices

Designing Embedded Internet Devices: A Practical Guide to Hardware and Software Design using the TINI Microcontroller

by Dan Eisenreich & Brian Demuth
600 pages
CD-ROM included
Publisher: Elsevier Science
ISBN: 1-878707-98-1

Embedded Internet and Internet appliances are the focus of great attention in the computing industry, as they are seen as the future of computing. The design of such devices presents many technical challenges. This book is the first guide available that describes how to design Internet access and communications capabilities into embedded systems. It takes an integrated hardware/software approach using the Java programming language and industry-standard microcontrollers. Numerous illustrations and code examples enliven the text. All of the circuits and code have been fully tested. Based on the 8051 microprocessor, TINI is an internet-ready, embeddable, Java Virtual Machine with a powerful collection of hardware interfaces (I2C, CAN, 1-wire, RS-232, parallel, Ethernet).

CSCI 4415 - Real Time Embedded Systems

CSCI 4415 (formerly CS-190) is a George Washington University, Department of Computer Science course in real-time embedded systems. This course is taught as CSCI-4415 section 80 for undergraduate students and CSCI-6907 section 80 for graduate students. The purpose of this course is to engage computer science undergraduates and graduates with hardware and embedded systems. While Computer Science students get a strong conceptual overview of systems and hardware in various organization and architecture courses, many students have never experienced actually working with computer hardware. This course will focus on hands-on projects, through homework, labs and final projects involving both hardware and low-level software. This course will discuss the design issues in an embedded system and the technologies needed to support such systems, with the focus on the software aspects.

CSCI 4237 Software Design for Handheld Devices

CSCI 4237 - Software Design for Handheld Devices is a George Washington University, Department of Computer Science course in developing applications for modern day smartphones. This class will be a rigorous examination of the tools and techniques used for programming mobile devices in Java. The student will develop programs for a number of different phones including BlackBerry and Android phones. Attention will be given to the details necessary for developing fully functional applications such as games and business tools. Programs will be developed to run within the emulators that are part of the development tools, however real devices can be used if the student wishes to provide their own. We will also pay specific attention to topics that are unique to handheld devices: designing for limited screen size and constrained resources, cross platform development, portability, on-device testing and performance issues.

Programming The Zilog ZNEO Microcontroller By Example

Programming The Zilog ZNEO Microcontroller By Example

by Dan Eisenreich
Publisher: To Be Determined
ISBN: To Be Determined
Publication Date: Spring 2013


The Programming The Zilog ZNEO Microcontroller By Example series will provide readers with a thorough understanding of how to design and program embedded control systems using the Zilog ZNEO microcontroller. This book series will present, in detail, all of the architectural features of the ZNEO and provide the reader with a detailed explanation of how to develop programs that use the full capability of the microcontrollers. This is not intended to be a replacement for the Zilog product specification, but will serve as a companion to the Zilog documentation, providing the reader with many example programs. In fact, the most significant aspect of the book series will be the numerous, detailed, documented and explained C programs that demonstrate how to configure and use each and every feature of the ZNEO microcontroller.

CSCI 3410 - Systems Programming

Block DiagramCSCI 3410 is a new George Washington University, Department of Computer Science course replacing Computer Architecture II (CSCI 3462). This course introduces students to many concepts underlying all computer systems and ties together the basic concepts from transistors though software development. Topics include: processor operation, hierarchical memory systems, microcontroller architecture, digital and analog data acquisition, actuation, and systems software development topics from the programmer's perspective such as compilers, linkers, operating systems, testing and debugging. The course uses embedded platforms to teach students how programs interact with and are constrained by hardware (with a little bit of “Basic Electronics” included so that the embedded systems part can be more easily understood).