Friday, December 18, 2009

Servicing Heathkit IO-12 Oscilloscope

Few months back I got an old Heathkit IO-12 Oscilloscope from my friend and at the time of delivery this unit is not under the working conditions. Heathkit IO-12 is Value based laboratory oscilloscope with following technical features,

Frequency Response : 3Hz to 4MHz ≅ 5MHz
Sensitivity : 0.025V/inch
Rise time: 8µS
Sweep Range : 10Hz to 500kHz

When I remove the casing of the oscilloscope I found several damaged components (specially capacitors) and wires. After making the careful observation and testings I decided to rewire the whole oscilloscope with new components except the following,

  • 12BH7 Dual Triode
  • 12AU7 Dual Triode
  • 6AN8 Triode Pentode
  • 6AB4 Triode
  • 1V2 ½ Wave Rectifier
  • 6X4 Full Wave Rectifier
  • 6J6 Dual Triode

  • Main Transformer
  • Front end controls (including switches, potentiometers, connectors and indicator)
  • Most of the inductors
  • Cathode Ray Tube, etc

As mentioned in the above list all the Values, transformers and some of the critical components are in good condition. Only the major problem occurs at the electrolytic capacitor replacement stage(s) because in original configuration there are two capacitors packs (4 Pin capacitor package with common ground) are available. It is bit difficult to obtain those capacitors from local market. So what I'm doing is installing 4 separate electrolytic capacitors, instead of one single electrolytic capacitor pack. To do this I'm slightly change existing component layout of the original IO-12 Oscilloscope. Except these capacitor modules all other parts are commonly available in local market. (with some slight differences in packages and values)

After the rewiring, this unit work nicely and produce results as same as today's professional analog oscilloscope. At the time of testing I couple this unit with one of my old Phillips GM4585 trigger delay unit and achieve successful results. The above photograph indicate this restored IO-12 oscilloscope with 50Hz - 12.75V peak to peak sine wave.

Monday, December 7, 2009

Mini Sudoku for Windows

Sudoku is one of my favorite games and in this project we developed small computer program to play and solve Sudoku puzzles in Microsoft Windows operating systems. Like all of my other computer programs this project is also hosted in with open source – free software license (Under the terms and conditions of GNU General Public License Version 3).

This project is developed using Borland C++ and it had following general features,

  • Sudoku Game Panel with multiple user profiles
  • Support custom board styles
  • Auto-play options for all the predefine and user specified puzzles
  • Minimize to tray option
  • Three game play levels (as easy, intermediate and hard)
  • Easy to add any number of custom puzzles

Latest version of Mini Sudoku is available to download at and at Mini Sudoku Ohloh project page.

To modify this project user need to use Borland C++Builder 6, NSIS (Nullsoft Scriptable Installer) and Adobe Photoshop (or any other image editor which is capable to modify Photoshop psd files).

Friday, December 4, 2009

12V DC to 230V AC Inverter

In this project we design an Inverter to convert 12V DC power source to 230V AC power. This system consist 3 main stages such as oscillator, switching circuit and step up transformer stage. In oscillator we use 4047 CMOS astable multivibrator to generate nearly 60Hz oscillation.

In a given configuration,

f = 1/(4.4C2(R1+R2))

f = 1/(4.4×(0.1/106)((3.3+33)×103)))

f = 62.609 Hz

In a switching stage we use 2SD400 NPN transistors and IRFZ44 N-channel FETs. For the step-up transformer it is recommended to use 12V-0-12V : 230V – 5A transformer.

When constructing the circuit it is highly advisable to apply good heat sinks to both Q1 and Q2. If you are plan to use single heat sink to both Q1 and Q2 it is required to place good insulator between the transistors and the heat sink.

During the field test we use 12V - 7Ah sealed lead acid battery (which was commonly used in general UPS) with this system and constructed prototype deliver 238V AC in no-load.

To get the complete circuit diagram and Eagle PCB design please check the

Friday, November 27, 2009

Automated Home Security System

Automated Home Security system is PIC16F877 based security system with following core features,

  • Support automatic phone dialing using DTMF tones
  • Support inputs from three optical sensors
  • Control external device(s)
  • Built-in alarm with external audio output
  • Allow total customization to the end-users (such as program phone numbers, setup device control sequence, etc) without changing the source code.
  • Password protected system setup

In this design we use PIC16F877 8bit microcontroller as main system controller, NE556 dual timer as an alarm system and 7805 as power regulator. To miniaturize the final product we use some amount of surface mounted parts with this design. Application program(s) of PIC microcontroller is developed using C programming language and release under the terms and conditions of GNU General Public License.

In this design we use some special electronic components/modules which include LCD display module, 4x4 keyboard matrix, telephone isolation transformer, etc. At the time of circuit design we choose common, locally available parts for this design, which include,

  • HD44780 compatible LCD module
  • Custom made 4x4 Key Matrix
  • General 600Ω telephone isolation transformer
  • NTE-R22 3V relay

In this design we use PIC16F877 MCU to generate DTMF tones (with help of R-2R ladder circuit), as a LCD driver and as a general I/O controller. In PCB design we use generally available DIP version of PIC16F877. Except PIC16F877 and BC140, all other semiconductors are in surface mounted packages.

When installing the system (which means in a practical environment) it is recommended to use LASER pointer as a light source. During our field tests we get successful results with the 5mW LASER module.

In this project all the PCB patterns are design using EAGLE layout designer and all the source, component libraries and output files are available to download with the supplied package.

To get the complete project details (including schematic, PCB design and firmware source code and binaries) visit our project repository at

Tuesday, November 17, 2009

20W Hi-Fi Audio Power Amplifier

TDA2030 is most popular, high quality - low cost audio power amplifier and successive version of TDA2006. Typically TDA2030 deliver 14W in 24V with 4Ω output load and 8W in 8Ω output load. Because of it’s wider power bandwidth (10Hz to 140 kHz) and extremely small amount of distortion (0.1% - 0.5%), TDA2030 deliver excellent sound quality with higher performance. In this project we design basic version of TDA2030 mono power amplifier for general use and its design to work with 9V – 24V (500mA) Power Supply Unit.

When building the circuit it is recommended to use PCB design and its important to attach suitable heat-sink to the TDA2030. In this design it is not necessary to have electrical isolation between the IC and the heat-sink.

To get the complete circuit diagrams and PCB designs (Eagle) please check the

Friday, October 30, 2009

Low Dropout Single Rail Adjustable Power Supply Unit

In this project we design high current, high accuracy single rail variable power supply unit using Micrel’s MIC29152 voltage regulator IC. Thanks to the Micrel’s Super Beta PNP fabrication process this regulator has 80mV to 600mV dropout at the full load. With the given values of R1, R2 and TR1, this unit delivers 1.3V to 20V with maximum of 1.5A current.

This power supply unit is ideal for most of the analog electronic experiments, as a simple battery charger, as laboratory power supply, etc. Complete circuit diagram, PCB pattern and Eagle source files of this project are available to download in here.

When building the circuit make sure to install suitable heat-sink to the MIC29152 chip. This circuit use 230V AC power source, so make sure to apply all the safety precautions while at the designing and testing phases.

Tuesday, August 4, 2009

AT89S52 base RPM counter

In this design we use AT89S52 microcontroller to build inexpensive revs-per-minute meter. This meter can measure speed in the range of 1 to 9999 rev/min. This design was originally developed to measure the speed of brushless motors, but it can use for any application where the speed is in above mentioned range. In the given design input pulses are generated using Allegro A1203 Hall-effect bipolar switch and it can be replaced with any other Hall-effect sensor or IR detector.

Current version of RPM counter is based on Atmel’s AT89S52 8bit MCU and control software is developed using MikroC 8051 compiler.

At the time of implementation and testing we use Allegro A1203, A3517 and A3056 (for gear-tooth sensor operations) Hall-effect bipolar switches with this system and all these sensors produce excellent results with it.

AT89S52 source code and complete circuit diagram of this project are available to download at

Monday, July 27, 2009

PHPhD – Server side hardware port access extension for PHP

In one of my project I need to access PC hardware ports using PHP. Standard distribution of PHP (PHP for Windows) may not have facilities to access PC/Server hardware ports, and finally I developed lightweight PHP extension to access server hardware ports.

Current version of PHPhD (version support for PHP 5.2.x (tested with PHP 5.2.1) and distributed under the terms and conditions of Mozilla Public License version 1.1. This PHP extension is available to download at

Using PHPhD users can access server hardware ports with minimum amount of coding and complexity. Example PHP source code which was based on PHPhD is listed in below,

//Initialize and open hardware device driver
if(!phphd_open_driver()) {
die("Unable to open PHP hardware port access device driver");

//read printer (LPT) port and get the curent port value
$lpt_port_val = phphd_read_port(0x378+1);
echo("LPT port value [0x378+1] : ".

//close device driver

Current version of PHPhD (version has following functions,

  • phphd_open_driver : Function to load device driver and initialize the hardware access session.
  • phphd_close_driver : Function to close current device driver and release all the hardware sessions.
  • phphd_isopen : Function to get the initialization status of the device driver.
  • phphd_read_port : Read specified hardware port and return the value.
  • phphd_write_port : Function to write value to the specified hardware port.
  • phphd_sound : Function to trigger the system (server) speaker with given frequency and period. Most of the times we use this function to test the device driver and functionality of PHPhD.

Please note that this PHP extension is available for the Windows platforms only.

Thursday, July 23, 2009

Low Cost and High Quality Stereo FM Radio Receiver

In this project we build CXA1619BS base high performance FM stereo radio receiver using low cost and readily available electronic components. In this design we use CXA1619 as FM radio receiver and BA1320 as FM stereo decoder and LA4108 as power amplifier.

When building the circuit it is highly recommended to build it using the print circuit board (PCB) and take some necessary steps to reduce the effects of external interferences.

In this design we use BA1320 as stereo decode and user can also use BA1330 with this circuit with some less amount of input voltage. (For example: +5V) We use BA1320 for this design because of its low cost, low complexity, higher channel separation and higher availability.

In current design we use LA4108 as power amplifier and it delivers 6W x 2 output power at 8ohm load.

While assembling the circuit make sure to apply suitable heat-sinks to both 7805 voltage regulator and LA4108 power amplifier.

At the testing stages this circuit produces excellent results and fewer amounts of issues in tuning. Anyone can tune this circuit without using signal generator and oscilloscope.

It is recommended to provide 7V to 12V of supply voltage to this circuit and at the testing stages we use 8.0V PSU with this circuit.

Circuit diagram and assembling notes of this circuit is available in

Monday, June 29, 2009

433MHz RF remote control system for RC Cars

After the 2 weeks of continues development we finally design suitable RC remote control system for cars. This RC system has,

  • Battery eliminator circuit (BEC)
  • Control System
  • 433MHz transmitter and receiver module
  • Motor driver and servo controller

In this design both transmitter and receiver modules are based on seeed studio’s 433MHz RF link kit and control systems are based on microchip’s PIC16F84A MCU.

At the design time we test this circuit with Futaba, Airtronics, JR-Radios, HiTec and "Mystery" (available in eBay) micro-servo units. This circuit may support standard electric motors (brushed DC motors) and during the testing stages we drive RC helicopter motors and RC airplane motors successfully with this system. To drive this circuit we use 7.2V 500mAh Li-Po batter pack.

During the circuit assembling and testing, make sure to take necessary actions (e.g: shielding) to prevent/minimize the EM interferences which was generated by the motors. Most of the time these EM noises may reduce the performances of the 433MHz receiver module.

To get the maximum performance use 830mm (or higher) telescopic antenna with the transmitter and 20cm antenna with the receiver.

We design this system for RC cars but it can also use with RC airplanes, helicopters and boats with some minor modifications to the receiver module.

All the circuit diagrams and MCU source codes are available to download at here.

Monday, June 1, 2009

Finding electronic parts and instruments in Sri Lanka

Most of the times finding the electronic parts in Sri Lanka is (extremely) difficult process. Lots of electronic part suppliers have fast-moving electronic parts only. (such as general resistors, capacitors, semiconductor devices related to the Hi-Fis, TVs and general consumer electronic products, etc.) For my electronic experiments I'm getting most of these “uncommon” electronic parts from following suppliers,

Farnell : Farnell is my "number one" choice for most of the “uncommon” electronic parts and instruments, specially semiconductor devices and test instruments. Compared with other suppliers there prices are bit high but also had a nice service and higher reliability. Most (all ?) of there parts are coming from reliable and popular vendors. Most interesting thing is “There are no minimum order quantity levels in there orders”, which means I can order 1 unit of electronic part from them.

Orel Corporation (Pvt.) Ltd.

Bay: 12-13.Trace Expert City,
Tripoli Square, Maradana Road,
Colombo 10.

Tel: (941) 0114 792 103
Fax: (941) 0115 376 678

Silvertones Ltd : Silvertones is one the oldest electronic part supplier in Sri Lanka and they also have good collection of electronic parts. Most of the Silvertones parts are coming from branded electronic part manufactures, due to this reason some of there parts are bit expensive than standard once.

Silvertones Ltd

132 Vauxhall Street
Colombo 2
Sri Lanka.

Tel: +112 436141, 2 335634

DigiKey : Digikey is one of the world's largest electronic component supplier and unfortunately there are no any local agents for DigiKey. I brought some hard to find electronic parts from them via online and there service is also excellent. Only problem in DigiKey is it's higher shipping and handling charges.


Other than these local/international suppliers eBay have several electronic part suppliers. Most of them sell lot of rare semiconductors and other electronic components. Most of these eBay suppliers ship parts with free of charge and they are not much expensive as DigiKey or Farnell.

Tuesday, May 12, 2009

Compact logic probe with pulser

Logic probe is an essential item for digital electronic fault findings and constructions. In this project we design compact and simple logic probe with digital pulse generator. This circuit is based on 4069 logic inverter and 7805 voltage regulator. In this design we use 4069 invert module to drive the LED of logic probe and to build the oscillator circuit.

We use TO-92 style of 7805 regulator to drive the 4069 chip and entire circuit can be build around 2.5cm x 12cm PCB (if you need to reduce the size in to more, use the SMD version of 4069 and 7805)

All the resistors are 1/8w and SMD versions are also acceptable.

To change the period of pulser modify C1 or/and R2.

Complete schematic of digital logic probe with pulser is available to download in here.

1.5A - 3V to 27V adjustable power supply using LM723

In this project we developed 1.5A, 3V to 27V adjustable power supply unit based on LM723 voltage regulator IC. In this project we add some additional options to standard LM723 PSU circuit (available from National Semiconductors) to improve the safety and performance.

When assembling the circuit it is necessary to attach suitable heat sinks to both 2N3055 transistors. Single heat sink for both 2N3055 are also acceptable.

According to the initial design R8 must be 0.39ohms (5W), but most of the people say it is bit difficult to get 0.39ohms locally (Sri Lanka) so I change value of R8 to 0.47ohms (5W) and it is available in local market.

During the testings and usage this system produce an excellent results for us. Complete circuit diagram of the power supply unit is available to download in here.

Wednesday, March 25, 2009

PS/2 Keyboard driven Morse code Generator

This is simple PIC microcontroller base project to generate Morse codes using standard PS/2 keyboard. This project based on Microchip’s PIC16F73 microcontroller and National semiconductor’s LM386 audio power amplifier. Software for PIC microcontroller is written using MikroC and all the source codes, schematic diagrams and other documents are available to download at here.

In this project we choose PIC16F73 because of it’s 4KW (KWords) program memory, it is possible to replace this MCU with any suitable MCU which having 4KW (or more) flash memory. (For example Atmel AT89C4051-24SJ with different source code, Microchip PIC16F648 with some minor changes in source code, etc)

Audio power amplifier of this project is based on National Semiconductor’s LM386. We choose LM386 because of its lower power consumption and compactness. User may also replace this module with suitable power amplifier (for example Philips TDA7052, TDA8551, National’s LM4906, etc.)

PIC16F73 software is developed using MikroC 8.1 compiler.

Tuesday, March 17, 2009

User Programmable Automatic Night Light

In this project we developed user programmable automatic night light using Microchip's 8bit MCU – PIC12F675. In this design user may be able to program and store the time duration of the master light. Compared with other designs this circuit use transformerless power supply, and TRIAC to control the master light.

Complete MCU software source code, operating guides and circuit diagram of this project is available to download at here.

To get more information about transformerless power supply please refer the Microchip application note AN954, and ST application note AN438 for MCU and TRIAC interfacing.

Monday, February 23, 2009

3.3V – 1.5A Compact Power Supply Unit

3.3V is now widely used in electronic circuit projects (especially in digital electronics). These days several MCUs, CPUs and Digital interfaces (e.g: USB, Ethernet) uses 3.3V and in this project we developed suitable compact power supply unit for these projects. This project is mainly based on National Semiconductors LM1086-(3.3) power regulator.

With the suitable transformer this circuit may capable to deliver 3.3V (during the testing stages we get 3.29V) with 1.5A of maximum current. If you need more current please use LM1085 (3A) or LM1084 (5A) instead of LM1086 (U1).

All the circuit diagrams and PCB patters for this project are located in here. To get the maximum performance, replace C2 and C3 with 10MFD/25V tantalum capacitors.

Please note that it is necessary to install good heatsink to the LM1086-3.3 (U1) regulator.

Tuesday, February 17, 2009

Automated Telephone Remote Control – Demonstration

In this project we develop automated telephone remote control system to demonstrate the functionality of MT8870 DTMF decoder.

This project mainly based on MT8870 DTMF decoder and ATtiny2313 MCU. When this system connects to the phone line it monitor the status of the phone line and take the control of phone line when it detects the ringer, after that user may be able to control specified I/O port using appropriate keys.

Finally user can issue predefine key combination to shutdown the phone line.

Schematic diagram, source codes for ATMEL ATtiny2313 are available in here and all the source codes are developed using WinAVR (with Atmel AVR Studio 4).

Please note that this project is developed for demonstration purposes only, some of the system states may not handled with the given source code.

Tuesday, February 10, 2009

Low cost and low power VIA PC-1 Series mainboards

These days we are working with VIA Technologies PC-1 series mainboards and compared with standard main boards these boards have special features and advantages.

Main advantage is, its lower price and low power consumption.

Like most modern motherboards these boards also have built-in Sound cards, Network adapters, SATA Support and build-in Video interface.

VIA PC-1 series is specially design for low power computing and users may be able to run this mainboard with 150W power supply.

There are several PC-1 mainboards are available and we are mainly worked with following units,

PC-1000 Mainboard

  • Powered by VIA C3 – 800MHz microprocessor
  • 100/133 MHz FSB
  • DDR-I Memory up to 1GB.
  • VGA up to 64MB
  • 4 USB 2.0 ports
  • 10/100 LAN interface
  • 1 PCI Slot
  • Realtek AC97 audio codec
  • Mini ATX form factor (170mm x 170mm)

Price : Rs. 5000.00 (Sri Lanka Rupees)

PC-3500 Mainboard

  • Powered by VIA C7-D – 1800MHz microprocessor
  • 400/800 MHz FSB
  • DDR-II Memory up to 2GB
  • VGA up to 256MB
  • 6 USB 2.0 ports
  • 10/100 LAN interface
  • 1 PCI and 1 PCIExpress x16 Slot
  • 2 SATA Connectors
  • Realtek 6 channel audio codec

Price : Rs. 8500.00 (Sri Lanka Rupees)

During the testing phase we use PC-1000 with Fedora 9 and Windows XP, and PC-3500 with Windows Vista, Windows XP and Windows 7 Beta. Both mainboards provide excellent performance with following configurations,

  • Memory - 1GB (DDR/DDR-II)
  • Power Supply - 150W (20 pin)
  • Disk Drivers - 80GB IDE
  • Input Devices - PS/2 Keyboard and Mouse
  • Operating System - Windows XP Media Center Edition

We use PC-1000 mainboard for our control system experiments with slight modifications and it produces excellent results with following configuration,

  • Memory - 512MB DDR-I
  • Power Supply - 36V homemade PSU
  • Disk Drivers - N/A
  • Input Devices - PIC MCU base homemade Keyboard simulator
  • Operating System - Windows XP using Flash Drive (Build using BartPE)
  • USB Device - 2GB Kingston Data Traveler - USB Flash Driver.

PC-3500 is recommended for intermediate level home PCs.

Friday, February 6, 2009

Prithvi Development Studio for PIC Microcontrollers

Prithvi Development Studio is my new project to build an IDE for GCBASIC – PIC Programming language. Prithvi is developed using Borland Delphi 7 programming language and currently it supports over 300 PIC Microcontroller devices.

This IDE is based on GCBasic, and GPUtils, so users can directly produce hex files from Basic source code without using any 3rd party tools. (e.g: without using Microchip’s MPLAB - ASM).

Current version of Prithvi Development Studio supports wide range of PIC 10F, 12x, 16x and 18x devices and Prithvi Development Studio also ship with wide range of GCBasic support libraries such as X10, LCD, ADC, RS232, USART, EEPROM, etc.

Current version of Prithvi Development Studio has following features,

  • Source code editor with syntax highlighting
  • Intermediate code (Assembler), Hex code viewer
  • Automatic completion, suggestions and parameter information
  • Installable library system
  • Project manager and source explorer to speed up the development process
  • Inbuilt help viewer
  • To-Do list editor
  • User configurable programmer and tools section

Prithvi is an Open Source Free Software project and it is based on MIT Open Source License. You can download Prithvi Development Studio from

Wednesday, January 28, 2009

Simple ATMEL AVR – Programmer

In this project we decide to implement simple ATMEL AVR microcontroller programmer for our hobby electronic purposes. We get ideas for this project from and All the credits of this project go to them and creator of the ISP Programmer - Adam Dybkowski.

You can get complete circuit diagram from here

Entire project is based on the 7408 - Quad AND gate chip and it is possible to use any (CMOS/TTL) AND gate chip with this project. During the testing phase we use CD4071 and 7409 quad AND gate chips without any circuit modifications.

During the assembly process make sure to install proper heat-sink to the 7805 voltage regulator.

After constructing the circuit download and install ISP Programmer and follow these steps,

  • Open ISP Programmer software package and press "Setup" button to setup the programmer.
  • Select "AEC ISP" as a "ISP Cable Pinout" and press OK
  • Connect MCU to the programmer and power on the programmer
  • Select MCU type and oscillator (Crystal) frequency from the software
  • Press "Reset ON" button
  • Press "Read Signature" button

If the device and programmer is working properly ISP Programmer automatically detects the chip and flash memory configuration from chips signature bytes.

  • Now specify the hex file to ISP Programmer and press “Erase and Program All” button to start the programming process.
Note : During the testing/usage, some times we got “NOT KNOWN (FF, FF, FF)” as a device signature. If you get this error please check the following,

  • Programmer is connected to the computer and power on
  • MCU Crystal configuration

If ISP Programmer still produces an error, problem is in your MCU software. (Especially your MCU software produces output to the MISO and MOSI related ports.) Then disconnect programmer’s RESET connection from MCU and connect MCU’s RESET pin to the ground (0V) and continue your work. (Ignore the programmers RESET terminal)

This simple programmer support wide range of ATMEL ATtiny, ATmega and AT45x, AT89x and AT90x series MCUs.