Saturday, December 4, 2010

Programmable Home Security Alarm System

In this project we design low cost high performance programmable home security system using few LDR’s as an input sensors. When above sensor(s) get triggered system may dial the user specified phone number (using build-in DTMF generator) and activate the high power audio alarm and lights. All the parameters of DTMF generator, audio alarm and light interface are programmed through the RS232 serial interface.

Current firmware of this system presents interactive control system through the RS232 interface. This control system consist with the menu driven configuration options, self tests, system report generators, etc.

This system also contain 5W (with 4Ω speaker) audio alarm with three selectable tone configurations, which include Police siren, Fire engine siren and Ambulance siren.

This system uses a Microchip’s PIC16F877A as a main controller, LM339 as sensor interface, UM3561 as a tone generator and μPC2002 as a speaker driver (audio amplifier). LM7805, LM7812 and LM317 voltage regulators are used to obtain +5V, +12V and +3V respectively.

All the project source codes, schematic diagrams and PCB patterns are available in with terms and conditions of GNU GPL and Creative Commons - Attribution-ShareAlike 3.0 Unported license.

Sunday, September 26, 2010

Low Voltage Simple Motor Speed Controller

While designing some mechanical projects we often have need for easy to build motor speed controllers. Thanks to the SGS-THOMSON Microelectronic’s TDA7274, now we have easy to build, low voltage D.C motor speed controller. TDA7274 provides wide operating voltage range from 1.8V to 6V and in this project we use it to drive small CD-ROM ejection motors.

In this project we design entire speed controller with 39.3mm × 28.9mm PCB. While at the prototyping we test this system with 5V power source and successfully control several CD-ROM ejection motors, cassette motors and toy D.C motors.

You can obtain all the circuit diagrams, PCB patterns and other information of low voltage motor speed controller from

Monday, September 20, 2010

2 Channel Electronic Motor Speed Controller

In this project we design 2 channel D.C motor controller with pulse width modulation (PWM) based speed and direction control. This module is mainly design to drive 14.4V to 18V electric D.C motors.

This motor controller is design to work with 18V - 1.5A D.C power source and it can be directly interface with general microprocessor / microcontroller system (without using any voltage level shifters). While at the prototyping stages we successfully couple this module with several NIDEC D.C fans and blowers which include D1751M24B7AP, E1331K12B7AZ-00, DME37KA, CF24DM506, etc.

Control interface for this module is easy to use and at the designing stages we interface it with PIC16F887 and Atmega64 MCUs. Control interface of this module is consisting with 3 inputs (please refer the J3 in the circuit diagram) and using these inputs user may be able to select the motor, apply the brakes and also change the rotational directions of the motor(s).

When constructing the circuit it is recommended to use 680R - 1W wire wound resistor for R10. Heatsink attachments for both Q1 and IC1 are depending on the output load.

All the project schematics and PCB patterns are available to download at

Wednesday, August 18, 2010

Processing dictionary files using Lazarus

In this article we demonstrate how to processing dictionary files using Lazarus – FPC IDE. To use the dictionary first we need to extract AFF file and DIC files from the OXT ( extension) file. This can be easily done using 7Zip or any other generally available file archiving utility. (Only thing we need to do is change OXT file extension to ZIP and extract the contents)

To process this dictionary (DIC) file we need to use affix table defined in the AFF file. In this sample code we implement the complete AFF and DIC file processor for English (United States) dictionary of the

Our processing of this affix file in this sample application is based on the following rules,

AFF file generally consist with some conditional modules as follows,

SFX T 0 st e
SFX T y iest [^aeiou]y
SFX T 0 est [aeiou]y
SFX T 0 est [^ey]

In the first line "SFX" means suffix. In En(US) dictionary this may be either SFX or PFX.

T is the name of the module (and this helps us to establish the link between DIC and AFF file)

Digit 4 indicates the number of rules for the given condition.

Once read the conditional header you need to cross product the rule set with the given word.

Rule set of the given condition is decode as follows,

  • SFX : as previously described SFX is a suffix.
  • 0 : This indicates strip off character and in here 0 means NULL.
  • st : Suffix for the give word
  • e : This represents the logical part of the rule. In here "e" means target word might need to be end with the character "e".

Example for this rule is : Late > Latest

Likewise you need to apply all these rules to the root word and make all other possibilities for the word.

For example root word "happy" may have 4 forms, such as,
Happier, Happiest, Happiness and Unhappy.

This sample application is developed using Lazarus with minimum amount of system dependencies to demonstrate the above decoding process. With some minor adjustments this can be easily deployed to the Linux and Mac OS X also.

All the source codes and binaries of this sample application are available to download in here. This sample application is deployed under the terms and conditions of GNU GPL Version 3.0.

You can obtain more details about AFF and DIC files from the Lingucomponent Project.

Friday, July 2, 2010

Fixing the "Self Checking" problem of Panasonic DMR-E55 DVD Video Recorder

I have Panasonic DMR-E55 DVD Video Recorder and suddenly it start to get reboot when the system performs “Self Checking”. Because of this reboot problem I may not be able to record DVDs and need to put some extra effort to eject the disks. Most of the times this reboot occurs in cyclic pattern and to break this cycle I need to be eject the DVD disk manually from the system.

While examine the system my primary attention moves on to the “Digital RAM card” of the system (Because it actively involves in to the DVD burning process). But after the 2 weeks of continues inspection I found that the problem is in the SMPS primary chip - STR G6535.

After replacing the STR G6535, system starts to work in an order.

Replacement of this chip is not a complex process but while doing that it is necessary to put some attention about the SMD components located nearby.

Sunday, May 16, 2010

8 Channel USB Logic Analyzer

Logic analyzers are allowing us to monitor and /or diagnose a large number of digital signals simultaneously and these devices are essential when developing complex digital systems. In this project we design simple 8 channel USB logic analyzer with Windows version of driver software.

Design of this logic analyzer is based around Future Technology Devices FT245 USB FIFO chip. With the given oscillator this system takes 14MSPS (Mega samples per second) and this system is design to work as (USB) self powered device (without any external power source).

Driver part of this project is based on FTD2XX driver and GUI is developed using Delphi. Current version of driver software is design to work with Windows NT operating systems and it is highly recommended to use it with 1360 × 768 or with higher video resolutions (with aspect ratio of 16:9).

This design also contains real-time logic level indicators to monitor "low frequency" signal levels and construction of that portion is not much essential.

When constructing the circuit take special care about IC1 – 4069 Hex Inverter (in this design it mainly worked as CMOS Pierce - Gate oscillator), because at the time of testing we found that some of the chips may not produce proper output and finally it get affected to the entire system (including driver software). In our prototype we use Fairchild’s CD4069UBCN as IC1.

All the project source codes, binaries, schematic diagrams and PCB patterns are available in with terms and conditions of GNU GPL.

Saturday, April 24, 2010

8 feet - home made C band satellite dish antenna

In this project we design 8 feet C band satellite dish antenna and some of its specifications are listed in below,

  • Diameter of the reflector : 248.0cm
  • F/D ratio : 0.391
  • Focal length : 914.6cm
  • Calculated gain (Aprox.) : 40.23 dB

  • Materials used for reflector : Aluminum sheets and Aluminum nets
  • Number of panels (in reflector) : 4 units
  • Materials used for Mounting mechanism : Steel
  • Weight (Aprox.) : 40 - 45 kg (without antenna positioning system)

  • LNBF : Generic dual twin C band LNBF
  • Antenna positioning system : Using D.C motorized actuator

Monday, April 12, 2010

Repairing Sony PlayStation 2 Game Console

One of my friend had Sony PlayStation 2 (SCPH-39000 series) game console and in few months back it get fail because of the internal short-circuit due to spill of some liquid over the game console. Finally he sends it to me to repair it, and I found some problems in both PSU (Power Supply Unit) and motherboard of the console.

In first round of the repair I replace IC807 (78M05), PS013 fuse and all the related parts near that area (because I notice some burn marks in that location) except IC806 (NJM12904). Other than that I replace R278 (1.5k), R279 (1K + 100R), R491 to R495 (with wire links), R470 (100K), Q415 (2SC2873), Q406 (IRF7901, I got this transistor from another old PS2 game console main board, available in junk store), F001 (with some 42 S.W.G copper wire) and D404 (with 3 × 1N4148 diodes).

When I replace and re-solder some of the parts as described above, I got the video signal (PS2 startup splash and main menu) from the console. But system may not produce any audio signals (in both left and right channels of audio output). Finally I check the audio part of the system and found that the problem is in final stage of audio DAC (IC517 - Cirrus Logic CS4335 - 24-Bit, 96 kHz Stereo digital to analog convert chip). Once I replace that chip (thanks to old PS2 game console main board which I was purchased from the junk store) this system may get start with both audio and video.

Once the system is up and running I attach the battery and other assemblies to the board and finalize the repairing process.

If someone like to repair Sony PlayStation 2, following points are important to him/her (according to my experiances),
  • Before make any repairs, disconnect the mains supply and battery supply from the main board.
  • Make sure to place insulations sheet between the PSU and Shield B (Shield located at the bottom side of the main PCB).
  • Most of the components of main board are SMDs. So it is necessary to have good SMD Rework Station to carryout any component level repairs.
  • There are several flexible ribbon cables in this system. Handle them with proper care.
  • Do not adjust any potentiometers, trimmers and coils located on the main board, PSU and Optical Pickup.
  • There are several heat transferring sheets are located on the bottom side of the main PCB. (e.g : heat transferring sheets attached to the IC802 - BA5815 and IC803 - BA6664). Make sure to attach them properly when setting up the Shield B.

Sunday, March 28, 2010

Electronic Number Panel

In this design we present an electronic number display panel using low cost and low power electronic components. This proposed design is mainly based on CD4510 - CMOS up/down counter and SN74LS47 - BCD-to-Seven-Segment Decoder/Driver. With the existing configuration, this counter may be able to count (up/down) from 00 to 99 and it can easily extend to more digits by setting up additional CD4510 and SN74LS47 chip pairs.

Current system is also equipped with the beeper (which based around NE555 timer IC) to indicate the increment or decrement of the count.

This system is design to work with DC 9V – 12V (500mA) power supply and at the time of testing we use 10V (2.5A) DC power source to check this system. This proposed system contain 7805 regulator and it is necessary to apply suitable heat-sink to this regulator.

In this project, we design PCB using double sided PCB and make dimensions and shapes according to the existing enclosure of old electronic number panel system. It is not necessary to follow it, as it is.

The complete schematic diagram and PCB pattern is available to download at

Tuesday, March 23, 2010

Virtual MCU Base Programmable Timer

In this article we implement virtual (computer simulation base) microcontroller driven programmable timer using Proteus VSM. This proposed system is design using Microchip PIC16F877A – 8bit microcontroller and its system software is developed using MikroC PRO 3.2 for PIC. Most of the components in this proposed design are based on Proteus VSM - simulation models and we assign standard component names to them to assist in actual prototyping.

In this simulation we use PIC16F877A as main system controller and 4 row monochrome LCD display unit with HD44780 compliant controller (in 4bit mode). This proposed simulation model is design to work with +5V supply voltage, but it can also operate using battery power (3 × 1.5V).

When implementing this system for the real-life use, it is highly recommended to integrate battery backup facility to this system. It helps to drive this system continuously with minimum amount of disturbances.

According to the supplied source code, end user may be able to program start time and end time of the timer or specify only the start time. Once the timer get started user may be able to terminate the timer by pressing “OK/Timer Disable” key.

Please note that this system is provided only for demonstration purposes and end user need to calibrate MCU crystal and other associated components to obtain exact 1Hz clock trigger. The Lamp (L1) shown in the simulation model is for the demonstration purposes only. Ignore this component at the prototyping stages. All the source codes and Proteus ISIS simulation files of this project is available to download at

Thursday, March 4, 2010

8 pin 2 digit seven segment display driver

This is a simple microcontroller base implementation to drive 2 digit 8 pin seven segment display (SSD) unit. For this implementation we use Microchip’s PIC16F84A – 8bit microcontroller unit and Proton+ PICBASIC compiler. Compared with other SSD units this SSD unit needs special algorithm to drive it. Some of the logical procedures to drive this SSD unit are illustrated in below,

This illustration is valid only for single digit of target SSD unit and it can easily expand to 2 digits by activating pin no 5 and 6 with appropriate inputs.

In attached design we use PIC16F84A MCU with 4 × 2SC945 general purpose NPN transistors to drive this TOD-4201LR SSD unit. This proposed system is design to work with +5V DC power supply and may not need any additional data source.

Supplied software for this project is for demonstration purposes only and it perform counting from 0 to 99 and then reset back to 0. To generate the output user need to assign required number to the value variable and make jump to the show_num section of code. According to the given lookup table this software may be able to generate digits from 0 to 9 and “E”, “-“ and “.” symbols.

All the source codes and schematic diagram of this project is available to download at

Thursday, February 18, 2010

Ultra Simple Stereo Computer Speaker Driver

In this project we design miniature stereo computer speaker driver using TDA2822 power amplifier IC. Main goal of this project is to design small stereo power amplifier which may be able to fix inside the small speaker boxes. Supplied PCB of this project has dimensions of 4.5cm × 4.5cm, which include both power amplifier and PSU.

Some of important technical specifications of this project are listed in below,

  • Recommended Supplied Voltage : 5V – 9V AC
  • Output Power : (with 8Ω load and 7.5V AC Power Source) : 2 × 1W
  • Voltage Gain (with feedback) at 1kHz input signal : 38.5dB
  • Total Harmonic Distortion : (with 8Ω load and P0 = 150mW) 0.2%
  • Channel Separation : 50dB

When wiring the project it is recommended to place screen-wires to the input terminals of amplifier and keep them separate (away) from AC power lines and transformer unit(s).

It is not necessary to install heatsinks to TDA2822M IC (with given input and output parameters).

Complete schematic, PCB design and documentation of this project are available to download at

Thursday, January 28, 2010

4 Channel Remote Control Video Switch

In this project we developed 4 inputs (Audio and Video), remote control operated video switch for general home use. This design is mainly based on Microchip PIC16F630 8bit MCU, 4052 differential 4 channel analog multiplexer, TSOP1838 infrared receiver module and 7447 BCD to seven segment decoder. With a given schematic and PCB design users can switch 4 different audio and video sources using compatible remote controller. Current version of this project is work only with most of Sony remote controllers (which based on Sony SIRC protocol) and it can be easily extend to Philips RC-5 protocol with some minor modifications of PIC16F630 software system.

In this design we incorporate small single transistor video amplifier to its output stages to amplify the (chroma) part of video signal. Audio output stage of this system may not need any AF amplifier. (In the designing stages we notice some clipping of input signal in 4052 analog multiplexer, but it is not much noticeable in practical environment/use.)

At the time of testing we use Sony RMT-V408 remote controller with this project and it produces successful results. Basically this project support only numerical keys between 1 to 4 and program Up/Down (+/-) buttons of remote controller.

This system is design to work with 5V supply voltage and to get the optimal results it is highly recommended to use well-regulated 5V – 750mA power supply with this unit. To reduce the interferences place screen-wires to both audio/video input/output lines and place them separately from AC main-lines and PSU transformer(s).

Note : With the given source code system may respond to any, compatible Sony SIRC protocol base remote controller, but this may get some problems in practical environment. To avoid this problem please validate the value of remote_sys variable with your target remote controller. In here I’m not implement it because I do not have any Sony SIRC protocol compatible products.

The complete schematic, source code and PCB designs of this project is available to download at

Tuesday, January 5, 2010

Homemade ADSL Splitter

Nowadays DSL splitter is a common unit in telecommunication and it is used by most of the ADSL users to obtain the maximum performance of the connectivity. Technically DSL splitter is an analog LPF (low pass filter) which is used to prevent interferences between analog telephone device(s) and DSL support units.

In this project we describe how to build miniature ADSL splitter at home with grater simplicity and with minimum amount of cost. To build this unit user need to use few generic components which include pairs of 330µH inductors and 1R resistors, 0.0033MFD capacitor and three units of RJ11 PCB connectors.

We successfully test this splitter with our local ADSL connection and it gives equal performance of commercial DSL splitter.

The complete schematic and PCB diagram (Eagle) of this ADSL splitter is available to download at