HP 82165A HP-IL/GPIO Interface VS HP 82164A HP-IL/RS-232C Interface VS HP 82166A HP-IL Converter



I need to connect my HP41cx to an Arduino through HPIL. I have seen many people on this site using one of these HPIL peripherals to control external devices. I just want to know the difference because they all seem to serve the same purpose (connecting to external devices).

Thanks in Advance,



HP62164 = serial interface, AC powered
HP82165 = parallel bus, AC powered some control lines missing
HP82166 = parallel bus, DC powered including trigger control line
my prefered solution
please also review to PIL box

Best regards - Christoph


For RS-232 there is also the FSI-164A which is almost identical to the HP 82164A (including the HPIL commands and registers) except it came with two RS-232 channels standard (instead of just one) and optionally up to eight channels, and it also had a battery-powered option. I got the FSI-164A instead of the HP unit and was always happy with it.


Which would be best for Arduino communication?


RS-232 is generally slower than parallel, but in this case the speed of the HP-41 will be the limiting factor anyway so it doesn't matter. RS-232 requires fewer connections (a minimum of transmit data and receive data, two wires, not including ground), so I would go that way if the Arduino has RS-232 capability (including the line drivers and receivers). The 164 gives you the RS-232. The 165 and 166 are parallel.

On a note that is related and probably of interest on the Arduino but not directly applicable to the 41, synchronous serial (as opposed to asynchronous serial like RS-232) interfaces are very popular today for communicating across a PC board (not so much across a room) because they require fewer connections than parallel interfaces, and the fewer pins on the ICs also means you save board space. When you're breadboarding, it also means less labor.

Dallas' 1-Wire interface puts the clock and bidirectional data and sometimes even power on a single wire, but it is very slow, timing-critical, and really only suited for something like digital thermometers which can't change fast so there's no sense in requiring fast communication. Still, each device has a unique address it responds to, and you can have lots on a single wire. It seems extreme to me, taking it a little too far.

I²C uses a clock line and a bidirectional data line, and, although it's much faster than 1-Wire, is usually limited to around a megabit per second.

SPI uses a clock line, data in, data out, plus a select line for every device, meaning at least four lines but one additional one for every device after the first. It sometimes goes over 50 megabits per second, so it's definitely fast enough to store the data on an SD card when you're taking video on your digital camera. Since no line is bidirectional, logic-level translation between different operating voltages is easy too. Microwire is closely related to SPI and Microwire and SPI devices can be put on the same interface.

There are others, but I²C and SPI are the most common, and there are thousands of ICs on the market that you can take advantage of, for things like EEPROM and flash memory, reat-time clocks, relay drivers, keypad scanners, displays, digital potentiometers, A/D and D/A converters, UARTs, USB interfaces, general-purpose I/O expansion, programmable-gain amplifiers, signal generators, etc.-- you get the idea. It's easy to bit-bang these if you have to, but doggone it would be slow to do it on a 41!

Edited: 13 Jan 2012, 2:08 p.m.


What if this was done using a 41CL. Would that make things faster?


I think I have done your project already, see this link ;)

This is based on an ARM processor and uses SPI as the interface between the HP41 and the microcontroller. Sources are in the public domain, so feel free to borrow whatever you like ....



I missed that when it came out. That is stunning work, Meindert! Will you integrate it all into the MLDL2K13?


At least you are optimistic with 2K13 ;)
I seriously doubt if there will ever be a V2 of the MLDL2Kxx. I have played with my newly received HP41CL, and I am deeply impressed, as it can do much more than the MLDL2000. The only thing lacking is a good interface with the PC world (and M2kM Software of course), and I have some ideas to solve that as well.




The library I previously uploaded for you here : "HP82165A arduino library" is for HP82165A parallel interface. This device provides a parallel port thru HP-IL loop. This implementation uses 8 bits bi-directional, plus software acknowledgment. It's not the fastest but it's reliable for Arduino communication.

The HP82166 is a similar device, which few extra capability (mainly automatic loop power up/down signal and external power source capability).


Possibly Related Threads…
Thread Author Replies Views Last Post
  [HP-41][HP-71B][HP-75C/D][HP-IL] Found a mother-lode of programs on ftp.stak.tk rdj 2 1,661 11-26-2013, 05:31 PM
Last Post: rdj
  PIL-box w/o IL cable = paper weight Joe Horn 15 4,884 11-26-2013, 01:05 AM
Last Post: Les Wright
  How to move lexfiles from PC to 71 w/o HP-IL? Joe Horn 9 3,219 10-18-2013, 03:50 PM
Last Post: Christoph Giesselink
  HP 35S: Resistors in Series or Parallel (Portred from HP-33E) Eddie W. Shore 2 1,362 10-14-2013, 05:29 AM
Last Post: R. Pienne
  Interesting Base Conversions - Porting a 1975 HP 25 Program to the HP 35S Eddie W. Shore 1 1,317 10-13-2013, 07:49 PM
Last Post: BruceH
  HP48GX Interface to a PC John W Kercheval 7 2,686 09-29-2013, 10:53 AM
Last Post: John W Kercheval
  Joys of eBay: HP-32S, HP-32SII, HP-42S, HP-16C, ... Sasu Mattila 7 2,473 09-23-2013, 04:39 PM
Last Post: Julián Miranda (Spain)
  HP Prime "Symb" interface (bug?) Han 8 2,400 09-13-2013, 12:48 PM
Last Post: Chris Tvergard
  Hand Held Products RS232 to HP-IL aj04062 11 3,392 08-31-2013, 07:12 PM
Last Post: Paul Berger (Canada)
  HP IL over wifi ... (ILPer & go71b) Olivier De Smet 12 4,034 08-20-2013, 05:44 AM
Last Post: Olivier De Smet

Forum Jump: