Very interesting that there is shared tech between the HP41 tech and these DMMs. I guess there was some obvious shared specs like HP-IL in the 3468A, but I didn't know there was crossover between the calculator and test equipment teams at this lower level of display protocol/commands. The Logic Dart was kind of special in the sense it was test equipment that came from the calculator division.
Its cheaper for a company to reuse displays like this over the years. The display was universal and could do a lot of things to satisfy the needs of instruments and calculators. I think its amazing that they did this and it made sense for them. Keeps more money in the company.
And easier for us to convert more of our gear to OLED!
Indeed hopefully soon :-)
I found some 2.25 inch IPS LCDs btw that would fit into the lcd section - 2 of them horizontally. This is tempting to do. Also to get a nicer Font and smaller gaps between the characters.
I ordered already a bunch of them. Want to see first if the viewing angle supports putting them 180 degree rotated to each other. Would then use an rp2040 MCU... but let's first check feasibility.
Another update: The Python decoder works on Kawals files and C implementation started. Stay tuned :-)
I ordered already a bunch of them. Want to see first if the viewing angle supports putting them 180 degree rotated to each other. Would then use an rp2040 MCU... but let's first check feasibility.
Another update: The Python decoder works on Kawals files and C implementation started. Stay tuned :-)
Amazing. Thank you for the work.
I've attached the Kicad files in reply #255.
Cheers,
Miti
Progress on new decoding - there is text !!!!
Hi Kai,
Can you please explain in few words how to use the Python converters? I expected they would create .c files but they don’t.

What’s the input, output?
Thanks!
Miti
Very good work on the board and 3D files. I got slightly different spacing of the holes compared to you. Maybe we both should check.
Maciej
I noticed a certain amount of tolerance of where the screw holes were drilled in the faceplate when measuring across a few units, so I just made the holes in my PCB a bit bigger.
Deleted incorrect answer. Will update later
Will send more updates during next days, happy that my additions show some letters now :-)
Please check if you bumped the clock frequency to 8MHz, cause that explains missing text segments and slow oled update.
To update the 7 segment, change the file segmentsv2.gif.
Things to care care of:
- don't change the color pallete!
- don't change the image size, otherwise you need to introduce code changes
The run:
convert2C.py
afterwards do a print(s) or copy the generated code into the editor and overwrite the equivalent code in gfxelements.c.
To update icons:
Change any of the icon_xxxxx.gif files
run convertIcons2C.py file
This will automatically create a new .c and .h file and write it to ..\HP3457Oled\icons.c and ..\HP3457Oled\icons.h
It's possible that there are some flaws which I did not cover - it's quite a while ago I made this stuff :-) The python source shows the truth...
digress....
"similar" LCD module installed in my 6051A Electric Load, BUT it is controlled by an MCS-51 (87C751) and a PCF8578T.
it seems to be the exact same protocol, and it works when attached to a 3478A.
if I can read the 87C751, might be able to find out something. Depends on the security bit. hmmm... I don't have programmer. I don't know assembler


Yup, the fuses are correct. Then I need to hunt further!
On the display: You can create a logic analyzer trace of the data lines going to the display and then we can check for similarity.
The HP3457a will also have an MCU on its board, maybe your display is an earlier version of it.
MCS51 can be often read out with tweaks. In the old day there was seldomly protection enabled at all. I have an old HP supply where I could readout the 8051 variant and program an EEPROM based MCU to fix a broken GPIO of it. There was no readout protection at all.
Yup, the fuses are correct. Then I need to hunt further!
For future reference these are the programming fuses and the website i used to determine them
Here is the Fuse calculator I used :
8Mhz internal , 64ms startup delay, Brownout protection at 2.7V, SPI programing, boot flash 1024 words @ $0C00
https://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega8&LOW=A4&HIGH=D9&LOCKBIT=FFProgrammer used was the TL866II Plus in ICSP mode and 6 pin cable I made.
Miti
Very good work on the board and 3D files. I got slightly different spacing of the holes compared to you. Maybe we both should check.
Maciej
Interesting, it fits perfectly my 3478A with aluminum frame, older model.
I have two different displays and they seem to align pretty good with my plastic, see attached.
You can modify the spacing if you need to as you have the FreeCad design files. If you don’t know how to use Freecad, let me know.
To update the 7 segment, change the file segmentsv2.gif.
Things to care care of:
- don't change the color pallete!
- don't change the image size, otherwise you need to introduce code changes
The run:
convert2C.py
afterwards do a print(s) or copy the generated code into the editor and overwrite the equivalent code in gfxelements.c.
Where does the c code goes? I can’t find it to save my life.
Hi Miti,
Just look at the python code. It goes directly into the C project if you did not change the directory structure.
I wrote the location in the previous message:
This will automatically create a new .c and .h file and write it to ..\HP3457Oled\icons.c and ..\HP3457Oled\icons.h
Edit: It's a relative path, so it goes .. = one level up and then directly into tje HP3457Oled directory with icons.c and .h as filename. So directly where it has to end up.
Edit2: this implicitely means that your current working directory has to be the one where the python scripts are located.
Best regards,
Kai
Progress on new decoding - there is text !!!!
@kawal: I'll make an FTDI or FX2 playback your recorded pattern streamed from PC, then I can debug faster and see why the display does not take some of the updates.
Actually surprising that there is no off the shelf solution to playback recorded logic analyzer patterns for scenarios as we have it here, isn't it?
Hi Miti,
Just look at the python code. It goes directly into the C project if you did not change the directory structure.
I wrote the location in the previous message:
This will automatically create a new .c and .h file and write it to ..\HP3457Oled\icons.c and ..\HP3457Oled\icons.h
Edit: It's a relative path, so it goes .. = one level up and then directly into tje HP3457Oled directory with icons.c and .h as filename. So directly where it has to end up.
Edit2: this implicitely means that your current working directory has to be the one where the python scripts are located.
Best regards,
Kai
Icons yes, the do go there, the digits code I can't find.
I see, my local and github version varies.
Uncomment the print(s) in the last line and you'll get the code printed for manual copy and paste.