SmartBadge version 1

"A SmartBadge is a wearable computer with an infrared data link and a collection of environmental sensors. It is designed to be work like a corporate identity badge. The SmartBadge communicates with fixed Badge Tranceivers using a subset of the IrDA IrLAP protocol stack. Every 2.3 seconds the SmartBadge broadcasts a message giving its identity and details of the state of its sensors. A Badge Treanceiver picks up the message and forwards it to a Badge Server which de-encapsulates the Badge data from the IrLAP frame and forwards the information to a Location Server that tracks the location and state of Badges, Treanceivers and people." (From the lab notes for the course.)

The first version of the SmartBadge has been used in classes at KTH (Mobile Personal Communications module of the Telecommunications "finger" course during Spring 1997) and University of Wollongong (during Summer 1997). This version was mainly designed during winter 1997 by Dr. H. W. Peter Beadle, then of the The Institute for Telecommunications Research, Electrical and Computer Engineering, University of Wollongong, Australia in cooperation with M. T. Smith of HP Labs and G. Q. Maguire Jr. of KTH.

This version used a 2 layer circuit board made by Mark T. Smith of HP Labs using a PCB milling machine.

Front and Back Badge views

The basic system consists of an EEPROM programmable 20MHz 8 bit PIC microcontroller with A/D Converter (PIC16C74-JW) and a number of sensors.


Parts and reason for their selection


SmartBadge Programs

SmartBadge (Version 1.1, C for PIC 16C74A-JW @ 20MHz) (Version 1.1, C for PIC 16C74A-JW @ 19.660800MHz)

Badge Mode

Once operational the Badge polls its sensors, sends a Badge frame and then waits for 1 second for incoming Badge command frames. It then sleeps for 2.3 seconds and repeats the process. If an incoming Badge command frame is recognised the command is executed and the badge resets its timeout and waits for additional commands for 1 second. Back-to-back commands are thus possible without the Badge going to sleep.

Tranceiver Mode

All the badge code was developed using PICSTART-16C - a PIC development environment.

Badge Server

Badge Server takes IrDA IrLAP frames delivered from a Badge Tranceiver across the Internet. Parses the content and then forwared the data to the WWW based Location Server as a HTML message. The program is also capable of forwarding IrLAP frames data back to the Badge Tranceiver to be passed on to a Badge.

Badge Tranceiver

Reads badge data from the serial port of a PC (Presumably from a Badge running the tranceiver program) and sends it to a badge Server runing somwhere in the Internet. The program can also receives IrLAP format frames from the Internet and send them to the Badge through the serial port.


Allows a person to register with the Location Server on the Interner when they log on to a computer.


Allows the Badge ID to be programmed on Badge power-up. Programming sequence is the character i followed by 4 bytes giving the Badge ID. You can also type this in from an IrDA equiped notebook (e.g. OmniBook). Repeat until the badge beeps at you or 20 seconds expire at which time the baged starts up with a broadcast address of 0xffff.

Fake Badge

Allows you to specify the Badge address, Badge Tranceiver address and send an update message to the Location Server as if the Badge had been seen by the Tranceiver.

Related Work


G.Q.Maguire Jr. (
Last modified: 12 February 2003 © 2002 G. Q. Maguire Jr., KTH/IMIT

Valid HTML 4.01!