Post Reply 
41CL Self-Update
11-17-2017, 05:25 PM
Post: #81
RE: 41CL Self-Update
(11-17-2017 03:37 PM)Neve Wrote:  This is the first time I’m trying to link and update any CL board.
I received my new V5 a couple of days ago.
I can’t update. I followed the instructions, but when I get to the part where I have to plug the serial connector to the Mac and run the JAVA command line, I get an error message saying something like: “Error opening port com3...”
After a while the calculator displays “TIMEOUT” or sometimes “HR or HS ERROR”, can’t remember which one.

I am doing XEQ CMOPEN before I hit ENTER on the terminal.

What am I doing wrong?

Neve,

There is no port "com3" on a Mac. What you need to do is to find the port where the serial cable is connected. Typically, you would have to search the /dev directory on OS X with the command "/dev/tty.usbserial*" (assuming you are connecting the serial cable via a USB port). You then replace com3 with the address of the serial port. For example, on my Mac, the command to start the JAVA program is:

java -jar clupdate-1.0.0.jar --update rom_files_171106.zip /dev/tty.usbserial-DO002NJS 4800

As you can see, "com3" is replaced by the location of the USB port where the serial cable is plugged in (via a serial to USB adapter), in this case, "/dev/tty.usbserial-DO002NJS". Hope this helps.

Jack
Find all posts by this user
Quote this message in a reply
11-17-2017, 05:30 PM
Post: #82
RE: 41CL Self-Update
(11-17-2017 05:25 PM)jwhsu Wrote:  Neve,

There is no port "com3" on a Mac. What you need to do is to find the port where the serial cable is connected. Typically, you would have to search the /dev directory on OS X with the command "/dev/tty.usbserial*" (assuming you are connecting the serial cable via a USB port). You then replace com3 with the address of the serial port. For example, on my Mac, the command to start the JAVA program is:

java -jar clupdate-1.0.0.jar --update rom_files_171106.zip /dev/tty.usbserial-DO002NJS 4800

As you can see, "com3" is replaced by the location of the USB port where the serial cable is plugged in (via a serial to USB adapter), in this case, "/dev/tty.usbserial-DO002NJS". Hope this helps.

Jack

Yes, I should’ve figured that out. I just blindly copied the command from the tutorial...
indeed I am connected to USB with a serial to USB cable.
I’ll let you know if this works.

Thanks

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-17-2017, 05:34 PM
Post: #83
RE: 41CL Self-Update
Not to hijack this thread, but simply to chime in that I am working on an alternative CL update solution via HP-IL (PILbox & pyilper). From the GitHub repository (https://github.com/isene/hp-41cl_update):

"HP-41CL_update.rb takes HP-41 ROM files from a folder named "roms" and adds those to a LIF file that can be mounted by pyILPer. The pyILPer is a Java program that can mount LIF files so that an HP-41 can access that file via a PILbox. The "roms" folder must reside in the same folder as the HP-41CL_update.rb program."

And from http://www.hpmuseum.org/forum/thread-9456-page-2.html:

"As it is now, you can simply drop the roms in the "roms" folder - but with all the roms ypu want updated prefixed with the three first location numbers. Example: The ISENE.ROM should go to the location "0C9", therefore you rename the rom to 0C9ISENE.ROM and drop it into the folder called "roms". You run the program and you get a LIF imge called cl_update.lif.

The idea is that the user then mounts this LIF image via pyILPer and then run a FOCAL program (yet to be made) on the HP-41CL and go for dinner."

I also plan to create ready-made LIF files for even easier auto-updates.

After member "jsi" (http://www.hpmuseum.org/forum/user-2921.html) at the speed of sound created "romlif" to add uncompressed ROM images to LIF files (to cater for bits 12 & 13 in "modern roms"), the only missing element is an MCODE routine that can read such uncompressed ROMs from mass storage into an HP-41 page (or directy into an HP-41CL RAM page).

As you can see from the code on the GitHub repo, the solution concists of 121 lines of Ruby code on the PC side and only 66 FOCAL lines on the HP-41 side.

I would welcome any and all feedback and suggestions moving forward.
Find all posts by this user
Quote this message in a reply
11-17-2017, 06:59 PM (This post was last modified: 11-17-2017 07:04 PM by Neve.)
Post: #84
RE: 41CL Self-Update
(11-17-2017 05:25 PM)jwhsu Wrote:  Neve,

There is no port "com3" on a Mac. What you need to do is to find the port where the serial cable is connected. Typically, you would have to search the /dev directory on OS X with the command "/dev/tty.usbserial*" (assuming you are connecting the serial cable via a USB port). You then replace com3 with the address of the serial port. For example, on my Mac, the command to start the JAVA program is:

java -jar clupdate-1.0.0.jar --update rom_files_171106.zip /dev/tty.usbserial-DO002NJS 4800

As you can see, "com3" is replaced by the location of the USB port where the serial cable is plugged in (via a serial to USB adapter), in this case, "/dev/tty.usbserial-DO002NJS". Hope this helps.

Jack

Ok, so I found the right port on my Mac. It’s /dev/ttys000.
So now after I type the right command, I get a message on the terminal saying that it’s awaiting a 41CL command....

I do an XEQ CMOPEN which ends up in a timeout, and I can’t do anything until it does.
Then I try to do XEQ CDBIMP and I get IMP 806, which times out after a while.

It’s not working for me...

What’s next??

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-17-2017, 10:57 PM
Post: #85
RE: 41CL Self-Update
(11-17-2017 06:59 PM)Neve Wrote:  Ok, so I found the right port on my Mac. It’s /dev/ttys000.
So now after I type the right command, I get a message on the terminal saying that it’s awaiting a 41CL command....

I do an XEQ CMOPEN which ends up in a timeout, and I can’t do anything until it does.
Then I try to do XEQ CDBIMP and I get IMP 806, which times out after a while.

It’s not working for me...

What’s next??

Neve,

I'm not sure you have the right port selected. Typically, the port is identified as "/dev/tty.usbserial (possibly with the serial number of the adapter)". Can you list what you get when you type "ls /dev/tty.usbserial*"?

Jack
Find all posts by this user
Quote this message in a reply
11-18-2017, 04:19 AM
Post: #86
RE: 41CL Self-Update
(11-17-2017 10:57 PM)jwhsu Wrote:  Neve,

I'm not sure you have the right port selected. Typically, the port is identified as "/dev/tty.usbserial (possibly with the serial number of the adapter)". Can you list what you get when you type "ls /dev/tty.usbserial*"?

Jack

I get nothing at all.
But I do get something when I type “ls -alrt /dev/”
And at the bottom I get ttys000. It’s the only port that doesn’t return an error when trying to use it.
My serial to USB adapter does list in the system profile.
Also, since I do get a message saying “WAITING FOR 41CL COMMAND....”. I’m assuming it’s connecting to the calculator somehow.

I must do something wrong, but I have no clue as to what.

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 04:53 AM
Post: #87
RE: 41CL Self-Update
(11-18-2017 04:19 AM)Neve Wrote:  And at the bottom I get ttys000. It’s the only port that doesn’t return an error when trying to use it.

/dev/ttys000 is your terminal virtual port

The USB-to-Serial interface should be named with the pattern /dev/tty.usbserial*
If you do not see it, then it is normally one of the following:
a) USB port is not working
b) your dongle is damaged
c) driver is not available for your dongle [normal problem]

What version of OSX are you running ? [click on the apple at the top left, then on the "About this mac", report the version]

Sylvain
Find all posts by this user
Quote this message in a reply
11-18-2017, 04:57 AM
Post: #88
RE: 41CL Self-Update
(11-18-2017 04:53 AM)Sylvain Cote Wrote:  
(11-18-2017 04:19 AM)Neve Wrote:  And at the bottom I get ttys000. It’s the only port that doesn’t return an error when trying to use it.

/dev/ttys000 is your terminal virtual port

The USB-to-Serial interface should be named with the pattern /dev/tty.usbserial*
If you do not see it, then it is normally one of the following:
a) USB port is not working
b) your dongle is damaged
c) driver is not available for your dongle [normal problem]

What version of OSX are you running ? [click on the apple at the top left, then on the "About this mac", report the version]

Sylvain

Hi,

I’m using the latest and most up-to-date version of MacOS.
Also, my USB-to-Serial interface is showing in System Profile.
I didn’t install any drivers for it. I just received it yesterday. The CD that comes with it is a mini-CD that my iMac can’t read because of its size.

Peut-on en discuter en MP?

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 09:40 AM
Post: #89
RE: 41CL Self-Update
I finally found and installed the correct drivers from here.
Now I have the /dev/tty.usbserial which I didn’t have before. The adapter shows in the system profile. Everything seems to be okay.

However, I am still having the exact same issue. It does not connect to the calculator at all.

The calc XEQ CMOPEN times out, and I still get “ WAITING FOR 41CL COMMAND...” on the terminal window.

Any help welcomed.

Thanks.

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 12:18 PM
Post: #90
RE: 41CL Self-Update
Well, I guess I’m doomed. I’ve tried everything I know, and nothing seems to be working.

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 12:41 PM
Post: #91
RE: 41CL Self-Update
(11-18-2017 09:40 AM)Neve Wrote:  I finally found and installed the correct drivers from here.
Now I have the /dev/tty.usbserial which I didn’t have before. The adapter shows in the system profile. Everything seems to be okay.

However, I am still having the exact same issue. It does not connect to the calculator at all.

The calc XEQ CMOPEN times out, and I still get “ WAITING FOR 41CL COMMAND...” on the terminal window.

Any help welcomed.

Thanks.

Neve,

To clarify. On the CL side, the MMU is activated and you used SERINI, TURBO, and BAUD to set up the CL for data transfer?

If so, the only other option i can think of is the driver or USB chip of the adapter may not be compatible. I’ve always used USB adapters with FTDI chips as drivers are already a part of the OS. I would think you should be able to connect with adapters using Prolific chips, however, i haven’t tested that myself.

Jack
Find all posts by this user
Quote this message in a reply
11-18-2017, 01:24 PM
Post: #92
RE: 41CL Self-Update
(11-18-2017 12:41 PM)jwhsu Wrote:  To clarify. On the CL side, the MMU is activated and you used SERINI, TURBO, and BAUD to set up the CL for data transfer?

Jack

MMU is activated. I don’t know anything about the other commands.
I just followed the instructions on the CL site:
here.

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 02:10 PM
Post: #93
RE: 41CL Self-Update
(11-18-2017 12:41 PM)jwhsu Wrote:  To clarify. On the CL side, the MMU is activated and you used SERINI, TURBO, and BAUD to set up the CL for data transfer?
For YUPS on the 41CL to work, you do need to have YFNX (or YNFZ) mapped to a port, YUPS mapped to a port and the MMU active, but you do not need the SERINI/BAUD/TURBO functions.
YUPS functions CMOPEN/FLCHK?/CDBIMP/CDBEXP/FLUPD/CMLOSE handle the serial port setup and CL speed by themselves internally.
Sylvain
Find all posts by this user
Quote this message in a reply
11-18-2017, 02:20 PM (This post was last modified: 11-18-2017 02:35 PM by Neve.)
Post: #94
RE: 41CL Self-Update
(11-18-2017 02:10 PM)Sylvain Cote Wrote:  For YUPS on the 41CL to work, you do need to have YFNX (or YNFZ) mapped to a port, YUPS mapped to a port and the MMU active, but you do not need the SERINI/BAUD/TURBO functions.
YUPS functions CMOPEN/FLCHK?/CDBIMP/CDBEXP/FLUPD/CMLOSE handle the serial port setup and CL speed by themselves internally.
Sylvain

So following the instructions from the link I posted above is all I should be doing, right?
But obviously something is not working. I don’t even know what to expect. I’ve never done that before.
After the USB-to-Serial driver installation I do have the /dev/tty.usbserial. So I assume this is working properly. But apparently it is not. I’m clueless (and speechless).

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 03:19 PM
Post: #95
RE: 41CL Self-Update
(11-18-2017 12:18 PM)Neve Wrote:  Well, I guess I’m doomed. I’ve tried everything I know, and nothing seems to be working.
Not yet! Wink do not despair we are far from having done everything possible here.

We are going to validate the serial port and remove clupdate program from the equation.

First thing to do is
  1. insert the USB-to-Serial dongle into the computer
  2. insert the 41CL serial cable into the calculator
  3. connect the the two cables together

The reason we connect the cables first is that sometime the 41CL deactivate the MMU when you plug or unplug the serial cable from the calculator.

On the 41CL setup we use the same setup as Monte v5 update document
  1. XEQ "MMUCLR"
  2. "YFNX"
  3. XEQ "PLUG1L"
  4. "YUPS"
  5. XEQ "PLUG1U"
  6. XEQ "MMUEN"
  7. XEQ "CAT" then 2 -->{ you should see: "-YFNX 2C" and "UPDAT 3A" or "UPDAT 3B" }

Next, the serial update protocol is very simple, the CMOPEN command send the uppercase character A to the serial port and wait for the uppercase character B as a reply.

Here, we will start a serial console from the command line and test if the communication is working between the calculator and the computer.
  1. Mac> start a Terminal session -->{ you should get a command line }
  2. Mac> validate if the dongle is active, type: ls /dev/tty.usb* [RETURN] -->{ you should see: /dev/tty.usbserial }
  3. Mac> start the serial console, type: screen /dev/tty.usbserial 4800 [RETURN] -->{ you should get a blank screen with a fixed cursor at the top left }
  4. CL> type: XEQ "CMOPEN" -->{ you should see COMM on the calculator display and the letter A on the computer screen }
  5. Mac> on the computer type the uppercase letter B -->{ you should see 0.0000 on the calculator display if successful (meaning it has received the reply) or TIMEOUT if not }
  6. Mac> to exit the screen program,
    • press and hold the [CONTROL] key then press the lowercase letter a and release the [CONTROL] key -->{ activate command mode }
    • press and hold the [CONTROL] key then press the lowercase letter k and release the [CONTROL] key -->{ kill active window }
    • on the message "Really kill this window [y/n]" press the lowercase letter y

If the above procedure is not working then you have a communication (hardware or driver) problem.

Sylvain

PS: I will be in and out of the house all day so do not expect fast response time, plus I am 6 hours behind you (GMT-5)
PPS: Je préfère garder, si possible, l'échange en anglais et publique. Le but est de permettre aux autres utilisateurs de 41CL d'avoir une procédure de test supplémentaire.
Find all posts by this user
Quote this message in a reply
11-18-2017, 04:57 PM
Post: #96
RE: 41CL Self-Update
(11-18-2017 03:19 PM)Sylvain Cote Wrote:  
(11-18-2017 12:18 PM)Neve Wrote:  Well, I guess I’m doomed. I’ve tried everything I know, and nothing seems to be working.
Not yet! Wink do not despair we are far from having done everything possible here.

We are going to validate the serial port and remove clupdate program from the equation.

First thing to do is
  1. insert the USB-to-Serial dongle into the computer
  2. insert the 41CL serial cable into the calculator
  3. connect the the two cables together

The reason we connect the cables first is that sometime the 41CL deactivate the MMU when you plug or unplug the serial cable from the calculator.

On the 41CL setup we use the same setup as Monte v5 update document
  1. XEQ "MMUCLR"
  2. "YFNX"
  3. XEQ "PLUG1L"
  4. "YUPS"
  5. XEQ "PLUG1U"
  6. XEQ "MMUEN"
  7. XEQ "CAT" then 2 -->{ you should see: "-YFNX 2C" and "UPDAT 3A" or "UPDAT 3B" }

Next, the serial update protocol is very simple, the CMOPEN command send the uppercase character A to the serial port and wait for the uppercase character B as a reply.

Here, we will start a serial console from the command line and test if the communication is working between the calculator and the computer.
  1. Mac> start a Terminal session -->{ you should get a command line }
  2. Mac> validate if the dongle is active, type: ls /dev/tty.usb* [RETURN] -->{ you should see: /dev/tty.usbserial }
  3. Mac> start the serial console, type: screen /dev/tty.usbserial 4800 [RETURN] -->{ you should get a blank screen with a fixed cursor at the top left }
  4. CL> type: XEQ "CMOPEN" -->{ you should see COMM on the calculator display and the letter A on the computer screen }
  5. Mac> on the computer type the uppercase letter B -->{ you should see 0.0000 on the calculator display if successful (meaning it has received the reply) or TIMEOUT if not }
  6. Mac> to exit the screen program,
    • press and hold the [CONTROL] key then press the lowercase letter a and release the [CONTROL] key -->{ activate command mode }
    • press and hold the [CONTROL] key then press the lowercase letter k and release the [CONTROL] key -->{ kill active window }
    • on the message "Really kill this window [y/n]" press the lowercase letter y

If the above procedure is not working then you have a communication (hardware or driver) problem.

Sylvain

PS: I will be in and out of the house all day so do not expect fast response time, plus I am 6 hours behind you (GMT-5)
PPS: Je préfère garder, si possible, l'échange en anglais et publique. Le but est de permettre aux autres utilisateurs de 41CL d'avoir une procédure de test supplémentaire.
Everything is fine until I need to get the “A” and “B” letters. I have nothing at all. No “A” when I
XEQ CMOPEN, and typing “B” doesn’t do anything, the keyboard is not even responding.
However, the driver seems to be OK as I do have /dev/tty.usbserial

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 06:36 PM
Post: #97
RE: 41CL Self-Update
Maybe the serial connector is defective. I don’t know what to think. Sad

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
11-18-2017, 06:53 PM (This post was last modified: 11-18-2017 07:10 PM by Sylvain Cote.)
Post: #98
RE: 41CL Self-Update
(11-18-2017 04:57 PM)Neve Wrote:  Everything is fine until I need to get the “A” and “B” letters. I have nothing at all.
No “A” when I XEQ CMOPEN, and typing “B” doesn’t do anything, the keyboard is not even responding.
However, the driver seems to be OK as I do have /dev/tty.usbserial

ok, serial communication does not work.

First, the screen application is not configured by default to echo local typed characters on the keyboard, so that you see nothing when you type B is normal.

Second, it would be safe to assume that the USB-to-Serial dongle is working correctly because the drivers sees it.
The only way to be 100% safe would be to use the dongle with another serial device and see if it works.
Another way is to put a RS232 serial tester like this one between the cables and visually monitor if the RX & TX lines operates correctly.

FYI, the 41CL is configured as a communication (DCE) device while the computer is configured as a terminal (DTE) device, this is why you do not need a null-modem adapter between them.
This mean that when the 41CL transmitting the RX led is flashing and when the computer is transmitting the TX led is flashing on the serial tester.

If I were you, I would put my effort to see if the internal serial cable is not reversed and correctly inserted into the 41CL board, I would also inspect the cable to see that no wires has been cut, then I would redo the tests.

Sylvain

edit: typos
Find all posts by this user
Quote this message in a reply
11-18-2017, 10:10 PM
Post: #99
RE: 41CL Self-Update
(11-18-2017 06:36 PM)Neve Wrote:  Maybe the serial connector is defective. I don’t know what to think. Sad

It is possible to test the 41CL serial port. Basically plug in the serial cable and then
connect the TX and RX pins on the DB9 end. Turn on the serial port and send a
byte. Then check the receiver for a received byte. No need to take the machine
apart.
Visit this user's website Find all posts by this user
Quote this message in a reply
11-19-2017, 03:42 AM
Post: #100
RE: 41CL Self-Update
(11-18-2017 10:10 PM)Monte Dalrymple Wrote:  
(11-18-2017 06:36 PM)Neve Wrote:  Maybe the serial connector is defective. I don’t know what to think. Sad

It is possible to test the 41CL serial port. Basically plug in the serial cable and then
connect the TX and RX pins on the DB9 end. Turn on the serial port and send a
byte. Then check the receiver for a received byte. No need to take the machine
apart.

How do you turn on the serial port and send a byte??
I performed the procedure Sylvain suggested earlier. I believe that’s what it does.
I’m 100% certain that the inside connector is not reversed. It looks exactly as the pictures on the CL manual. Also, it won’t fit the other way around.
However, maybe one of the wire strands is cut or defective, or is too compressed between the two halves. I don’t know...
Maybe the connections at the back of the female jack are not the right ones. That’s all I can think of at the moment.

Needless to say this is very frustrating.

Engineer & Senior IT Executive
Tall-Key HP41CL, HP41CX, HP82162A Printer, HP82143A Printer, 82160A HP-IL and some other modules, HP50g.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)