Electronic Schematics

Accurate Digital LC Meter

Most accurate and simplest LC inductance / capacitance Meter that you will find. It allows you to measure incredibly small inductances starting from 10nH to 1000nH, 1uH to 1000uH, 1mH to 100mH and capacitance from 0.1pF up to 900nF. The circuit uses an auto ranging system so that way you do not need to spend time to select the ranges manually.

PIC Dual Temperature Meter

Dual PIC Temperature meter that allows to measure temperature in two different locations at the same time. Never before such a useful and powerful circuit could be built with so little components and yet provide endless possibilities. This is all possible thanks to the use of PIC16F628 microcontroller and 2x16 character LCD display that act like a small computer which can be customizable thanks to upgradeable hex firmware.

USB IO Board with PIC18F2455 / PIC18F2550

USB Input / Output Board is a spectacular little development board / parallel port replacement featuring PIC18F2455 / PIC18F2550 microcontroller. USB IO Board is compatibile with Windows / Mac OSX / Linux computers. When attached to Windows IO board will show up as RS232 COM port. You can control 16 individual microcontroller I/O pins by sending simple serial commands. USB Input / Output Board is self-powered by USB port and can provide up to 500mA for electronic projects. These are examples of what can be built using USB IO Board: USB Relay Controller (turn ON/OFF lights or appliances in the house) Control LEDs, toys, electronic gadgets, wireless control, etc. USB LCD Controller USB Volt / Ampere / Wattage Meter USB CNC Controller USB Data Logger USB Temperature Meter / Logger USB Thermostat USB Humidity Meter / Logger USB Stepper Motor Controller USB RC Servo Controller

AVR Programmer

This simple AVR Programmer will allow you to painlessly transfer hex program to most ATMEL AVR microcontrollers without sacrificing your budget and time. It is more reliable than most other simple AVR programmers available out there and can be built in very short amount of time.


FT232RL USB to Serial UART (TTL) Adapter is a simple and inexpensive way to connect PIC, AVR or ATMEGA MCUs to a PC or Mac via USB connection. FT232RL is an impressive chip because it implements full v2.0 USB protocol, needs no external crystal, has integrated EEPROM for device ID and product description strings and comes with Royalty-Free driver support for Windows, Linux, and Mac OSX. FT232RL chip provides two data lines RXD and TXD that are connected through 1K resistors to a microcontroller such as PIC AVR ATMEGA ARDUINO. Up to 500mA of +5V power can be obtained from USB port and used to power both FT232RL chip and your favourite MCU. When connected to a PC FT232RL is mounted and shows as Virtual COM port in Device Manager making it easy to send and receive data from PIC, AVR or ATMEGA microcontrollers.

0 - 5V PIC Voltmeter

0 - 5V PIC voltmeter circuit consists only of a PIC16F876 (or other 16F87x), a 10-MHz oscillator and a dot-matrix displa y. The analog voltage is fed to the PIC RA0 ind. To show the 10 Bittig measured ADC value is 4 digits on the LCD shown in decimal (in millivolts).

2.5 GHz Frequency counter

This project describes a very powerful frequency counter. Very simple construction which everyone can build. 6 LED display will present the frequency with 1kHz resolution and RS232 communication to computer is available as option. The software has also been implemented with some smart functions, for calculating frequencies in receivers where IF is 455kHz or 10.7MHz. I present schematic, PCB, components and window software.

3 Digits Digital Volt Meter with PIC16F676

This is simple 3-digits digital volt meter.PIC16F676 used to read analog signal(voltage) and display the value on 3-digits 7-segment. You can apply similar principles to measure DC current with parallel R shunt.

4 Channel PIC Based RS485 Multiplexer

Recently, I had to design a circuit real quick that transmitted 4 parallel TTL data bits over 350m of twisted pair cable. I needed to feed in four parallel data bits at one end, and get 4 parallel data bits out the other end, completely transparent to the transmitting and receiving circuits.

60 Minute Count Down Timer

Here is a 60 minute countdown timer that can be used as an exposure timer for UV light boxes, photography, egg timer, and many other projects where counting or delay is necessary. The heart of the countdown timer is PIC16F84A chip and 4 digit character LED display. The relay is energized after the count down timer goes down from specified minute and second until zero.

Arduino AVR In System Programmer

Randall converted an Arduino into AVR chip programming hardware for use with AVRDude. The project programs AVR tiny13 and other tiny AVR chips using an Arduino. He provides code and instructions to implement the Atmel AVR910 In System Programming protocol. I ported the Atmel AVR910 In System Programmer protocol to the Arduino. Now I can write programs to my ATtiny2313 and tiny13 chips. The Arduino sketch is available for download here. It works with the AVRDude programming software. This article will show how to use the Arduino to upload a program to the tiny13. The first step is to download the zip, extract the .pde file, then load it into the Arduino IDE, and write it to the Arduino. Next we can hook up the tiny13 chip.

Arduino Battery Saver - Watchdog and Sleep Functions

This example shows how to make use of the Watchdog and Sleep functions provided by the ATMEGA168 chip (decimila). These functions are useful if you want to build low power consuming devices operated by battery or solar power.

The reduced power consumption is achieved by through a intermittent operation of the system .In case of Arduino your main loop will be executed once before the system is put into the sleep mode. After a few seconds t the watchdog wakes the system up and the main loop is executed again. The ratio between main loop execution time and watchdog time determines the amount of power that will be saved.

When we assume that the time to measure a sensor and making some decisions will take 10 millisecond and the watchdog is set to 8 seconds the on/off ratio is 800 which extends the battery live time by this factor.

Arduino Breadboard Clone

This Arduino can be used for old school prototyping as well. Just use it as a standard ATmega8 and program it with the ISP connector. And it is one of the cheapest Arduino boards, that you can get. Arduino is a great prototyping platform and most of you probably know already about it. If not, check out the Arduino pages and the Arduino playground and dive into it.

Arduino RF link using 433MHz Transmitter / Receiver modules

If you are looking into wireless communication between two Arduino modules, this project might be helpful. It uses low costs RF transmitter and receiver from Electronics-DIY.com to establish radio link between two Arduino boards up to 500 ft. Data can be transferred serially at the maximum rate of 2400 bps. The schematic shows how receiver and transmitter is hooked up to two different Arduino boards. When wiring the receiver / transmitter you only need to give them power / ground and then a pin for the TX (serial transmit) or RX (serial receive) pin. I also wired a button to the Arduino doing the transmitting, and used the LED on pin 13 that is built into my Arduino boards on the receiver so I could test this setup. The test app just flashes LED on the receiving board when a button is pressed on the transmitting board.

Arduino Sinewave Generator

Arduino Sine wave Generator using the direct digital synthesis Method. Here we describe how to generate sine waves with an Arduino board in a very accurate way. Almost no additional hardware is required. The frequency range reaches form zero to 16 KHz with a resolution of a millionth part of one Hertz! Distortions can be kept less than one percent on frequencies up to 3 KHz. This technique is not only useful for music and sound generation another range of application is test equipment or measurement instrumentation. Also in telecommunication the DDS Method is useful for instance in frequency of phase modulation (FSK PSK).

The DDS Method (digital direct synthesis). To implement the DDS Method in software we need four components. An accumulator and a tuning word which are in our case just two long integer variables, a sinewave table as a list of numerical values of one sine period stored as constants, a digital analog converter which is provided by the PWM (analogWrite) unit, and a reference clock derived by a internal hardware timer in the atmega. To the accumulator , the tuning word is added, the most significant byte of the accu is taken as address of the sinetable where the value is fetched and outputted as analog value bye the PWM unit. The whole process is cycle timed by an interrupt process which acts as the reference clock. Further details of the DDS Method are described in web of course.

ATmega48/88/168 Development Board

This is versatile development board for AVR microcontrollers ATmega48/88/168. It is good for testing and debugging embedded programs. It has many built-in peripheries connected to microcontroller so you can use them without soldering. ATmega microcontrollers are produced by ATMEL and they include a lot of features: I/O, Timers, PWM generators, ADC, RS232, TWI, SPI, Analog Comparator, Oscillator, EEPROM… These microcontrollers are very versatile, easy to program and easy to use. This is the reason why I like these microcontrollers and why I decided to make development board for them.

Atmel AVR Programmer

Easy-to-build AVR µC-programming circuit that can program the 40-pin AT90S4414/8515, the 20-pin AT90S1200/2313, and the eight-pin AT90S2323/2343. The programmer uses only three chips. It connects to the host PC's serial port via a MAX232 RS-232 transceiver, IC1. Power comes from a 9V wall cube and the 78L05 linear regulator, VR1. The AT89C4051 µC (IC2) works with the 11.0592-MHz oscillator, and controls all programming tasks. LED1 indicates the programmer's status.

AVR In-Circuit Programmer

The programmer is very simple to build. It contains one IC and a couple of connectors. As you can see below, with some ingenuity it is possible to squeeze all the circuitry into a DB25 connector shell. The IC can be a 74HC244 or a 74LS244. The more normal means of construction is with a small circuit board, with the DB25 connector mounted on one edge, and a header to connect the ribbon cable. The programmer is designed to work with all the AVRâ„¢ family micros, and with the Atmel "ISP" programming software.

AVR In-System Programmer

AVR – ISP programmer for STK200 and for PonyProg.

AVR ISP Programmer

This board can program an AVR microcontroler ATMEL (ATmega8, ATMega32, ...) from a parallel printer LPT1 using ISP functionality In System Programming. This programming type can program and/or configure microcontroler directly on the target board without rmoving device and put it on a separate programmer. This board is compatible with programming software "PonyProg".

AVR ISP Programmer

This is an AVR ISP Programmer which is controlled via COM port. Signal levels of the RS-232C line is converted to the target level, so that target device can operate in entire range of the VCC. And also it can be used as an communication cable to communicate between host PC and target program (this is explained in the following section). This ISP adapter is sufficient to develop most of the AVR applications.

AVR ISP Programmer (In-Sytem programmer) for ATMEL

This AVR ISP original by ATMEL you can found on "AVR software and technical Library - April 2003" CD-rom.It small component count I design new PCB and change some component that easy to build small PCB .The new firmware was writen by John Samperi for AT90S2313. This code can program more devices.

AVR ISP Programmer (In-Sytem programmer) for ATMEL

This AVR ISP original by ATMEL you can found on "AVR software and technical Library - April 2003" CD-rom. It small component count I design new PCB and change some component that easy to build small PCB. The new firmware was writen by John Samperi for AT90S2313. This code can program more devices.

AVR LCD Thermometer LM35

The LM35 of National Semiconductors that is used in this project is a precision centigrade temperature sensor, which has an analog output voltage. It has a range of -55ºC to +150ºC and a accuracy of ±0.5ºC . The output voltage is 10mV/ºC . The output voltage is converted by the AD convertor of the AT Mega8. The temperature is displayed on an LCD module. In this example the thermometer has a range of 0ºC to 40ºC and a resolution of 0.5ºC. If you want to have a readout in Fahrenheit you can use the LM34.

AVR PC Stepper Motor Driver

With this circuit you can control two unipolair stepper motors in full step mode via the RS232 serial port of your PC. A terminal program such as Hyperterminal can be used to control the stepper motors. The stepper motors can be driven one at a time. # Drives two unipolair stepper motors in full step mode # Accepts commands via the serial port of your PC. # Can be used with any OS that has a standard terminal program such as Hyperterminal. # Drives stepper motors up to 24V, 500mA # Power supply ......................12-24 VDC

AVR Programmer

The ATMEL AVR programmer works with the Windows program "Ponyprog" which works under 95, 98, XP, ... and can be found at http://www.lancos.com/prog.html On board the AVRs that can be programmed are those in the schematic. For other members of AVR family or the rest programmable ICs that Ponyprog can program, there is the J1 connector (CON10) which allows expanding the programmer's hardware. See Ponyprog's site for other's ICs Ponyprog circuits. The JUMP1 jumper is there to connect the crystal's circuitry to the 8- pin AVRs or to disconnect it. Some AVRs have internal RC oscillator and an external XTAL is not allowed or needed.

AVR Programmer

This is a ery simple serial ISP progammer for AVR microprocessors. The schema can be found here. It is Sample Electronic Programmer compatibile and can be used with Bascom, WinAVR etc. Previously I used programmer with only 330 ohm resistors in series with MOSI, RESET and SCK. It worked quite good, but in new version I used buffers to improve separation between LTP and AVR. In plans full galvanic isolation using optocouplers.

AVR Programmer

Here's AVR programmer for programming AVR microcontrollers such as the AT90S1200 via the parallel port. AVR programmer is extremely simple. IC1 provides buffering for the signals that travel from the parallel port to the microcontroller and vice versa. This is essentially everything that can be said about the circuit. The two box headers (K2 and K3) have the ‘standard’ ISP (in system programming) pinout for the AVR controllers. The manufacturer recommends these two pinouts in an attempt to create a kind of standard for the in-circuit programming of AVR microcontrollers. These connections can be found on many development boards for these controllers. The software of AVR programmer carries out the actual programming task.

AVR Programmer + Info

The AVR family of `micro-controllers' (uCs) have their own, non-volatile memory; your program and data are safe, even if all power is lost. These chips also contain most of what is needed to program them. If you connect an AVR to the parallel port of a PC loaded with the right software - a `programmer' - then PC and uC will happily talk each other through the procedure. Uploading a program to the chip takes just a few seconds and very little hardware. It can even be done while the uC is `in-circuit', sitting in the apparatus you want it to control. A program already in the chip can be erased by the same `programmer'; there is no need for ultra-violet light or a special power supply.

AVR Thermometer DS1621

This small thermometer board can be connected directly to PORTD of the AVR 2313 Project board. It uses the Dallas DS1621 Digital Thermometer and Thermostat chip. The DS1621 measures temperatures from -55° to +125° in 0.5° steps and doesn't need calibration or external components. It has also a build-in thermostat with high and low set-points which can be programmed by the user. Below you see the pin description of the DS1621.

AVR Thermometer TCN75

This small thermometer board uses the Microchip TCN75 device. It is a cheaper clone of the LM75, it costs about 2,50 Euro. The TCN75 comes in a SO8 packaging. The TCN75 is a serially programmable temperature sensor. It has an output that is programmable as either a simple comparator for thermostat operation or as a temperature event interrupt. Hysteresis is also programmable.

AVR Thermometer TCN77

The TC77 is a serially accessible digital temperature sensor. Temperature data is converted from the internal thermal sensing element and made available at anytime as a 13-bit two’s compliment digital word. Communication with the TC77 is accomplished via a SPI and MICROWIRE compatible interface. It has a 12-bit plus sign temperature resolution of 0.0625°C per Least Significant Bit (LSb). The TC77 offers a temperature accuracy of ±1.0°C (max.) over the temperature range of +25°C to +65°C. When operating, the TC77 consumes only 250 ìA (typ.). The TC77’s Configuration register can be used to activate the low power Shutdown mode, which has a current consumption of only 0.1 uA (typ.).

Basic PIC18F4550 USB Communication Interface

When the device is connected to the computer, a Virtual COM Port (VCP) will be created. This is shown at the Device Manager Window under Ports(COM & LPT). In this case, COM5 was created when the PIC18F4550 was attached to the USB Port. It may be interesting to note that if you plug in your PIC in different USB ports, the VCP created will be different.

Bootloader for 16F87x PIC Microcontrollers

A bootloader enables download of hex-files directly into the flash-memory of a PIC or other microcontroller. The bootloader receives the user program via the PIC's UART and writes it directly to the program memory (self programming). This feature greatly speeds up the development process, because the chip remains in the target circuit and need not be moved between the target circuit and the programmer. When no bootloader is installed, all memory in the PIC can be utilized for user programs. That is 4 K for the 16F873 (0x000 to 0xFFF). Installing a bootloader means, that some part of the memory is occupied by the bootloader. The user can download his program into the remaining memory space. The bootloader in figure 1 occupy 256 words (0xF00 to 0xFFF), that is 6 % of the memory in a 16F873. The disadvantage of loosing 6 % memory is little compared to the advantage of fast program download and more friendly development routines.

Clock Relay Controller

Build a digital clock that turns AC load on/off through relay with preset time. The clock is based around 7-segment LED display with multiplex connection and AT89C2051 microcontroller. It is nice to be used as the display for clock controller. So I spent my weekend built the board. Below are the pictures for outlook and internal. The board is quite small. The output has small relay for 0.5A AC load. The program clock.c was written in ‘C’ language and was complied by Micro-C Compiler from DunfiledDevelopment Systems. The memory model is TINY. The hex file of clock.c suitable for downloading by Easy-Downloaderis clock.hex.

Code Lock with ATMEL AVR

CodeLock AVR electronic combination lock is realized with Atmel AVR microcontroller AT90S2313 or ATtiny2313. Program in hex code is 2 kB long. User code is consisted of 1 to 4 digits. If you buy the chip than user code is consisted of 1 to 8 digits. If the code is entered in the correct sequence, then after 1 second the relay and the electric striker (in the door) switch on for 1 second and then switch off again. User code can be changed via 3x4 matrix keypad. Keypad for CodeLock can be bought at local electronic shop. Initial user code (1234) is set up with a jumper. The jumper must be inserted before the voltage (12V) connection. The jumper must be removed after 2 beeps (after 5 to 15 seconds).

Digital Barometer with Graphical LCD Display

Here's a digital barometer that uses Atmega8 microcontroller and graphical LCD display. This project uses SCP barometer pressure sensor graphical LCD display connected to Atmega8 microcontroller. Graphical LCD displays latest 128 readings while one reading occur once in 20 minutes. You can see information of about two last days. Provided C source code can be customized to your liking.

Digital Thermostat with LED Temperature Display

I needed to replace two old, unreliable thermostats for controlling the heating and cooling for a large garden shed. Commercial basic digital thermostats are available quite cheaply, but some lack the ability to control heavy loads or have the extra features that I require for saving energy when the door is often left open or to indicate temperature being out of range etc. I like the PIC18F1320 microcontroller used in my previous project - so decided to use it again in a very similar design to drive three multiplexed LED displays and read the temperature from a Dallas/Maxim DS18x20 "1-Wire" digital sensor.

Digital Wattmeter

The extra input B is for a later SWR brigde project, also the TX serial output will be in use later. The uncalibrated signal response is: +1/-1 dB from 1MHz to 450MHz. Input SWR vill varry from 1.00 to 1.30, depending on input frequency. To make the SWR this good, you need to assemble the input circuit correct and adjust the capasitor. Input power range: -60 to +30dBm that is 1 nW to 1 Watt.

DS18B20 Bluetooth Thermometer

One morning I woke up and wanted to know what the temperature outside was, and instead of running over to Home Depot and picking up a $2.00 glass thermometer, I decided to build my own wireless temperature sensor. At the heart of the board is a PIC12F675 microcontroller in an SO8 package. The right-hand side of the board houses the linear power supply (LP2950), bottom-center is the DS18B20 1-Wire temperature sensor, and out in left-field you can see the Sure TTL Bluetooth Module.

Dual Light PIC Switch

This is a lamp timer capable of operating two separate relay switches. Outputs can be in three (or restricted to two) states: OFF, delayed ON and constant ON. Delayed ON mode is indicated by the LEDs. The source code is easily customizable for your needs: set your desired delay time or disable constant ON state.

Electronic Lock

This is my electronic combination lock to use with an outdoor gate. The functionality is implemented in software. It turns on a relay (usually to open a door) for a few seconds if someone enters the valid code. This relay can operate a power-to-open type electric strike with a shorting contact or a power-to-hold type electromagnetic lock with a breaking contact (we need the relay because these locks usually work with AC, not DC). The code can be changed any time after entering the current code.

EPROM Programmer Mk2

Back in 1995 I designed a Mk2 EPROM Programmer, but EA didn't want to publish it. I'm making all of the details available here for those that wish to make it themselves. The schematics, PCB, control program, and PLD files are available here for general interest only, they are still copyrighted to me. This design is NOT in the public domain.

Garden Timer with Remote control

Few years ago we control the lights in the garden with a automatic-timer-switch, very nice but when the evening gets longer or shorter we had to adapt the timer each week. In that time I came in contact with programming microprocessors so my first project was born. The first garden timer was a simple 1 output. The timing was controlled by the PIC and every month I had to change the minutes. So back to the table and design the second garden timer able to control 3 relays - left, mid and right side of the garden. It provided also 4 modes: – always off – always on – from dusk to dawn – from dusk to timer and the timing was dedicated to a RTC DS1307.

Generator of exact pulses

Circuit is very simple. The generator uses a PIC12F629 microcontroller with clock frequency set by an external RC. Output frequency can be set trimmer P1 in the range of about 2 to 170 Hz. Oscillator frequency can be adjusted if you change C1 capacitance. Pulses are generated with a period of 200 Tcy. All pulses are of equal length. Output frequency is 800 times lower than the frequency of the oscillator.

IR RC5 Remote Control Transmitter

All remote controlled projects from this site can be controlled with remote controls which use the RC5 protocol, like the TV-remotes from Philips. When all buttons from such a remote are in use then you could make a remote control by yourself. Your own build remote control with only one button or maybe you want to build a remote with more then hundred buttons. It is possible, however, you need the PIC Basic compiler from Crownhill seeing that everyone has his own wishes and you have to fill in which button sends which RC5 code.

JDM PIC Programmer

Allows to program PIC16F84, PIC16F628, PIC16F877, etc..

JDM Programmer Modification

The JDM (or Ludipipo) seems to be among the most popular PIC programmers used - and rightly so: it is simple, cheap and easy to build, can be run with the free and excellent IC Prog software by Bonny Gijzen, and will program pretty much any PIC microcontroller on the market. However, an issue has arisen lately with some of the new PIC's, eg PIC12F675, 12F629, and some others with an internal oscillator. When these chips are programmed the first time, everything goes fine. However, if you later try to read or re-write to them, they read as blank and cannot be written to. The problem only occurs when the PIC has been programmed for INTOSC and MCLR_OFF, but even in this situation sometimes it will re-program OK - there seems to be some other dependence on the program which has been loaded as well.

JDM2 PIC 18F Programmer

This is a simple serial based JDM2 PIC Programmer for programming PIC18F chips. The Programmer is powered by the RS-232 port and it works with RS-232 levels at only < ±8.6V. It programs PIC12C5XX, 12C67X, 24CXX, 16C55X, 16C61, 16C62X, 16C71, 16C71X, 16C8X, 16F8X and ISO-CARD's with ASF. The high Vpp is obtained by using negative voltage to drive the chip. The voltage is stabilized with zener diodes. They do not need voltage drop as if a voltage regulator, or has much offset current. This makes it possible to use extra low input voltage. Transistor driver guarantee output level > ±3V. The programmer is supported by PICPgm and WinPic programming software.

LC Meter Based on the AVR Microcontroller

Calculates and displays L and C from oscillation frequency using reference components. This instrument requires two precision components: A precision capacitor and a precision inductor. You only need to start with one precision component, either the reference capacitor or the reference inductor, and using this meter, you can select or adjust the other precision component. In my case, I used a pretty high accuracy BK Precision inductance/capacitance meter and sorted through piles of inductors and capacitors to find those that had the lowest error. I then used those parts, a 1 millihenry inductor and a 0.01 microfarad capacitor, in this meter. The basis of this project is several similar projects on the world wide web and some magazine articles before the world wide web was a common means of information interchange. Unfortunately, I am not able to determine the originator(s) of the concept, but I suspect that it is as old as radio. Another project on my web site, LC Determination by Resonant Frequency Measurement, measures the resonant frequency of an L/C circuit, but the hardware stops at the frequency measurement. It does not proceed to calculate the unknown inductance or capacitance.

LCD Terminal

The LCD Terminal just like a normal terminal, it can connect to any host via RS-232 serial cable. A PC keyboard must connect to it as the input device and what ever you type will send to host via RS-232 and display on a 40x4 LCD. Data receive from host can also display on the LCD unit. You can use this device as any Unix/Linux machine's console.

LED 7 segment Count Down Alarm

Here I have added two fets for the time-out switch, it is like an electronic relay, just much more reliable it can be used to sound a big horn, or what ever you like. PIC 16F84 running 4.00 MHz using crystal or resonator, not critical since this count down alarm only runs for a few minutes

LED Flasher

I made LED flash circuit which is often used as the PIC software making practice. This circuit controls the blink of eight LEDs with the software of PIC. The blinking pattern can be changed with five switches.

Low-cost AVR Programmer

To program some AVR microcontroller unit (MCU) you will need an AVR programmer. The better way to do that, is to buy some development kit like STK-500. This kit have the advantage to give you serial port, LCD connector, SRAM socket, 8 switches, 8 LEDs, connectors for all of the ports of MCU and more, to one board. I suggest to beginners, to start working with STK 500 or some else development system, it will help them very much. For the people that are want to program only one piece of AVR, to make some circuit from this site and they don't want to spend money for any development kit, the solution is this ultra low-cost AVR programmer.

MP3 Player with SD Memory Card

The MP3stick is a simple and small portable MP3 player. A microcontroller Atmel AVR ATmega128 is the heart of the circuit. MP3 decoding is done by an VLSI VS1011b decoder IC. A MMC/SD card works as memory medium for MP3 files, playlist files and skin files. The player is designed to draw his power from a LiIo/LiPo battery with 3.6V. a charger circuit, based on MAX1811, is included. All information will be shown on a Nokia color LCD with 128x128 pixel and 256 colors.

Multiple Switches with Single PIC Input

There are many techniques to implement multiple switches into PIC microcontroller.This technique requires only one ADC pin to detect voltage level when each switch for each state is pressed and each switch is associated with a voltage. For example : If we need to connect 16 switches with 10 bit PIC.

Parallel Port Microchip PIC Micro Controller Programmer

PIC Programmer is an essential tool if you wish to learn or build projects with Microchip PIC Micro Processors. This programmer is built using Free Windows Software called WinPicProg and other similar software from PICALLW or Oshosoft

Parallel Port PIC Programmer for PIC18F2550

Developed specifically for programming of PIC 18F2550 micro controllers, this parallel port, no-power, programmer is the smallest of all programmers ever built. A DB25 Male Connector, one capacitor and a resistor makes this Port Powered programmer. Programmer takes its power from Parallel Port pins 2-9. VPP for this programmer is 5V and hence "LVP" must be selected in programming software.

Parallel Port PIC Programmer with ICP

This programmer is built for Free Windows Software called WinPicProg developed by Nigel Goodwin and uses a 74HC14 instead of 74LS05 used on other parallel port programmers.

PIC based Spectrum Analyser for PC

This is PIC18F2550 based Spectrum analyzer mod for PC. It uses WG24064A 240x64 graphical LCD with T6963 controller to display the result.

PIC Caller ID

Caller ID circuit displays name and a telephone number of the person that is calling you. Information is decoded using MT8870 DTMF decoder and PIC16F628 microchip and is displayed on 2x16 LCD.

PIC Controlled Relay Driver

We love to read emails from our visitors, Please let us know by clicking here if you find any kind of bug/error in our site. We will fix it as soon as possible. PIC Controlled Relay Driver This circuit is a relay driver that is based on a PIC16F84A microcontroller. The board includes four relays so this lets us to control four distinct electrical devices. The controlled device may be a heater, a lamp, a computer or a motor. To use this board in the industrial area, the supply part is designed more attentively. To minimize the effects of the ac line noises, a 1:1 line filter transformer is used.

PIC DS1820 Thermometer

This application shows how to use the PIC16F877 to control, and interface with the Dallas DS1820 1-Wireâ„¢ Digital Thermometer.

PIC Freq Meter / Voltmeter

Measurement of the frequency up to 50MHz Measurement of power supply voltage in the range of 0.0 V - 25.5 V Measurement of the input voltage at two analog inputs, simultaneously displayed as bar graph (PWR/SWR or S) indicator. The input sensitivity could be chosen between 0.25V, 0.5V, 1.0V and 2.0V for maximum bar graph indication. This is a successor of the PIC16C71 4-digit LED f-counter & V-meter.

PIC NIC Ethernet Controller

PICNIC is a project to add 10BaseT Ethernet controller to PIC17F877, and it can run as an network-enable device. This project is based on tristate's PICNIC product. And I just change the temperature sensor's circuits to improve the precision on A/D convert and add another Temp-Sensor channel.

PIC Pages Tutorial

It is, however, most vital for designers of embedded control products to select the most suitable controller and companion devices. Embedded control products are found in all market segments: consumer, commercial, PC peripherals, telecommunications (including personal telecom products), automotive and industrial. Most embedded control products must meet special requirements: cost effectiveness, low-power, small-footprint and a high level of system integration.

PIC PIN / PORT Extender

This circuit based around 74LS154 will extend PIC / AVR microcontroller output PINs from 4 to up to 16. It can also be used for extending parallel port output pins.

PIC Programmable Security System

This project uses the 12F675, it was chosen because of its low cost, A/D convertor and flash memory. This security system was designed to be used in a simple installation with just a hidden switch and not a keyboard. There are several features such as a battery monitor built into the code that also make it good for remote locations just run off a battery. Also all the delays and and other parameters are put into flash memory just by using a visual basic program and the serial port of a PC.

PIC Temperature Logger

This project uses a Microchip PIC microcontroller, a serial EEPROM and a thermistor to create a temperature recorder. The temperature is measured and stored at user programmable intervals; this can be from 1 second to 256 seconds. The time interval is set by programming it and the start time into the EEPROM. Most of the time the PIC will be asleep and the EEPROM IC is inactive. This gives a very low current consumption of approximately 50 uA or about 1 mAh per day. The EEPROM used is 32kBytes which can store up to 32,000 measurements. This could be one measurement every 30 seconds for 11 days for example. The combination of thermistor and analogue circuit gives a range of between about -40 °C and +100 °C although the linear range is between about -10 °C and +40 °C.

PIC12F675 - Flashing LED

Simple little circuit for testing PIC12F675 microcontroller. When you start learning a programming language like C++, Visual Basic or any other language your first step is to write a program that displays "Hello World" on a computer's monitor. When you start learning how to program PIC microcontrollers an equivalent to that is blinking a LED.


This project is based on ideas from Rickard's electronic projects page and David B. Thomas VCR Pong. However, I have developed the simplicity even further, eliminating most of the external components. Using microcontrollers with internal 4MHz clock generator there is no need for the xtal. The 12f675 part also operates on wide voltage range, and the regulator can be removed. For game controller, I plan on using the old Commodore 64 style paddless. They include firing buttons, which I plan on using as power switch and game reset. 16F675 has a low power sleep mode with 1nA current consumption, so I plan on using that to switch off.

PIC16F628 Digital Clock Timer

This clock timer uses a PIC16F628 microcontroller to display 3 and 1/2 digit time and control an external load. It can be programmed to time from 1 to 59 minutes. The clock includes a calendar with leap year and optional daylight savings adjustments. The timer output can be set from 1 to 59 minutes and manually switched on and off. The clock also has a correction feature that allows an additional second to be added every so many hours to compensate for a slightly slow running oscillator. The oscillator uses a common 32.768 KHz watch crystal and the frequency can be adjusted slightly with the 24pF capacitor on the right side of the crystal.

PIC16F84 Alarm Clock

This is an alarm clock I built. It was very effective during the sort time I used it, because I programmed it to play a very annoying tune through a speaker. I actualy started to wake up before the alarm went of, so other people int he house didn't wake up from the anoying pitches it played. The Jal sourcecode is available on my download page Features * Timekeeping using the pic's timer0 interrupt * 4x20 hd44780 compatible backlit lcd, displaying the time in big numbers (4x4 and 4x3) * Alarm sound tune using pwm * computer interface for synchronizing time with the web. * (maybe battery backup (in case of a power outage...))

PIC18F2550 Dev Board

The new PIC18F2550 Project Board was designed as the development platform for student projects. The board platform is suitable for developing the microcontroller based instrumentation. Students may build the signal conditioning board, plugs it to PIC project board, develops the code and programs it with loader cable easily.

PIC18F2550 Project Board

The new PIC18F2550 Project Board was designed as the development platform for student projects. The board features MCU: PIC18F2550 with external xtal, ADC: one channel 0-2.5V sigma-delta converter, Linear Technology LTC2400/LTC2420, 6-channal 10-bit ADC 0-5V, Display: Two connectors for text LCD or GLCD, USB: onchip USB port with type B connector, Power supply: onboard low dropout regulator, rechargeable battery, Code programming: 10-pin header for In Circuit Loader. The board platform is suitable for developing the microcontroller based instrumentation. Students may build the signal conditioning board, plugs it to PIC project board, develops the code and programs it with loader cable easily.

PIC18F4550 Pinguino Development Board

Pinguino is an Arduino-like board based on a PIC Microcontroller. The goal of this project is to build an integrated IDE easy to use on LINUX, WINDOWS and MAC OS X. This is a simple 40 pin PIC development board as described in RadCom for November 2009. It is designed for a PIC18F4550, but it will work with other 40 pin PICs like the PIC16F877A. It has no bells & whistles attached. No buttons, LED, LCD ICSP etc. All of the PIC pins are easily accessible so that you can add any features you need. This board has been tested with the Vasco PUF and the Pinguino USB bootloaders.


For a long time I needed a good programmer pussy, even if it is programming, so from time to time the application gets where it is used. So I decided to build the programmer. I chose between a couple of projects from different authors, but eventually won PICkit2. Microchip released the schema directly in the user manual for the programmer. On the Internet there are multiple versions of the programmer, it's usually cropped version of the log analyzer features, UART terminal, etc., 12V inverter is a modified version of it and control the MOSFETs, unlike bipolar transistors used in the original design. And it also showed that becomes due to the switching inductance feta leave. Finally, I chose to use the original scheme, although it is quite complicated and the parts used in our country can not normally buy, but my problems with finding parts easily solved. I bought a transistor, the 16F2550 PIC and a few other things, resistors and fry the rest I bought from "us". The price is pretty high, unfortunately, moving it around and 600CZK, the main prize and two processor makes the EEPROM. Below we describe the involvement and put into operation.

PICkit 2 PIC Programmer

PICKit 2 Starter Kit is the low cost ICSP programmer for Flash PICs with USB interface introduced recently by Microchip. Only subset of PIC microcontrollers is supported, but the list is including all the recent devices from PIC16 and PIC18 families. The software upgrades are free and Microchip updates them in timely fashion. Even more, the source code and schematic are freely available.

PICkit2 Compatibile MPLAB Programmer

This is a PICkit 2 MPLAB compatibile Programmer. It is a low-cost development tool with an easy to use interface for programming and debugging Microchip’s Flash families of microcontrollers. The full featured Windows programming interface supports baseline (PIC10F, PIC12F5xx, PIC16F5xx), midrange (PIC12F6xx, PIC16F), PIC18F, PIC24, dsPIC30, dsPIC33, and PIC32 families of 8-bit, 16-bit, and 32-bit microcontrollers, and many Microchip Serial EEPROM products. With Microchip’s powerful MPLAB Integrated Development Environment (IDE) the PICkit 2 enables in-circuit debugging on most PIC microcontrollers. In-Circuit-Debugging runs, halts and single steps the program while the PIC microcontroller is embedded in the application. When halted at a breakpoint, the file registers can be examined and modified.

Pony Programmer

PonyProg is a serial device programmer software with a user friendly GUI framework available for Windows95/98/ME/NT/2000/XP and Intel Linux. Its purpose is reading and writing every serial device. At the moment it supports I²C Bus, Microwire, SPI eeprom, the Atmel AVR and Microchip PIC micro.

PWM Motor Driver with MOSFET H-Bridge and AVR ATmega8

Here is a very simple project of controlling a small DC-motor (taken from an old personal cassette player) with ATmega8. The ATmega8 is having three PWM channels, out of which two are used here. PWM waveforms are fed to MOSFET (RFD3055) H-bridge. Here, direction is controlled using a two-position toggle switch and speed of the motor is controlled by two push-buttons, one for increasing the speed and other for reducing. The schematic is geiven here (click on the image to enlarge): When switch SW1 is closed, OC1A channel is active which will feed the PWM signal to Q1 & Q4 MOSFETs. The OC1B pin will remain low keeping the Q3 & Q2 in OFF condition. When SW1 is toggled to open position, OC1A pin will become low, making Q1 & Q4 OFF and OC1B will feed the PWM signal to Q3 & Q2, resulting in the change in the direction of current flow through motor. Hence, motor rotation direction will change. The speed is controlled by Push-buttons S2 & S3. Pressing S2 will increase the speed in fixed steps. Similarly, pressing S3 will reduce the speed in fixed steps.

RCD Programmer

I believe that the "JDM Programmer" is cheap and very useful PIC Programmer. However, since "JDM Programmer" cannot control VDD, the algorithm "VPP before VDD" is inapplicable. Programming to the latest device from this reason may go wrong when using CONFIG settings as "Internal oscillator" "MCLR OFF". These devices are given power from the "JDM programmer",and execute program code. An error may come out by verification, or it may become impossible erasure and become impossible re-programming . In order to solve this problem, I designed a programmer based on the "JDM programmer." Since this programmer was made of resistors, capacitors, and diodes, I named this the "RCD Programmer." "Hardware settings" of IC-Prog are the same as the "JDM programmer."

Real Time Clock PCF8583

The PCF8583 is a clock/calendar circuit based on a 2048-bit static CMOS RAM organized as 256 words by 8 bits. Addresses and data are transferred serially via the two-line bidirectional I2C-bus. The built-in word address register is incremented automatically after each written or read data byte. Address pin A0 is used for programming the hardware address, allowing the connection of two devices to the bus without additional hardware.The built-in 32.768 kHz oscillator circuit and the first 8 bytes of the RAM are used for the clock/calendar and counter functions. The next 8 bytes may be programmed as alarm registers or used as free RAM space. The remaining 240 bytes are free RAM locations.

Relay Timer with PIC16F628

Here is 0 to 99 minutes relay timer using PIC16F628 microcontroller and 16 character LCD display. The microcontroller is PIC16F628A running at 4.0 MHz clock using an external crystal. An HD44780 based 16×2 character LCD is the main display unit of the project where you can watch and set the timer duration using tact switch inputs. There are three tact switches connected to RB0 (Start/Stop), RB1 (Unit), and RB2 (Ten) pins. You can select the timer interval from 0-99 min using Unit and Ten minute switches. The Start/Stop switch is for toggling the timer ON and OFF. When the timer gets ON, a logic high signal appears on the RA3 pin, which can be used to switch on a Relay. The circuit diagram of this project is described below.

RS232 Serial Port PIC Programmer

PIC Programmer is an essential tool if you wish to learn or build projects with Microchip PIC Micro Processors. This programmer is for those who do not have a Parallel Port on their PC. Programmer may be used with Free Windows Software such as "PIC PROGRAMMER Professional Serial" from Oshosoft and may work well with other serial programming software.

Serial LCD Controller

Serial LCD/VFD Controller is a HD44870 based LCD/VFD controller via RS-232. The control command is compatible with Matrix-Orbital's LCD module. So, you can use any MO friendly software to control this baby such as LCDC.

Serial Port Professional PIC Programmer

The PIC programmer project presented here is intended to be used by more experienced developers who already have access to a simple PIC programmer, because the programmer hardware is built around one 16F627(A) or 16F628(A) microcontroller that has to be preprogrammed with firmware. The presented solution uses PC's serial port for reliable communication between the programming software and 'intelligent' PIC programmer hardware.

Simple AVR Programmer

This is simple to build AVR programmer for Atmel microcontrollers from AVR family. The microcontrollers must support serial programming. AVR programmer is connected to a PC through the RS232 serial interface and can be used with the PonyProg or Avrdude software programmer. AVR programmer is quite simple and it is based on the SI-Prog from the author of PonyProg software. AVR programmer can be used for programming Attiny13, Attiny26, Attiny2313, Atmega48, Atmega88, Atmega168, Atmega16, Atmega8 and it works very well. I also use the programmer with desktop computer, laptop, with and wihout USB-to-RS232 adapter and it works in all cases.

Solar Panel Controller

The purpose of this project is to realize a Solar panel controller. Initially developed for a sailing boat, the target to reach was to control the level of charge and discharge and to protect a 12 volts lead battery connected to a 32 watts solar panel.

Solar Recorder

Build a simple data recorder for solar energy lab. The Recorder uses a calculator solar cell as the input sensor and a Multimedia Memory Card for nonvolatile data storage. The device used for measuring daily insolation has been developed. The device was built with a PIC18F458 and the 128MB Multimedia Memory Card, MMC. The solar radiation is measured by a calculator solar cell. The PIC chip interfaces the MMC using SPI mode. The interval between samples is set to one minute. The firmware detects the memory card, assigns the file name and begins recording automatically. The LCD displays the file name, current sample and real-time ADC data. With the MMC flash technology and a cheap media card reader, the devices will be able to record huge amount of data and quick data uploading to the PC.

Thermostat Controller with LCD

I wanted to share my project of modifying the temperature sensor project and turning it into a thermostat with ATmega168. I added a digital output to drive an LED to "warm" the temperature sensor when the current (actual) temperature falls below the desired temperature. Two push buttons come in as digital inputs one to ramp the desired temperature up and the other to ramp it down. The logic is simple bang-bang control to turn the LED on and off based on the relationship of actual temperature to desired temperature. It simulates a thermostat in heater mode. The LED is off when the current temperature is above the desired temperature and turns on once the current temperature falls below.

Time Display unit for a GPS module

I decided to build a device to permanently display accurate time received from a cheap GPS module installed in my workshop. Having obtained a PIC18F1320 microcontroller for experimentation, I wanted to learn about the new features of the PIC18F range using only minimal hardware to control the display. I am currently using it with the on-chip 8Mhz oscillator only and driving a six digit led display, multiplexed with further saving of chip pins by a technique pioneered by Charlie Allen of Maxim-Dallas for their MAX6951 LED display drivers called “Charlieplexing” (see their application note AN1880). I would have liked to have used a MAX6951 chip for better display brightness, but they appear to be only available in "Quarter Size Outline Packages" (QSOP) - the leads are very close together,not easy to experiment with. Another alternative would be to use a MAX7219 display driver, this chip has a serial interface and an option to adjust the display brightness - something I may try later.

TV-remote RC5/RC6 codes on a LCD

Do you want to remote control the dim-level from the lighting, open and close the sun-blind and windows, turn the central heating on and off, and plenty more in your house with a normal TV remote control? Realize it with the projects underneath.

Two Wire I2C Arduino LCD Display

In this tutorial you will learn how to build a simple serial 16x2 LCD display that is controlled via Arduino board by only two wires. The magic behind is done by the PCF8574 chip, an I/O expander that communicates with the micro-controller by using I2C protocol. The PCF8574 is a quick and easy solution to extending and adding output/input ports to Arduino. The chip connects to a standard I2C bus and adds an additional 8 output ports. A total of 8 LCD displays can be connected to the same two wire I2C bus with each board having a different address.

Universal RC5/RC6 Transceiver

The IR receiver: When the TSOP1736 (IR receiver) receives an infrared (IR) signal from a RC5 or RC6 remote control (like Philips) burns LED1 (green). The LCD shows when it receives a new type of code for one second which protocol is received (RC5, RC5X or RC6). After then the LCD shows the RC5 or RC6 system and command code in decimal as well in binary.

USB AVR Programmer

USB AVR Programmer for Atmel AVR microcontrollers. USB AVR Programmer is made of an Atmega8 and few components. The programmer uses a firmware driver that makes this programmer attractive to many amateurs. Another thin why this programmer is so popular is because it is officially included and supported in WinAVR. Once again lets see what this programmer is made off and how to set it up. The core of USB AVR Programmer adapter is Atmega8 microcontroller clocked by 12MHz crystal. Soldered board is ready to be connected via simple USB cable with B type connector (Computer side needs A type of connector). Resistors R2 and R6 are current limiting resistors, that protect computer USB port. Resistor R7 helps computer to recognize device as LS (Low Speed). Diodes D1 and D2 indicates about data transfer. Header SV1 is compatible with STK200/300 just 4 and 6 pins are used for RXD and TXD (may be used for other purposes).

USB LCD Controller

If you like PC modding this is cool project for you.this is an USB interface for alphanumeric LCD display like 4x20 which can be controlled with LCDSmartie program.USB interface is implemented by using PIC18F2550 microcontroller. Using USB LCD module you can view many types of information taken from PC like temperatures, time/date, MP3 song titles, view emails, RSS feeds all that LCDSmartie or other program supports.

USB programmer for Atmel AVR controllers

USBasp is a USB in-circuit programmer for Atmel AVR controllers. It simply consists of an ATMega48 or an ATMega8 and a couple of passive components. The programmer uses a firmware-only USB driver, no special USB controller is needed.

Using MCP9700, MCP9700A, MCP9701 and MCP9701A Temperature Sensors

The MCP9700, MCP9700A, MCP9701 and MCP9701A Temperature Sensors from Microchip offer exceptional performance for the low price. Each have different temperature ratings and accuracy parameters. MCP9700, MCP9700A, MCP9701 and MCP9701A sensors are available in different packaging and are very simple to interface with. Vdd, GND and Vout are all that are required. You should check the datasheet to get a better idea of the parameters for the device you decide to use, though keep in mind that the user module listed below will automatically calculate the temperature depending on the device in use.

Using RF 433MHz Transmitter / Receiver Modules With Arduino

This post aims to be a complete guide for the popular RF 433MHz Transmitter/Receiver modules. I’ll explain how it works, show some features and share an Arduino project example that you can take and apply to your own projects.

Wireless controlled lightdimmer

The meaning from this design is to build it in -i.e. a shaded lamp- and to switch this lamp on and off the normal way, just like it was switched before the dimmer was build in, then you could by exception dimming the lamp more or less with your TV remote control. When you switch the power on there will follow a soft-start till the lamp burns at the previously adjusted dim level. With the '0' button in TV mode you can dim the lamp, turn more and less bright. The remote control should send more then one RC5-signal per button-press seeing that the first one is ignored, this does imply that when the remote button is pressed a short time, there nothing happens. With the P+ and P- button from a system at choice you can adjust the maximum and minimum dim-levels and with the '1' button the start-up brightness.

Circuit-Zone.com © 2021. All Rights Reserved.
FM Transmitters
PLL Synthesizers
Stereo Encoders and Decoders
FM Receivers
Audio / Amplifiers
Power Supplies
AC/DC Inverters AC/DC Converters
Battery Chargers
Remote Control
PC Related
Test and Measurement
USB Circuits
Telephone Related
Miscellaneous Circuits
Stepper Motors