HPTalx for the HP 49g+/50g Calculator

HPTalx 1.3.1a

HP 49g+/50g

Rafael Ostertag


Table of Contents
1. Preamble
2. About this document
3. The HP 49g+/50g Calculator and HPTalx
4. Preparing the Kernel for HP 49g+/50g Support
4.1. Kernels before 2.6.14
4.2. 2.6.14 Kernels or later
5. Loading the Kernel Module
5.1. Kernels before 2.6.14
5.2. 2.6.14 Kernels or later
6. Finding the ttyUSB device used by the HP 49g+/50g
6.1. Kernels before 2.6.14
6.2. 2.6.14 Kernels or later
7. Connecting HPTalx to your HP 49g+/50g Calculator
8. Speed issues with HP 49g+

1. Preamble

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


2. About this document

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.


3. The HP 49g+/50g Calculator and HPTalx

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.


4. Preparing the Kernel for HP 49g+/50g Support

Note

This section will not describe how to compile a Linux Kernel. This would go beyond the scope of this document. Please read the README file provided with your Kernel Sources, or see the manual of your Linux Distribution for details about compiling a Linux Kernel.

Note

This instructions are for version 2.6.x Linux Kernels. 2.4.x Kernels provide the same functionality, but are configured differently.


4.1. Kernels before 2.6.14

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.


4.2. 2.6.14 Kernels or later

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.


5. Loading the Kernel Module

5.1. Kernels before 2.6.14

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.


5.2. 2.6.14 Kernels or later

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/.


6. Finding the ttyUSB device used by the HP 49g+/50g

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

	  $ dmesg
	

This can be done as ordinary user. It should produce an output similar to the one showed below.


6.1. Kernels before 2.6.14

	    [...]
	      eth1394: $Rev: 5949 $ Ben Collins <bcollins@debian.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.


6.2. 2.6.14 Kernels or later

	    [...]
	      [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.


7. Connecting HPTalx to your HP 49g+/50g Calculator

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.


8. Speed issues with HP 49g+

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 5949 2014-02-09 18:26:59Z rafisol $