iRX 2.2 Prototyping Board

The iRX 2.2 board is a simple but malleable prototyping board for PIC based projects. It features the EEPROM programmable PIC16F84A, an RS232 port and infrared I/O. All of the subsequent projects presume that you have an iRX board -- this is how to make one (or 100). 

Getting Started

To create the PIC based projects described below, you will need a PIC C compiler, a PIC programmer and development environment, and one or more iRX boards. This section describes how to together all the pieces to compile and run a simple program on an iRX board. 

That *#$& RJ11 to DB9 Converter

Which lines to hook to which for RS232 transmission. Assumes you are using part #046-0003 from Digikey. Thanks to Ben Resner for putting this together.
A note on
the following code:

The code in the next four sections was all written for the PIC16F84, using a 10 MHz clock. If you are using this code with the newest version of the iRX board, with a PIC16F84A and a 20 MHz clock, you must do the following:
  • Change #include <16F84.H> to #include <16F84A.H>
  • Change #use DELAY(clock=10000000 to #use DELAY(clock=20000000)

Project: Hello The Hello Project is the cannonical "Hello, world." program, which introduces some of the features of the PIC microcontroller and the PCM C compiler functions that access those features. 
Project: Temperature The Temperature Sensor project shows how you can make analog measurements (such as the resistance of a thermistor) without an A/D converter.

 The basic idea is that the PIC can measure the time it takes to charge a capacitor, from which you can compute the current flowing into the capacitor, from which you can deduce the value of a resistor. 

Project: IrDA The IrDA Project shows how to create an infrared serial link between two iRX boards using IrDA (Infrared Data Association) protocols. 
Project: Sony Remote The Sony Remote Project uses an iRX board to translate between serial commands (e.g. sent and received by your computer) and "Sony" style infrared remote control protocol. Suitably modified, you can use this code to control your computer with your TV remote, or alternatively to control your TV with your computer.

 Here's the source code that makes this work. It's a good example of how you can use the RTCC (aka TMR0) to keep track of time. 

Robert Poor