Convert an HP C4103A Infra red module for use as a PC IrDA port.

The C4103A infra red module is intended for adding IrDA communications to certain Hewlett Packard printers which don't already have this facility built into them.  These modules are often left lying around the office unused, and as such can be picked up for next to nothing and slightly modified to act as an IrDA port for your PC.  It will only be of use if your motherboard has a IrDA connector, which most do.

I take no credit at all for the technical aspects of working out the necessary modifications, they are all down to the following two web pages:

http://212.188.112.5/kengaru/index.php

http://www.infrarotport.de/mobo/asus_hp-c4103a.htm

Now unless you are very good at German and Russian, you will have spotted the problem with those pages.  So I am simply setting out what you need to do to achieve the result of being able to use the C4103A module with a standard modern motherboard which has an IrDA connector.  I recommend looking at the above two pages for extra information which I don't necessarily supply here.  The latter one will go through the Google translator to give a fairly readable page.

Typically, the connector will have the following pinout.  This certainly applies to Asus and Abit motherboards, so is likely to be reasonably standard:

The cable of the HP C4103A is an 8 pin mini-Din connector, and has most of the functions we require, but not the single ended TxD (transmit data) required:

Pin Number Signal Name Typical wire colour 
1 (active high input) -SIGNAL_DETECT Pink
2 (single-ended driver) RX_FIR Green
3 (TP, pins 3 and 6) -TX (Transmit Data) Light blue
4 (TP, pins 4 and 7) PWR_GND Yellow
5 (Receive Data Gnd) -RX_FIR White
6 (pulse = data 0) +TX (Transmit Data) Orange
7 +5V_POWER Purple
8 (pulse = data 0) +RX_FIR Black
8 Pin Mini-Din Plug
-------------------

This is the plug pin view of the mini-Din plug.

	   2   1
	   +   +

	5+  +4   +3

	   + + +
	   8 7 6

As the above web links show, we need to make a small wiring change to add the required signal, from a point connected to pin 7 of the IR transceiver unit, to the pink wire from the unit.  The first, surprisingly tricky thing to do is open the C4103A unit.  There are probably four screws holding it together, though you won't see any of them!  Two hide under the small rubber feet at the cable end of the module, the other two under the large black label in very offset positions.  

Remove these, take the unit apart, carefully noting how the cable support has notches in one side which sit in grooves of the case when re-assembled.  Some units have different screw positions and quantities, some have different wiring colours, and some have a different PCB payout such that you may need place your wire in a different position (see later).

Solder a wire  as shown, from the resistor RX1 (end towards IR module):

Run the wire down to the underside of the PCB, connector pin1 (typically a pink wire).  If you wish to carry on also using the module for its intended application with HP printers, you should find space to fit a small toggle switch so that you can isolate the new wire.  Most people don't wish to do this and simply run the wire as shown:

We have not disconnected the existing circuitry connected to pin 1 of the PCB.  Since this is an input to the green LED on the HP C4103A, we are allowing this LED to illuminate whenever data is transmitted.

Here we have an alternative version of the module.  It has only 2 screws (under the info label at exact same spots as the version above), no foil shielding, and the PCB has a different layout.  The mod is to solder a wire (here a white one) from the RX1 resistor (at the side of the IR transceiver) to PIN 1 of the JP2 header (which is marked with a white square). Information kindly supplied by "fossalta (at) xs4all (dot) nl".

Reassemble the unit.  Now you have the problem of connecting to the motherboard.  You have a choice here.  You can buy a 8 pin mini-Din panel mount socket from RS Components etc, and carefully mount this into a blanking plate for the back of your computer.  Then wire the pins thus, from a 5 pin female header connector to the back of the 8 pin mini-Din socket:

Mini Din Pin Number Signal Name Motherboard header pin
1 Now our TxD pin 5
2 Rxd 3
3   -
4 GND 4
5   -
6   -
7 +5V_POWER 1
8   -

RS Components do the sockets, in multiples of 5, part number 183-1805, and pins for them are 183-1811 in multiples of 10.  If, like me, you thought it too expensive to source an individual 8 pin mini-Din socket, then use an alternative connector.  I chopped off the 4103A plug, and wired it instead to a 9 pin D connector plug, pin for pin, and also connected the cable screen to the plug body.  I then found a scrap ISA card with a convenient end plate already punched out for this size of connector, i.e. an old graphics card.  I stripped off the PCB leaving me with just the end panel, onto which I fitted a 9 pin D connector socket, and performed the same wiring as above. 

My first attempt at making it run was a flop, because Abit didn't make it terribly obvious which was pin 1 of the IrDA connector.  Once this was correct, we could start on the software.  I told the BIOS to enable the IrDA port as HPSIR rather than ASKIR (latter didn't work).  This also had the unfortunate consequence of disabling the COM2 serial port.  Then I let Windows XP detect the IR port.  Now if I put my horrible little Compaq LTE5100 laptop in front of the HP C4103A module, the green light on the module would flash, and the two machines announced that they were within range of each other ("Colin's laptop is in range" and "Colin's XP1600 is in range", which are the machine names).  

Settings

I came unstuck in terms of real data transfer between the two at this point, because XP can only install a network with another PC which runs Windows 98 SE or later, and my old laptop was stuck on Windows 95 SE due to a lack of memory.  No doubt I could install the necessary networking manually on the laptop but that was starting to be hard work. The laptop however can also print to my HP Laserjet 6P printer via IrDA, and program a Nokia 5210.  But when the printer was put in front of the C4103A, though the LEDs flashed, Windows XP did not report hardware was in range.  Neither would Windows XP see the Nokia phone.  So ultimately, though I had got the system to work to some extent with the laptop, I was unable to get the important stuff to work.  Perseverance paid off though, I went back to PC's setup BIOS and selected Half Duplex type HPSIR, and hey presto, communications were established with Nokia 6100 and 5210 phones.  Limiting connection speed to 19200baud in Windows XP settings helped reliability hugely.  So in conclusion, I would recommend using the following parameters:

Setting type Version I had Value As opposed to
BOIS setting: IR port Abit  / Award HPSIR ASKIR
BIOS setting: Duplex Abit / Award Half Duplex Full Duplex
Windows Irda port setting: Maximum connect rate Windows XP 19200 baud 115200

A reader of this article told me:  "The device worked. My BIOS setting was set to IrDA, as ASKIR did not work. I don't have a setting for half duplex/full duplex.  Not only that, the connect rate worked on 115200, 57600 and 19200 baud. I used Logomanager to upload logo, ringing tone and screensaver on my Nokia 5210 using the different baud mentioned. My system is ECS K7S5A motherboard, AMD Athlon 1000, Windows XP."  

Another reader reported "In the BIOS I have the following options: RxD/TxD = Hi/Lo , Rx/Tx= Lo/Hi , Rx/Tx=Lo/Lo and Rx/Tx=Hi/Hi.  It only works with setting Rx=Lo"  So different settings are worth experimenting with if you find that communications are unreliable or you get strange errors.  Another reader says "It works at 115200 bps on a Asus A7V333, Windows XP".

Another reader again, uses one with the following motherboard: MSI K7N2 Delta.  Settings:
UART mode - IrDA
RxD/ TxD - Lo, Hi
IR Transmission Delay – Disabled
UR2 Duplex - Half
Use IR pins - IR-Rx2Tx2
Speed (WinXP) - 19200
Works great with Nokia 6200 with its transfer software

Another reader had a problem with the adapter getting hot, but found a solution in the BIOS:  "In my award bios there's an entry :  TX,RX Inverting Enable, with 4 options [no-no; no-yes; yes-no; yes-yes].  RX MUST be set to yes to let adapter work on winXP.  What I have found is that when RX inverting is enabled, the adapter works the same way it does when is not enabled, BUT the irda bulbs get very very warm.  So,bios settings for me are NO-YES  It's a terrible AZZA 694TXL :) I use it for ordinary work, P3 600 Mhz (socket 370) 2x256 ecc sdram On winXp sp2 I can make the adapter work at 57600bps (!) In bios, HPSIR and HalfDuplex as you suggested on your webpage "

For now, I hope you find this information helpful.  DISCLAIMER: Colour codes shown may vary.  No responsibility is accepted for any damage caused, if you wish to try this experiment then it is entirely your own responsibility.  You will need to be competent at soldering and fine work.  THIS INFORMATION IS SUPPLIED AS-IS, NO RESPONSIBILITY IS ACCEPTED FOR ANY CONSEQUENTIAL DAMAGE, LOSS, INJURY OR MISHAP, HOWEVER CAUSED.  Do not start to dismantle any equipment unless you are certain you are capable and have an understanding of electrical safety.

USB

I've had a number of emails asking if the HP C4103A module could be adapted for use with USB, and I have to say that this really would be far too much like hard work.  Instead, buy a ready-built USB to IrDA adaptor from the good people at SVP communications, for around £12.69, their part number "5055",  I use one of these with my latest laptop. 

SVP Communications - The Shop for Blank Discs

 

Colin McCormick, colin99@bigfoot.com September 2006.

Back to my web pages.

Total site visitors since Jan 2005:


See my video to DVD copy service, offering transfers of  Betamax, VHS, S-VHS, Video2000,Video8, Hi8, Digital8, miniDV,micromv, Betacam, N1500, N1700 and more: www.video99.co.uk   

The most affordable and flexible video tape to DVD transfer service in the UK.  A personal service by an engineer with years of video experience.


Sponsored links: