I present
here some personal material for the HP-IL:
- The PIL-Box,
a HP-IL / USB interface. The free ILPer software emulates
a basic display/printer and a mass storage unit on PC using the PIL-Box. Main
usage is to load/save programs from/to PC.
- The PIL-IO
board is a real, self-contained HP-IL device combining a mini HP-IL/GPIO
interface and a simple HP-IL/serial link, to experiment with HP-IL at low risk
and minimum cost. Main usage is to interface the HP-IL loop with electronic
circuitry, such as an Arduino board.
The PIL-Box is a HP-IL/USB translator. It uses NO
OBSOLETE HP PARTS such as the HP-IL chip or the custom HP-IL pulse transformer.
It aims to be an alternative to the old ISA HP-IL board (HP82973A) and to be
compatible with most computers/OS that support USB.
July 2009: First units delivered to users!
September 2009: New batch of PIL-Box, using a mini-USB
connector and a slimmer housing.
The PIL-Box firmware has been improved with new functionalities:
- 115 kbps serial speed support (useful only with the HP-71B, no noticeable
speed improvement with the HP-41C),
- the PIL-Box can now be the loop controller,
- several bug fixes, mainly when used with the HP-71B, which is a powerful
HP-IL controller but quite strict regarding HP-IL protocol compliance.
October 2009: Firmware update 1.4
This firmware update corrects a timing problem when using
the PIL-Box with a HP71B and HP-IL module version 1A. If you are in this case,
contact me for an upgrade. The fix is not need if you are using a HP41 or HP75
as loop controller, or if you have a HP71B with HP-IL module 1B.
February 2010: New ILPer software
The new ILPer version no more requires the
installation of the MS NET Framework and is more robust, thanks to Christoph
Giesselink.
December 2013: The PIL-Box is still available!
I'm still able to provide the PIL-Box or the PIL-IO
board, either fully assembled/tested or as a component kit.
May 2014: Firmware update 1.5
This firmware update provides improved transfer speed. The
gain vs version 1.4 depends on the host system, an average value is about +25%.
Furthermore, there is no need to tune the FTDI driver parameters anymore.
Contact me if you have a PIL-Box with serial number less than P159 and are
interested to update the firmware.
Note: This update is interesting for people using the HP-71B to load large
files (for instance ROM image with ROMCOPY). There is no gain with the HP-41C
since this machine is really very
slow…
November 2015: Firmware update 1.6
This firmware update provides a better support for
managing HP-IL Service Request. This will be needed for future virtual HP-IL
devices such as a remote HP-IL keyboard or a close emulation of the HP82162
HP-IL printer. Contact me if you need this update.
February 2016: PIL-Box and PIL-IO firmware versions
2.0
The PIL-Box and PIL-IO are now using a new microcontroller
and the firmware has been updated accordingly. There is no functional change,
the PIL-Box and PIL-IO firmware versions 2.0 have the same functionalities as
the PIL-Box firmware 1.6 and PIL-IO firmware 1.2 respectively.
April 2016: PIL-Box firmware update 2.1
This firmware update for the PIL-Box provides a
support for a faster communication speed at 230 kbps, for use with ILPer 2.2 or higher. The 9600 baud
speed is no more supported by the PIL-Box.
Users of PIL-Box with firmware 1.x can upgrade to 2.1 by changing the
microcontroller, no modification of the board is needed.
The performance gain at 230 kbps vs firmware 1.5 is about 40% using the HP-71B.
There is no gain with the HP-41C since this machine is really very slow.
February 2019: The PIL-Box is still available!
There is no firmware update planned but I still
support the PIL-Box and PIL-IO board. Contact me for
details.
March 2020: PIL-Box availability on hold
The PIL-Box will be unavailable for an undefined
period of time. Resources have been updated in the support documents for DIY
projects.
June 2020: The PIL-Box is available again!
November 2020: PIL-Box availability on hold
The PIL-Box is unavailable again due to the second
lockdown in Europe. Hope to resume soon...
June 2021: The PIL-Box is
available again!
In the future, assembled units may be available in
limited quantity and with longer delays, so if the PIL-Box/PIL-IO component
kits are suitable for you, it will be faster to get them.
November 2023: The PIL-Box is available, now with 3D
printed panels!
The PIL-Box is available again, in small quantity
batches (i.e. somehow longer delay).
Now, the front/back panels (USB/HP-IL sides) are 3D printed, avoiding the
burden of making the openings.
See here for a detailed description: 3D printed
panels for the PIL-Box.
August 2024: End of PIL-Box availability
After 15 years of PIL-Box availability, I sold my last
batch and I will not make new units.
This is not the end of the PIL-Box, a new design is on-going, but the new
PIL-Box will not be available from me.
I will update the documentation soon on my site for DIY projects that are still
possible and allowed based on my original design.
The USB PIL-Box board
The PIL-Box parts
The board installed inside the housing,
with HP-IL cables attached
PIL-Box Setup Notes
: Connection of the HP-IL cables to the PIL-Box (pdf file – Sept 2009)
PIL-Box Kit :
Description of the component kit to be assembled (pdf file, for use with
firmware 2 - Feb. 2016)
The PIL-Box is designed to work with the ILPer software.
The PIL-IO board shares almost the same hardware as
the PIL-Box but has a different usage with a dedicated firmware.
The PIL-IO board provides 4 digital input/output lines
and a serial link (UART type, logic level) to the HP-IL loop. It can be driven
by any HP-IL controller such as the HP-41C or the HP-71B.
The PIL-IO board is intended to be used by electronic
hobbyists and aims to be a substitute to the old HP82166A converter to
interface the HP-IL loop to electronic circuitry.
Note that there is no USB port nor housing, and that
an external 5V power supply is needed (3 x AAA batteries work as well).
PIL-IO presentation
General presentation and demonstration at the Allschwil
meeting (Nov. 2014),
including an example of connection
with an Arduino board. The Arduino sketch used during the demo is here.
PIL-IO board documentation
Description of the PIL-IO board and instructions for use (pdf file – Feb.
2016)
> Is a component
kit available?
Update Aug. 2024: The PIL-Box/PIL-IO component
kits are no more available.
> Will the PIC
source program be released?
Update Aug. 2024: I'm providing the source
program of the PIL-Box version 1.6 (the last firmware for the PIC 16F628A MCU)
which has used for several PIL-Box batches up to early 2016. It works well with
the HP-41C and HP-71B (and other HP-IL machines as well), it provides the
enhanced transfer speed (1.5 and later), the advanced service request
management (1.6 and later), but not the fast 230 kbps communication speed (2.1
and later that are using the PIC 16F1826 MCU).
> What software
will support the PIL-Box?
The ILPer
software (source files included) is freely available, my wish is that ILPer will be the basis for people to develop applications
to support the HP-IL.
> Is a special
driver needed?
The USB PIL-Box uses a FTDI chip. The drivers are
available at FTDI Web site,
they are free, well supported and available for most Operating Systems.
> Is an external
power supply needed?
No, there is no need of external supply for the USB
version. The PIL-Box is powered from the USB cable.
> How is the
PIL-Box connected to the HP-41C/HP-71B/HP-75C?
The HP82160 HP-IL module is needed for the HP-41C. For
the HP-71B, the HP82401 HP-IL module is needed as well. For the HP-75C/D, the
HP-IL is built in the machine. One single HP-IL cable (not provided with the
PIL-Box) is also needed to make the connection to the PIL-Box; this is done by
cutting the HP-IL cable into two halves and attaching it to the PIL-Box screw
connectors as indicated on the pictures above. No soldering is needed.
> Can the PIL-Box
be connected to the HP-41C (or to the HP-71B) without the HP-IL module?
The answer is no.
> Can the PIL-Box
be used to access a USB key or other USB devices from a HP-41C or HP-71B?
No, the PIL-Box has no host capability. It can only be
used as a USB device communicating with a host (usually a PC).
> Can the PIL-Box
be used to access HP-IL from a HP50G for instance?
The PIL-Box has no host capability. It can only be
used as a USB device communicating with a host (usually a PC).
> What is the difference between the PIL-Box and
the PIL-IO?
The PIL-Box and PIL-IO share almost the same hardware
with different firmware and usage:
The PIL-Box is a HP-IL / USB interface that is used to connect the HP-IL loop
to a PC. Main usage is to load/save programs from/to PC.
The PIL-IO board is a real HP-IL device providing digital I/Os
and serial link to the HP-IL. Main usage is to interface the HP-IL loop to
electronic circuitry.
> Can the PIL-Box be used to control a
HP-IL instrument (such as the HP3468 or HP3421) from a PC?
Yes, an example of software code is provided below: ILCtrl
is a simple example in Visual Basic controlling HP-IL devices.
I don't provide a complete solution, but you can use this code freely to build
your own application depending on your needs.
> Is a special
software needed on the HP41 (or HP71, or HP75) side to load/save programs on PC
with the PIL-Box?
No, you just need to use regular HP-IL commands
(HP-41C: from the HP82160 HP-IL module, HP-71B: from the HP82401 HP-IL module).
> Is there any
support of the PIL-Box for Linux or OSX?
The PIL-Box itself is fully supported using the FTDI
drivers.
For the ILPer software, there are solutions available for Linux or OSX, see below.
> The PIL-Box
doesn't seem to answer to the FINDID/ID/AID (HP-41C) or DEVADDR/DEVID$/DEVAID
(HP-71B) commands. Is there an error?
The PIL-Box itself is only an interface or translator
and doesn't respond to these commands. The ILPer software on PC side must be
running to get answers to these commands.
The PIL-IO is a real HP-IL device that answers to these commands.
> Can the PIL-Box
work with the Portable or Portable Plus computers?
YES! See my Portable
Plus page.
HP-IL / Serial translator
– technical description (pdf file – Oct. 2008). This file
documents the basis of the PIL-Box principle.
PIL-Box
schematic (full) (Nov. 2008). Complement to the technical description.
PIL-Box advanced
notes PIL-Box advanced information and limitations (pdf file – March
2018)
PIL-Box firmware hex and
source files (for documentation and DIY projects only, see readme file -
Nov.2015)
PIL-IO firmware hex and
source files (for documentation and DIY projects only, see readme file -
May 2014)
How to
solder the HP-IL cables on Etienne Victoria's site (alternative to the
screw connector)
Custom
PIL-Box modification with a HP-IL connector panel (Raymond Del Tondo - Jan. 2020)
DIY
HP-IL Device Connector A 3D printed solution for the PIL-Box (Duncan
Burgess-Parker - April 2020)
Using pulse
transformers A DIY modification
of the PIL-Box - Sept. 2020
PIL-IO Interfacing A custom PIL-IO modification and
installation in a box (Duncan Burgess-Parker - April 2021)
3D printed panels for the
PIL-Box A PIL-Box user created
3D printed panels and released his design to public domain (thanks to him -
October 2023)
ILPer is a HP-IL peripheral emulator using the
PIL-Box. It provides an emulation of a mass storage unit and a generic
alphanumeric non-graphic printer. It also provides a HP-IL scope that was very
useful to test the PIL-Box and identify some tricky problems.
I originally wrote ILPer in Visual Basic to support
the first PIL-Box users.
Later on, Christoph Giesselink ported my sources with several improvements to
Visual C.
The latest version of ILPer is available on Christoph's
site:
HP-IL Page of Christoph Giesselink
Christoph's version doesn't require the installation
of the quite big MS NET Framework that was needed for my Visual Basic version
and provides several fixes and improvements:
the ILPer window can be minimized and restored without problems,
the COM port can be selected from a list of available ports,
there is a "open file" button to select the disc image file,
and finally the settings (COM port and speed, image file name) are saved.
New: versions 2.x now provides two mass storage units, the
basic generic printer and the DosLink interface for
easy file import/export.
New: version 2.2 now supports the
230 kbps com speed (for PIL-Box 2.1 and later) and uses automatic speed
detection (no more manual com speed settings).
Using the DOSLink device (ILPer 2.x):
This Allschwil 2014 meeting
presentation explains how to use the Doslink device with Emu71, but is also applicable to a
real HP-71B and ILPer.
My Visual Basic
version is still here for documentation:
ILPer – Version 1.35 - VB version
(zip file)
ILPer – Installation and Documentation my
original documentation (pdf file)
I'm a quite unexperienced Windows programmer (I prefer
to program calculators or microcontrollers), so I chose Visual Basic Express
Edition (a free language) to quickly build a Windows application to support my
PIL-Box. I used the HP-IL code taken from my Emu41/Emu71 emulators, but ported
from C to VB.
Source files are included. You are welcome to improve
the ILPer software, or write completely new software to support the PIL-Box.
I didn't document yet the details of the protocol between ILPer and the
PIL-Box, but it is very simple and can be understood by looking at the source
file MainForm.vb.
Historical note: this ILPer
version is a reincarnation of my ILPER
software I wrote initially in the mid 80's on my 6502 system (based on a OSI Superboard
2 computer with personal extensions) equipped with a custom HP-IL board, to emulate mass storage
and display units for my HP-41C and HP-71B...
Support of Linux and OS X users:
Linux:
ILPer has been ported to Linux by Christophe Gottheimer:
ilper/linux 1.35.2 available
in the hp41.org
Utility Library.
(You may need to register – it's free – to download ilper/Linux from hp41.org)
Running ILPer on OS X:
The procedure to run ILPer on OS X systems has been
described by Juergen Keller here:
Make
PIL-Box ILPer program run on OS X in the old HP
Articles Forum of the Museum of HP Calculators.
See also this more recent discussion: Mac OSX and PIL-box
ILPer Python version:
A Python version, potentially running on Windows,
Linux and Mac OS/X is available here:
pyILPer
: Virtual HP-IL Devices (Python version).
ILCtrl is a demonstrator of a simple HP-IL controller
using the PIL-Box:
The example just above illustrates the use of the
PIL-Box with a HP3468A multimeter, a HP9114A disc
drive and a HP-71B (used in device mode):
The trace window shows the results of the following
actions:
Read the device IDs of the 3 devices,
then put the HP-IL devices in remote mode,
then take 3 measurements from the HP3468A,
then send a "HELLO PILBOX" message to the HP3468A display,
then read the status byte of the HP9114A (no disc was inserted),
then send a "beep" command to the HP-71B (the HP-71B wakes up and
beeps!),
then send a "off" command to the HP-71B (the HP-71B turns itself
off!),
then clear all HP-IL devices (HP3468A display returns to default mode).
ILCtrl
– Version 1.05 (zip file)
– Jan. 2019
Source files (Visual Basic) are included. It
illustrates how easy it is to implement basic HP-IL controller capabilities on a
computer using the PIL-Box, it's actually easier than to implement device
capabilities.
A version in C++ is available on the HP-IL Page of Christoph Giesselink
ILvlif is another demonstrator of using the PIL-Box to
control a HP-IL mass storage unit.
ILvlif allows to access LIF-formatted media using the
PIL-Box and a HP9114 or HP82161(*) drive. It displays
the information from sector 0 of the tape or disc and the content of the catalog. Most LIF file types used by the HP41, HP71, HP75,
HP series 80 (HP85/87), and HP9000 (series 200/300) Basic and Pascal
workstations are recognized.
(*) the HP82161 cassette unit has not been tested.
Version 1.1 now has a command to make an image of a
LIF disc, to save old physical LIF discs to image files for use with ILPer.
It supports the 230 kbps com speed with PIL-Box firmware 2.x (recommended).
ILvlif
– Version 1.11 (zip file)
– Dec. 2016
Source files (Visual Basic) are included.
http://en.wikipedia.org/wiki/HP-IL General description of HP-IL
http://www.fortitudine.com/~coryc/html/hpil.html An overview of HP-IL
http://www.hpmuseum.org/software/swcdp.htm#op
Documents related to HP-IL on MoHPC's DVD, including
HP-IL specifications
http://www.hp41.org/HPIL.cfm Extensive HP-IL documentation, including detailed HP-IL specifications
http://www.hp-collection.org/hpil.html
Collection of HP-IL devices and interfaces
http://www.hpmuseum.org/forum/thread-11437.html The HP-IL Compendium by Sylvain Côté (highly recommended)
http://hp.giesselink.com/hpil.htm HP-IL Page of Christoph
Giesselink (highly recommended)
http://www.mh-aerotools.de/hp/hp-il/index.htm
How to Make Your Own HP-IL Cables, by Martin Hepperle.
Joseph Horn/Online
LIF Disk Project The OnLine LIF-Disk
Project (O.L.D.). See the presentation video here by J. Horn himself
(2014).
HP-IL Files: Where, What, Why, How,
etc. Article on the MoHPC (2000)
How fast is HP-IL
? My presentation at the Allschwil 2016 meeting (pdf)
HHC14_HPIL.pdf
Bob Prosperi "Virtual Loops, PILs and LIF" presentation at the HHC
2014 Meeting (pdf). See the video here.
HHC 2009 HPIL.pdf
Egan Ford "HP-IL 2009" presentation at the HHC 2009 Meeting (pdf)
Control the World with HP-IL - The Friedman Archives (1987)
HP-IL
Update - Jim De Arras, Atlanta
Conference (1985)
http://www.hparchive.com/Journals/HPJ-1983-01.pdf HP Journal issue on HP-IL (Jan. 1983)
http://www.hpmuseum.net/document.php?catfile=196 "The HP-IL System, an Introductory Guide"
(1982)
http://www.hparchive.com/Bench_Briefs/HP-Bench-Briefs-1982-03-04.pdf
"New HP Interface Called HP-IL" (1982)
If you want to have more information on my HP-IL
activities, please contact me :
J-F Garnier, 2024