I/O of the 41CV


does anybody know, if its possible to read/write
bits or Data directly on the I/O Ports of the 41CV?
I want the 41CV to communicate with other devices/microcontrollers.
Robin Heim

PS:Sorry for my bad English.


Yes, but with a lot of effort.

First, you would have to build circuitry to interface the bit-serial i/o ports to whatever it is you are building.
If you want to control things from a user-level program without also writing your own machine-code functions, you could build a circuit that looks like a memory module mapped into some of the unused address space. Of course, said module would actually have to behave the same way as memory would, and since this process normalizes numbers, you would basically be limited to 48-bit i/o instructions that look like alpha data. You would still need to use synthetics to move the curtain so you could access your memory-mapped devices.

Look at old issues of the PPC Journal, and some work that I have done interfacing to the PIC in http://www.tla.org/hp41/, in particular the mldl.html and pic.html pages in that directory.

What are you trying to do anyway?


The 4 'ports' on the top of an HP41 are basically the (Nut) CPU bus. This is bit-serial and consists of a 2 phase clock, sync line, ISA (Instruction address and data) line, DATA (data to/from user RAM memory), power lines, and not a lot else.
It's possible to add your own circuitry to it, but it's not totally trivial. And once you've done it, you will probably have to write functions in HP41 m-code (machine code) to operate your interface. Which in turn means getting an MLDL or EPROM box (you can't run machine code programs from normal user memory. Period).
There are easier ways to do it if you don't need very high speeds. The easiest is to use the HPIL interface and one of the RS232 (HP82164) or GPIO (HP82165, HP82166) interfaces. The latter is a 16 bit bidirectional parallel port at TTL levels which is fairly easy to link up to
a homebrew project. If you don't have HPIL, then you can hack a wand for input and an HP82143 printer for output, I guess (I've done the former...)


I also recall an article in the PPC journal describing how to hack a Time Module to do I/O.

Using the Wand for input is also described in a PPCJ. Don't ignore the advice to put a diffuser between your LED and the Wand, or you'll burn the phototransistor.

You may also want to use the IR module for output -- the IR stream it outputs is the same as with the other HP calculators (so they can drive the thermal IR printer), and the protocol has been extensively documented elsewhere (like in hpcalc.org).



Yes, you can use the test points on the timer chip for I/O (either the solder pads on the board in at time module, or the pins on the DIL package in a fullnut CX). You cna do things like start and stop the stopwatch automatically or trigger a device when the alarm goes off. But it's not that useful
for general-purpose I/O. BTW, does anyone know if the testpoints in the halfnut CX are accessible, and if so, where they are on the 'enhancement assembly' module?
As regards hacking the wand, I am not at all convinced that missing out the difuser will damage anything. A normal LED is not going to emit enough light to damage the photodiode, and the internal wand electronics is a pretty simple op-amp circuit that is going to be very hard to damage. But anyway, when I said 'hack the wand', I meant it. As in cracking open the interface
module and soldering an opto-isolator chip inside. That avoids any risk of damaging the wand.
The problems with the IR printer module are firstly that it's hard to find and secondly, I don't find the IR printer interface that reliable. I use an 82440B with my LogicDart and it generally takes a couple of attempts to get the units lined up well enough to print properly. And doing it when handholding either part (you've not seen my workbench...) is painful. I much prefer a wired interface.


For quite a long time I am looking for the protokoll of the IR module for a) transfer data to "my" HP200LX and b) to understand it's internals as it loops in my coconut-emulator. Even here in the HP-Museum there is somewhere a paper about the 'Red Eye' but it was no help - for me - to transfer any data to other devices than an IR printer.

TIA for any hint.



See ebay:


I have not had a chance to try it out, but it seems fairly simple (except that I need to put the 5.25 unch disk in my 3.5 inch drive).


For simple output, if it is enough for you, it is simple to pick the pulse train to the piezo speaker and decode the TONEs by counting the pulses sent out for each case. See my article in the Memories Forum.


Without any risc for the internal HP-41 hardware interfacing is possible by using the HP82166A IL-Converter. I developed the I/O-Board and now the IL2000 System for making possible advanced control and measurement applications with HP-41 handheld computer. Both interface solutions are dc powered, have modular designs and run with user code software plus some synthetic command lines. SDifferent hardware applications exist like 16 bit parallel digital I/O ports or multichannel analog I/O with 12 bit resolution. Two manuals describes this interface systems, the I/O-Board manual have over 300 pages and the IL2000 Manual have over 150 pages. May be, both publications are the nicest HP-41 books from newer time...
Best wishes from Hildesheim / Germany - Christoph Klug


I seem to remember (from the PPC ROM manual, etc) that there was a project called a 'Bender Coupler' which fitted on the back of the HP41, and extracted the signal from the beeper (either by capacitive or accoustic coupling?). Does anyone remember these, and even more importantly, does anyone still have a schematic?


I love it! Like in movies, when we hear computers communicating in "machine code"!


At least in my case, I choose to solder two wires to the beeper, and I fitted a small connector in the batteries "tunnel". A picture appears at the end of my article "Calculator Memories from Argentina" in the Memories forum (MoHPC). Then I counted the number of pulses using regular CMOS parts, and, later, a RCA 1802 COSMAC microcomputer prototype. As the TONEs are similar in duration, but different in frequency, the number of pulses sent was a reliable indication of which TONE have been executed. BEEP was an extra option, as the many synthetic-programmed TONEs were (for the synthetic tones, the duration wasn't constant).

Forum Jump: