Bristol Wearable Computing

[ Home | Plans | Meetings | Members | Search | Papers | Links | CyberWear | LocoSoft]

Design of Pinger transmitters - by Tom Foy


  • Introduction
  • System Overview
  • The PIC16C71 MicroController
  • The PC interface and the program
  • The Pinger transmitter circuit
  • Introduction

    It is intended that small, localised near-field radio transmitters will be used to transmit a signal containing a number. The jacket will then be able to receive the signal and therefore know its location. Such devices are to be known as 'Pingers'. It is hoped that various forms of Pinger will be constructed - Pingers that run directly from mains power, battery power and pingers that could be mounted inside light fittings and utilise the solar power generated therein are envisaged.

    Back to top

    System overview

    The pinger transmitter design is illustrated in figure 1 below. An eight bit binary number is generated by a DIP switch. This number provides the identification number of a particular pinger. The eight bit prototype system is therefore limited to 256 individual pinger transmitters (However, in a larger system, it may be possible to utilise more than one pinger transmitting the same number - if the jacket is able to determine which pinger it is receiving a signal from by examining the most recently received pinger signals).

    Figure 1 shows the pinger transmitter design.

    Figure 2 shows the pinger output driver circuit

    The eight bit tag identification number passes into a PIC16C71 microcontroller which outputs the number in the form of a serial data stream and is repeated every 1 second (user definable). Although at present it is intended that the signal is transmitted only every second this option could easily be altered. The Microcontroller could also be programmed so the frequency at which the pinger transmits could be defined by the input from an ADC pin. A variable resistor could be used to provide a changeable delay input.

    The data output from the microcontroller is fed into an FSK shmitt trigger circuit. This circuit is fed by two input oscillators, f1 and f2, both derived from crystals and generating frequencies of 8.445MHz and 8.465MHz respectively. The input to the shmitt triggers determines which oscillator signal propogates to the output. The output driver circuit is shown in figure 2 (right).

    Back to top

    The PIC16C71 Microcontroller

    The PIC16C71 Microcontroller is an 8-bit CMOS based microcontroller with A/D converter. This chip is programmed so that it is able to read an 8-bit binary number input and transfer it to an RS232 serial data output. The PIC16C71 has two Input/Output ports and both port and pin designations are shown in table 1 below.

    Port A Port B
    PIN_RA1: Serial Data Output


    PIN_RA2: ADC Input (optional)
    Table 1 shows the pin designations made by 'Pinger.c'
    for the PIC16C71 microcontroller chip.

    Back to top

    The PC interface and the program.

    To avoid having to repeatedly program the microcontroller chip itself during building and debugging the program code (a process which is time consuming and can be harmful to the chip), an ICEPIC emulator is used. The emulator provides a convenient platform upon which the programmer is able to learn and gain experience in how to use the chip and its functions. The ICEPIC emulator connects to the PC via a serial link and an integrated development environment is run on the PC (software is called, 'ICEPIC emulator' and uses the external PCM C-compiler).

    With a lack of user manuals some difficulty was experienced in establishing correct communication between PC and emulator package. Future users may find the following configuration settings useful:

  • In ICEPIC on Options|Tools menu - assembler should read, "mpasmwin /q"; and compiler should be set to "PCM"
  • In PCM on Options|File formats menu - object file should be "8-bit hex" and extension should be ".HEX"; List file should be "Simple" and extension shoud be ".LST"; Debug file should be "MicroChip .COD" and Error file should be "MicroChip".
  • The program for the pinger microcontroller is very simple. It reads the boolean values (true or false) from the input pins in turn. Depending on whether a 1 or a 0 is read the PIC asserts or disasserts the output pins. The process is repeated 8 times until all bits have been read and then waits for 1 second before repeating.

    The PIC program use four output pins containing two pairs of identical signal pins. Pin designations are as followed: When an input 1 is detected, pin A0 is asserted and pin A2 is disasserted (ie: one frequency is switched on while the other is switched off). When an input 0 is received the opposite occurs.

    Pins A1 and A3 are simply duplicates of pins A2 and A0 respectively, thus allowing two output drivers to be driven from one PIC. The reason for two separate outputs in one pinger is so that two coils transmitting signals in two different planes can be supported.

    Back to top

    The Pinger transmitter circuit.

    The Pinger transmitter circuit is shown in figure 3 below - for a full detailed image click on the thumbnail. This shows the full circuit design including the Microcontroller.

    The 74HCT14 (IC1) is a hex schmitt-trigger inverter IC and the 74HCT125 (IC2) is a quad 3-state buffer IC. IC3 is the PIC16C71 and its inputs are supplied by the 8-bit DIL package (IC4). IC references are primarily for PCB layout purposes. Other inputs to the PIC are an external oscillator circuit of 4MHz connected between pins 15 and 16 and a reset cicuit on pin 4.

    The outputs from the PIC form the switching inputs to the tri-state buffer contained in the 74HCT125. The pin and port designations for the PIC to buffer IC are shown in Table 2 below.



    Signal PIC PORT 16C71 Output Pin 74HCT125 Input Pin
    Output 1 enable
    Output 1 disable
    Output 2 enable
    Output 2 disable
    PIN 17
    PIN 2
    PIN 1
    PIN 18
    PIN 13
    PIN 1
    PIN 10
    PIN 4
    Table 2 shows the pin and port assignments for the PIC16C71 and the 74HCT125 tri-state buffer

    The circuit is driven by a supply of +5v and ground. The circuit shown in figure 3 produces an output across the coil on VC of the transistor that oscillates with Vpk-pk equal to 10V. This transmitted signal forms the output from the pinger transmitter - a frequency shift keying signal of approximately 8.455MHz.


    unicrest.gif (4191 bytes)

    The material displayed is provided 'as is' and is subject to use restrictions.
    For problems or questions regarding this web contact Cliff Randell.
    Last updated: January 14, 2000.
    logoep.gif (1404 bytes)
    ęCopyright Hewlett-Packard 1997-2000.