Hi Bob,

Yes, the hp 59309A is a wonderful little LED clock. I just re-tested the 
program I wrote to read/write the time and it still works.

For others that are wondering, the code is at 
http://leapsecond.com/tools/hp59309.c and a Win32 exe is there too.

Anyway, one possible suggestion is for you to use ++read 10 instead of just 
++read. The 59309A is an early byte-oriented HP-IB device and the Prologix 
command set is more meant for line oriented communication (using CR or LF or 
EOI for termination). So when I use ++read10 everything is fine, but ++read, or 
++read9 or ++read11 or ++read anything else will cause the Prologix to go into 
an infinite loop.

One other idea that may shed light on your problem is to use the /d (debug) 
option and have a look at the exact communication between the program and the 
Prologix and the 59309A. Then do the same with your Python code to see if it 
matches, down to the byte. Again, these vintage HP-IB instruments are 
wonderfully simple but they don't always take well to things we take for 
granted these days like extraneous line terminators or spaces or open-ended 
reads and such. If you really want some fun, use a GPIB bus analyzer.

Attached is the debug log from my 59309A.

If all else fails I can send you a known working 59309A so you can tell if the 
problem is with your PC, your Python tool, your Prologix, or your 59309A.

/tvb

----- Original Message ----- 
From: "Bob" <[email protected]>
To: "TimeNuts" <[email protected]>
Sent: Thursday, October 06, 2016 12:56 PM
Subject: [time-nuts] HP 59309A Clock runs, sets via GPIB, but no GPIB output?


I'd like to ask the HP 59309A owners on time-nuts if the following symptoms 
sound familiar, and if so, what would the fix be?

o New-to-me HP 59309A clock.
o Late build, 1985 date code on many parts.
o I replaced the big 1900 uF electrolytic before plugging it in.
o Visual inspection very clean, no corrosion, no battery.
o 12v reads 13.1v, 5v reads 5.3v, -2v reads -2.9v.
o Front panel switches and buttons all work as expected.
o Internal and external osc. both work as expected.
o Internal "format" switch set to 0000 i.e. comma, cal, no space.
o GPIB works to *set* the time, using Prologix Ethernet adapter.
o Prologix Ethernet adapter attached directly to the clock, no cables.
o Python code to set via GPIB attached below.
o Setting time via GPIB always works, tried many times.
o Reading time has never worked.  All I get is lots of ASCII 
44444444444444444444444...
o Reading with Prologix ++read command
o Switches set to 1100010 i.e. Listen, ADDR 2 for normal operation
o Tried switches as 0000010 i.e. Talk Only, also resulted in continuous 
4444444444444444444...
o Tried very long delays between every GPIB command, no change.
o Tried removing top cover and running a fan to bring entire clock to 21C, no 
change.
o Tried gently reseating the four boards and three socketed PROMS, no change.

Thanks to TVB for hp59309.c sample Windows Prologix USB code.  I based the 
Python Ethernet code on TVB, to read from the clock he sends command C and then 
++read.  When I do that all I get are a zillion 0x34 '4' characters.

Seems strange that all the GPIB commands work.  I tried R reset, P pause T 
resume D day H hour M minute S second manually and they all work just fine.  I 
have never been able to read anything reasonable though.

As to the Prologix Ethernet adapter, I believe it is working OK electrically as 
I have been using it for weeks at a time reading PPS time intervals from a 
trusty HP 5334B counter, the adapter has read hundreds of thousands times from 
the 5334B.

Is there a trick to using the Prologix to read from the 59309A?

I did notice that the 59309A has at least one trick - in TVB's code where he 
reads the Prologix settings and only writes them if they need to be changed, 
that is actually required(!).  Just writing them every time seems to put the 
adapter into a strange state.

Page 4-2 of the 59309A manual seems to imply that the "Output State Machine" 
generates the GPIB output messages, using input from the "Data Memory".  
AFAICT, those two functional blocks are the only ones that are not working for 
me.

I think A4U18 ROM is OK as it handles GPIB command decoding and R P T D H M S 
commands all work.

A5U15 appears to do the ASCII encoding for SP, CR, LF, ", : so it may or may 
not be OK.

A5U2 is described as "STATE MACHINE ROM (A5U2). This 4K ROM controls the 
operation of the circuits that develop the talk output of the 59309A."  Has 
anyone experienced failure of this ROM, and do the symptoms match what I'm 
seeing?

This is a lovely clock, and while I can't actually think of a reason to *need* 
the GPIB time output, I'd still like to fix it.

Cheers,

Bob Marinelli



C:\Tmp>
C:\Tmp>hp59309
Usage: hp59309 [com port] [gpib id] [utc flag]
Example: hp59309 1 05
         hp59309 /t 1 05    (timing debug)
         hp59309 /v 1 05    (prologix verbose output)
         hp59309 /d 1 05    (prologix debug output)

C:\Tmp>hp59309 81 5
time set to [281+] 2016-10-07 17:08:04
59503A=  1007170804

C:\Tmp>hp59309 /v 81 5
Current Prologix settings:
    ++ver                    = Prologix GPIB-USB Controller version 6.101
    ++mode                   = 1
    ++addr                   = 5
    ++auto                   = 0
    ++eoi                    = 0
    ++eos                    = 3
    ++eot_enable             = 0
    ++eot_char               = 0
    ++read_tmo_ms            = 1000

time set to [281+] 2016-10-07 17:08:15
59503A=  1007170815

C:\Tmp>hp59309 /d 81 5
wrote [++verf] 2B 2B 76 65 72 0D
reading... read [P] 50
reading... read [r] 72
reading... read [o] 6F
reading... read [l] 6C
reading... read [o] 6F
reading... read [g] 67
reading... read [i] 69
reading... read [x] 78
reading... read [ ] 20
reading... read [G] 47
reading... read [P] 50
reading... read [I] 49
reading... read [B] 42
reading... read [-] 2D
reading... read [U] 55
reading... read [S] 53
reading... read [B] 42
reading... read [ ] 20
reading... read [C] 43
reading... read [o] 6F
reading... read [n] 6E
reading... read [t] 74
reading... read [r] 72
reading... read [o] 6F
reading... read [l] 6C
reading... read [l] 6C
reading... read [e] 65
reading... read [r] 72
reading... read [ ] 20
reading... read [v] 76
reading... read [e] 65
reading... read [r] 72
reading... read [s] 73
reading... read [i] 69
reading... read [o] 6F
reading... read [n] 6E
reading... read [ ] 20
reading... read [6] 36
reading... read [.] 2E
reading... read [1] 31
reading... read [0] 30
reading... read [1] 31
reading... read [f] 0D
reading... read [f] 0A
wrote [++savecfgf] 2B 2B 73 61 76 65 63 66 67 0D
reading... read [0] 30
reading... read [f] 0D
reading... read [f] 0A
wrote [++modef] 2B 2B 6D 6F 64 65 0D
reading... read [1] 31
reading... read [f] 0D
reading... read [f] 0A
wrote [++autof] 2B 2B 61 75 74 6F 0D
reading... read [0] 30
reading... read [f] 0D
reading... read [f] 0A
wrote [++eoif] 2B 2B 65 6F 69 0D
reading... read [0] 30
reading... read [f] 0D
reading... read [f] 0A
wrote [++eosf] 2B 2B 65 6F 73 0D
reading... read [3] 33
reading... read [f] 0D
reading... read [f] 0A
wrote [++eot_enablef] 2B 2B 65 6F 74 5F 65 6E 61 62 6C 65 0D
reading... read [0] 30
reading... read [f] 0D
reading... read [f] 0A
wrote [++read_tmo_msf] 2B 2B 72 65 61 64 5F 74 6D 6F 5F 6D 73 0D
reading... read [1] 31
reading... read [0] 30
reading... read [0] 30
reading... read [0] 30
reading... read [f] 0D
reading... read [f] 0A
wrote [++addrf] 2B 2B 61 64 64 72 0D
reading... read [5] 35
reading... read [f] 0D
reading... read [f] 0A
wrote [Rf] 52 0D
wrote 
[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDDDDD] 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
wrote [f] 0D
wrote [HHHHHHHHHHHHHHHHH] 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
wrote [f] 0D
wrote [MMMMMMMM] 4D 4D 4D 4D 4D 4D 4D 4D
wrote [f] 0D
wrote [SSSSSSSSSSSSSSSSSSSSSS] 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53 
53 53 53 53 53 53
wrote [f] 0D
time set to [281+] 2016-10-07 17:08:22
wrote [Cf] 43 0D
wrote [++read 10f] 2B 2B 72 65 61 64 20 31 30 0D
reading... read [ ] 20
reading... read [ ] 20
reading... read [1] 31
reading... read [0] 30
reading... read [0] 30
reading... read [7] 37
reading... read [1] 31
reading... read [7] 37
reading... read [0] 30
reading... read [8] 38
reading... read [2] 32
reading... read [2] 32
reading... read [f] 0D
reading... read [f] 0A
59503A=  1007170822
wrote [++locf] 2B 2B 6C 6F 63 0D

C:\Tmp>

_______________________________________________
time-nuts mailing list -- [email protected]
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to