1. UIRT - Universal Infra-Red Transceiver
  2. Serial port communication routines (asm) for pic16F84
  3. New Year 2 channel flasher/dimmer - 12v for pic16F84
  4. Universal IR lamp switch using pic16F627

UIRT - Universal Infra-Red Transceiver

UIRT is simple device running pic16F84 microcontroler which is connected with PC and IR-receiver. Function of IR-receiver is to receive IR transmissions from remote transmitters and send received data to pic16F84. pic16F84 is decoding received data from IR-receiver and then sending it to PC using serial port. Program in pic16F84 that is decoding data is programmed using programming software provided below.

PCB , Layout, picture of completed device

Visit links at end of page for more info on hardware !

Download - Programmer 1.3
Download - Programmer 1.31 - can programm pic16F627
Screen Shoot

NOTE : Programming software is made for original UIRT hardware. Please do not mail me about UIRT2 or other modified UIRT hardware programming problems (I have only UIRT original hardware so I can't test programmer for UIRT2 or other variants).

HEX files for UIRT
10mhz ver 1.22
04mhz ver 1.22
Protocol description

NOTE 1 : this HEX files are only for original UIRT hardware not for other variants (like UIRT2).
NOTE 2 : program in this HEX files is compatibile with UIR (IR-OK) protocol .

Source code (asm 4Mhz version)
UIRT 1.22 4Mhz (asm)
Protocol description

Code provided is educational purpose only, and no commercial use is alowed without my premissions.

Remote Code View

Remote Code View is Win. application that displays how IR code looks like. I found it very helpful for debuging remote codes.

Screen shoot of main window
Screen shoot of graphic window

NOTE 1 : this application works only with my hex files

Config app

My hex files (programs) for UIRT are trying to figure out which type of code is receiving and automaticly decode IR code. But there are lotsa kinda of remotes and its practicaly impossibile to program UIRT for all of them. So I writed this program with which you can manualy set type of decoding. You can also config UIRT to ignore first x bits or put bit-mask on first byte.

Screen shoot

NOTE 1 : this application works only with my hex files

Test app

This program program can work in two modes UIR & UIRT. In UIR mode program is showing you 6 bytes that are received in UIR mode. In UIRT mode you can grab IR code and re-transmit it.

Screen shoot

NOTE 1 : this application works only with my hex files in UIRT mode, in UIR mode its possible to work with UIR, and UIRT variants.

UIRT on pic16F627

pic16F627 is very similar to pic16F84 so it can be replaced. Major difference is : General purpose registers starts at adress 0x20 (on pic16F84 was 0x0C), EEADR & EEDATA are not longer in Bank0 so rewriting part of code that use EEPROM is maby needed. Practicaly porting pic16F84 code to pic16F627 can be done in couple of minutes. pic16F627 have internal 4Mhz oscilator so with modification of oscilator type UIRT can run without quartz.

Programming software version 1.31 supports programing pic16F627 using UIRT.

Download UIRT HEX code 4Mhz for pic16F627 (ver 1.22)
Download UIRT source code 4Mhz for pic16F627


Girder plugin - for old girder versions

I have removed Girder plugins because they are not compatibile with new versions of Girder. I can e-mail old plugins on request. Also I have lost original source codes so I cant publish them (sorry). Anyways my hex files are compatibile with UIR (IR-OK) protocol so only receiving should work with generic UIR plugin. There is protocol description avaible so you can make your plugin if you like.

Links related to UIRT

Girder - The ultimate windows automation tool
Richard Lynn Owens UIRT page
Luc Degrande UIRT2 - Modified UIRT
Complete Guide to UIRT2

Building notes

As you know pic16F84 that is brain of UIRT can be reprogrammed while in UIRT pcb. To enter programming mode for pic16F84 we need about 13v. But sometimes when voltage is moving from 5v to 13v program-counter of pic16F84 is increment. So our hex file is not programed at starting adress 0x00 but to 0x12 for example.To prevent that is suggest to use modified shematics N#3. If you have already builded original UIRT pcb try with schematics N#2.

Schematics N#3 (should work with all pic versions)
Schematics N#2 (smd caps connected to Vcc)

Copyright ©

All files here are free avaible to non comerical purpose. That means for educational and home purpose only.

Any public (free or not) modification and use of content from this page is not alowed without contacting me first.

UIRT hardware is Copyrighted© by Ruud van Gessel ( Holland ).
Copyright ©1999-©2004 Danijel Pticar Mauri, all rights reserved.

Serial port communication routines (asm) for pic16F84

Maby some timings are not very accurate but it works . (used in UIRT project)

9600bps - 4 MHz
9600bps - 10 MHz
57600bps - 4 MHz

NOTE : Maximum speed that I was able achieve at 4Mhz was 115200bps, but thats was very tight code, and probably not reliable one.

New Year 2 channel flasher/dimmer - 12v for pic16F84

This I used to add some blinking/dimming stuff to my 12V rotating lamps for NY2003.

The code is in mess (1-2h project), anyways I wanted unusual effects, only interesting part is dimming part where I used pulse wide modulation (PWM) to get effect of fading/dimming .

Download (asm+picture of schematic)

Universal IR lamp switch using pic16F627

Universal IR lamp switcher is IR controlled switch for lamps that can be programmed on most of IR remote controls. Once programmed pressing button on IR remote control will turn on/off lamp connected to IR-switch. To program IR-switch to button of remote control press and hold for 3sec button on IR-switch. After holding button for 3 second lamp connected to IR-switch will go off-on-off-on. Now take your remote and press desired button on your IR remote control. After IR code is processed and saved lamp will go off. Using same button on IR remote control will turn lamp on/off . Short press on button on IR-switch will also turn lamp on/off.

This circuit is taking power supply directly from wall AC power liner (220volts), so touching any part of this circuit while connected to power can kill you instantly.!!!

Triac used here is TIC206 (4A max) can be replaced by MAC97A6 (0.6A max) . Probably any triac with Igt less then 10mA and "off state voltage" greater then 400volts will work. Using IR-switch with lamp of 100watt or more require cooling of triac. For 110volt operation replace 0.47uF/400volt capacitor with 0.1uF/250volt or 0.22uF/250volt capacitor. IR receiver is any 36-38kHz receiver ( tsop 1136/1137/1138, sfh-506-36, sfh-5110-36, etc..).
To program pic16F627 UIRT and programming software 1.31 can be used.


View schematics
Download (pcb+schematics+asm+hex )

All files here are free avaible to non comerical purpose. That means for educational and home purpose only.
Copyright ©1999-©200x Danijel Pticar Mauri, all rights reserved.