Newsgroups: comp.sys.handhelds

In comp.sys.handhelds, dunguyen@ecs.umass.edu writes:

> ... , but I just can't transfer
> anything between my PC and the HP.  I use Procomm Plus.  
> ...  is there something I forgot to do, or some thing
> that I did wrong?  Please help me...      later.... Duc

Once more, here are some notes that may help you:

-------------------------------------------------------------------------

... I've gotten ProComm (not even ProComm
Plus!) to talk Kermit to HP48, HP95, Atari ST(UniTerm and just-plain-Kermit), 
HP9000 (C-Kermit) and various BBS's all over the place.  I highly 
recommend ProComm to anyone who uses a PC.  You may even want to spend some
Real Money and buy ProComm Plus or ProComm for Windows.

BTW, ProComm isn't free.  It's shareware.  Please pay up (unless your 
company has a site license for it).

Now, back to the original question, posed by rabagley@uceng.UC.EDU (Ross A 
Bagley):

> The difficulty came when I tried to download asc to my HP48.  Nothing happened
> on the HP48 end of the deal.  I was using the ProComm ver ? as a kermit client.
> I had my cable (homemade) plugged into the serial port and the HP48 sitting
> as a kermit server.  ProComm never got the first packet past timeout.

Time to do some diagnostics.  

(1)   Start up ProComm, and get everything configured correctly.  I normally 
      use:
	COM1
	9600,N,8,1 (9600 baud, no parity, 8 data + 1 stop bit)
	no handshaking (no XON/XOFF, RTS/CTS, or ENQ/ACK)
	echo is a "don't care" (I think)
	set the Kermit checksum to type 3 (CRC)

      Set up your 48 to correspond with the ProComm settings:
	IR/wire:	wire
	ASCII/binary:	ASCII
	baud:		9600
	parity:		none 0
	checksum type:	3
	translate code:	3

(2)  Now go to the last page of the I/O menu.  The menu line should read:

		XMIT SRECV STIME SBRK BUFLEN

You will need three of these to troubleshoot your interface:

     XMIT   - Sends the string object on Level 1 out the serial (or IR) port.
            - If the entire string was transmitted succesfully, a 1 is returned
              to Level 1.  If not, then a 0 is returned to Level 1 and the 
              unsent part of the string is returned to Level 2.

     BUFLEN - Counts the number of characters in the input buffer & returns
              the number to Level 2.
            - Returns a 0 to Level 1 if the UART experienced a framing error
              or overrun error; returns a 1 to Level 1 if there were no errors.

     SRECV  - Takes a numeric argument from Level 1, and retrieves that number 
              of characters from the input buffer.  Returns the characters as
              a string to Level 2.
            - Returns a 1 to Level 1 if the SRECV was completed successfully;
              returns a 0 otherwise.

    ( If your serial port is operating normally, then the sequence 

      << ... BUFLEN DROP SRECV ... >>

    is useful for reading the entire contents of the input buffer.  You 
    can use ERRM to see what the XMIT or SRECV errors are. )

(3)  Now you're going to check data communications both ways.  First, transmit
     the string "HELLO" from the 48.  Do this by putting "HELLO" on Level 1
     and pressing XMIT.  You should see the word HELLO appear on your PC 
     display.  

(4)  Now, on the PC, type 

	Hi yourself

     and press Enter.  Press BUFLEN on the 48.  You should see a 12 in Level 2
     and a 1 in Level 1.  Press DROP SRECV.  You should see "Hi yourself*" in
     Level 2 and a 1 in Level 1.  (The * in the string is the CR character.)

(5)  If the previous steps were less than successful, then check your CR
     translation settings and your echo setting in ProComm.  CR should 
     translate as CR both directions.  Echo may need to be set to something
     else.

     If the previous steps were not successful at all, then it's time to 
     check your hardware.  For this, you will need a paperclip with one end
     straightened out (also known as a "ThinkJet repriming tool"), an 
     alligator clip, and a voltmeter.

     Here's where we answer your next question:

> 1) The pinout of the HP48 serial port and the 9-pin PC serial port.
>     (I lost my earlier pinout, and I would like to check my cable.)

PC end of the cable:

		    5       1
		  -------------                   5 - SGND
		  \ o o o o o /                   3 - TX (data out from the PC)
                   \ o o o o /                    2 - RX (data into the PC)
		    ---------
		     9     6

PC interface card:

		    1       5
		  -------------
		  \ o o o o o /
                   \ o o o o /
		    ---------
		     6     9

HP end of the cable:

		  -----------                    1 - SHIELD
		  | o o o o |                    2 - TX (data out from the 48)
		  \---------/                    3 - RX (data into the 48)
		    4 3 2 1                      4 - SGND

HP calculator connector:


     |------------------------------------------------|
     |      |----------------------------------|      |
     |      |     | o o o o |                  |      |
     |      |     \---------/                  |      |
     \______|______ 1 2 3 4____________________|______/ 


(6)  Use the voltmeter to check both interfaces as well as both ends of the
     cable.  Use the paper clip as a probe, when necessary.  You should get
     5 V from the TX line on the PC, and 4.2 V from the TX line on the 48.

     (I don't want to insult your intelligence by reminding you that the
     48's TX line goes to the PC's RX line and vice versa, so I won't. :-)

     Some serial interfaces leave SGND floating, and since the HP's TX signal
     is 4.2 V relative to SGND, these serial interfaces don't know how to 
     interpret the TX signal.  (I've seen this on laptops and on my Unix box.)
     To avoid this problem, you should solder a jumper between SGND and SHIELD
     on the PC end of your cable.

(7)  If you've gone this far and still aren't having any success with basic
     communication, then it's time to find someone on campus who is successful 
     at it, and swap cables/ 48's/PC's with them until you figure out which 
     component is causing the problem.  But by now you *should* have things 
     working fine.

(8)  Using Kermit itself is a piece of cake.  If you've verified that ProComm
     and your 48 can talk to each other but they still won't play Kermit 
     together, please post again and we'll work on that.

> 4) Information on a reliable PD/Shareware solution to my communications
>     dilemma.

ProComm should work fine.  It works for me.

Good luck.

Regards ...

----------

Addenda to my previous response to rabagley:

-  When you're using the VM to check your interface and cable voltages, make
   sure you're checking them open-circuit.  Check the PC serial card with
   no cable connected, and likewise the 48 with no cable connected.  Check 
   the cable plugged into the PC only and then plugged into the 48 only.

-  You may have to press OPENIO (I/O menu, pg.2) on the 48 to get the 4.2 V
   signal.  Remember to press CLOSEIO when you're done.

-  Try using Kermit with the 48 NOT in server mode.  Instead of ProComm 
   telling the 48 what to do, tell it yourself.

That's all.
-- Ray
----------

Good luck to you.

Regards
Ray Depew
Integrated Circuits Business Division
Hewlett Packard Co, Fort Collins, Colorado
rrd@hpfiqa.fc.hp.com
(Not one of the calculator gang.)
Newsgroups: comp.sys.handhelds