Post Reply 
Free42x - HP-IL extensions to Free42
11-02-2016, 08:22 PM
Post: #1
Free42x - HP-IL extensions to Free42
Hi all,

I've been working to add HP-IL functions to Thomas' Free42 since a few months.
I finally decided to publish this project.

For anyone who is interested in a preview, you'll find all sources and binaries (Windows and Android) here.

Cheers. Jean-Christophe
Find all posts by this user
Quote this message in a reply
11-02-2016, 09:43 PM
Post: #2
RE: Free42x - HP-IL extensions to Free42
Just downloaded! Thank you.

I hope this will make it in a future DM42 version.

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
11-02-2016, 10:38 PM (This post was last modified: 11-02-2016 10:39 PM by Vincent Weber.)
Post: #3
RE: Free42x - HP-IL extensions to Free42
Thanks a lot !
I've just downloaded the apk for Android on my Samsung galaxy s6 edge (Marshmallow 6.0.1) and trying to install it says "there was an error analysing the package". Any clue ?

Thanks a lot and Cheers,

Vincent
Find all posts by this user
Quote this message in a reply
11-03-2016, 07:09 PM
Post: #4
RE: Free42x - HP-IL extensions to Free42
Hi Vincent,

I tried a download from github, and got the same error...
But the file is too small to be the package (~40k).
Try to switch github to desktop view and download the package.

BTW, here is an excerpt from the README.md :

Android :
Free42x for Android should be considered as experimental, use it at your own risk!
As Free42x is based on Free42 and for the time being not forked, I have used the same reverse domain, and from an Android point of vue, it is nearly the same application as the original Free42.
Installation steps :
1) you must enable, at least temporarily, installation from Unknown sources.
2) remove Free42 (WARNING - you will lose your programs, data... ), as Android will try (and fail) to upgrade.
3) get the package on your device and install it.

Bluetooth mode is very unstable yet. AFAIK, seems linked to the device. Ok on a Samsung ACE GT-S5830 Gingerbread 2.3.3, some issues on Google Nexus 4 Lollipop 5.1.1.
Update : seems related to Bluetooth LE, Bluetooth LE to Bluetooth may result in up to 6 seconds wakeup time.

Cheers. Jean-Christophe
Find all posts by this user
Quote this message in a reply
11-03-2016, 10:50 PM
Post: #5
RE: Free42x - HP-IL extensions to Free42
Thanks a lot, I could install it !
Now will test it Smile
Cheers
Find all posts by this user
Quote this message in a reply
11-04-2016, 03:19 PM
Post: #6
RE: Free42x - HP-IL extensions to Free42
I have tested this on my local wifi network between my Android phone and Virtual Hp-il / ilPer on my PC. I put it in TCP/IP mode, closed the loop by putting each other's ip adress in the config, and I also reversed the ports numbers in/out (60000 and 60001). I can see a frame, then IlPer says the connection failed. Did I miss something ? Can this work over wifi ? I read somewhere that wifi was very bad to transport hp-il protocol, too much latency or something like that. Would it be better with 4G?

Thanks in advance and best regards
Find all posts by this user
Quote this message in a reply
11-04-2016, 06:26 PM
Post: #7
RE: Free42x - HP-IL extensions to Free42
(11-04-2016 03:19 PM)Vincent Weber Wrote:  I have tested this on my local wifi network between my Android phone and Virtual Hp-il / ilPer on my PC. I put it in TCP/IP mode, closed the loop by putting each other's ip adress in the config, and I also reversed the ports numbers in/out (60000 and 60001). I can see a frame, then IlPer says the connection failed. Did I miss something ?

Ok, so one half of the communication is Ok !
And for the returning path, please double check IP address & outgoing port in Ilper and ingoing port in Free42x.
Can you ping the phone's IP ?
Any firewall popup on the PC ? You can try to disable it.

(11-04-2016 03:19 PM)Vincent Weber Wrote:  Can this work over wifi ? I read somewhere that wifi was very bad to transport hp-il protocol, too much latency or something like that. Would it be better with 4G?

I run it over Wifi at home and didn't met any latency issues (some in Bluetooth, hence the loop latency combo).
I didn't try in 4G, need port forwarding and stable IPs on both sides...

Cheers. Jean-Christophe.
Find all posts by this user
Quote this message in a reply
11-04-2016, 09:31 PM
Post: #8
RE: Free42x - HP-IL extensions to Free42
(11-02-2016 09:43 PM)Massimo Gnerucci Wrote:  I hope this will make it in a future DM42 version.
Hi Massimo,

It would indeed be an honor to bring a tiny crumb to DM42 project Smile
Even if it doesn't make it, I can also think about more paths :
Either using the DM42 provided it will be delivered with some resource kit,
or something like RPN-duino. But case and keyboard are the hardest part to deal with.

Cheers. Jean-Christophe
Find all posts by this user
Quote this message in a reply
11-04-2016, 10:23 PM
Post: #9
RE: Free42x - HP-IL extensions to Free42
I alerted Michael about your work, let's see how it goes...

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
11-05-2016, 08:34 PM
Post: #10
RE: Free42x - HP-IL extensions to Free42
(11-04-2016 06:26 PM)jch Wrote:  
(11-04-2016 03:19 PM)Vincent Weber Wrote:  I have tested this on my local wifi network between my Android phone and Virtual Hp-il / ilPer on my PC. I put it in TCP/IP mode, closed the loop by putting each other's ip adress in the config, and I also reversed the ports numbers in/out (60000 and 60001). I can see a frame, then IlPer says the connection failed. Did I miss something ?

Ok, so one half of the communication is Ok !
And for the returning path, please double check IP address & outgoing port in Ilper and ingoing port in Free42x.
Can you ping the phone's IP ?
Any firewall popup on the PC ? You can try to disable it.

(11-04-2016 03:19 PM)Vincent Weber Wrote:  Can this work over wifi ? I read somewhere that wifi was very bad to transport hp-il protocol, too much latency or something like that. Would it be better with 4G?

I run it over Wifi at home and didn't met any latency issues (some in Bluetooth, hence the loop latency combo).
I didn't try in 4G, need port forwarding and stable IPs on both sides...

Cheers. Jean-Christophe.
Many thanks.
I have disabled the firewall on Windows but still get the same problem. It seems that it is actually the PC than cannot succesfully connect to the Android phone, altough it can ping its IP without problems. Is there a defaut firewall on Android 6.0.1 that would prevent the connection ? How to turn it off ?

Another question: you wrote that PRLCD command does not work well because commands are translated into 82162a commands, and the 821262a line spacing does not allow smooth graphics. But I read somewhere else in the forum that the 82162a allowed to control line spacing and possibily reduce it to zero, and that was an advantage over the previous 82143a printer. So who is right ? Smile Any possible confusion with the 82240 printer than came next ?

Thanks a lot and regards,

Vincent
Find all posts by this user
Quote this message in a reply
11-05-2016, 09:11 PM
Post: #11
RE: Free42x - HP-IL extensions to Free42
(11-05-2016 08:34 PM)Vincent Weber Wrote:  I have disabled the firewall on Windows but still get the same problem. It seems that it is actually the PC than cannot succesfully connect to the Android phone, altough it can ping its IP without problems. Is there a defaut firewall on Android 6.0.1 that would prevent the connection ? How to turn it off ?
It can also come from your network setup. The PC is connected to WIFI too ?
Some WIFI AP may prevent host to host communication, but this sould also prevent communication from your Phone to your PC.
You can also test a telnet (or putty) to Phone IP address + ingoing port.
Netstat is another useful tool to check connections status.

And, AFAIK, there is no firewall incorporated in Android, but I may be wrong, my Nexus 4 support doesn't go beyond Lollipop !

(11-05-2016 08:34 PM)Vincent Weber Wrote:  Another question: you wrote that PRLCD command does not work well because commands are translated into 82162a commands, and the 821262a line spacing does not allow smooth graphics. But I read somewhere else in the forum that the 82162a allowed to control line spacing and possibily reduce it to zero, and that was an advantage over the previous 82143a printer. So who is right ? Smile Any possible confusion with the 82240 printer than came next ?

Maybe I should read again the 82143a user manual
, but I don't remember of any line spacing control command.
I'll take any details you can get about this Smile
I'm fully aware of the actual printer management limits, but have not found any workaround yet.

cheers. Jean-Christophe
Find all posts by this user
Quote this message in a reply
11-05-2016, 09:17 PM
Post: #12
RE: Free42x - HP-IL extensions to Free42
(11-05-2016 09:11 PM)jch Wrote:  
(11-05-2016 08:34 PM)Vincent Weber Wrote:  I have disabled the firewall on Windows but still get the same problem. It seems that it is actually the PC than cannot succesfully connect to the Android phone, altough it can ping its IP without problems. Is there a defaut firewall on Android 6.0.1 that would prevent the connection ? How to turn it off ?
It can also come from your network setup. The PC is connected to WIFI too ?
Some WIFI AP may prevent host to host communication, but this sould also prevent communication from your Phone to your PC.
You can also test a telnet (or putty) to Phone IP address + ingoing port.
Netstat is another useful tool to check connections status.

And, AFAIK, there is no firewall incorporated in Android, but I may be wrong, my Nexus 4 support doesn't go beyond Lollipop !

(11-05-2016 08:34 PM)Vincent Weber Wrote:  Another question: you wrote that PRLCD command does not work well because commands are translated into 82162a commands, and the 821262a line spacing does not allow smooth graphics. But I read somewhere else in the forum that the 82162a allowed to control line spacing and possibily reduce it to zero, and that was an advantage over the previous 82143a printer. So who is right ? Smile Any possible confusion with the 82240 printer than came next ?

Maybe I should read again the 82143a user manual
, but I don't remember of any line spacing control command.
I'll take any details you can get about this Smile
I'm fully aware of the actual printer management limits, but have not found any workaround yet.

cheers. Jean-Christophe
Thanks ! I'll try for free42.
For the line spacing, did you actually mean the 82162a manual instead of 82143a ? The 82143a does not allow line spacing for sure. I'm in doubt for the 82162a. But the manual is quite bad and short, it seems that HP already showed signs of decadence in 1982 !!
Cheers
Find all posts by this user
Quote this message in a reply
11-06-2016, 10:41 AM
Post: #13
RE: Free42x - HP-IL extensions to Free42
(11-05-2016 09:17 PM)Vincent Weber Wrote:  For the line spacing, did you actually mean the 82162a manual instead of 82143a ? The 82143a does not allow line spacing for sure. I'm in doubt for the 82162a. But the manual is quite bad and short, it seems that HP already showed signs of decadence in 1982 !!

My bad, yes, I was referring to 82162a.
I agree the manual is short and sometime I had to try and fail before understanding the behaviour of some commands.
But from one of the threads you have exhumed, it seems that line spacing is related to the printer mechanism.

I'm curious about how other HP-IL printers were managed...
Maybe I should add more printers (or even plotters ?) handling ?

Cheers. Jean-Christophe.
Find all posts by this user
Quote this message in a reply
11-06-2016, 10:48 AM
Post: #14
RE: Free42x - HP-IL extensions to Free42
Thanks !
From this thread (see the pictures): http://www.hpmuseum.org/forum/thread-655...l#pid60475

It seems pretty clear than the narrow line spacing was for the IR printer, not the HP-Il ! What do you think ?

Would be great to support other printer . Actually why don't you modify go41cx(t) rather than free42, and male a an on-device total loop emulation, so that we can use the plotter rom ? Much more natural ! And now (see general forum today) we have Pyilper supporting the 7470a !!

Cheers
Find all posts by this user
Quote this message in a reply
11-06-2016, 12:00 PM
Post: #15
RE: Free42x - HP-IL extensions to Free42
(11-06-2016 10:48 AM)Vincent Weber Wrote:  From this thread (see the pictures): http://www.hpmuseum.org/forum/thread-655...l#pid60475

It seems pretty clear than the narrow line spacing was for the IR printer, not the HP-Il ! What do you think ?
Undefined Wink If line spacing can be managed through some escape sequences and if those sequences are not issued, we cannot conclude.

(11-06-2016 10:48 AM)Vincent Weber Wrote:  Actually why don't you modify go41cx(t) rather than free42
Because Free42 is a re-implementation, free and source code is available whereas go41c is an emulation of HP41 hardware and AFAIK the source code is closed.
BTW, another and former HP41 emulation emu41 by Jean-François Garnier has HP-IL capabilities.
It has indeed been an invaluable help when re-writing HP-IL extensions.
Many thanks to Jeff for all his work !

And moreover, the HP-42s is a great calc, but is missing most I/O and expansion capabilities of the HP-41C. I simply wanted to try to improve it.

Cheers. Jean-Christophe
Find all posts by this user
Quote this message in a reply
11-06-2016, 12:54 PM
Post: #16
RE: Free42x - HP-IL extensions to Free42
(11-06-2016 12:00 PM)jch Wrote:  
(11-06-2016 10:48 AM)Vincent Weber Wrote:  From this thread (see the pictures): http://www.hpmuseum.org/forum/thread-655...l#pid60475

It seems pretty clear than the narrow line spacing was for the IR printer, not the HP-Il ! What do you think ?
Undefined Wink If line spacing can be managed through some escape sequences and if those sequences are not issued, we cannot conclude.

(11-06-2016 10:48 AM)Vincent Weber Wrote:  Actually why don't you modify go41cx(t) rather than free42
Because Free42 is a re-implementation, free and source code is available whereas go41c is an emulation of HP41 hardware and AFAIK the source code is closed.
BTW, another and former HP41 emulation emu41 by Jean-François Garnier has HP-IL capabilities.
It has indeed been an invaluable help when re-writing HP-IL extensions.
Many thanks to Jeff for all his work !

And moreover, the HP-42s is a great calc, but is missing most I/O and expansion capabilities of the HP-41C. I simply wanted to try to improve it.

Cheers. Jean-Christophe
I hear you. I know Olivier de Smet quite well, if you ask him nicely he may open his code for that Smile
I have read again the (tiny) manual for the HP82162a and could not find any escape sequence dealing with line spacing.... but I'm not an expert...

Cheers

Vincent
Find all posts by this user
Quote this message in a reply
11-06-2016, 01:40 PM
Post: #17
RE: Free42x - HP-IL extensions to Free42
(11-06-2016 12:54 PM)Vincent Weber Wrote:  
(11-06-2016 12:00 PM)jch Wrote:  Because Free42 is a re-implementation, free and source code is available whereas go41c is an emulation of HP41 hardware and AFAIK the source code is closed.
I hear you. I know Olivier de Smet quite well, if you ask him nicely he may open his code for that Smile
Re-implementation vs emulation leads to two differences :
1) Though both could share some low-level I/O's, HP-IL state machine implementation will be deeply different as, AFAIK, in 41C it is split between part hardware part software.
2) Most Free42x functions are already available in modules for HP-41C. I had a lot of fun rewriting them and expanding the possibilities. Of course, this is has been done and is always doable in the 41C's world, but from a user point of view, you'll need either a real 41C[VXL] or the Go41cx edition.

I'm ready to share about HP-IL eXtensions, but be aware that this is only a free time occupation.
I'm still struggling with the Bluetooth part, some issues do not occur in debug mode.
Classical schema, I'll have to log more things for troubleshooting, hoping that these additions will not hide the problem !

Cheers. Jean-Christophe
Find all posts by this user
Quote this message in a reply
11-06-2016, 09:27 PM
Post: #18
RE: Free42x - HP-IL extensions to Free42
Many thanks, I can understand where you are coming from !
Cheers
Find all posts by this user
Quote this message in a reply
12-10-2016, 05:33 PM
Post: #19
RE: Free42x - HP-IL extensions to Free42
Updated sources and binaries available on Github.
- Changes:
  • IFC/RFC handshake bug, if first handshake was unsuccessfull, then following handshakes were messy.
  • IDY timeout increased, was too short compared to Bluetooth latency on Android.
  • Add some tracing capabilities of hpil frame to help troubleshoot, a debug checkbox in HPIL Preferences menu and stored traces will be displayed when tapping this menu again. (Android only)
- Some hints on Bluetooth issues I encountered:
  • Latency, about 10 ms and inconstancy between different Android releases and devices.
  • IFC/RFC handshake & IDY timeout bugs.
  • Bluetooth stack on Nexus 4 / Lollipop 5.1.1 seems to break the connexion after about 10 s idle.
Find all posts by this user
Quote this message in a reply
01-28-2017, 04:38 PM
Post: #20
RE: Free42x - HP-IL extensions to Free42
Updated from original Free42 release 1.5.13 :
  • When DIM, SIZE, or SIMQ resize the indexed matrix, and when CLV deletes the indexed matrix, IJ should be set to (1, 1); and when DIM, SIZE, or SIMQ try to resize the matrix currently being edited by EDITN, and when CLV tries to delete the matrix currently being edited by EDITN, they should return a "Restricted Operation" error. Neither happened, creating the potential for memory corruption if IJ ended up pointing outside the matrix' data array. Fixed.
  • STO and STO* allowed the target to be the matrix under edit by EDITN. They should not allow this, but return "Restricted Operation" instead. Fixed.

Other updates :
  • Bug in "INxxx" function when Trace mode active
  • Updated "About Free42"
Find all posts by this user
Quote this message in a reply
Post Reply 




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