You are on page 1of 62

A

Project Report
On
“FINGERPRINT BASED VOTING MACHINE”

Submitted in partial fulfillment of Bachelor’s Degree in Technology


Rajasthan Technical University,
Kota

(During:2009-2010)

Guided By: Submitted by:


Mr. Rahul Neiwal Apoorva Khetan(EC06017)
EC deptt. Ashwani Kumar(EC06021)
Suneel Kumar(EC07130)

Department of Electronics & Communication


Jaipur Engineering College
Kukas, Jaipur

ii
CERTIFICATE

This is to certify that project report entitled “FINGERPRINT BASED VOTING MACHINE”
submitted by “Apoorva Khetan, Ashwani Kumar and Suneel Kumar” students of final year
B.E. in Electronics & Communication, JAIPUR ENGINEERING COLLEGE, KUKAS,
JAIPUR was completed under my supervision and their work is found satisfactory and I found
them sincere towards their work.

Ms. Garima Mathur Mr. Rahul Neiwal


Head Lecturer, EC Deptt.
Department of EC

Place: Jaipur
Date:

iii
PREFACE

Engineering is not only a theoretical study but it is an implementation of all we study for creating
something new and making things more easy and useful through practical study. It is an art
which can be gained with systematic study, observation and practice. In the college curriculum
we usually get the theoretical knowledge of industries and a little bit of implementation
knowledge that how it work’s? But how can we prove our practical knowledge to increase the
productivity or efficiency of the industry?

To overcome such a problem, we the students of JAIPUR ENGINEERING COLLEGE,


KUKAS, JAIPUR are supposed to make a project on “FINGERPRINT BASED VOTING
MACHINE”.

India is world’s largest democracy. It is perceived to be charismatic one as it accommodates


cultural, regional, economical, social disparities and still is able to stand on its own. Fundamental
right to vote or simply voting in elections forms the basis of Indian democracy.

FVM is capable of saving considerable printing stationery and transport of large volumes of
electoral material. It is easy to transport, store, and maintain. It maintains security by providing
authentication. It completely rules out the chance of invalid votes. Its use results in reduction of
polling time, resulting in fewer problems in electoral preparations, law and order, candidates'
expenditure, etc. and easy and accurate counting without any mischief at the counting centre. It is
also eco friendly.

iv
ACKNOWLEDGEMENT

A scholarly and quality work like designing of any project can be accomplished by motivation,
guidance and inspiration of certain quarters besides the individual efforts. Let me in this page
express my heartiest gratitude to all those who helped me in the various stages of this study.

We are very much thankful to Dr. G.D.Sharma, Director (Academics), Prof. S.K. Bhatnagar,
(Head, R&D Deptt.), Ms. Garima Mathur (Head, Deptt. of EC) and Mr. V.S. Bhatnagar for
giving us permission to undergo this project and providing all other necessary facility.

During our project all the staff members of the Deptt. have helped us with their skills. Hereby
we also express our sincere thanks to our project co-ordinator, Ms Anju Mareja. Also we are
thankful to all other technical staff of the deptt. who have helped us to complete our project
successfully. We wish to express our deep sense of gratitude to our project guide “Mr. Rahul
Neiwal” for his valuable guidance and kind co-operation without which this project would have
not been possible.

ApoorvaKhetan(EC06017)

Ashwani Kumar(EC06021)

Suneel Kumar(EC07130)

v
INDEX

TOPICS PAGE NO.

1. Introduction 1-2

2. Microcontroller Description 3-7


2.1 Features 3
2.2 Block Diagram
4
2.3 Pin Diagram 5
2.4 MCLR 5
2.5 Pin Description 6-7

3. Introduction to 16X2 LCD Display 8-10


3.1 Pin description 8-9
3.2 DDRAM - Display Data RAM 9
3.3 BF - Busy Flag 9
3.4 Instruction Register (IR) and Data Register (DR) 10
3.5 Commands and Instruction set 10
3.6 Sending Commands to LCD 10

4. Basic Components 11-18


4.1 Resistors 11
4.2 Capacitors 12
4.3 Diodes 13
4.4 Switch 14
4.5 PCB 14
4.6 Batteries 15
4.7 Relays 15-18

5. Line Sensor Command Access Fingerprint Module 19-25


5.1 Introduction 19-21
5.2 API Functions 21
5.3 Detail of API Functions 21-25

6. IC ULN-2003 26-27
6.1 Features 26
6.2 Description 26
6.3 Pin Connection 27

vi
7. IC MAX-232 28-31
7.1 Features 28
7.2 Description 28
7.3 Pin Diagram 29
7.4 Function Tables 29
7.5 Logic Diagram 30
7.6 Application Information 31

8. Interfacing the serial RS232 port 32-35


8.1 Introduction 32
8.2 Hardware Properties 33
8.3 Serial Pinout 34
8.4 Pin Function 35

9. Printed Circuit Boards 36-37

10. Power Supply 38-40


10.1 Unregulated Power Supply 38
10.2 Regulated Power Supply 39-40

11. Project Description 41-42


11.1 Ballot Unit 41-42
11.2 Control Unit 42

12. Project Methodology 43-52


12.1 Components 43-44
12.2 Procedure 44
12.3 Circuit Diagram 45
12.4 Circuit Description 46
12.5 PCB Layout 47
12.6 Coding 48-51
12.7 Software Description 52

13. Applications 53

14. Future Scope 54

Conclusion

References

vii
1. INTRODUCTION

India is world’s largest democracy. It is perceived to be charismatic one as it accommodates


cultural, regional, economical, social disparities and still is able to stand on its own. Fundamental
right to vote or simply voting in elections forms the basis of Indian democracy.

In India all earlier elections be it state elections or centre elections a voter used to cast his/her
vote to his/her favorite candidate by putting the stamp against his/her name and then folding the
ballot paper as per a prescribed method before putting it in the Ballot box. This is a long, time-
consuming process and very much prone to errors.

This situation continued till election scene was completely changed by electronic voting
machine. No more ballot paper, ballot boxes, stamping, etc. all this condensed into a simple box
called ballot unit of the electronic voting machine.

EVM is capable of saving considerable printing stationery and transport of large volumes of
electoral material. It is easy to transport, store, and maintain. It completely rules out the chance
of invalid votes. Its use results in reduction of polling time, resulting in fewer problems in
electoral preparations, law and order, candidates' expenditure, etc. and easy and accurate
counting without any mischief at the counting centre. It is also eco friendly.

Our Voting Machine consists mainly of two units - (a) Control Unit (CU) and (b) Ballot Unit
(BU) with cable for connecting it with Control unit. It consists of one LCD, a fingerprint module,
a votecast panel, a candidate panel, a buzzer and a couple of switches etc.

This project is based on C language programming. The software platform used in this project are
Hi-Tech C Compiler and HyperTerminal.

Fingerprint Based Voting Machine

The complete Voting machine consists mainly of two units - (a) Control Unit and (b) Balloting
Unit with cable for connecting it with Control unit. A Balloting Unit caters upto 3 candidates.
Four Balloting Units linked together catering in all to 64 candidates can be used with one control
unit. The control unit is kept with the Presiding Officer and the Balloting Unit is used by the
voter for polling.

The Balloting Unit of EVM is a small Box-like device, on top of which each candidate and
his/her election symbol is listed like a big ballot paper. Against each candidate's name, a button
is provided. The voter polls his vote by pressing the button against the name of his desired
candidate.

viii
These utilize fingerprint recognition technology to allow access to only those whose fingerprints
you choose. It contains all the necessary electronics to allow you to store, delete, and verify
fingerprints with just the touch of a button. Stored fingerprints are retained even in the event of
complete power failure or battery drain. These eliminates the need for keeping track of keys or
remembering a combination password, or PIN. It can only be opened when an authorized user is
present, since there are no keys or combinations to be copied or stolen, or locks that can be
picked.

The main aim in designing this product is to provide the concept of the personal identity for each
individual. This is extended to a special case of electronic voting machine concept. The summary
of the design can be briefly explained diagrammatically as follows.
As a pre-poll procedure the finger prints of all the voters are collected and stored in a database
initially at time of distributing cards. At the time of voting, the option of the voter is taken along
with the finger print. The finger print taken by the scanner is sent to the pc through an in-built
A/D converter. The processed image is transferred to hard disk. The option entered by
the voter is transferred to chip through DEMUX and is stored in the
memory.
If the transferred image is matched with any of the records in the data base, then the interrupt is
given by the HARD DISK to pc. Then the option is considered in the count.

ix
2. MICROCONTROLLER DESCRIPTION

PIC16F73 8-Bit CMOS Flash Microcontroller

2.1 Features

• High performance RISC CPU


• Only 35 single word instructions to learn
• All single cycle instructions except for program
branches which are two-cycle
• Operating speed: DC - 20 MHz clock input
DC - 200 ns instruction cycle
• Up to 8K x 14 words of FLASH Program Memory,
• Up to 368 x 8 bytes of Data Memory (RAM)
• Interrupt capability (up to 12 sources)
• Eight level deep hardware stack

Peripheral Features:

• Timer0: 8-bit timer/counter with 8-bit prescaler


• Timer1: 16-bit timer/counter with prescaler,
can be incremented during SLEEP via external
crystal/clock
• Timer2: 8-bit timer/counter with 8-bit period
register, prescaler and postscaler
• Two Capture, Compare, PWM modules
-Capture is 16-bit, max. resolution is 12.5 ns
- Compare is 16-bit, max. resolution is 200 ns
- PWM max. resolution is 10-bit
• 8-bit, up to 8-channel Analog-to-Digital converter
• Synchronous Serial Port (SSP) with SPI (Master
mode) and I2C (Slave)
• Universal Synchronous Asynchronous Receiver
Transmitter (USART/SCI)

x
2.2 Block Diagram

xi
2.3 Pin Diagram :

2.4 MCLR:

PIC16F7X devices have a noise filter in the MCLR Reset path. The filter will detect and ignore
small pulses. It should be noted that a WDT Reset does not drive MCLR pin low. The behavior
of the ESD protection on the MCLR pin has been altered from previous devices of this family.
Voltages applied to the pin that exceed its specification can result in both MCLR Resets and
excessive current beyond the device specification during the ESD event. For this reason,
Microchip recommends that the MCLR pin no longer be tied directly to VDD.

Fig no. 2.1

xii
2.5Pin Description:

xiii
xiv
3. INTRODUCTION TO 16X2 LCD DISPLAY

LCD stands for Liquid Crystal Display. The most commonly used LCDs found in the market
today are 1 Line, 2 Line or 4 Line LCDs which have only 1 controller and support at most of 80
characters.

3.1 Description

The HD44780U dot-matrix liquid crystal display controller and driver LSI displays
alphanumerics, Japanese kana characters, and symbols. It can be configured to drive a dot-matrix
liquid crystal display under the control of a 4- or 8-bit microprocessor. Since all the functions
such as display RAM, character generator, and liquid crystal driver, required for driving a dot-
matrix liquid crystal display are internally provided on one chip, a minimal system can be
interfaced with this controller/driver. A single HD44780U can display up to one 8-character line
or two 8-character lines. The HD44780U has pin function compatibility with the HD44780S
which allows the user to easily replace an LCD-II with an HD44780U. The HD44780U character
generator ROM is extended to generate 208 5 ´ 8 dot character fonts and 32 5 ´ 10 dot character
fonts for a total of 240 different character fonts. The low power supply (2.7V to 5.5V) of the
HD44780U is suitable for any portable battery-driven product requiring low power dissipation.

3.2 Pin Description

Most LCDs with two controllers has 16 Pins. Pin description is shown in the table below.

Pin No. Name Description


Pin no. 1 D7 Data bus line 7 (MSB)
Pin no. 2 D6 Data bus line 6
Pin no. 3 D5 Data bus line 5
Pin no. 4 D4 Data bus line 4
Pin no. 5 D3 Data bus line 3
Pin no. 6 D2 Data bus line 2
Pin no. 7 D1 Data bus line 1
Pin no. 8 D0 Data bus line 0 (LSB)
Pin no. 9 EN1 Enable signal for row 0 and 1 (1stcontroller)
0 = Write to LCD module
Pin no. 10 R/W
1 = Read from LCD module
0 = Instruction input
Pin no. 11 RS
1 = Data input
Pin no. 12 VEE Contrast adjust

xv
Pin no. 13 VSS Power supply (GND)
Pin no. 14 VCC Power supply (+5V)
Pin no. 15 EN2 Enable signal for row 2 and 3 (2ndcontroller)
Pin no. 16 NC Not Connected

Table No.3.1: Pin description of the LCD

3.3 DDRAM - Display Data RAM

Display data RAM (DDRAM) stores display data represented in 8-bit character codes. Its
extended capacity is 80 X 8 bits, or 80 characters. The area in display data RAM (DDRAM) that
is not used for display can be used as general data RAM. So whatever you send on the DDRAM
is actually displayed on the LCD.

3.4 BF - Busy Flag

Busy Flag is a status indicator flag for LCD. When we send a command or data to the LCD for
processing, this flag is set (i.e. BF =1) and as soon as the instruction is executed successfully this
flag is cleared (BF = 0). This is helpful in producing and exact amount of delay. For the LCD
processing. To read Busy Flag, the condition RS = 0 and R/W = 1 must be met and The MSB of
the LCD data bus (D7) act as busy flag. When BF = 1 means LCD is busy and will not accept
next command or data and BF = 0 means LCD is ready for the next command or data to process.

3.5 Instruction Register (IR) and Data Register (DR)

There are two 8-bit registers controller Instruction and Data register. Instruction register
corresponds to the register where you send commands to LCD e.g. LCD shift command, LCD
clear, LCD address etc. and Data register is used for storing data which is to be displayed on
LCD. When send the enable signal of the LCD is asserted, the data on the pins is latched in to the

xvi
data register and data is then moved automatically to the DDRAM and hence is displayed on the
LCD.

3.6 Commands and Instruction set

Only the instruction register (IR) and the data register (DR) of the LCD can be controlled by the
MCU. Before starting the internal operation of the LCD, control information is temporarily
stored into these registers to allow interfacing with various MCUs, which operate at different
speeds, or various peripheral control devices. The internal operation of the LCD is determined by
signals sent from the MCU.

3.7 Sending Commands to LCD

To send commands we simply need to select the command register. Everything is same as we
have done in the initialization routine. But we will summarize the common steps and put them in
a single subroutine.

Following are the steps:


 Move data to LCD port
 Select command register
 Select write operation
 Send enable signal
 Wait for LCD to process the command

4. BASIC COMPONENTS

Electronic components are classed into either being Passive devices or Active devices.

xvii
A Passive Device is one that contributes no power gain (amplification) to a circuit or system. It
has not control action and does not require any input other than a signal to perform its function.
In other words, “A component with no brain!”. Examples are Resistors, Capacitors and
Inductors.

Active Devices are components that are capable of controlling voltagesor currents and can create
a switching action in the circuit. In otherwords, “Devices with smarts!” Examples are Diodes,
Transistors and Integrated circuits. Most active components are semiconductors.

4.1 Resistors:

This is the most common component in electronics. It is used mainly to control current and
voltage within the circuit. You can identify a simple resistor by its simple cigar shape with a wire
lead coming out of each end. It uses a system of color coded bands to identify the value of the
component (measured in Ohms). A surface mount resistor is in fact mere millimeters in size but
performs the same function as its bigger brother, the simple resistor. A potentiometer is a
variable resistor. It lets you vary the resistance with a dial or sliding control in order to alter
current or voltage on the fly. This is opposed to the “fixed” simple resistors.

Fig. 4.1 resistor

Variable Resistors

Variable resistors are also common components. They have a dial or a knob that allows you to
change the resistance. This is very useful for many situations. Volume controls are variable
resistors. When you change the volume you are changing the resistance which changes the
current. Making the resistance higher will let less current flow so the volume goes down. Making

xviii
the resistance lower will let more current flow so the volume goes up. The value of a variable
resistor is given as its highest resistance value. For example, a 500 ohm variable resistor can
have a resistance of anywhere between 0 ohms and 500 ohms. A variable resistor may also be
called a potentiometer (pot for short).

4.2 Condensors/Capacitors:

Capacitors, or "caps", vary in size and shape - from a small surface mount model up to a huge
electric motor cap, the size of paint can. It stores electrical energy in the form of electrostatic
charge. The size of a capacitor generally determines how much charge it can store. A small
surface mount or ceramic cap will only hold a minuscule charge. A cylindrical electrolytic cap
will store a much larger charge. Some of the large electrolytic caps can store enough charge to
kill a person. Another type, called Tantalum Capacitors, store a larger charge in a smaller
package.

Fig. 4.2 Capacitor

4.3 Diodes:

Diodes are basically a one-way valve for electrical current. They let it flow in one direction
(from positive to negative) and not in the other direction. This is used to perform rectification or
conversion of AC current to DC by clipping off the negative portion of a AC waveform. The
diode terminals are cathode and anode and the arrow inside the diode symbol points towards the

xix
cathode, indicating current flow in that direction when the diode is forward biased and
conducting current. Most diodes are similar in appearance to a resistor and will have a painted
line on one end showing the direction or flow (white side is negative). If the negative side is on
the negative end of the circuit, current will flow. If the negative is on the positive side of the
circuit, no current will flow.

Fig. 4.3 Diodes

4.3(a) LEDs (Light Emitting Diodes)

LEDs are simply diodes that emit light of one form or another. They are used as indicator
devices. Example: LED lit equals machine on. The general purpose silicon diode emits excess
energy in the form of heat when conducting current. If a different semiconductor material such as
gallium, arsenide phosphide is used, the excess energy can be released at a lower wavelength
visible to human eye. This is the composition of LED. They come in several sizes and colors.
Some even emit Infrared Light which cannot be seen by the human eye.

Fig 4.3(a) LED

4.4 Switch:

This is a mechanical part which when pressed makes the current to flow through it. If the switch
is released, the current stops flowing through it. This helps to control a circuit.

xx
Fig. 4.4 Switch

4.5 PCB:

PCB stands for printed circuit board which are used for wiring up of the components of a circuit.
PCBs are made of paper phenolic FR2 grade (low cost, for low frequency and low power circuit
assembly) and glass epoxy FR4 grade (for high frequency, high power circuits) copper clad
laminates (available in 1.6mm, 2.4mm and 3.6mm thickness). Single sided PCBs have copper
foil only on one side while double-sided PCBs have copper foil on both side of the laminate.
Thickness of copper foil is 35 micrometer minimum on cheaper PCBs and 70 micrometer on
slightly costlier PCBs. Tracks (conductive paths) are made by masking (covering) the track part
of copper with etch-resist enamel paint (you can even use nail polish) and later dipping the
laminate in ferric chloride solutions to dissolve all copper except under the masked part. Holes in
PCBs are drilled after etching is over. The tracks on two sides of a PCB are joined using printed
through hole (PTH) technique, which is equivalent to using slotted copper rivets for joining
tracks on both sides. On cheaper PCBs, PTH are not provided, only Pads (i.e. circular copper
land with centre hole) are provided and you have to join the tracks on both sides by soldering a
copper wire to the pads with a copper wire. In single sided PCB components are mounted on the
side which has no track (called component side). In a double-sided PCB the component side is
defined (marked before hand) or it will show component outline (also called silk screen) Green
masking is the process of applying a layer of green colour insulation varnish on all parts of tracks
except near the holes, to protect the tracks from exposure to atmosphere and thus prolong its life
and reliability.

4.6 Batteries:

Symbol of batteries shows positive (+) terminal by a longer line than the negative (-) terminal.
For low power circuit dry batteries are used.

xxi
Fig. 4.6 Battery

4.7 Relays:

A relay is usually an electromechanical device that is actuated by an electrical current. The


current flowing in one circuit causes the opening or closing of another circuit. Relays are like
remote control switches and are used in many applications because of their relative simplicity,
long life, and proven high reliability. They are used in a wide variety of applications throughout
industry, such as in telephone exchanges, digital computers and automation systems.

How do relays work?

All relays contain a sensing unit, the electric coil, which is powered by AC or DC current. When
the applied current or voltage exceeds a threshold value, the coil activates the armature, which
operates either to close the open contacts or to open the closed contacts. When a power is
supplied to the coil, it generates a magnetic force that actuates the switch mechanism. The
magnetic force is, in effect, relaying the action from one circuit to another. The first circuit is
called the control circuit; the second is called the load circuit. A relay is usually an
electromechanical device that is actuated by an electrical current.
The current flowing in one circuit causes the opening or closing of another circuit.

xxii
Fig 4.7 Relay

Types of Relays

There are two basic classifications of relays:

1. Electromechanical Relay

2. Solid State Relay.

Electromechanical relays have moving parts, whereas solid state relays have no moving parts.
Advantages of Electromechanical relays include lower cost, no heat sink is required, multiple
poles are available, and they can switch AC or DC with equal ease.

1.Electromechanical Relays

General Purpose Relay: The general-purpose relay is rated by the amount of current its switch
contacts can handle. Most versions of the general-purpose relay have one to eight poles and can
be single or double throw. These are found in computers, copy machines, and other consumer
electronic equipment and appliances.

xxiii
Power Relay: The power relay is capable of handling larger power loads – 10-50 amperes or
more.They are usually single-pole or double-pole units.

Fig. 4.8 Power Relay

Contactor: A special type of high power relay, it’s used mainly to control high voltages and
currents in industrial electrical applications. Because of these high power requirements,
contactors always have double-make contacts.

Time-Delay Relay: The contacts might not open or close until some time interval after the coil
has been energized. This is called delay-on-operate. Delay-on-release means that the contacts
will remain in their actuated position until some interval after the power has been removed from
the coil.

A third delay is called interval timing. Contacts revert to their alternate position at a specific
interval of time after the coil has been energized.

The timing of these actions may be a fixed parameter of the relay, or adjusted by a knob on the
relay itself, or remotely adjusted through an external circuit.

2. Solid State Relays

These active semiconductor devices use light instead of magnetism to actuate a switch. The light
comes from an LED, or light emitting diode. When control power is applied to the device’s
output, the light is turned on and shines across an open space.On the load side of this space, a
part of the device senses the presence of the light, and triggers a solid state switch that either
opens or closes the circuit under control. Often, solid state relays are used where the circuit under
control must be protected from the introduction of electrical noises.

xxiv
Advantages of Solid State Relays include low EMI/RFI, long life, no moving parts, no contact
bounce, and fast response. The drawback to using a solid state relay is that it can only
accomplish single pole switching.

5. LINE SENSOR COMMAND ACCESS FINGERPRINT


MODULE

5.1 Introduction

Line Sensor Command Access Fingerprint Module API References Programmer’s Guide
introduces you to Line Sensor Command Access Fingerprint Unit (LCAFU), product from
BeyondLSI. LCAFU, which contains Line Sensor Command Access Fingerprint Module
(BL215M_DL Series) inside, performs fingerprint authentication functions and management of
fingerprint data (template). LCAFU stores up to 10/30/50 template fingers depend on type of

xxv
LCAFU (BL215M001_DL / BL215M003_DL/ BL215M005_DL). In this manual, we provide
information about the usage of Line Sensor Command Access Fingerprint Module API for
writing an application program using LCAFU. The following tables summarize the commands
supported in Line Sensor Command Access Fingerprint Module API into the following
categories: open / close, registration / matching commands, template management commands,
setting commands and miscellaneous functions.

5.1.1 Open and Close Functions

5.1.2 Registration and Matching Functions

5.1.3 Template Management Functions

xxvi
5.1.4 Setting Functions

5.1.5 Miscellaneous Functions

xxvii
5.2 API Functions

Command Access Fingerprint Module API is a programming API that provides developers a
common interface for writing C/C++ applications which use LCAFU for fingerprint
authentication. Developers need not to be concerned with the intricacies of operating LCAFU at
lower level. Two kinds of Command Access Fingerprint Module APIs , which basically Win32
API, are provided for developer. The first one is provided if you want to make applications with
C language (BLModuleAPI.h, BLModuleAPI.lib and BLModuleAPI.dll). The other one is
provided if you want to make applications which use API class for C++ then Command Access
Fingerprint Module API Class (CBLModuleAPI.h, CBLModuleAPI.lib and CBLModuleAPI.dll)
can be used.

5.3 Detail of API Functions

In this section, we introduce detail descriptions of each command in Command Access


Fingerprint Module API. Correct syntax and parameters of each command are introduced. Each
function returns a value as given in the table at previous sections after the execution. Call open
module function to connect the LCAFU. Then LCAFU related instructions can be performed.
After performing the functions, call close module function to close connection with LCAFU.
Note: Throughout this manual BYTE is equal to unsigned char

Description on functions

xxviii
5.3.1. Open Module

The BLM_OpenModule function establishes the communication with LCAFU. Call this function
if application want to make transactions with LCAFU.

Syntax:
int BLM_OpenModule(const char *comPortIn, int* versionNumOut, int* userMaxOut)

Parameter Input:
comPortIn :communication port string (“COM1”, “COM2”, …) where LCAFU is connected

5.3.2 Close Module

The BLM_CloseModule function closes the communication with LCAFU. Use this function if
application wants to end transactions with LCAFU.

Syntax:
int BLM_CloseModule()

5.3.3 Power Off

The BLM_PowerOff function gives instruction to LCAFU for doing power OFF. Use this
function to power OFF the LCAFU. Use Power ON button on LCAFU to activate the LCAFU
again.

Syntax:
int BLM_PowerOff()

5.3.4 Verify

The BLM_Verify function gives instruction to LCAFU for verifying an input finger on sensor
with specified templates stored in LCAFU’s database. Use mask table to specify templates for
verification. If owner handle window is not equal to NULL then windows message
WM_WAIT_FINGER is sent to this window handle after received fingerprint input ready signal
from LCAFU.

Syntax:
int BLM_Verify(unsigned char * maskIn, int* resultCodeOut, int* templateNumOut)

Parameter Input:
maskIn : (note *: do not care)

xxix
• 1st byte : template # *, *, *, 8, 6, 4, 2, 0
if bit #x =1 , do verify with template # (x x 2)
• 2nd byte : template # *, *, *, 9, 7, 5, 3, 1
if bit #x =1, do verify with template(x x 2+1)

5.3.5 Identify
The BLM_Identify function gives instruction to LCAFU for identifying an input finger on sensor
among all templates stored in LCAFU’s database. If owner handle window is not equal to NULL
then windows message WM_WAIT_FINGER is sent to this window handle after received
fingerprint input ready signal from LCAFU.

Syntax:
int BLM_Identify(int* resultCodeOut, int* templateNumOut)

5.3.6 Register

The BLM_Register function gives instruction to LCAFU for registering an input finger on sensor
and save the template at specified location in LCAFU’s database. Use input template number (0-
max template number) to specify location of template on LCAFU. Template with good quality
image will be registered on LCAFU if the location for template is empty. LCAFU overwrites old
template if the input finger has been registered previously at other location. If owner handle
window is not equal to NULL then windows message WM_WAIT_FINGER is sent to this
window handle after received fingerprint input ready signal from LCAFU.

Syntax:
int BLM_Register(int templateNumIn, int* resultCodeOut, int* templateNumOut)

Parameter Input:
templateNumIn :template number to store registered fingerprint (0 to 9/29/49)

5.3.7 Get All Template Status

xxx
The BLM_GetallTemplateStatus function gives instruction to LCAFU for sending status of all
templates.

Syntax:
int BLM_GetAllTemplateStatus(int* statusCodeArrayOut)

Parameter Output:
statusCodeArrayOut :status code of template number from 0 to 9/29/49
(array of int with size 10/30/50)
0: empty
1: valid
2: on pending

5.3.8 Get Template Status

The BLM_GetTemplateStatus function gives instruction to LCAFU for sending status of the
template. Use input variable template number to specify which template status will be sent by
LCAFU.

Syntax:
int BLM_GetTemplateStatus(int templateNumIn, int* statusCodeOut)

Parameter Input:
templateNumIn :template number to get status 0 to 9/29/49

5.3.9 Clear Template

The BLM_ClearTemplate function gives instruction to LCAFU for deleting template. Use input
variable template number to specify which template will be cleared. Only valid/pending template
will be deleted by LCAFU.

Syntax:
int BLM_ClearTemplate(int templateNumIn, int* statusCodeOut)

Parameter Input:
templateNumIn :template number to clear (0 to 9/29/49)

5.3.10 Read Template

xxxi
The BLM_ReadTemplate function gives instruction to LCAFU for sending template data. Use
input variable template number to specify which template data will be sent by LCAFU. Only
valid/pending template will be sent by LCAFU.

5.3.11 Write Template


The BLM_WriteTemplate function gives instruction to LCAFU for writing template data. Use
input variable template number to specify in which location the template will be written. LCAFU
write the template on database only if this location is empty and no other template matches with
the template given as the parameter.

5.3.12 Set PIN


The BLM_SetPIN function gives instruction to LCAFU for setting PIN stored in LCAFU. Use
this function to store 8-digit PIN at LCAFU.

Syntax:
int BLM_SetPIN(unsigned char *PINIn)

6. IC ULN- 2003

xxxii
6.1 Features

• Seven darlingtons per package


• Output current 500ma per driver(600ma peak)
• Output voltage 50v
• Integrated suppression diodes forinductive loads
• Outputs can be paralleled for higher current
• TTL/CMOS/PMOS/DTL compatible inputs inputs pinned opposite outputs to
• Simplify layout

6.2 Description

The ULN2001A, ULN2002A, ULN2003 andULN2004A are high voltage, high current
darlington
arrays each containing seven open collector darlington pairs with common emitters. Each
channel rated at 500mA and can withstand peak currents of600mA. Suppression diodes are
included for inductive load driving and the inputs are pinned opposite the outputs to simplify
board layout. The four versions interface to all common logic families

ULN2001A General Purpose, DTL, TTL, PMOS,CMOS


ULN2002A 14-25V PMOS
ULN2003A 5V TTL, CMOS
ULN2004A 6–15V CMOS, PMOS

These versatile devices are useful for driving a wide range of loads including solenoids, relays
DC motors, LED displays filament lamps, thermal print heads and high power buffers. The
ULN2001A/2002A/2003A and 2004A are supplied in 16 pin plastic DIP packages with a copper
leadframe to reduce thermal resistance. They are available also in small outline package (SO-16)
as ULN2001D/2002D/2003D/2004D.

6.3 Pin Connection

xxxiii
xxxiv
7. IC MAX-232

7.1 Features

• Meets or Exceeds TIA/EIA-232-F and ITURecommendation V.28


• Operates From a Single 5-V Power Supply With 1.0-_F Charge-Pump Capacitors
• Operates Up To 120 kbit/s
• Two Drivers and Two Receivers
• ±30-V Input Levels
• Low Supply Current - 8 mA Typical
• ESD Protection Exceeds JESD 22
- 2000-V Human-Body Model (A114-A)
• Upgrade With Improved ESD (15-kV HBM) and 0.1-_F Charge-Pump Capacitors is
Available With the MAX202
• Applications
− TIA/EIA-232-F, Battery-Powered Systems, Terminals, Modems, and Computers

7.2 Description

The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply
TIA/EIA-232-Fvoltage levels from a single 5-V supply. Each receiver converts TIA/EIA-232-
Finputs to 5-V TTL/CMOS levels. These receivers have a typical threshold of 1.3 V, a typical
hysteresis of 0.5 V, and can accept ±30-V inputs. Each driver converts TTL/CMOS input levels
into TIA/EIA-232-F levels.

7.3 Pin Diagram

xxxv
7.4 Function Tables

7.5 Logic Diagram

xxxvi
7.6 Application Information

xxxvii
8. INTERFACING THE SERIAL / RS232 PORT
xxxviii
8.1 Introduction

The Serial Port is harder to interface than the Parallel Port. In most cases, any device you
connect
to the serial port will need the serial transmission converted back to parallel so that it can be
used. This can be done using a UART. On the software side of things, there are many more
registers that you have to attend to than on a Standard Parallel Port. (SPP) So what are the
advantages of using serial data transfer rather than parallel?

1. Serial Cables can be longer than Parallel cables. The serial port transmits a '1' as -3 to -25 volts
and a '0' as +3 to +25 volts where as a parallel port transmits a '0' as 0v and a '1' as 5v. Therefore
the serial port can have a maximum swing of 50V compared to the parallel port which has a
maximum swing of 5 Volts. Therefore cable loss is not going to be as much of a problem for
serial cables than they are for parallel.

2. You don't need as many wires than parallel transmission. If your device needs to be mounted a
far distance away from the computer then 3 core cable (Null Modem Configuration) is going to
be a lot cheaper that running 19 or 25 core cable. However you must take into account the cost of
the interfacing at each end.

3. Infra Red devices have proven quite popular recently. You may of seen many electronic
diaries and palmtop computers which have infra red capabilities build in. However could you
imagine transmitting 8 bits of data at the one time across the room and being able to (from the
devices point of view) decipher which bits are which? Therefore serial transmission is used
where one bit is sent at a time. IrDA-1 (The first infra red specifications) was capable of 115.2k
baud and was interfaced into a UART.

4. Microcontroller's have also proven to be quite popular recently. Many of these have in built
SCI (Serial Communications Interfaces) which can be used to talk to the outside world. Serial
Communication reduces the pin count of these MPU's. Only two pins are commonly used,
Transmit Data (TXD) and Receive Data (RXD) compared with at least 8 pins if you use a 8 bit
Parallel method (You may also require a Strobe).

8.2 Hardware Properties

xxxix
Devices which use serial cables for their communication are split into two categories. These are
DCE (Data Communications Equipment) and DTE (Data Terminal Equipment.) Data
Communications Equipment are devices such as your modem, TA adapter, plotter etc while Data
Terminal Equipment is your Computer or Terminal. The electrical specifications of the serial
port is contained in the EIA (Electronics Industry Association) RS232C standard. It states many
parameters such as –

1. A "Space" (logic 0) will be between +3 and +25 Volts.


2. A "Mark" (Logic 1) will be between -3 and -25 Volts.
3. The region between +3 and -3 volts is undefined.
4. An open circuit voltage should never exceed 25 volts. (In Reference to GND)
5. A short circuit current should not exceed 500mA. The driver should be able to handle this
without damage.

Above is no where near a complete list of the EIA standard. Line Capacitance, Maximum Baud
Rates etc are also included. For more information please consult the EIA RS232-E standard. It is
interesting to note however, that the RS232C standard specifies a maximum baud rate of 20,000
BPS!,which is rather slow by today's standards. Revised standards, EIA-232D & EIA-232E were
released, in 1987 & 1991 respectively. Serial Ports come in two "sizes", There are the D-Type 25
pin connector and the D-Type 9 pin connector both of which are male on the back of the PC, thus
you will require a female connector on your device. Below is a table of pin connections for the 9
pin and 25 pin D-Type connectors.

8.3 Serial Pinouts (D25 and D9 Connectors)

xl
8.4 Pin Functions

xli
9. PRINTED CIRCUIT BOARDS

xlii
The use of miniaturization and sub miniaturization in electronic equipment design has been
responsible for the introduction of a new technique in inters component wiring and assembly that
is popularly known as printed circuit.
The printed circuit boards (PCBs) consist of an insulating substrate material with metallic
circuitry photo chemically formed upon that substrate. Thus PCB provides sufficient mechanical
support and necessary electrical connections for an electronic circuit.

Advantages of printed circuit boards: -

1) Circuit characteristics can be maintained without introducing variations inter


circuit capacitance.
2) Wave soldering or vapour phase reflow soldering can mechanize component
wiring and assembly.
3) Mass production can be achieved at lower cost.
4) The size of component assembly can be reduced with corresponding decrease
in weight.
5) Inspection time is reduced as probability of error is eliminated.

Types of PCB’s: -

There are four major types of PCB’s: -


1) Single sided PCB: - In this, copper tracks are on one side of the board, and are the
simplest form of PCB. These are simplest to manufacture thus have low production cost.

2) Double sided PCB:- In this, copper tracks are provided on both sides of the substrate. To
achieve the connections between the boards, hole plating is done, which increase the
manufacturing complexity

3) Multilayered PCB: - In this, two or more pieces of dielectric substrate material with
circuitry formed upon them are stacked up and bonded together. Electrically connections
are established from one side to the other and to the layer circuitry by drilled holes, which
are subsequently plated through copper.

4) Flexible PCB: - Flexible circuit is basically a highly flexible variant of the conventional
rigid printed circuit board theme.

PCB Manufacturing Process: -

There are a number of different processes, which are used to manufacture a PCB, which is ready
for component assembly, from a copper clad base material. These processes are as follows

xliii
 Preprocessing: - This consists of initial preparation of a copper clad laminate ready for
subsequent processing. Next is to drill tooling holes. Passing a board through rollers
performs cleaning operation.
 Photolithography: - This process for PCBs involves the exposure of a photo resist
material to light through a mask. This is used for defining copper track and land patterns.
 Etching: - The etching process is performed by exposing the surface of the board to an
etchant solution which dissolves away the exposed copper areas .The different solutions
used are: FeCl, CuCl, etc.
 Drilling: - Drilling is used to create the component lead holes and through holes in a PCB
.The drilling can be done before or after the track areas have been defined.
 Solder Masking: - It is the process of applying organic coatings selectively to those areas
where no solder wettings is needed .The solder mask is applied by screen-printing.
 Metal Plating: - The plating is done to ensure protection of the copper tracks and
establish connection between different layers of multiplayer boards. PCBs are stacked
before being taken for final assembly of components .The PCB should retain its solder
ability.
 Bare-Board Testing: - Each board needs to ensure that the required connections exist, that
there are no short circuits and holes are properly placed .The testing usually consists of
visual inspection and continuity testing

10. POWER SUPPLY

Power supply can be defined as electronic equipment, which is a stable source of D.C. power for electronic
circuits.

xliv
Power supply can be classified into two major categories: -

 Unregulated power supply


 Regulated power supply

10.1 Unregulated Power Supply: -


These power supplies, supply power to the load but do not take into variation of power supply output voltage
or current with respect to the change in A.C. mains voltage, load current or temperature variations. In other
words, we can say that the output voltage or current of an unregulated power supply changes with the change
in A.C.mains voltage, load current and temperature.

A block diagram as shown below can represent unregulated power supply:

RECTIFIER FILTER LOAD

Fig. 10.1 BLOCK DIAGRAM OF UNREGULATED POWER SUPPLY

10.2 Regulated Power Supply: -


These power supplies are regulated over the change in source voltage or load current i.e. its output remain
stable.

Regulated power supplies are of two types: -

xlv
 CURRENT REGULATED POWER SUPPLIES
These are constant current supplies in spite of change in load or input voltage.

 VOLTAGE REGULATED POWER SUPPLIES


These supplies supply constant output voltage with respect to the variation in load or source
input voltage.

Circuit of regulated power supply with half wave rectifier


IN OUT

COM
T1
10TO1
C1 C2
D1 D2 D3 D4 0.1uF
1000uF
xlvi
Here diode D1, D2, D3 and D4 forms half wave rectifier. Capacitor C1 is filtering capacitor. IC-
7809 is used for voltage regulation. Capacitor C2 is used for bypassing, if any ripples are present
then it eliminates those ripples.

As IC-7809 is used so it gives 9v dc regulated voltage ideally. If we take 16 volts transformer


then we will get 8.97v at output. Thus voltage is regulated.

11. PROJECT DESCRIPTION

The Fingerprint Based Voting Machine consist of two units: ballot unit (BU) and control unit
(CU) and a fingerprint module for the verification of the user.
Firstly the database of the voters is being stored in the fingerprint sensor for creating a database
which authenticates the voter at the time of voting.

xlvii
11.1 Ballot Unit:

11.1(a) BLOCK DIAGRAM:

Figure 11.1 Block diagram of ballot unit

11.1(b) GENERAL WORKING:

1. When the power of Ballot unit is turned on, the ballot unit awaits a “MATCH FOUND”
from control unit.
2. After getting “MATCH FOUND”, ballot becomes ready to accept a new vote from its
candidate panel.
3. Once the voter presses the button corresponding to the candidate of her/his choice, a four-
bit code is generated and sent to the control unit.

xlviii
4. The ballot unit waits for the “VOTE SIGNAL” to become low from control unit, which
indicate that control unit has counted that for respective candidate.
5. After “VOTE SIGNAL” goes low, the ballot unit shows the number of votes of each
candidate on the LCD screen.At this time, the buzzer also generates a beep sound. This
indicates to the voter that her/his vote has been processed.
6. The machine returns to the step 1 and starts all over again for next voting.

11.2 Control Unit:

The control unit comprises of the fingerprint module where the fingerprint is being sensed and if
a match is found then a signal is being generated on the LCD screen for the casting of vote

Working steps:

1. The power is turned on and the fingerprint module is turned on.


2. Then the fingerprint of the voter is put on the sensor for matching with the database
3. If the fingerprint matches with the database then a signal is given on the LCD to
“CASTE A VOTE”
4. If the fingerprint does not match then “ NO MATCH FOUND” signal is being displayed.

12. PROJECT METHODOLOGY

12.1 Components:

xlix
Component Name Quantity

1. Microcontroller Section
Microcontroller IC (PIC16F7X) 1
Crystal Oscillator (3.57 MHz) 1
Ceramic Capacitor (0.1uF) 14
Ceramic Capacitor (22pF) 2
Electrolytic Capacitor (2200uF) 2
Electrolytic Capacitor (1000uF) 2

2. Candidate Panel
Push-to-On Switches 3
Resistors (10Kohm) 1

3. Machine Ready LED


LED 1
Resistor (1Kohm) 1

4. LCD PANEL
LCD (16X2 characters) 1
Resistors (10Kohm) 1

5. Power supply
LED 1
Resistor (1Kohm) 1
Diodes-1N4007 4

6. IC’s
ULN -2003 1
MAX-232 1

7. Relay 1

8. Buzzer 1

Softwares used:

l
1. Hi-Tech C Compiler
2. HyperTerminal

Equipments used:

1. Soldering iron, solder, flux.


2. Personal computer.
3. DB9 connector.

12.2 Procedure for building the Fingerprint Based Voting Machine

Step 1: Block diagram and layout of the proposed system is designed and finalized.
Step 2: All the components and software platform to be used are selected which are also
mentioned above.
Step 3: All the hardware components are soldered on their respective printed circuit boards with
the help of soldering iron, solder and flux according to the hardware schematic
Step 4: The logic flow of the whole system is decided and accordingly flow-charts are being
created
Step 5: According to the flow-charts drawn, code/program of the proposed system is developed
using C language with the help of software platform (Keil u vision3).
Step 6: The hex code of the program being created by the software platform is burnt into the
flash code memory of our microcontroller IC.
Step 7: Testing is done at various levels to finalize the appropriate program for the most proper
working of the system

12.3 Circuit Diagram

li
12.4 Circuit Description

lii
The above circuit shows that firstly coming to the power supply section , the 230V A.C. coming
is being converted to 12 V supply using a step down transformer. Then the 12 V A.C. is
converted to unregulated 12 v D.C. by using a bridge rectifier and filter capacitors. The
unregulated D.C. voltage is being converted into regulated supply by using a 7812 voltage
regulator.12 v supply is being required by the IC which is used for interfacing microcontroller
with the relay.

A 5 V A.C. is being obtained by the 7805 voltage regulator required for the working of the
microcontroller which turns on the power LED.

IC PIC16F73 is being used which have reset at pin1 which is an active low signal ie
MCLR.Clock frequency is being provided at pin 9 and pin 10 which has an inbuilt crystal
oscillator.

An LCD is being interfaced at the port B of the microcontroller . Here we are using a 4- bit LCD
and thus 4 data pins are being connected and two control pins with the port B.

For the connection of the fingerprint module and thus the serial communication a DB-9
connector needs to be inter faced with the PIC and for that we require a MAX232 IC which is
used for conversion of logics as the PIC is based on TTL logic. So pin no. 17 and 18 are used for
transmission and for receiving of data.

For providing indication signals a buzzer is being connected with the relay and foe the
interfacing of the relay with the PIC we require IC ULN2003 which has 8 darlington pairs which
reduces the current thereby maintaining the gain which is connected at the port C. At port A
three switches are connected which are used for casting a vote.

12.5 Pcb Layout

liii
12.6 Coding

liv
void main()
{

unsigned int i,j,k,l;

unsigned short count1,count2,count3;

char txt[5];

PORTC.bit3=0;

count1=0;
count2=0;
count3=0;

Lcd_Initialize(&PORTB);
Lcd_Command(Lcd_CLEAR);
Lcd_Command(Lcd_CURSOR_OFF);
Lcd_Output(1, 1, "FINGRPRINTVOTING");
Lcd_Output(2, 1, "Init............");

delay_ms(2000);

Usart_Initialize(9600);

while(1)
{

Lcd_Command(Lcd_CLEAR);
Lcd_Output(1, 1, "Swipe Finger");

shorttostr(count1,txt);
Lcd_Output(2, 1,txt);

shorttostr(count2,txt);
Lcd_Output(2, 6,txt);

lv
shorttostr(count3,txt);
Lcd_Output(2, 11,txt);

if(Usart_Data_Ready())
{
i=Usart_read();

while(!Usart_Data_Ready())
{
}
j=Usart_Read();

while(!Usart_Data_Ready())
{
}
k=Usart_Read();

while(!Usart_Data_Ready())
{
}
l=Usart_Read();

if(i>7)
{

lvi
Lcd_Command(Lcd_CLEAR);
Lcd_Output(1,1,"NoMatch");

PORTC.bit3=1;
delay_ms(100);
PORTC.bit3=0;

delay_ms(500);

PORTC.bit3=1;
delay_ms(100);
PORTC.bit3=0;

delay_ms(2000);
}
else
{
Lcd_Command(Lcd_CLEAR);
Lcd_Output(1,1,"Welcome!");
Lcd_Output(2,1,"Cast Vote....");

PORTC.bit3=1;
delay_ms(100);
PORTC.bit3=0;

while(PORTA.bit0==0 && PORTA.bit1==0 &&


PORTA.bit2==0)
{
}

if(PORTA.bit0==1)
{
while(PORTA.bit0==1)
{
}

count1=count1+1;
}

if(PORTA.bit1==1)
{
while(PORTA.bit1==1)
{

lvii
}

count2=count2+1;
}

if(PORTA.bit2==1)
{
while(PORTA.bit2==1)
{
}

count3=count3+1;
}

delay_ms(100);

}
}

12.7 Software description

lviii
Here firstly the counter and the PORTC bit 3 is initialized as 0.the LCD is being initialized at
port b and displays FINGERPRINT VOTING.

An infinite loop is made and displays the message swipe finger. The fingerprint sensor takes the
data in the form of 4 bits which are entered into the integer.when the portc bit is high then buzzer
blows . if a match is found then buzzer blows one time and if the match is not found then it
blows two times.

At port A switches are connected so. So the counter of the candidate increases according to the
bit corresponding to that switch becomes high.

13. APPLICATIONS

lix
 Fast track voting which could be used in small scale elections, like resident welfare
association, “panchayat” level election and other society level elections.

 It could also be used to conduct opinion polls during annual share holders meeting.

 It could also be used to conduct general assembly elections where number of candidates
are less than or equal to eight in the current situation.

14. FUTURE SCOPE

lx
 Number of candidates could be increased by using other microcontroller or an 8255 IC.

 It could be interfaced with printer to get the hard copy of the result almost instantly from
the machine itself.

 It could also be interfaced with the personal computer and result could be stored in the
central server and its backup could be taken on the other backend servers.

 Again, once the result is on the server it could be relayed on the network to various
offices of the election conducting authority. Thus our project could make the result
available any corner of the world in a matter of seconds

CONCLUSION

lxi
Engineering is a way of education in which we see a clear balance between theoretical
andpractical aspects of anything. The theoretical work done in the college during B.E. is not
sufficient, therefore it is essential to go under Practical Project work.

Fingerprint Based Voting Machine is designed to make the procedure of voting easier and more
convenient as it is a modified system.it has proved to be very advantageous in providing security
EVM is capable of saving considerable printing stationery and transport of large volumes of
electoral material. It is easy to transport, store, and maintain. It completely rules out the chance
of invalid votes.

In total, the complete system (including all the hardware components and software routines) is
working as per the initial specifications and requirements of our project. So certain aspects of the
system can be modified as operational experience is gained with it. As the users work with the
system, they develop various new ideas for the development and enhancement of the project.

REFERENCES

lxii
• Tutorial on microcontroller:
www.PIC16F7X.net/microcontroller_tutorials

• Tutorial on LCD:
www.picprojects.net/lcd-interfacing

• http://www.efy.com/minorprojects/microcontroller/pic16F7X

• PICmicro Family Tree", PIC16F Seminar Presentation


http://www.microchip.com.tw/PDF/2004_spring/PIC16F%20seminar%presentation.pdf

lxiii