Author Topic: Nixie display for HP3478A  (Read 5464 times)

0 Members and 1 Guest are viewing this topic.

Offline cyclotronboyTopic starter

  • Newbie
  • Posts: 3
  • Country: us
Nixie display for HP3478A
« on: October 18, 2019, 06:57:10 pm »
So like everyone else, I hated the transreflective display on my HP3478A.  Right after I got it, I immediately did a backlight conversion.  Just like everyone else.
  Turned into : 
But the viewing angle was crap, especially since I had mine about 9" above eye-level.  So the old girl sat.  Then I saw this article on here: https://tinyurl.com/y32pfynx

The HP3457A is just the big brother of this little guy, so I thought how hard could it be to redo this with nixies?  I've done a lot with nixies over the years, and IN-17 tubes just fit in the display.  I have a hoard of those tubes, so I figured I'd give it a shot.  There are only 6 significant digits, and the rest is text and symbols.  So I figured I could take the same approach as the guy before, decoding the serial stream, and instead of driving 14-seg LEDs, I'd drive some nixies and 4-seg intelligent LED to make up the text characters.  Good compromise, and the nixie display would go nicely with my 8100A it sits on top of.



So... it worked.  I still need to add a filter so the glare, color balance, and intensity difference isn't so obvious.  There is no noticeable change in accuracy or noise in the instrument.  The display is just as fast (lol) as the old one. 

Details:
I used the previous LED conversion project as a starting point.  I used XORs and flipflops to make a SPI-ish interface just like the LED approach.  I had soic '74 and '00 chips available, so did an XOR out of NAND gates.  The next bit was to make some code that decoded the serial stream.  I don't believe in logic analyzers, so I started by dumping entire frames of data from the HP out onto an LCD screen. 

  This was the hardest part of the entire project, getting the old HP verb-noun and communication framing decoded. 

It took a long time to get all the byteswaps and bitmirroring figured out.  The previous project was integral here.  This smaller unit has some quirks as well, since the character map was simplified a bit.  For example, ASCII "O" is also "0" and "S" is "5" and so on.  I now see the irony here - I could have stopped there with a modern backlit HD44780 type display and been done.  But I wanted nixies damnit. 
  First step was remove the LCD, and make a new cable that allowed me to listen in with my board and also display on the original LCD. 
  Next was a PCB.  The PCB mounts the IN-17s kind of at a right angle so they are end-viewed.  I used miniature neons to be decimal points.  I used rectangle LEDS arranged in a "+" and "-" shape for the sign display.  The last bit was to use an https://tinyurl.com/yy8m8plg HDLO-1414 to display the only real "text" that this old meter ever displays (mV, mAAC, etc.).  The only annunciator I ever really use is "MAN" which I decided would be the farthest-right decimal (which the meter doesn't use anyway).  The remaining trouble was that "OVLD" which is displayed when the unit measures out of range couldn't be displayed on the nixies.  My solution was to switch the display to "999999" with the decimal point intact whenever OVLD was displayed.  This works great, and mimics the Fluke 8100A nicely. 

The board uses a PIC18F4550 as the brains.  There is a parallel 8-bit bus that a set of 74HC573's hang off of.  Three '573's are for the nixies; each nixie has two 74141s.  The decimal points and +/- have one '573 and bss131 pulldowns, and the data for the HDLO is the remaining '573.  The HV comes from a max1771, and there is a nice 5V buck on the board too.  5V draw was about 200mA with the dinosaur TTL and the latches - thus the decision to have a buck instead of a 7805.  Updating the display completely needs around 450us, which is plenty fast.  I allow around 3us settling time after each bus transaction, fast for the 1969 date 74141's but slow for the 2004 date '573s.  Nixies are running at 1.5mA, and the tiny neons at 0.35mA.  The integration into the case included shoehorning a tiny 5W enclosed Meanwell line-powered supply.  It is placed in parallel with the mains transformer. 
Good agreement
The tiny 5W Meanwell is shown out of focus but the board in test and the old display showing identical output

Some more details:
and
Measuring some resistances.  The orange glow on the upper left of the display is actually reflection from inside.  257 and 299ohms. 
MPLAB Interrupt handling
The code is all in C, using xc8 and mplab.  The spibus is interrupt enabled.  When it gets an interrupt, I read the byte receivedand disable the interrupt.  If it's one of the four verbs I care about, 0xBC (annunciators), 0x2A ("C" register), 0x0A ("A" register), or 0x1A ("B" register), I stop and immediately read 6 bytes and update the appropriate message buffer (or 2 for the annunciator).  Then I reenable the interrupt and signal with a flag that I have received something.  Then back in main() look for the flag, and if there's a flag, I decode the all message buffers in the "A" "B" and "C" registers using a modified ASCII-ish chart, as in the LED conversion example.  The HDLO uses a different ASCII-ish table than the HP, so that took a little work to line up as well.  Here's my modified ascii table.   
Code: [Select]
const char lookup_HP[7][16] = {
{0x3F, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F},
{0x20, 0x51,   0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F},
{0x20, 0x21,   0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F},
{0x30, 0x31,   0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3A, 0x3C, 0x3D, 0x3E, 0x35},
{0x60, 0x61,   0x62, 0x63, 0x64, 0x35, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x35, 0x6D, 0x6E, 0x6F},
};

Right at the moment, "mVAC" is drawn as "MVAC" on the HDLO, but the lower case is in the character map there, so I'll probably fix that for mA, mV, etc. in a next revision of the code.  I might try Kapton or some other simple solution for the filter.

Here's a link to the fullsize photos:
[link]http://niell.org/hp3478a/[/link]
« Last Edit: October 19, 2019, 02:35:08 pm by cyclotronboy »
 
The following users thanked this post: radhaz, Cubdriver, BU508A, Photoman, factory, Chip

Offline Cubdriver

  • Supporter
  • ****
  • Posts: 4201
  • Country: us
  • Nixie addict
    • Photos of electronic gear
Re: Nixie display for HP3478A
« Reply #1 on: October 18, 2019, 07:20:28 pm »
Damn!!!  Nice work!!   :-+ :-+ :-+ :-+

-Pat
If it jams, force it.  If it breaks, you needed a new one anyway...
 
The following users thanked this post: radhaz, cyclotronboy

Offline coromonadalix

  • Super Contributor
  • ***
  • Posts: 7415
  • Country: ca
Re: Nixie display for HP3478A
« Reply #2 on: October 18, 2019, 08:17:26 pm »
woah  man   a reverse / oldie  display,    i would never tought of that  lolll

nicely put   :-+
 
The following users thanked this post: cyclotronboy

Offline cyclotronboyTopic starter

  • Newbie
  • Posts: 3
  • Country: us
Re: Nixie display for HP3478A
« Reply #3 on: October 19, 2019, 12:07:29 am »
Full res photos at http://niell.org/hp3478a/

Enjoy!

Fred
« Last Edit: October 19, 2019, 02:27:15 am by cyclotronboy »
 

Offline Macbeth

  • Super Contributor
  • ***
  • Posts: 2572
  • Country: gb
Re: Nixie display for HP3478A
« Reply #4 on: October 19, 2019, 01:35:01 am »
Full res photos at http://niell.org/hp3478a/

Enjoy!

Fred
Oh I dunno, ... 404 Not Found
 

Offline cyclotronboyTopic starter

  • Newbie
  • Posts: 3
  • Country: us
Re: Nixie display for HP3478A
« Reply #5 on: October 19, 2019, 02:27:38 am »
Fixed link
 
The following users thanked this post: Macbeth, coromonadalix


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf