The Dumb Badge, as it's name implies, is a simple, low performance member of the badge hierarchy. It simply transmits its fixed ID every few seconds then goes to sleep. It can't be reprogrammed on-the-fly and it does not respond to commands form the badge system.
We used it as a first test of the hardware and software, and as it turned out, to debug the compiler.
|
Processor |
PIC16C74A-JW |
|
Cycle period |
2.3 sec |
|
Data rate |
38400 bps |
|
Duty Cycle |
0.86% |
|
Voltage |
5V |
|
On current |
1.56mA |
|
Sleep current |
0.85mA |
|
Size |
54x86mm |
A frame consists of a sync byte followed by 26 data bytes. Future versions will use IrDA framing. Of course the frame format is subject to change without notice. The next change is likely to be to increase the size of X, Y and Z to 32 bits each to provide positions to 10cm resolution. Although 28 bits would provide sufficient precision, unfortunately 28 bits isn't a convenient size, hence we will use 32 bits.
OUT_PROTOCOL = 3 /* PROTO_DUMB */ Additional information is provided in the Smart Badge description.
|
#define OUT_SYNC |
outframe_data[0] |
|
#define OUT_LENGTH |
outframe_data[1] |
|
#define OUT_RANDOM |
outframe_data[2] |
|
#define OUT_PROTOCOL |
outframe_data[3] |
|
#define OUT_SEQUENCE |
outframe_data[4] |
|
#define OUT_ADDRESS0 |
outframe_data[5] |
|
#define OUT_ADDRESS1 |
outframe_data[6] |
|
#define OUT_ADDRESS2 |
outframe_data[7] |
|
#define OUT_ADDRESS3 |
outframe_data[8] |
|
#define OUT_STATUS |
outframe_data[9] |
|
#define OUT_TEMPERATURE |
outframe_data[10] |
|
#define OUT_LIGHT |
outframe_data[11] |
|
#define OUT_HUMIDITY |
outframe_data[12] |
|
#define OUT_ROLL |
outframe_data[13] |
|
#define OUT_PITCH |
outframe_data[14] |
|
#define OUT_YAW |
outframe_data[15] |
|
#define OUT_X1 |
outframe_data[15] |
|
#define OUT_X2 |
outframe_data[17] |
|
#define OUT_X3 |
outframe_data[18] |
|
#define OUT_Y1 |
outframe_data[19] |
|
#define OUT_Y2 |
outframe_data[20] |
|
#define OUT_Y3 |
outframe_data[21] |
|
#define OUT_Z1 |
outframe_data[22] |
|
#define OUT_Z2 |
outframe_data[23] |
|
#define OUT_Z3 |
outframe_data[24] |
|
#define OUT_SOUND |
outframe_data[25] |
|
#define OUT_CRC0 |
outframe_data[26] |
|
#define OUT_CRC1 |
outframe_data[27] |
The complete badge design (schematic, artwork, C program and Intel HEX download file) is available for download.
To load the HEX file into a processor for the badge you will need the following:
To modify the program you will also need the Microchip C compiler to go with the PICSTART system. This is an expensive item but you can download a free demo version that is limited to 256 output instructions. The demo compiler from the PICSTART CD is what we used for this version of the program (which is a tight fit on the 256 instruction boundary).
If you use the design or have any comments or suggestions we would like to hear from you.
H. W. Peter Beadle (Email: beadle@elec.uow.edu.au)
March 10, 1997
Back to the Location Aware Home Page