Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Stand alone CPU cooler fan speed tester

PC can display CPU fan speed via simple application. Another option is to go to BIOS menu and read fan speed value. But if you want to have stand alone device that measures CPU cooler fan speed so here it is. It is a PIC16F627 based fan tester with four 7 segment LED displays. CPU fan sends tachometric pulses via separate wire and can be calculated as RPM. PIC captures and calculates the time by using two timers/counters. One captures pulses and another calculates elapsed time. For instance, by capturing the amount of pulses within the period of 1 second would yield the frequency at which the fan spins, e.g. 60Hz. To convert to RPM it is a simple matter of multiplying the frequency in Hz by 60, which in this case yields to 3600 RPM. Schematic is simple – the most components are used for interfacing LED displays. They are controlled via BCD converter and transistor keys. Fan pulse wire connects directly to PIC pin via pull-up resistor as amplitude of fan pulses is same as PIC power supply… Continue reading

RFID reader based on PIC microcontroller

RFID cards are commonly used in many areas like access control, security, and for other identification purposes. One of simplest cards to read are HID ISOProx that don’t use any encryption. Their carrier frequency is 125 kHz.   Hardest part in this reader project is the reader itself as it has to power the tag with magnetic field and sense the transmitted signal. For this series resonance of 150 kHz circuit – antenna is used. Signal from antenna is passed through low pass and band pass circuits and then to PIC comparator, where RFID FSK pulses are detected and decoded. Latest ASM source can be seen here. Probably RFID reader could use more advanced microcontroller than PIC16F628A for more efficient signal reading by using interrupt based compare capture module as this one already uses it for 150 kHz carrier signal generation. Continue reading

Simple 1s to 15s rocket timer

If you are a rocket modeling hobbyist and need simple and reliable rocket timer with adjustable time this project is for you. Timer can be set from 1s to 15s by using 4 dip switch IC. Depending on switch binary position 2^4=16, the time is set when second stage of rocket has to be ignited. Project is based on common PIC16F84 running at 4MHz. MICROCHIP TC4422 is used to control the voltage and current to the “igniter”. Timer also has two failsafes to avoid accidental ignition. Device is powered from 9V battery and is small size as weight is critical in rocketing. Program is written in assembly language. Continue reading

A software based DTMF Remote control

The intent of this project was to build a software DTMF decoder which is run on PIC microcontroller. No any external decoder IC is needed only few external components. DTMF control is convenient where phone line is present, as device can share it with other phone devices. In this particular project remote receiver can control 4 outputs that can drive up to 10Amps at 12VAC. Device accept three commands: SET, RESET and Check output status. Controller is password protected. All values including password are stored in EEPROM memory. Probably most interesting part in this project is software DTMF decoding as this task is usually done by DSP or specialized chips. Decoding is based on Goertzel algorithm. So here is some challenging ASM coding done, but results are positive. Check out the ASM source. Continue reading

Dual Thermometer with serial output

Building digital thermometers is probably one of the common tasks around embedded hobbyists. However more such projects more choices so more things that can be learned. So this one uses PIC16F876 microcontroller with MCP1047A temperature sensors connected to it. Thermometer displays two temperature values – inside and outside. The hardware of this thermometer is pretty simple – PIC reads temperature sensors via ADC. Temperature values are displayed on standard 2×16 LCD and logged to RS232 at desired intervals. ASM code is available. Continue reading

Time switch controller with DCF update

The idea of this project was to build an automatic control for mains heating for the house. The switch turns on the heating in the morning at predefined time and switches off at night. Every weekday can be set at different time points. There can be up to 256 programmable time points and up to 8 output lines that can be connected to relays. Times are programmed via RS232 interface using a command line. Probably one of most interesting things that differs this project from other is that device synchronizes its time by using DFC77 radio transmissions. So always time is accurate and all daylight settings are applied automatically. DCF77 receiver sends pulse signals directly to PIC microcontroller in desired intervals that must be decoded and applied to current settings. Source code is developed in C and is available for download. Continue reading