HP 49g+ Users
HPTalx Copyright© 1999, 2000 by Bruno Barberi Gnecco
HPTalx Copyright© 2001 Bruno Barberi Gnecco and Alen Kovac
HPTalx Copyright© 2005 Bruno Barberi Gnecco and Rafael Ostertag
HPTalx Copyright© 2007 Bruno Barberi Gnecco and Rafael Ostertag
Icons Copyright© 2000 Hewlett Packard and Jean-Pierre Bergamin
This is HPTalx, a HP Calculator<->PC communications program for Linux, initially written by Bruno Barberi Gnecco, extended by Rafael Ostertag and released under the GNU Public License; see the COPYING file for further information. Use it at your own risk; the authors are not responsible for any damage from its use or misuse.
You can get the latest version of HPTalx at http://hptalx.sourceforge.net
This file describes how to make the HP 49g+/50g Calculator communicating with HPTalx. Somewhere around the Linux Kernel 2.6.14 release, a kernel module named hp4x appeared, which makes it pretty easy to make HP 49g+/50g Calculators talking to HPTalx. However, for completeness, the old-style approach is still explained. There might be differences when using HPTalx with 2.4.x Kernels. This is not dealt with in this document.
The HP 49g+/50g Calculators are connected to the PC via USB (well, the HP 50g Calculators can be connected using a serial line as well). Thus, HPTalx relies on the facilities provided by Linux to make the USB connection behave as it were a serial communication port. Therefore, HPTalx needs the Linux Kernel Module usbserial or hp49x, depending on your Kernel version. Those Kernel Modules provide a way to let HPTalx access the HP 49g+/50g via ttyUSB devices.
Compile your Kernel with USB Serial support. Using
# make menuconfig
you will find this option under Device Drivers, USB Support, USB Serial Converter support. In there, mark USB Serial Converter support to be compiled as module and select the option USB Generic Serial Driver. Now proceed configuring your Kernel according to your needs, and compile and install it.
Compile your Kernel with USB HP4x Calculators support. Using
# make menuconfig
you will find this option under Device Drivers, USB Support, USB Serial Converter support. In there, mark USB HP4x Calculators support to be compiled as module. Now proceed configuring your Kernel according to your needs, and compile and install it.
Logged in as root, type on a terminal
# modprobe usbserial vendor=0x3f0 product=0x121
This will load the usbserial module into your Kernel and provide the ttyUSB* devices in /dev/. In case you do not have udev(7) running, those device nodes have to be created manually. Please consult the usb-serial.txt file in the Documentation/usb/ directory of your Kernel Sources on details about creating those device nodes.
Logged in as root, type on a terminal
# modprobe hp4x
This will loadd the hp4x module into your Kernel and provide the corresponding ttyUSB* devices in /dev/.
To find the ttyUSB device node your HP 49g+/50g Calculator is using, plug the data cable into the calculator and a USB port, then turn on your calculator. On a terminal, type
This can be done as ordinary user. It should produce an output similar to the one showed below.
[...] eth1394: $Rev: 1224 $ Ben Collins <firstname.lastname@example.org> eth1394: eth1: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0) Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 parport: PnPBIOS parport detected. parport0: PC-style at 0x378 (0x778),irq 7 [PCSPP,TRISTATE,EPP] usb 1-1: new full speed USB device using uhci_hcd and address 4 usbserial_generic 1-1:1.0: Generic converter detected usb 1-1: Generic converter now attached to ttyUSB0
The last three lines in the example are the ones you have to look for. They state 1) that a new USB device has been found, 2) usbserial takes care of this device, and most important 3) the device, which is your HP 49g+/50g, is attached to a ttyUSB node. To configure HPTalx later, you need to know the ttyUSB port number, which is the one after ttyUSB as shown on the last line of the above example. In this case, it is 0.
[...] [drm] writeback test succeeded in 1 usecs usb 3-2: new full speed USB device using uhci_hcd and address 8 usb 3-2: configuration #1 chosen from 1 choice hp4X 3-2:1.0: hp4X converter detected usb 3-2: hp4X converter now attached to ttyUSB0
The last two lines in the example are the ones you have to look for. They state 1) that a HP 49g+/50g Calculator has been found, and hp4x takes care of this device, and most important 2) the device, which is your HP 49g+/50g, is attached to a ttyUSB node. To configure HPTalx later, you need to know the ttyUSB port number, which is the one after ttyUSB as shown on the last line of the above example. In this case, it is 0.
Starting with the HP 49g Calculator models, HP added native XModem support to their calculators. However, HPTalx 1.2.0 does not support the XModem Protocol. So make absolutely, positively sure you launch the Kermit Server on your HP 49g+/50g Calculator as explained in the README file accompanying this package.
Now it is time to configure HPTalx for using the ttyUSB node. Select the menu item Setup of the File menu to display the Setup Dialog. There, in the Setup Dialog, choose USB (ttyUSB) in the Connection Settings frame. The next step is to tell HPTalx, which ttyUSB port has to be used for communicating with the calculator. This is achieved by entering the ttyUSB port number you get from the dmesg(8) command as described in the above section.
While testing HPTalx, I came across a speed issue with HP 49g+. Neither the upload speed to the calculator nor the download speed from the calculator were satisfying. This issue was resolved after a ROM Update to the latest version, which was version 2.0 at the time of this writing. Unfortunately, you cannot use this release of HPTalx to update your calculator ROM, so you still need a friend with a M$ Windoze box.
Another speed issue: The download from the calculator is much faster than the upload to the calculator. But I guess you can live with that as a trade-off being able to transfer data between your HP 49+ Calculator and Linux. Please let me know if you find a solution to this issue.
$Id: hp49gplus.shtml,v 1.5 2007/09/20 16:23:21 guengel Exp $