project: extending HP3478A functionality - Page 1
Forum section: electronics / projects

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 11, 2017, 08:59:00 am
content: HP3478A considered to be a good multimeter, but lacks some basic functions expected from current models (e.g. relative, auto hold, average).What I'm thinking to do is to hook up microcontroller to GPIB bus internally so it will provide additional functions.I already have some idea what the "user interface" would look like. Display and SRQ button are available via GPIB. "Local" button is also available indirectly.That should be enough to implement basic menu system....Update (January 30, 2018): working prototype is readyThe hardware is very basic. To reproduce it you'll need the following stuff:16mhz atmega 328 board (e.g.https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR12.TRC2.A0.H0.Xarduino+pro+mini.TRS0&_nkw=arduino+pro+mini&_sacat=0)UART to USB adapterGPIB connectorsome kind of buzzer/PC speaker for continuity testergithub project:https://github.com/KIrill-ka/hp3478extFunctions already implemented:USB interface - allows to execute generic GPIB commandsrelative modexohm mode - measure resistances above 30Mcontinuity testermin maxdiode tester*auto holdtemperature**What else can be done:running average* Not sure if I want one. It's just a 2win 3K range. However, beeping may be added.** Limited to one particular RTD sensor.Update (September 3, 2018):The thing now leaves inside my HP3478A powered from it's internal supply. The only hardware modification I had to do to the HP3478A was a cut-out for USB TypeB socket.This process of integration to the HP3478A is not documented yet (TODO), but now there's a guide for basic implementation and a command reference.The links are on the project homepage:https://kirill-ka.github.io/hp3478ext/Thanks tobitseekerfor carefully reviewing the documentation.hp3478ext allows to send generic GPIB commands to a device, so it can be used as a cheap GPIB-USB adapter. For instance, I'm using it with my HP8561E. I wrote a Tcl library implementing some GPIB functions, which I'm going to release very soon.

author: alm
author_rank: Super Contributor
timestamp: August 11, 2017, 12:29:05 pm
content: How would you do the UI? Talking to it will lock out all front panel keys except local. You could send GTL after every command, but how do you detect button presses other than SRQ? Morse code with SRQ? How do you know if the meter switches range or function? What would the display update rate be like?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 11, 2017, 12:54:52 pm
content: Quote from: alm on August 11, 2017, 12:29:05 pmIf you press "Local" it stops responding to commands. I found a trick which makes it possible to know that it doesn't respond without entering LISTEN state.So I should be able to detect two buttons SRQ and Local.S.Trig and then SRQ can turn on "relative" mode directly.Quote from: alm on August 11, 2017, 12:29:05 pmCurrent mode is available in status bytes (B command).If "additional" functions are not activated, 3478 should stay in normal (local) mode until SRQ is pressed.Quote from: alm on August 11, 2017, 12:29:05 pmI don't know. We'll see. When I tried to enter commands manually it seemed to be quick enough.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 11, 2017, 01:02:58 pm
content: Quote from: alm on August 11, 2017, 12:29:05 pmIt's also possible to sniff keypad lines directly, but I prefer it to be GPIB-only.

author: alm
author_rank: Super Contributor
timestamp: August 11, 2017, 01:29:08 pm
content: I agree that something that just plugs into the GPIB connector would be much neater. The challenge will be good integration with normal operation without jarring mode switches. Good luck!

author: macboy
author_rank: Super Contributor
timestamp: August 11, 2017, 03:57:02 pm
content: I did something similar for Keithley 199 years ago. For that meter, it was possible to have a GPIB SRQ generated whenever a front panel button was pressed. The meter would not otherwise respond to front panel buttons (since it was in remote mode). The software could then query which key was pressed and take whatever action was needed, including changing mode or range on the meter. The software-generated/modified reading including units could be sent to the meter's display using a special GPIB command. The 3478A has a similar 14-segment alpha-numeric display, and a very similar command set, but it doesn't seem to have the ability to pass through the keypresses to the GPIB controller in the same way.Anyway, good luck.

author: pigrew
author_rank: Frequent Contributor
timestamp: August 11, 2017, 05:04:43 pm
content: Personally, the features I'd want to see would involve ripping out the microcontrollers and analog components and replacing them with something newer, though I'm really not sure if it's worth it.I personally use GPIB to communicate with it, so IFor example:Replace A/D controller with a modern micro, to get more digits by running at a higher clock speed (I'm not sure if the noise would improve, though)Replace main controller to use a modern micro's internal flash RAM (to avoid the need for the calibration-RAM battery)Replace integrator IC with lower-noise op-amp?Replace main input amplifier? A don't know what the existing part is.But, would those things be worth it? If replacing an IC or two helps, great, but once I start thinking about replacing micros, the cost might expand to be more than the price of a 6.5 digit DMM.For some of the digital things mentioned, it sounds like changing the display is required (for example to display averaged data). For this, I believe that the main micro would need to be replaced. Though, the programming shouldn't be too hard and it would be neat to end up with an instrument with open-source firmware.

author: agaelema
author_rank: Contributor
timestamp: August 21, 2017, 02:12:48 am
content: Some time ago I was thinking about it when I was searching about DIY GPIB interface to connect my 3478A to computer without need to spend lots of money (more than the DMM price) in an adapter.But from what I've read, when the DMM remote mode is activated it stops responding locally. Right?In my opinion, I do not see problems using remote controls (buttons) and another screen, in fact I think they can bring some advantages, a separate screen would be very interesting in allow more measurements at same time, like std value, min, max, etc...You know some good GPIB DIY project, I think that this is the start of all.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 23, 2017, 01:55:42 pm
content: Quote from: agaelema on August 21, 2017, 02:12:48 amNot exactly. There's no single thing called "DMM remote mode". GPIB remote mode is required to send a command, where only SRQ and Local keys are active. But after that, local control might be restored.Quote from: agaelema on August 21, 2017, 02:12:48 amThe objective is to use hp3478 as a standalone DMM. And I don't want to make many hardware modifications. I have to respect 30+ years old instrument after allQuote from: agaelema on August 21, 2017, 02:12:48 amI started with this:https://github.com/JacekGreniger/gpib-converterAlthough, I already re-wrote most of the code.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 23, 2017, 02:00:48 pm
content: Quote from: pigrew on August 11, 2017, 05:04:43 pmWhat would be left in there?

author: pigrew
author_rank: Frequent Contributor
timestamp: August 23, 2017, 02:12:47 pm
content: Quote from: kirill_ka on August 23, 2017, 02:00:48 pmI wouldn't mess with most of the analog circuitry (other than substituting ICs). The integrating ADC controller would remain, as would voltage references and precision resistors. The power supply seems fine, and I'm happy with the front panel. The chassis, switching relays, input terminals, fuses, etc. are likely not limiting performance either.I was imagining how US$50 parts could best be spent on upgrading the unit.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 24, 2017, 12:40:05 pm
content: I've opened a github repository.https://github.com/KIrill-ka/hp3478extMy prototype is atmega328 board (arduino nano) which is directly connected to GPIB. And usb-uart dongle is on the other side.Relative mode is already working. It's entered by pressing S.Trig then SRQ.It also works as interactive GPIB-UART interface. Someone may find it useful not only for HP3478.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 30, 2017, 02:13:40 pm
content: Testing extended Ohms mode: 5x68 MOhm resistors.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 30, 2017, 02:23:25 pm
content: Quote from: kirill_ka on August 11, 2017, 12:54:52 pmIn 4 digit relative mode the display update appears to be much faster than you normally get from HP3478A. Possibly it's intentionally limited to make the display readable. I'm not sure if I want to do the same.

author: bitseeker
author_rank: Super Contributor
timestamp: August 31, 2017, 12:34:00 am
content: Cool project, kirill. I've thought about extending the functionality of DMMs and power supplies via GPIB, too. Adding a second display for stats, logging, and graphs would be quite an upgrade for the good ol' 3478A.

author: alm
author_rank: Super Contributor
timestamp: August 31, 2017, 06:02:52 am
content: You can experiment. But especially on that old LCD increasing the update rate may not help readability. Try observing a value quickly fluctuating between 6 and 7. If you had some way of doing an analog bar graph, a higher update rate might be valuable. Same with any logging or plotting.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 31, 2017, 08:49:34 am
content: Quote from: alm on August 31, 2017, 06:02:52 amI've measured actual reading rate and it's not the same as display update. HP3478 has two commands D2 and D3. D2 seems to be buffered, so the display is not updated every time. D3 is like it writes the LCD immediately. And the more often you write the screen, the less reading rate you get. The maximum I could get so far is 75 reading/sec in 3 digit mode with auto zero off.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 31, 2017, 09:12:10 am
content: Quote from: bitseeker on August 31, 2017, 12:34:00 amThank you for support! I'm thinking to mount atmega328 inside, and stick out an usb or uart connector. Then raspberry pi can be added for logging and graphing.

author: bitseeker
author_rank: Super Contributor
timestamp: August 31, 2017, 05:38:35 pm
content: That sounds cool. I'm following the thread.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: September 05, 2017, 02:24:42 pm
content: UI scheme

author: kirill_ka
author_rank: Frequent Contributor
timestamp: September 29, 2017, 10:14:09 am
content: Next (kind of) prototype is ready! Now it's fitted inside the case. I'll add usb type B port to the back when the cable arrives.The software part works quite well. So I'm going to use it for some time to see what I want do next.

author: dom0
author_rank: Super Contributor
timestamp: September 30, 2017, 02:12:25 pm
content: Quote from: pigrew on August 23, 2017, 02:12:47 pmI wouldn't mess with most of the analog circuitry (other than substituting ICs)That's kinda an oxymoron, isn't it? The circuit was designed for a specific IC, swapping random ICs makes it a different circuit, behaving differently, not required to behaverbetter.In the 3478A many important components are not changed easily, anyway. For example, most of the input switching and protection is on a hybrid in the input section (it also contains some relay drivers, a questionable combination in my mind). This will probably make attempts to reduce input currents futile, for example.If memory serves, they mainly used a selection of LM308s, LF412s and OP07s to implement the various circuits. The main input amp iirc was a HP P/N part, might be selected/treated off the shelf, might be custom.

author: alterbaron
author_rank: Contributor
timestamp: September 30, 2017, 04:39:08 pm
content: Super cool project!BTW, you may want to replace this cap.I've had caps like that fail and leak nasty stuff all over the board. IIRC they're known for doing that.

author: Rbastler
author_rank: Frequent Contributor
timestamp: September 30, 2017, 04:46:01 pm
content: Quote from: alterbaron on September 30, 2017, 04:39:08 pmJep, one blew in my Philips supply while testing it. Evil things.

author: bitseeker
author_rank: Super Contributor
timestamp: September 30, 2017, 07:04:54 pm
content: Quote from: alterbaron on September 30, 2017, 04:39:08 pmYes! Rifa caps fail spectacularly, often to the detriment of neighboring components. Definitely change old ones, especially if the clear/translucent outer shell is exhibiting stress fractures, like the one in the photo, above.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: October 01, 2017, 10:45:40 am
content: Quote from: alterbaron on September 30, 2017, 04:39:08 pmThank you. I will definitely replace it. I didn't think they are so badly behaved.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 29, 2018, 09:01:51 pm
content: A quick video demonstration.https://drive.google.com/open?id=179wN6CET8ZQY1wQDYIMmN7-N4oslAw8C

author: The Soulman
author_rank: Super Contributor
timestamp: January 29, 2018, 10:09:19 pm
content: Now you should write a new manual for it.Well done.

author: babysitter
author_rank: Frequent Contributor
timestamp: January 30, 2018, 08:24:07 am
content: Thank you for pointing out this little bugger. After having 2 machines blowing their tar last year, I am in the process of exchanging all RIFAs I find. 2 Devices are clear now, with the 3478A its 3 waiting now.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 30, 2018, 09:32:03 am
content: Quote from: babysitter on January 30, 2018, 08:24:07 amThere are 4 of them. I think 2 big ones (0.022uF) are not that dangerous, because they are connected across the switch.But the other two 1000pF are across mains.

author: kelchm
author_rank: Regular Contributor
timestamp: February 06, 2018, 11:45:02 pm
content: Quote from: kirill_ka on January 30, 2018, 09:32:03 amAre you maybe thinking of another meter? I just took a look at my notes from when I tore down my two 3478A's and I didn't note down seeing any 1000pF caps. Did I miss something?Here's what I noted down as caps that I will replace eventually:S/N 2619A48043LocationCapacitanceVoltageBrandNotes / Other MarkingsC7613300µF25VSMC8827(2) (M)85ºCC702330µF50VSMC88 C(2) (M)85ºCC703330µF50VSMC88 C(2) (M)85ºCC7111000µF25VSMC8835(2) (M)85ºCC7650.022µF250VRIFAPhotoC7660.022µF250VRIFASee AboveS/N 2619A39329LocationCapacitanceVoltageBrandNotes / Other MarkingsC7613300µF25VSMC8827(2) (M)85ºCC702330µF50VSprague8742(M) 85ºCC703330µF50VSprague8742(M) 85ºCC7111000µF25VSMC8831(2) (M)85ºCC7650.022µF250VRIFAPhotoC7660.022µF250VRIFASee Above

author: kelchm
author_rank: Regular Contributor
timestamp: February 06, 2018, 11:50:00 pm
content: Quote from: kirill_ka on January 29, 2018, 09:01:51 pmThis is awesome!I've starred your repository and plan on experimenting with this at some point in the future.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 07, 2018, 09:31:22 am
content: Quote from: kelchm on February 06, 2018, 11:45:02 pmThose are A1C721 and A1C720. I have an old version of 3478A. Maybe they where changed in newer revisions.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 07, 2018, 09:34:24 am
content: Quote from: kelchm on February 06, 2018, 11:50:00 pmYou are welcome

author: kelchm
author_rank: Regular Contributor
timestamp: February 07, 2018, 10:21:28 pm
content: Quote from: kirill_ka on February 07, 2018, 09:31:22 amThanks, I took another look and was able to locate them. They are directly between the transformer and the mains input. Removing the GPIB ribbon cable makes them easier to see.

author: bitseeker
author_rank: Super Contributor
timestamp: February 07, 2018, 11:03:43 pm
content: Thanks for the photo. I should check that, too.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: July 18, 2018, 02:54:50 pm
content: Quote from: kirill_ka on September 29, 2017, 10:14:09 amI've been using my "extended" HP3478 for awhile now. All the features work very well. Now I'm asking for an advice on what else to do about this project. Probably I should add some documentation to make it easy to reproduce? I feel a bit uncomfortable about I'm the only one using such a cool thing

author: bitseeker
author_rank: Super Contributor
timestamp: July 18, 2018, 04:49:31 pm
content: Implementation and operation guides so others could build and operate it would certainly be good things to have to make a more complete package.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 21, 2018, 09:37:35 am
content: At last there is some progress with the documentation. Since I've been experimenting with HP8561e, I revised GPIB command line and wrote a command line reference.https://kirill-ka.github.io/hp3478ext/Also there's a basic implementation guide, and pre-compiled firmware.Any suggestions, comments are very welcome. I'm not comfortable writing manuals in English, so the text is probably awkward. I would be happy if someone help me to improve it.

author: bitseeker
author_rank: Super Contributor
timestamp: August 22, 2018, 02:33:05 am
content: Thanks kirill. Can you send me the LibreOffice Writer files? It's more efficient making corrections that way rather than have you re-enter them from a list of changes.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 22, 2018, 05:31:21 am
content: Quote from: bitseeker on August 22, 2018, 02:33:05 amI just uploaded them to the git. Thanks.https://github.com/KIrill-ka/hp3478ext/blob/master/ug1-gpib-commands.odt?raw=truehttps://github.com/KIrill-ka/hp3478ext/blob/master/ig1-basic.odt?raw=true

author: bitseeker
author_rank: Super Contributor
timestamp: August 22, 2018, 06:33:13 pm
content: Pull request submitted. I clicked a bit too fast and may have borked it. Let me know.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 25, 2018, 06:29:18 pm
content: Quote from: bitseeker on August 22, 2018, 06:33:13 pmbitseeker, thank you for spending your time on this. It's a very valuable experience to me. I had to revert some spacing changes, because html and odt don't look the same. If you add empty lines in odt to make it better, html becomes too sparse. Tabs also behave differently.

author: bitseeker
author_rank: Super Contributor
timestamp: August 25, 2018, 07:11:12 pm
content: Ah, OK. I should've checked that.I haven't used word processors for HTML, so I only paid attention to the way it looked in its native form. I hope it wasn't too much of a hassle to revert the spacing. I enabled tracking for all the edits in the hopes it would minimize the effort to remove any changes that you didn't want.Once you're done with any additional info for the docs, I can take a final pass over the text (I'll leave the spacing alone).

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 27, 2018, 11:04:16 am
content: I think I'm done with it for now. So, you are welcome to take a look. I tried to clarify the description of the OX command and added a small section on the stand-alone HP3478A operation. There should be no changes apart from that.Meanwhile I wrote a basic Tcl library for remote programming. I'll publish it and also some Tk GUI examples as soon as I have enough play with it.

author: bitseeker
author_rank: Super Contributor
timestamp: August 29, 2018, 12:16:34 am
content: OK, I'll check it out when I get home.

author: bitseeker
author_rank: Super Contributor
timestamp: August 29, 2018, 03:49:27 am
content: That new paragraph describing the standalone extension mode helps a lot. I just made a few corrections to touch it up and created a pull request for you.Cheers!

author: Miti
author_rank: Super Contributor
timestamp: December 28, 2018, 08:01:54 pm
content: Hi Kirill,I tried your project on my HP3478A and it doesn't do anything when I press SRQ. Can you check the fuses configuration on the Atmega? I've checked the connections twice.Thanks,MitiEdit: I'm not using the USB to serial adapter. I understand that part is optional if you want to send commands to the meter, or am I missing something? Should it work only with the mini pro?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 28, 2018, 09:28:55 pm
content: Hi Miti,It definitely works without an USB-to-UART adapter, but it would be very hard to diagnose any problems without one.How did you download the firmware then?The "standard" fuse settings used on those atmega328p boards should work.However the recommended efuse configuration is at the bottom of the following page:https://kirill-ka.github.io/hp3478ext/basic-impl.html

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 28, 2018, 09:51:33 pm
content: Quote from: Miti on December 28, 2018, 08:01:54 pmI just checked the source... The SRQ key is disabled by default, so you either need to program the provided eep file or enable it with OX1w serial command.

author: Miti
author_rank: Super Contributor
timestamp: December 28, 2018, 10:32:04 pm
content: Quote from: kirill_ka on December 28, 2018, 09:28:55 pmI programmed using USB-AVR-ISP. Both main flash and EEP pass verification.Edit: I have a feeling that the Arduino bootloader is still needed. However, it was erased when I programmed it using the ISP programmer. Could that be the cause?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 29, 2018, 07:12:38 am
content: Quote from: Miti on December 28, 2018, 10:32:04 pmYes. Then you need to disable the bootloader with fuse bits...

author: Miti
author_rank: Super Contributor
timestamp: December 29, 2018, 05:20:54 pm
content: I did but it still doesn't work. See attached screen shots for flash and EEP verification and the fuses status.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 29, 2018, 06:26:41 pm
content: I'm almost out of ideas what can we try without the serial interface.What's the GPIB address of HP3478A? Is it set to default?You may try to set PWR ON SRQ DIP switch to see if SRQ annunciator is cleared after power off.Do you see LSN or TLK annunciators blinking after powering 3478A on?I'll check fuse config later, but your setting looks right.

author: Miti
author_rank: Super Contributor
timestamp: December 29, 2018, 06:44:12 pm
content: Quote from: kirill_ka on December 29, 2018, 06:26:41 pmThe GPIB address was set to 2. I set it to 0 and still nothing. What should it be? I set the PWR ON SRQ and SRQ is displayed and stays there.LSN and TLK never blink.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 29, 2018, 06:52:07 pm
content: Quote from: Miti on December 29, 2018, 06:44:12 pmThe default address for HP3478A is 23.

author: Miti
author_rank: Super Contributor
timestamp: December 29, 2018, 07:00:50 pm
content: That was it, the address was wrong. You should add that to the instructions. Thanks a lot Kirill!

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 29, 2018, 07:46:14 pm
content: Quote from: Miti on December 29, 2018, 07:00:50 pmYes, I will. I'm glad you got it working.Power on SRQ is also recommended setting, since it helps to detect 3478A's reset condition.

author: Miti
author_rank: Super Contributor
timestamp: December 29, 2018, 10:16:14 pm
content: I like your project! I think I'll put it on a proper PCB and install it in my two meters.Edit: Is the UI diagram in page one up to date? Mine doesn't seem to follow it or I don't understand it.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 31, 2018, 08:17:21 am
content: Quote from: Miti on December 29, 2018, 10:16:14 pmAutohold, diode and temperature functions are missing from it. Other than that, it seems to be correct.The (SRQ)) thing means that you have to press SRQ number of times. The particular order of menu entries is not shown.Also note, that autohold seems to work better in 4 digit mode.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 31, 2018, 08:25:39 am
content: Quote from: Miti on December 29, 2018, 10:16:14 pmThen I owe you to describe how I connected the UART-USB module...

author: Miti
author_rank: Super Contributor
timestamp: December 31, 2018, 12:56:05 pm
content: Quote from: kirill_ka on December 31, 2018, 08:25:39 amThat won't be necessary, I think I know how to connect them. I will send you the schematic for validation before I do the layout. I have couple of questions though:1. In one of your pictures you connect the GPIB on top of the add-on module. Can you have it both ways, add this extra functionality, the USB and have the GPIB functional as well? Do you put everything in tri-state? I don't think that can be done.2. What's the PWM frequency of the buzzer? It seems to be a bit low for the buzzer that I have. They work best close to their resonant frequency, did you have a specific part in mind when you selected that frequency?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 31, 2018, 04:23:19 pm
content: I pulled up TX pin of CP2101 to it's internal 3.3V regulator and connected to 328p's RX through a diode. USB 5V is also connected to 328p through a Shottky diode. So the CP2101 is not powered through the arduino board.I used unregulated 5V supply (which is more like 15V) to power the arduino board to use it's diode, fuse, and internal regulator.1. It should be fine if you disable 3478A extensions (OX0 command). Most* GPIB lines are not actively pulled high in atmega. I assume 2 scenarios:1) external USB controller is used, then atmega board does nothing.2) hp3478ext can be used as a controller for other devices connected to HP3478A externally.Although, in both cases GPIB signals should stay within allowed atmega pin voltage.* I should check the code, and tell you how it works exactly. May be I haven't put enough thought in it...2. If it's a buzzer, it doesn't require PWM. Initially I used piezo speaker (which requires a driver to sound properly). When I switched to the buzzer, I left pwm so the buzzer doesn't sound loud. I can add eerpom config to it so you can tweak it.UPDATE:IEEE 488 specifies maximum signal level as 5.25V. This should be fine for AVR.All GPIB signal lines in hp3478ext are driven in open collector way. There's no strong pull up.DAV and SRQ lines are weakly pulled up. Current hp3478ext firmware pulls DIO low when inactive. I'm going to remove this behaviour, because it would conflict with an external GPIB controller.

author: Miti
author_rank: Super Contributor
timestamp: January 01, 2019, 09:46:32 pm
content: I got bored today and put together a schematic.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 02, 2019, 07:19:53 pm
content: Quote from: Miti on January 01, 2019, 09:46:32 pmIt looks good. Thanks.Please, consider the modifications I made.J3: 2.54mm pitch connector for USB B socket (which can be mounted on the back of 3478A).

author: Miti
author_rank: Super Contributor
timestamp: January 05, 2019, 05:04:28 pm
content: Hi Kirill,I have a couple of questions:1. What's the benefit of powering the FT232 from USB only? It is held in reset while USB is not plugged anyway and I save three diodes.2. What's D6 doing? Is it a heart beat indicator?Thanks,Miti

author: coromonadalix
author_rank: Super Contributor
timestamp: January 05, 2019, 05:15:05 pm
content: D6 could be an heart beat, activity monitor etc .. it depends on the firmware coding, i dont think the ft232 would be held in reset, i have FTDI usb adapters always connected to my pc, until you open connection on com ports, they stand still and are waiting ?? and the coms on the "slave" interfaces are not held in reset too, they function normally.I have FTDI usb-rs232, but hey have an added buffer bidirectional i/o chip inside. We did had problems of isolation / data lines not pulled correctly and when i made some tests it affected the "slave" instruments circuits.Not sure the ft232 would have some isolation ?? You may end with ground problems if you take some measurements with the meter and be connected to an computer.Thats why i push some good isolation circuit for the usb-gpib interface ?? I know, i know its not a 5$ dongle, but when you measure voltage potential between pc ground and interface grounds you may have some surprise(s).I would have added an small dc-dc 5 volts converter isolator, they have a very small footprint, it would add more isolation, but not on the data signals.Is the Official HP Agilent usb-gpib has known available schematics ?? since we have so many cloned devices from china.Usb isolator: 9$ usdhttps://www.ebay.com/itm/1500V-USB-to-USB-Isolator-Board-Protection-Isolation-ADUM4160-ADUM3160-Module/152382773951?hash=item237ab89abf:g:2d8AAOSwEzxYbQMG:rk:2:pf:0

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 05, 2019, 09:24:25 pm
content: Hi Miti.Quote from: Miti on January 05, 2019, 05:04:28 pmThe idea is to allow the whole thing to be USB powered.a) for testing purposesb) for external GPIB connectionc) to allow firmware updates while the 3478A is turned offAnyway, you can leave pcb jumpers and leave those components unpopulated.Quote from: Miti on January 05, 2019, 05:04:28 pmCurrent firmware blinks it when it's in the GPIB listen state.It can be repurposed for something... Heart beat may be a better use for it. So you know the firmware is alive.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 05, 2019, 09:32:18 pm
content: Quote from: coromonadalix on January 05, 2019, 05:15:05 pmDigital part of HP3478A is already isolated from analogue part. I don't see why the USB isolation would be necessary.

author: Miti
author_rank: Super Contributor
timestamp: January 05, 2019, 10:00:51 pm
content: Quote from: coromonadalix on January 05, 2019, 05:15:05 pmRead section 6.2 in the attached datasheet.Quote from: coromonadalix on January 05, 2019, 05:15:05 pmTake a look at the block diagram in the service manual of HP3478A. The meter has two sections, the analog, measuring section and the digital, processing, displaying, communication section. These two sections are galvanically isolated. The two sections are present in all bench meters and they are called chassis common/floating common in this particular HP meter, inguard/outguard in Fluke meters. The data transfer between sections is done through transformers or optocouplers. Unless you do something (stupid, maybe dangerous and, in case of bench meters, useless) to isolate the chassis from the ground (earth), the meter chassis and the PC chassis that is connected to, should be at the same level, ground level. The measurements should not be affected at all.

author: coromonadalix
author_rank: Super Contributor
timestamp: January 06, 2019, 03:17:39 am
content: SorryI forgot the meter circuit ingard outgard circuit(s), disregard my comments, same for my 34401a loll

author: Miti
author_rank: Super Contributor
timestamp: February 17, 2019, 02:56:46 am
content: And here's the board. Populated, tested. Tomorrow I will take some pictures inside the meter.Kirill,Is the source code Arduino or C? Could you share it?Edit: Added picture inside the meter.Edit1: Never mind, brain fart, the code is on github.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 17, 2019, 05:58:20 pm
content: Great news! Thanks. I see you found a proper socket with long pins. I used pin headers meant for Arduino shields. They didn't fit well.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 17, 2019, 07:02:32 pm
content: This is how I installed USB type B socket for remote control and programming.I used a cable like that:https://www.ebay.com/itm/2pcs-90-Degree-Left-Right-Angled-USB-B-Type-Male-to-Female-Extension-Cable/262054119211EDIT: it's a fail! The socket can't be used while GPIB cable is plugged. It should be moved further away from the GPIB connector.

author: Miti
author_rank: Super Contributor
timestamp: February 17, 2019, 09:15:38 pm
content: Quote from: kirill_ka on February 17, 2019, 05:58:20 pmLool!That's exactly what I used, the pins from an Arduino stackable header kit on the bottom and a socket on the top. Pretty hard to keep together and solder...and that kit is damn expensive.The problem with the sockets with long pins is that they are square and pretty thick. One insertion would damage the socket on the meter. I couldn't find a socket with long, flat pins.Edit: It doesn't work with external GPIB adapter in parallel with the extension for me. You may want to look at the code and see if all the lines are high impedance/inputs while waiting for buttons press/serial communication.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 18, 2019, 09:41:44 am
content: Quote from: Miti on February 17, 2019, 09:15:38 pmThese are pretty cheap:https://www.aliexpress.com/item/FREE-SHIPPING-60PCS-2-54MM-6Pin-8Pin-10Pin-10MM-Long-Needle-Female-Pin-Header-Strip-Stackable/32309731519.htmlHowever, I had to file pins a little. They are too wide for the socket used in my 3478a.Quote from: Miti on February 17, 2019, 09:15:38 pmBy design you should disable extension with serial command. But in theory it is possible to allow external GPIB master if the SRQ is not used.Did you try the latest version (1.1)?https://github.com/KIrill-ka/hp3478ext/releasesOk, I need to find time to make a debugging session to see what I can do about this.

author: Miti
author_rank: Super Contributor
timestamp: February 22, 2019, 12:04:06 pm
content: Kirill,I tried OX0 and still didn't work. It must pull some lines up or down.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 22, 2019, 09:46:45 pm
content: Yes, the data lines were not released after transfer. Please, try the attached version.I tested it with HP8561E acting as GPIB master. HP8561E was able to read data from the multimeter (although, not reliably, but it works the same regardless of the hp3478ext).Also I was able to control the HP8561E using the extension board installed inside of HP3478A without a problem.

author: Miti
author_rank: Super Contributor
timestamp: February 22, 2019, 11:59:06 pm
content: Thanks Kirill!It works well and I don't even have to send OX0.I can make some suggestions, if you are open to improvements.1. Timeout so it doesn't stay there forever waiting to select AUTOHOLD, etc.2. Instrument GPIB address auto detection so we're not stuck with address 23 and we don't have to set it manually in the extension board. You can save it in EEPROM and validate it at power up.I have some more but I can't remember them now.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: February 24, 2019, 10:21:24 pm
content: Quote from: Miti on February 22, 2019, 11:59:06 pmYes, sure, any suggestions are welcome.Quote from: Miti on February 22, 2019, 11:59:06 pmCould you add some background, why do you think it would be useful?If you mistakenly press the SRQ key, I think, it's faster to cycle through menu instead of waiting.QuoteI guess this is meant for installations where you just don't want to use the USB interface at all.It can be done, but it's a bit more complex than I like it...By the way, I made it to exit the continuity tester by switching the measurement function.

author: Miti
author_rank: Super Contributor
timestamp: February 27, 2019, 11:24:50 pm
content: Quote from: kirill_ka on February 24, 2019, 10:21:24 pmI always find it good practice to come back to a known state if a sequence of keys was not completed. For example there is AUTOHOLD and MINMAX in all functions, V DC, V AC, 2W Ohm, 4W Ohm, mA DC, mA AC. If I press SRQ once and the phone rings, when I come back and I see AUTOHOLD on the display, I don't remember if I was in V, A, etc. If it times out, I know where I am. Nothing wrong with the way it is now, just convenience. I know,Quote from: kirill_ka on February 24, 2019, 10:21:24 pmI should be able to use it stand alone or USB with the instrument set to any address as long as I know what address was set to. The power up sequence that I think of is:1. Try to read something from the default address (that is stored in the EEPROM), for example send an S and see if you receive back 0<CR><LF> or 1<CR><LF>2. If you received the expected string, do nothing, the address is correct.3. If you don't receive the expected string, scan all the GPIB addresses until you get the expected string and store the correct address in the EEPROM.In general, step 3 should be executed only if the instrument GPIB has changed or it is the first install.Quote from: kirill_ka on February 24, 2019, 10:21:24 pmThanks! Did you upload the hex somewhere?

author: Miti
author_rank: Super Contributor
timestamp: March 04, 2019, 12:12:33 am
content: Kirill,In CONT mode, if I don't probe anything for awhile, probably about 10 minutes, the display goes blank. That's a feature the instrument if the display isn't updated for about 10 minutes. Please look at "D3text" command. Probably you don't update the display if nothing changes.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 05, 2019, 04:26:01 pm
content: Quote from: Miti on March 04, 2019, 12:12:33 amYes, I think that's not bad. It goes back as soon as you short the leads. But I think of adding menu timeout as you suggested because of this "screensaver" thing.The blank display while expecting menu selection doesn't seem to be good.Quote from: Miti on March 04, 2019, 12:12:33 amI'm in the process of adding eeprom parameters for buzzer volume and frequency (0 will disable PWM). After that I'm going to release a new version.By the way, I've got the boards. It was a joy to solder, thanks! PC speaker sounds quite well.Looks like it's a good idea to add a gate pull-down resistor for the buzzer driver mosfet. It gets quite warm then atmega pin is high-Z.

author: Miti
author_rank: Super Contributor
timestamp: March 05, 2019, 11:46:36 pm
content: Quote from: kirill_ka on March 05, 2019, 04:26:01 pmI didn't expect that output to be hi-Z but I guess that's how you turn the buzzer on and off, from DDR register. Can you add one line of code to make PB2 digital output once you turn off the buzzer and then PWM output again when you turn it on?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 06, 2019, 11:33:04 am
content: Quote from: Miti on March 05, 2019, 11:46:36 pmYes, I already did so. But it's still in hi-Z when the firmware is not running (firmware flashing, bootloader, etc.).

author: Miti
author_rank: Super Contributor
timestamp: March 06, 2019, 07:25:53 pm
content: Ok, I added one 100k resistor to GND and a 5 pins USB header instead of 4 pins. The majority of panel mount USB cables to pin header have 5 pin header. Not sure when/ if I will order new Pcbs.

author: coromonadalix
author_rank: Super Contributor
timestamp: March 06, 2019, 09:22:19 pm
content: Should be an easy patch to do on the actual pcb's you have

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 07, 2019, 09:44:31 am
content: Quote from: coromonadalix on March 06, 2019, 09:22:19 pmThere's a GND via right next to the gate. I've put a 0603 resistor and it doesn't even look like a bodgeOne more thing. I had to trim PCB edge so it doesn't collide with mains filter capacitors.

author: Miti
author_rank: Super Contributor
timestamp: March 07, 2019, 05:40:04 pm
content: Can you post a picture? In my meters there's enough room to the caps but there are at least two different 3478A models.How much did you have to trim it? My intention was to keep it all above the chassis section and don't go too close to the floating section. If it gets too close to the caps in the floating section, I don't like it.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 07, 2019, 09:14:52 pm
content: Just published a new release on the github.The default eeprom is configured for a speaker. I added a separate eep for DC-driven buzzers.New commands:Obuzz_period<p>where <p> is 0 to 65535 configures PWM period for the buzzer. 0 means DC.Obuzz_duty<d>where <d> is 0 to 127. 0 completely disables the buzzer. 127 is for 50% duty cycle.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 07, 2019, 09:39:09 pm
content: The capacitor is not original, but I think it would be the same with the original caps.

author: Miti
author_rank: Super Contributor
timestamp: March 08, 2019, 12:45:47 am
content: I see, your pins are short. My pins are long enough to raise the board above the capacitors.

author: Miti
author_rank: Super Contributor
timestamp: March 08, 2019, 02:33:16 am
content: Kirill,I still see the old files on Github, the .eep and .hex are dated Aug 2018. Not that I want to update now, I'm very happy with this version. I will probably play with it once I install the USB cable that I ordered from Evilbay.So happy that HP3478A became my go to meter for every day measurements:- Buzzer response is very fast, at par with Fluke.- Autohold is very fast and stable with 3 or 4 digits and reasonably fast with 5 digits.- Min/Max works well.I have two more suggestion for improvement:1. Latch buzzer - minimum buzzer time. Fluke does that.2. EEPROM autoinit - Initialize the EEPROM after a new part is programmed or after an upgrade that adds new EEPROM addresses/content. This may be harder to implement but I don't think you use many EEPROM variables.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 08, 2019, 10:49:16 pm
content: Quote from: Miti on March 08, 2019, 02:33:16 amI guess you didn't check the github project releases.Now I've updated link in html to refer to the latest binaries (r1.2).Quote from: Miti on March 08, 2019, 02:33:16 amI'm happy to hear that. I don't have another meter with an autohold function to compare.Quote from: Miti on March 08, 2019, 02:33:16 amOk, I'll add this. The reading rate in CONT mode is 78 rdg/sec (may be different with 60 Hz mains). So it's latched for 1/78 sec. I think of adding a parameter (N) so the buzzer will stay on for N/78 sec.Quote from: Miti on March 08, 2019, 02:33:16 amI don't quite understand what do you want. The firmware uses the default parameter value when it sees FF's instead of something valid. This should work during upgrade as soon as parameters are not rearranged or interpreted in a different way. Recently I've added a script to configure EEPROM image files (.eep). The script may not be so user-friendly, because it requires TCL and avr toolchain installation, but it allows me to include a set of pre-configured eep's in the binary release.

author: agaelema
author_rank: Contributor
timestamp: March 08, 2019, 11:12:13 pm
content: This upgrade of HP3478 looks awesome(I need to do this ). A video showing the new functions would very interesting.

author: Miti
author_rank: Super Contributor
timestamp: March 09, 2019, 12:21:31 am
content: Quote from: kirill_ka on March 08, 2019, 10:49:16 pmGot it. I thought that, since you include the EEPROM image, it is mandatory to program it, otherwise it would't work properly. Since Arduino bootloader doesn't program EEPROM, that would have to be done using AVRISP.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 09, 2019, 12:38:04 am
content: Quote from: Miti on March 09, 2019, 12:21:31 amHmm. At least some of them do. I need to check if it works for me.

author: Miti
author_rank: Super Contributor
timestamp: March 09, 2019, 02:41:29 am
content: Kirill,The buzzer doesn't work for me with Ver 1.2 and I tried both EEPROMs, I'm back to Ver 1.1. I use internal driven (DC) buzzer. I sent Obuzz_period0 and Obuzz_duty127 even though duty shouldn't matter when period is 0... or should it?Edit: I added a screen shot of my Fluke179 buzzer timing. The shortest buzz I could get is about 85ms.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 09, 2019, 11:05:26 am
content: Quote from: Miti on March 09, 2019, 02:41:29 amThank you for testing it.I just uploaded r1.2.1, it hopefully fixes the problem.

author: Miti
author_rank: Super Contributor
timestamp: March 09, 2019, 01:01:12 pm
content: Quote from: kirill_ka on March 09, 2019, 11:05:26 amStill doesn't work for me. Beside that, it didn't even respond to SRQ key until I programmed the EEPROM. This is what I meant by "EEPROM Autoinit", after every fresh programming or upgrade, make sure it starts with a default EEPROM that works. This way, once the bootloader is programmed and the fuses configured, we don't need to use AVRISP anymore, everything is done through USB.

author: Miti
author_rank: Super Contributor
timestamp: March 09, 2019, 01:22:30 pm
content: Quote from: agaelema on March 08, 2019, 11:12:13 pmhttps://drive.google.com/open?id=179wN6CET8ZQY1wQDYIMmN7-N4oslAw8C

author: agaelema
author_rank: Contributor
timestamp: March 09, 2019, 02:34:06 pm
content: The project is using the internal EEPROM of 328P, correct?I searched by the main.c but I not found, just the .hex. Anyway, if the initialization of the internal EEPROM is a problem the AVR "EEMEN" allocate the variable in the EEPROM section.Code:"unsigned char EEMEM uc_valor = 0x33;"http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html#ga79a42ec6c6c8bbbe6e34ed57a52aac59

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 09, 2019, 06:45:23 pm
content: Quote from: Miti on March 09, 2019, 01:01:12 pmIt shouldMaybe you didn't add W to save parameters in the EEPROM?I tried it with DC buzzer and it works for me. The only thing, I tested it with the buzzer beeping at start (I was too much hassle to put it inside 3478A and test it there). Anyway, I re-uploaded r1.2.1, because that debugging beep sneaked in. There were no major changes in 1.2 release so maybe you don't want to waste your time on this...Quote from: Miti on March 09, 2019, 01:01:12 pmOk, I'll keep an eye on EEPROM addresses used for variables. So they don't change with the updates unless required.Quote from: Miti on March 09, 2019, 01:01:12 pmI did program EEPROM with the bootloader.The command isCode:avrdude -b 57600 -c arduino -p m328p -P /dev/ttyUSB0 -U eeprom:w:hp3478-ext-dc-buzzer.eepAs I remember, there's a fuse to erase EEPROM before programming the flash. But it shouldn't affect bootloader in any way. I can put some version code in the EEPROM to force initialization if an incompatible version is detected. But I don't think it's needed for now.

author: Miti
author_rank: Super Contributor
timestamp: March 09, 2019, 10:31:32 pm
content: All good now.Thanks Kirill!

author: Miti
author_rank: Super Contributor
timestamp: March 21, 2019, 02:41:59 am
content: Kirill,How hard would it be to redefine the pins to your project to match the one here?https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/How nice would be to be able to simply program the board through USB to have functionality extension or Prologix USB-GPIB interface, as you wish?I know that your project has some USB-GPIB functionality but it is not compatible with Prologix.I tried the other way around, to redefine AR488 pins for my board but it doesn't work. The ports are hard coded in AR488.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 21, 2019, 02:48:20 pm
content: Miti, the buzzer pin (PB2) is a problem. There's no alternative mapping for the OC1B.I more like the idea to implement the Prologix command set in hp3478ext. But I need a bit more motivation to do so.Now I'm slowly advancing with multi tone continuity mode, which may be very useful for reverse engineering and fault finding.

author: bitseeker
author_rank: Super Contributor
timestamp: March 21, 2019, 05:49:41 pm
content: Multi-tone continuity as in changing pitch relative to resistance? I like the sound of that (pun somewhat intended).

author: Miti
author_rank: Super Contributor
timestamp: March 21, 2019, 07:57:53 pm
content: The idea is great but the buzzer response is not linear so you'll have big variations in the intensity. But you can control the volume as well so it should be doable.Using an internally driven buzzer woud solve the PWM output restriction.Adding the Prologix code to your project would be nice, not sure if there's enough memory though and would take a lot of effort.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 21, 2019, 09:08:15 pm
content: Quote from: bitseeker on March 21, 2019, 05:49:41 pmYes. For now I have a bunch of parameters: thresholds, pwm periods and pulse lengths. After I gather some use case scenarios, I'll try to figure out a more user-friendly configuration.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 21, 2019, 09:18:17 pm
content: Quote from: Miti on March 21, 2019, 07:57:53 pmYes, both pitch and volume are configurable.Quote from: Miti on March 21, 2019, 07:57:53 pmThen there would be no buzzer controlI don't like the idea of supporting multiple code forks.

author: coromonadalix
author_rank: Super Contributor
timestamp: March 22, 2019, 10:28:20 am
content: Dont want to be rude or start a fightBut it seems everyone want some this or that, and Kirill seems to be under some pressure ??Keep this project simple, if people are not happy take a pause ... take some distance ... slowly you're been pushed away from your original idea, i consider myself lucky to have shown this project to a friend, he bought a 3478a and he's happy with it, want to find a second one ...The added bonus is a gift from a hard work.The buzzer idea may have been a bad one, and having multiple code fork, will mess up everything, unless you take no reponsability and put / add some warnings but it will be a mess in the endEvery one can understand code constraints / code size / and hardware limits too.Not on eevblog, but i saw some free designs and codes dissapearing lately because of what can happen when people dont understand ... push things to a limit.

author: Miti
author_rank: Super Contributor
timestamp: March 22, 2019, 11:23:55 am
content: Coromonadalix,Thanks for policing my suggestions! Really, that's all they are, suggestions for improvement ... which Kirill asked for in the first page, if you read that page. I'm not pushing him in any direction. He, s a big boy...I guess. These are only suggestions to make an excellent project even better.KirillDo you feel pushed?

author: coromonadalix
author_rank: Super Contributor
timestamp: March 22, 2019, 12:43:25 pm
content: Im just saying, all initials idea are finesometimes we dont know when to stop asking for more lollWere using a meter who's never meant to have thoses functions added / modded etc etc .. when it was designedEven myself i would love to add more and more lollI had two meters who had a variable buzzer tone following the read value (s), boy it was practical, i could hear the glitches ...But we may face hardware (s) and or softwares constraints very soononly Krill knows and surely he will know when to stop ??Okay i'll stop loll i'm kinda repeating myself too loll

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 22, 2019, 10:09:53 pm
content: Quote from: Miti on March 22, 2019, 11:23:55 amI don'tAt my main job I don't have a direct connection to the users of our product. Even worse, there may be years until my work meets any user at all. So having some feedback is a nice experience to me.Thank you!Quote from: coromonadalix on March 22, 2019, 12:43:25 pmWho knows?Yes, the idea is to have fun of working on the project. And I agree, this is kinda fragile. Thanks for reminding, I try to keep things reasonable.If you know VIM editor, someday it's author set a limit so all the distribution should fit one 1.44" floppy. That limit was broken, I don't think VIM project had gotten worse after that.

author: bitseeker
author_rank: Super Contributor
timestamp: March 22, 2019, 11:32:24 pm
content: It's all good!

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 09, 2019, 01:46:11 pm
content: I've added some features & customisation parameters to the continuity mode a couple of weeks ago. It seems to work fine, but I didn't play with it a lot. So I decided to throw in a new releasehttps://github.com/KIrill-ka/hp3478ext/releases/tag/r1.3Here's a short description of the parameters:Code:SETTING COMMAND DESCRIPTIONObeep_period<period> beep tone used in autoholdObeep_duty<duty> beep volume used in autoholdOcont_beep_ta<R-threshold> lower buzzer threshold for continuity modeOcont_beep_tb<R-threshold> upper buzzer threshold for continuity modeOcont_range<R-range> Ohms range used in continuity modeOcont_thr<R-threshold> threshold for continuity mode to start displaying the resistance valueOcont_latch<latch-cycles> number of measurement cycles to continue buzzing after the measured resistance gone above the cont_thrOcont_beep_pa<period> beep tone for cont_beep_ta pointOcont_beep_da<period> beep volume for cont_beep_ta pointOcont_beep_pb<period> beep tone for cont_beep_tb pointOcont_beep_db<period> beep volume for cont_beep_tb pointVALUE RANGE DESCRIPTION<period> 0-65534 frequency = 16MHz/2/<period>0 means the buzzer is DC-driven<duty> 0-127 127 means 50% duty cycle0 disables the buzzerfor me working values are 5 to 20<R-threshold> 0-3000 corresponds to the value displayed on the screen in 3-digit mode<R-range> 0-6 resitance range number-1refer to the HP3478A programming manualthe default is 1 = 300 Ohm range<latch-cycles> 0-100 the minimal number of measurement cycles the buzzing continuesone cycle is ~1/75 of second0 means no latchOVER CONT CONT CONTRANGE THR TB TA 0| | | | |V V V V V+----------+------------+---------+-----------+\ \ \ \\ \ \ beeps using beep_da & beep_pa\ \ \\ \ beeps using values linearly interpolated from beep_pb..beep_pa & beep_db..beep_da\ \\ beeps using beep_db & beep_pb\displays "> cont_thr" (the actual effective value of cont_thr is used)

author: bitseeker
author_rank: Super Contributor
timestamp: April 09, 2019, 04:48:25 pm
content: In the last part, wouldn't the message for values over CONT THR be "> cont_thr" (greater than cont_thr) instead of "< cont_thr"?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 09, 2019, 08:56:13 pm
content: Ah, yes, thanks. Corrected.

author: bitseeker
author_rank: Super Contributor
timestamp: April 09, 2019, 11:49:55 pm
content: Sure thing. I haven't yet had a chance to add this to my 3478A, but still following along.

author: yo0
author_rank: Regular Contributor
timestamp: July 21, 2019, 06:11:11 pm
content: great project!, it is possible/viable add dB measurements, frequency, and remember the prefered digits for example 4 1/2? thats will be great!, by the way there is any source to buy for the project pcbs already populated like drop in solution? @Miti?best regards.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: July 22, 2019, 11:13:38 am
content: Quote from: yo0 on July 21, 2019, 06:11:11 pmThanks!Quote from: yo0 on July 21, 2019, 06:11:11 pmIt should be possible, but what do you mean by the dB?Is it relative mode in dB? dBuV? dBm?Quote from: yo0 on July 21, 2019, 06:11:11 pmNo. HP3478 can't measure frequency.Quote from: yo0 on July 21, 2019, 06:11:11 pmYes, I was thinking of adding some kind of save state/recall state functions. That would be a lot more complex than just saving one parameter, but it would be more logical and universal solution.

author: yo0
author_rank: Regular Contributor
timestamp: July 22, 2019, 12:30:58 pm
content: Thanks!, i mean dBm (some fluke dmms are refereced to 600Ω) dont know if hardware is adequatedBest regardsPio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 12, 2019, 03:39:45 pm
content: Quote from: yo0 on July 22, 2019, 12:30:58 pmSorry for late reply, I didn't notice the post was edited. I don't know if any DMM would provide a matching low impedance input.My Amprobe AM-140A allows for multiple impedance references. All of them require an external termination.I hope you understand that it would be just a mathematical function, not hardware related.

author: yo0
author_rank: Regular Contributor
timestamp: August 12, 2019, 06:16:42 pm
content: Quote from: kirill_ka on August 12, 2019, 03:39:45 pmthank you, now i understand. i was believing was hardware related as i read in fluke 8060a manual.just for curiosity what are/mean the characters in diode test? >3 Volts perhaps?best regards.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 12, 2019, 08:39:01 pm
content: Quote from: yo0 on August 12, 2019, 06:16:42 pmThe fluke 8060a manual says that the base specifications for dB modes are the same as DC Volts/AC Volts.So I assume it's just a math function.What are you going to use the dB measurements for?Quote from: yo0 on August 12, 2019, 06:16:42 pmYes. 3kOhm range used for the diode test. It gives us precise 1mA test current, ~6V open circuit, ~3V measured diode drop at max. >3V is a bit of a lie, because it will measure slightly above 3V.

author: yo0
author_rank: Regular Contributor
timestamp: August 12, 2019, 10:13:38 pm
content: Quote from: kirill_ka on August 12, 2019, 08:39:01 pmthank you! audio level adjustments in tape recorders mainlybest regards.Pio

author: coromonadalix
author_rank: Super Contributor
timestamp: August 13, 2019, 12:22:38 am
content: @yoOYou can do your math0db is 775 mili volts etc ... you have charts floating on the web ??

author: yo0
author_rank: Regular Contributor
timestamp: August 13, 2019, 12:37:07 am
content: Thank you, Yes I know, just was a suggestion of features.

author: Miti
author_rank: Super Contributor
timestamp: August 20, 2019, 12:37:05 am
content: Quote from: yo0 on July 21, 2019, 06:11:11 pmSorry, I missed your question. No, I don't have fully populated boards, only bare boards.

author: yo0
author_rank: Regular Contributor
timestamp: August 20, 2019, 02:49:11 am
content: Quote from: Miti on August 20, 2019, 12:37:05 amthank you very much, do you think can be a business oportunity for you to sell it like a finished product? do you think there is enough demand? i think still are thousands 3478a working out there.if not, do yo have the needed files and the bom to replicate the pcb for sale or share?, i mean for my personal use.best regards.Pio

author: Miti
author_rank: Super Contributor
timestamp: August 20, 2019, 11:38:16 pm
content: Quote from: yo0 on August 20, 2019, 02:49:11 amFirst of all this is Kirill's project so he should be the one to commercialise it, if he decides to. He must have put much more hours in the SW than I've put in the PCB.Second, no, I don't see a significant commercial value in this project, designed for a dying multimeter. It is very useful, nice exercise for hobbyists though.I'm sorry Kirill, I hope you're not offended by what I said.Edit: I can sell you a board or two if you want. Contact me on the PM if you want.

author: yo0
author_rank: Regular Contributor
timestamp: August 21, 2019, 12:13:34 am
content: Quote from: Miti on August 20, 2019, 11:38:16 pmThank for your valuable response, you're right, my apologies.Best regards.Pio.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 21, 2019, 12:25:41 pm
content: Why apologise? I agree with Miti. I don't think enough items would be sold to justify the effort. Pio, just get the board and build it!All the parts are easily available and cheap. In fact, I was able to find everything at home. By the way, I highly recommend PC-speaker style buzzer,as I find variable tone continuity test to be very useful.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 21, 2019, 12:54:27 pm
content: Release 1.4 is ready.* 5 presets can be saved and loaded. Preset 0 used after power-on (power-on SRQ should be enabled).* Added menu timeout.* Fixed key handling in MINMAX mode.* Added error reporting. If something wrong happened, the error code is displayed.There's a hidden feature. If an "ext" function used within 5 seconds before entering the menu, that function would be saved in preset.I didn't have time to test it much as usual (this is the major advantage of non-commercial project by the way).

author: Miti
author_rank: Super Contributor
timestamp: September 11, 2019, 04:02:37 pm
content: Hi Kirill,What compiler do you use? Can it be compiled with AVR Studo? Can you post the hex and eep as you did before?Thanks!

author: kirill_ka
author_rank: Frequent Contributor
timestamp: September 11, 2019, 07:17:11 pm
content: Quote from: Miti on September 11, 2019, 04:02:37 pmI thought I did upload the binariesNow it's there.https://github.com/KIrill-ka/hp3478ext/releases/download/r1.4/hp3478ext-1.4.zipThe compiler is avr-gcc. Windows package is called winavr. And yes, it comes with AVR Studio.

author: Miti
author_rank: Super Contributor
timestamp: September 12, 2019, 05:21:39 pm
content: Kirill,Most of the externally driven buzzers are single tone, usually the sound intensity decreases significantly outside of the resonant frequency they were designed for. Did you experiment with multiple buzzers, do you have a part number to recommend?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: September 13, 2019, 07:36:31 pm
content: Quote from: Miti on September 12, 2019, 05:21:39 pmI salvaged it from a PC motherboard. The part number is AC-1205G.The datasheet shows a pronounced resonance @ 2kHz. In practice that AC-1205G sounds ok and I don't feel like it needs a freq response compensation.https://www.eevblog.com/forum/projects/project-extending-hp3478a-functionality/msg2251509/#msg2251509

author: kirill_ka
author_rank: Frequent Contributor
timestamp: September 13, 2019, 08:27:40 pm
content: Here's the settings I use for now:Code:<GPIB> Ocont_ran1 # 300 Ohm range<GPIB> Ocont_beep_ta5 # 0.5 Ohm resistance for beep_pa & beep_da<GPIB> Ocont_beep_pa2000 # 8kHz<GPIB> Ocont_beep_pb40000 # 400Hz<GPIB> Ocont_beep_da15 # 15/256*100% = ~6% duty cycle<GPIB> Ocont_beep_db15<GPIB> Ocont_beep_tb1000 # 100 Ohm resistance for beep_pb & beep_db<GPIB> Ocont_thr1000 # 100 Ohm threshold where it starts buzzing<GPIB>I just noticed a bug in handling cont_thr parameter. There's an integer overflow so it triggers at lower value than specified. I'll publish a fix for it soon.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: September 20, 2019, 11:46:38 am
content: Quote from: kirill_ka on September 13, 2019, 08:27:40 pmhttps://github.com/KIrill-ka/hp3478ext/releases/tag/r1.4.1I spent some time trying to trace out a rare glitch where wrong data was received from GPIB.It appeared due to the extension board had a bad contact with the socket. So I soldered contacts from 2mm pitch pin header on the top of the contacts I used previously. Note that I have an older model HP3478A which has a special socket and requires narrow contacts.

author: Miti
author_rank: Super Contributor
timestamp: November 19, 2019, 11:43:21 am
content: Hi Kirill,Any chance you can include Prologix commands into your project?[url=https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/]https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/Into your project? I doubt it would fit but I thought I’d ask anyway.Edit: I remembered this has been discussed.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 24, 2019, 04:37:01 pm
content: Hi Miti,I think I will do. It should be quite easy, but I need to find some time.Do you mean some particular application? I want to start with some minimal implementation.

author: Miti
author_rank: Super Contributor
timestamp: November 25, 2019, 11:45:31 am
content: No, I don’t have a special application. The other day I turned on one of my two meters just to be greeted with “Uncalibrated”, after I just replaced the batteries in the spring. I measured the battery and it was at 22mV. I measured the good one and it was 3.6V so basically right where I left it in March. I went to buy a new battery and out of four that I measured, one was dead, one was at 3.4V, so it was discharging internally, the other two were around 3.67V. You can’t trust anything anymore, bad quality everywhere.Luckily, I saved the calibration memory before replacing the batteries so I thought, how nice would be just to connect the USB cable and upload the constants back using lmester’s free control program, since the extension is there anyway and it has GPIB capabilities.I’m just trying to be greedy at your expense.BTW, I tried your new version with variable tone. I assembled two new boards for that, I didn’t want to jinx the existing ones by replacing the internally driven buzzers, just in case I didn’t like it.It’s really good, not too much variation in the buzzer level as I expected. However, I have a suggestion, you know by now that I always have one to the desperation of another member here.Most of the time I use the continuity function to check for, well, continuity and that high pitch is bothersome. Can you separate this function in two? Make one “CONT” with a fixed frequency like before, and the other one “SHORT DET” or “CONT VAR” for short detection.One more thing, the beep in autohold is a bit too long for me and compared to Fluke.I like the latch though.Again, great project, thanks for the effort Kirill. This is my go to meter for almost everything after I added your extension and my backlight.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 26, 2019, 09:54:55 am
content: Quote from: Miti on November 25, 2019, 11:45:31 amI still haven't replaced the battery. My 3478 dated back something like 1984 and the battery is from 1994. Calibration RAM data is kept in a safe place though.QuoteIt can be done with 3478ext in current state. I write my "remote controlling" scripts in Tcl. However, I agree it's much easier to do with a dedicated program.Quote from: Miti on November 25, 2019, 11:45:31 amAnother approach would be to send the 3478ext to lmester to encourage him to support the command set of 3478extQuote from: Miti on November 25, 2019, 11:45:31 amFor now you can save 2 presets with different settings for the CONT mode. Is it ok for you?Quote from: Miti on November 25, 2019, 11:45:31 amIt's configurable. Try "Ocont_latch" to see the current setting.Ok, got it. I didn't care to tweak it. What's you suggestion?Thank you for the feedback

author: Miti
author_rank: Super Contributor
timestamp: November 27, 2019, 02:42:22 am
content: Quote from: kirill_ka on November 26, 2019, 09:54:55 amI guess I could do that, lmester was very open with supporting Galvant interface. I have options though so it is not a priority. Ver. 6 of Galvant (released by steve1515) works well with lmester program, I have an Agilent PCI GPIB and I hope I'll get a NI USBGPIB soon, so no worries.Quote from: kirill_ka on November 26, 2019, 09:54:55 amI forgot about the presets, I haven't tested them yet. More button presses but I guess that should work, let me give it a try. I should save the default that loads at power up with constant tone and another one with variable tone.Quote from: kirill_ka on November 26, 2019, 09:54:55 amFluke only beeps for about 25-30ms. I guess somewhere in the range of 25-50ms should be ok.One more feature of Fluke meters praised in one of the threads on this forum is beep on diodes. I've tested my fluke 179 and it beeps about the same 25-30ms between 100-840mV of voltage drop. Below 100mV is continuous beep indicating a short, above 840mV is nothing.

author: Miti
author_rank: Super Contributor
timestamp: November 29, 2019, 12:46:11 am
content: I was trying to save two presets, one with fixed pitch for continuity test, and one with variable pitch for short detection. It looks like they are using the same EEPROM addresses as the settings overwrite each other.

author: yo0
author_rank: Regular Contributor
timestamp: February 01, 2020, 05:02:55 am
content: i have a new arduino nano v3 clone collecting dust, it can be used for this project in a basic implementation form instead the pro mini + UART to USB adapter combo? i have a gpib connector too, my idea is using the arduino externally in a suited enclosure for it and hopefully a funtional buzzer, i think this way i will lost the conectivity (powered via usb) but i am more interested in the new dmm features. i am new in arduino stuff. any help or advice will be really appreciated.best regards.Pio

author: Miti
author_rank: Super Contributor
timestamp: February 01, 2020, 12:33:25 pm
content: I guess that would work but, unless you install two GPIB connectors, in and out, you loose the GPIB interface. The good thing about the internal implementation is that it is completely transparent to the GPIB communication.

author: yo0
author_rank: Regular Contributor
timestamp: February 01, 2020, 08:02:51 pm
content: Quote from: Miti on February 01, 2020, 12:33:25 pmthank you, you are right about that issue, i have really not use of the gpib communication. i was thinking the nano can be powered via some of its pins leaving the usb port free, maybe the unused usb port can be used for comms, i really don´t know.anyway this exercise hopefully can be another implementation option for the users less skilled like me.best regardsPio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 12, 2020, 10:17:55 pm
content: Quote from: Miti on November 29, 2019, 12:46:11 amHi Miti, it seems that I was not getting notifications for some reason. So I missed this. I'll take a look at this later.Finally I got around to adding support for Prologix commands.At least it works with thehttps://www.eevblog.com/forum/testgear/free-hp3478a-multimeter-control-program/Link to the new release at github:https://github.com/KIrill-ka/hp3478ext/releases/tag/r2.0

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 13, 2020, 08:38:23 am
content: Quote from: yo0 on February 01, 2020, 05:02:55 amWhy not? In fact, it's better than "pro mini" variant, because you don't need a separate UART-USB converter. Just be sure that MCU is mega328 @ 16MHzQuote from: yo0 on February 01, 2020, 05:02:55 amThe DC buzzer can be driven directly by the atmega. I'd just add a current limiting resistor. The piezo speaker thing requires a driver (or, possibly, some other schematic to limit the current).Quote from: yo0 on February 01, 2020, 05:02:55 amWhat do you mean by that?

author: Miti
author_rank: Super Contributor
timestamp: March 13, 2020, 10:31:02 am
content: Kirill,I totally missed the Prologix update. I will give it a try this weekend.

author: Miti
author_rank: Super Contributor
timestamp: March 14, 2020, 05:31:11 pm
content: I tested v2.0 with Prologix support, it works well, I didn't see any issue with Luke's free control program. The differences from Girlando's settings are the baud rate (115200) and the ++ver response (GPIB). Other than that everything is the same. There is however a "Prologix not found" but the retry finds it, see the attached log.Code:Version 12-24-19Windows 7 / S-2008 R2 Service Pack 1 Platform ID 2Config file loaded.Debug ON.Command delay = 50ms.Max COM port = 64.OC:Open COM33 CheckCom.CheckCom start COM33CheckCom end CreateFileA COM33CheckCom port foundCheckCom end CloseHandle COM33OC:Open COM33 open port.OC:Open COM33 OK.CA:Start CheckAdapter on COM33CA:Check Prologix GPIB adapter. ProVer =:"GPIB"QS: Send:"++ver" Reply:""CA:Prologix not found. ++ver retry for Arduino.CA:Retry ++ver (Arduino boot delay)-CA:Retry: Found Prologix adapter (Arduino retry).CA:Exit checkAdapter on COM33COM port set to COM33IG:Start InitGPIBIG:Find Prologix GPIB adapter.IG:ProVer srch:"GPIB"IG:Found Prologix adapter.IG:set ++mode 1.IG:set eot_enable 0.IG:set read timeout:++read_tmo_ms 3000IG:SetGPIB Address ++addr 23 success.IG:set EOI 0.IG:set EOS 0.IG:Set auto talk mode off: ++auto 0 success.IGT:QSB result 1Instrument address set to GPIB 23Send saved config to instrumentF1RAN5Z1D13478A using program config settings.Instrument startInstrument stop/localOne issue is that once I use the remote control program, it locks all the local controls from the front panel until the instrument is restarted. I don't know if that's by design or is a bug.Thanks for your effort!

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 14, 2020, 07:01:33 pm
content: Quote from: Miti on March 14, 2020, 05:31:11 pmI just wanted it to work with the default settings. Though, I might change it to return theactual version.Quote from: Miti on March 14, 2020, 05:31:11 pmThat's normal. Since we use "reset via DTR" same as arduino, ++ver command fails for the first time.Quote from: Miti on March 14, 2020, 05:31:11 pmI'm not sure why it does that (the transcript of data sent and received to/from the serial port would help to find out), but gou should be able to use Local key to unlock the keypad (Do you see RMT annunciator?).However it won't re-enable "ext" features. hp3478ext won't exit the prologix mode until the ++exit command.

author: Miti
author_rank: Super Contributor
timestamp: March 14, 2020, 11:24:23 pm
content: No, it is not in RMT, it is local. I tried pressing Local button multiple times and it doesn't work. The external GPIB works, internal GPIB works, front panel extension functionality is dead until power cycle.

author: lmester
author_rank: Regular Contributor
timestamp: March 15, 2020, 12:53:42 am
content: Quote from: Miti on March 14, 2020, 05:31:11 pmThe front panel buttons should be functional when the program is running but not taking measurements. You may need to push the button more than once. The program polls the instrument status every 5 seconds and will update it's settings if you change modes using the buttons. If you press a button right when the instrument is being polled, it will miss the button press.I just tested the program. My buttons are functional after program exit.You may want to turn on debug mode and see if any code is failing.Also, I have code to handle the Arduino reset when the COM port is opened.Code:if QuerySER("++ver",ProVer$,.2) =0 thenif DBug then print #main.Terminal,"CA:Prologix not found. ++ver retry for Arduino."call sleep 1400 'Delay for Arduino reboot on COM changeif DBug then print #main.Terminal,"CA:Retry ++ver (Arduino boot delay)"print #main.Terminal,"-"; 'Give an indication of a Arduino prologix detect retryif QuerySER(cr$;"++ver",ProVer$,.2) =0 thenif DBug then print #main.Terminal,"CA:Retry ++ver fail" 'elseif DBug then print #main.Terminal,"CA:Retry: Found Prologix adapter (Arduino retry)."af=0 'Adapter goodend ifelseif DBug then print #main.Terminal,"CA:Found Prologix adapter (No arduino delay)."af=0 'Adapter goodend ifif af=1 thenclose #comm 'Close port if adapter failedCOpen=0end ifend if

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 15, 2020, 06:34:56 am
content: Quote from: Miti on March 14, 2020, 11:24:23 pmThat's strange. There's no direct control over the front panel buttons. The only way they are supposed to be disabled is the GPIB local lockout command. And the LLO command is not implemented in my code.I haven't noticed such a behavior on my HP3478, but I didn't test it long enough. I'll check that in a couple of weeks when I return to home.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 15, 2020, 06:39:30 am
content: Quote from: lmester on March 15, 2020, 12:53:42 amIt works with the hp3478ext, I see no problems.

author: Miti
author_rank: Super Contributor
timestamp: March 15, 2020, 11:31:56 am
content: The front panel buttons are functional, only the extension part is disabled.

author: lmester
author_rank: Regular Contributor
timestamp: March 21, 2020, 01:27:14 am
content: Quote from: kirill_ka on March 14, 2020, 07:01:33 pmI use a substring search when looking for the response to ++ver. As long as your ++ver response contains "GPIB" my program will detect it.You could have a longer version string such as "Krill GPIB adapter Vx.x". This would allow my software to detect your adpter and also give you the ability to uniquely identify your GPIB adapter.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 25, 2020, 09:22:53 pm
content: Quote from: Miti on November 29, 2019, 12:46:11 amI just tried that. It works for me. So maybe you couldn't guess how it's supposed to work.The command OVariableValueW always writes to the location of "preset 0".You need the following sequence to store another preset.1. Set variables without writing them to the EEPROM (such as OVariableValue)2. Enter the measurement mode you need.3. Press SRQ multiple times until you see "M: PRESET"4. Press LOCAL 2 times. You should see S: SAVE05. Press SRQ. You should see S: SAVE16. Press LOCALTo load PRESET1:1. Press SRQ multiple times until you see "M: PRESET"2. Press LOCAL. Press SRQ. You should see L: LOAD03. Press SRQ. You should see L: LOAD14. Press LOCAL

author: kirill_ka
author_rank: Frequent Contributor
timestamp: March 25, 2020, 09:34:42 pm
content: Quote from: lmester on March 21, 2020, 01:27:14 amThanks, I'll do so.Maybe then you could send ++exit before your program terminates. So hp3478ext will exit the prologix interpreter and could take back the control of the multimeter.

author: Mp3
author_rank: Frequent Contributor
timestamp: April 12, 2020, 11:45:35 am
content: I apologize for the hassle, but is it possible to install this internally and have usb connectivity without making case mods?I'd rather have it internal with the speaker, and even if i wanted to i don't have a drill powerful enough to break thru the 3478a casing...I suppose i might install it internally with a usb header to plug in when i want it and otherwise leave it closed up.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 12, 2020, 04:18:41 pm
content: Quote from: Mp3 on April 12, 2020, 11:45:35 amYes, it's possible. You can ether use USB with the case open or sneak the cable through the ventilation grill.As the MCU uses UART for connectivity, you may even hack in something like bluetooth to UART module.Although I'm not sure if an RF module can introduce noise into the measurements.

author: Mp3
author_rank: Frequent Contributor
timestamp: April 13, 2020, 10:02:48 pm
content: Thanks, kirill_ka.What did you choose to pull the power for the arduino from? It looks like straight off the underside of the voltage regulator?I still have a couple days until my arduino boards show up then I will do the install....I just finished reading the rest of the thread and i guess arduino pin header cables are no good?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 14, 2020, 06:10:21 am
content: Quote from: Mp3 on April 13, 2020, 10:02:48 pmYes, since I have an old style regulator in a TO3 case, I connected a jumper cable straight to the pin of the regulator.In the case of arduino I used the unregulated supply (just to engage the protection diode and polyfuse).For the board I got form Miti I used the regulated 5V.Quote from: Mp3 on April 13, 2020, 10:02:48 pmWhy? Maybe you mean the issues related to the GPIB socket? But there're no cables involved then.

author: Mp3
author_rank: Frequent Contributor
timestamp: April 14, 2020, 07:25:20 am
content: Ah! okay, thank you. I didn't realize the pin length problem was only with the PCB version.I was going install it like this.https://www.eevblog.com/forum/projects/project-extending-hp3478a-functionality/msg2074201/#msg2074201

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 14, 2020, 08:06:44 am
content: Quote from: Mp3 on April 14, 2020, 07:25:20 amI didn't try it like that, so I don't know.There was another issue with my unit. It uses an old kind of socket with narrow pins. This socket is not compatible with the standard 0.1" pin headers.

author: Mp3
author_rank: Frequent Contributor
timestamp: April 16, 2020, 04:36:28 pm
content: Last question for now, i hope....Does your adapter support "W" command in gpib-usb, to use it for dumping SRAM calibration data?https://www.eevblog.com/forum/repair/hp-3478a-how-to-readwrite-cal-sram/

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 16, 2020, 05:40:50 pm
content: Quote from: Mp3 on April 16, 2020, 04:36:28 pmYes. No special support required for individual commands.Did you see the following thread? Not only you can dump the calibration data, but also you can decode and tune the individual parameters.https://www.eevblog.com/forum/testgear/free-hp3478a-multimeter-control-program/

author: Mp3
author_rank: Frequent Contributor
timestamp: April 17, 2020, 12:58:57 am
content: Quote from: kirill_ka on April 16, 2020, 05:40:50 pmI didn't know about that! Thanks again for your help, kirill. I can't wait to get this installed.

author: lmester
author_rank: Regular Contributor
timestamp: April 19, 2020, 02:51:17 am
content: Quote from: kirill_ka on March 25, 2020, 09:34:42 pmBefore program exit I send the following commands:"D1" 'Turn instrument LCD display on"++auto 0" 'Tell instrument to stop talking"T1" 'Instrument trigger normal on stop"++loc" 'instrument to local modeI have now added "++exit".This will return an "Unrecognized command" from the real Prologix adapter but won't cause any problems.Please test it and verify that it's working with your firmware.

author: Miti
author_rank: Super Contributor
timestamp: April 19, 2020, 10:02:22 pm
content: Quote from: lmester on April 19, 2020, 02:51:17 amIt works for me, thanks!Now it would be nice to add Kirill's extended function to your software.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 19, 2020, 10:34:05 pm
content: Quote from: Miti on April 19, 2020, 10:02:22 pmLuke, beware, it's over 3000 lines of very dense C code already

author: Miti
author_rank: Super Contributor
timestamp: April 19, 2020, 11:59:20 pm
content: Quote from: kirill_ka on April 19, 2020, 10:34:05 pmWhat I meant was buttons to select your functions but I guess SRQ must be a hard press, does it?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 20, 2020, 05:51:28 am
content: Quote from: Miti on April 19, 2020, 11:59:20 pmYes, a kind of. If the 3478ext works in a pass through mode (GPIB adapter), it can't control the bus on it's own. For example, the continuity mode doesn't allow sending any other commands to the instrument. Otherwise it will start to skip events. So the only way that could be done is to add some special commands to interact with the "extended features".

author: lmester
author_rank: Regular Contributor
timestamp: April 21, 2020, 05:31:36 am
content: Quote from: Miti on April 19, 2020, 10:02:22 pmIt's good to know that ++exit is working.It looks to me that using the kirill extended functions is a choice of one or the other. My software needs to have control of the instrument's GPIB bus. Kirill's 3478ext also needs this.The primary purpose of my program is to allow a Windows PC to control the instrument and do extended data logging. I'm certainly not going to try and convert and add 3K+ lines of C to my program!If kirill needs me to do anything during my GPIB adapter detection, I'd have no problem adding this. Do you need anything to get our programs to work better together? Does your firmware respond to ++ver? If you can provide a unique substring in response to ++ver, I could make adjustements based on the presence of your firmware.

author: Mp3
author_rank: Frequent Contributor
timestamp: April 22, 2020, 09:52:14 am
content: Hmm, something didn’t go right for me on this...I had the issue where the pins of the GPIB socket were too narrow for arduino style pin headers. I soldered pin header cables to the underside of the socket instead.I used the two avrdude commands on the github documentation to program the hex file and set the fuses with my USB-TTL on Linux.Both times the arduino responds fine to commands from the computer before I switch the HP on, but when I do the arduino seems to die even though it lights up at power on.I have tried with both usb power on one and power from the HP on the other.I have another arduino pro board left but I wanted to ask before I Brick that one too. Is the issue my usb-ttl programmer? I only have a usb ttl and a ST-Link at my disposal.I’m worried the fuse settings didn’t program and the boards are fried.I’ve triple checked my wiring so I don’t think it’s that...

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 22, 2020, 10:08:25 am
content: Quote from: Mp3 on April 22, 2020, 09:52:14 amYou can't program the fuse bits with the serial interface at all. And the fuse settings are not that critical.But I wonder where the VCC wire does go?

author: Mp3
author_rank: Frequent Contributor
timestamp: April 22, 2020, 10:17:42 am
content: Quote from: kirill_ka on April 22, 2020, 10:08:25 amThere is a nearby spot marked +5, i measured it with the 3478a powered on, so i attached a diode to that point and that is what the internal vcc was coming from. I only tried that after the inital run with USB power also ended up with a non responsive arduino.I forgot to mention - i accidentally mixed up the colors of the wires when making one with the diode attached. so i'm certain it's going to 5v and ground properly, although the colors are backwards from what they should be . I apologize for that.I've tried to reprogram the hex and eeprom to both arduinos i tried so far, but no luck as neither responds. Does it sound like they are bricked?I tried replicating the button presses of the demo video, so i'm not quite sure what i did wrong, but i assume the ardunio pro is getting fried from some of the GPIB wiring as it had the same reaction with usb power,

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 22, 2020, 10:32:27 am
content: I think it's more likely a power supply issue. May be ether wrong polarity or high voltage.The GPIB pins should be current limited according to the spec.Did you check the actual voltage going to the arduino board?

author: Mp3
author_rank: Frequent Contributor
timestamp: April 22, 2020, 10:43:18 am
content: Quote from: kirill_ka on April 22, 2020, 10:32:27 amyes - but not the current, seemed okay (4.5v off my little diode wire, or 5.0 off usb)thanks for your help, by the way, i appreciate it. excited to figure it out

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 22, 2020, 10:47:24 am
content: I just noticed that you're messing around the place where the line voltages and the transformer primary side exposed...

author: Mp3
author_rank: Frequent Contributor
timestamp: April 22, 2020, 10:48:43 am
content: Quote from: kirill_ka on April 22, 2020, 10:47:24 amthat is why i had each row of soldered-on wires insulated with a layer of kapton tape on each side. The photo was more to show that i didnt do awful soldering. You can't tell from the picture, but tehy're long enough to bring the board far out of the line voltage zone.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 22, 2020, 11:38:04 am
content: >Quote from: kirill_ka on April 22, 2020, 10:32:27 amIt looks like I'm wrong.I didn't find the current limiting requirement for the driver in the GPIB spec. It onlyspecifies the minimum current: "High state: Output voltage (three-state) ≥ + 2.4 V at −5.2 mA". The maximum spec is up to the driver IC.However if you power the atmega from the same 5V as the driver chip, I don't know how the data lines could be the problem.However, 4.5V supply seems a bit low. I suggest you use a Schottky diode.

author: Mp3
author_rank: Frequent Contributor
timestamp: April 24, 2020, 04:22:42 am
content: 3rd try is the charm =)Turns out my 3478A was on channel 6, not 23 - and on the 3rd Arduino I programmed the EEPROM as well as the hex file. I don't know if one or both steps were necessary. I assume so because my old Arduino's aren't responding to serial.All's well, tried a few GPIB commands and looks good =)If you wanna do a bottom side install like me, I suggest using only angle header pins on the Arduino board so that you can wrap it up in electrical tape after it's all wired up, then it can fit with the bottom panel still on. I left header cables for the USB-TTL attached so that I can plug one in when I need it.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 24, 2020, 01:56:00 pm
content: Quote from: Mp3 on April 24, 2020, 04:22:42 amCongratulations, you passed the questIt makes me think I should start a Q&A section.However those GPIB address and EEPROM issues do not explain what happened to the first couple of arduino boards?Are they alive?

author: Miti
author_rank: Super Contributor
timestamp: April 24, 2020, 03:16:04 pm
content: I tripped over that GPIB Address 23 as well but I forgot about it. It is somewhere in this trail

author: Mp3
author_rank: Frequent Contributor
timestamp: April 24, 2020, 05:35:49 pm
content: Quote from: kirill_ka on April 24, 2020, 01:56:00 pmIt's a mystery to me as well wit the first two boards, to be honest. I didn't try to make a serial connection to see if they responded before plugging them in, I have tried minimal testing with those two boards and have not been able to get them to respond whatsoever. I get programmer not responding errors with them. I may try to shock some life back into them at another time. i could also send them in a plain envelope to you if you wish to inspect them! postage would be like less than $10 to you for this and if it helps you in any way, i don't mind.If they're of no use, no worries, if i can't revive them i will toss them.By the way, doing two failed attempted installs for the bottom side gave me some good ideas on how to build an Arduino pro really slim with angle headers only. I ended up moving the +5V diode wire over to the 5V point right next to the ground wire in my above picture and get 4.95v off it so I am happy.I was thinking, with long enough ribbon wire, you might be able to sneak the USB TTL connection wires out around the HPIB address dip switches. There seems to be plenty of room around it.Oh - i almost forgot, the only other difference is that the two times it didn't work, I had the GPIB header from the back panel unplugged. This time , i plugged it back into its socket. I don't see why that should matter.Quote from: Miti on April 24, 2020, 03:16:04 pmYes, thank you; it's your post that made me realize I had to check that!You deserve credit for sure

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 24, 2020, 07:05:51 pm
content: Quote from: Mp3 on April 24, 2020, 05:35:49 pmNot sure if it would help me, but I'm curiousI'll pm you the address. I'd post the investigation results here if I get them.

author: yo0
author_rank: Regular Contributor
timestamp: April 25, 2020, 03:47:38 pm
content: Quote from: Mp3 on April 24, 2020, 05:35:49 pm@Mp3Glad you do it, can you post pictures of your finished installation please?Best regards.Pio

author: Mp3
author_rank: Frequent Contributor
timestamp: April 30, 2020, 02:57:12 am
content: Quote from: yo0 on April 25, 2020, 03:47:38 pmHey Pio,Sure, this is my first install though. I have a 2nd (nicer, and calibrated) 3478A I still need to do the mod on, and I'll probably make it a little nicer this time. Though, by the time i got to my last attempt at this one it was much less of a mess than the first twoSome of my thoughts for anyone considering the internal install:You will be working in the area where there is line voltage active even with the power off, so do a really good job of making sure the wires you solder will never come loose.Open the bottom up and plan to get the Arduino well out of the way of the line voltage area under the plastic cover, so make your wires long enough ( I did not make them long enough to re-install the plastic line voltage warning plate so I went crazy with the Kapton tape)The solder for the HPIB pins and the pins themselves don't seem to solder very easily. The solder balls up easily. Just be patient with it and maybe wick some of it upUse right angle pin headers for the entire Arduino if you have any hope of getting the bottom panel back onI can't prove it, but it might need connections on the top side to work properly, since the two installs I had that didn't work had the HPIB header by the transformer unplugged, and the one that worked had it plugged in. Also, Miti's successful install was a top side install and I think kirill_ka's internal installs are top side as well.You can sneak a 5-wire ribbon cable for the USB-TTL out through the HPIB ID DIP switch assembly as there's plenty of room for it to come out of the case.There are several options for powering it, I chose to pull 5V from one of the marked test points with a 1n4148.

author: yo0
author_rank: Regular Contributor
timestamp: April 30, 2020, 05:24:00 pm
content: Quote from: Mp3 on April 30, 2020, 02:57:12 amthank you very much, looks very good. i think a slim case would be very neat and can isolate the arduino against the main board.what you think? i think there is enough height room between the bottom side of the pcb and the case.best regards.Pio

author: Mp3
author_rank: Frequent Contributor
timestamp: May 01, 2020, 08:06:14 am
content: Quote from: yo0 on April 30, 2020, 05:24:00 pmHmm, that looks small enough to fit, you could probably make it workedit: Maybe the case would fit with some double sided tape in the empty area where the thick ground trace separates the two sides? Not 100% sure but seems like it?

author: yo0
author_rank: Regular Contributor
timestamp: May 02, 2020, 04:01:11 am
content: Quote from: Mp3 on May 01, 2020, 08:06:14 amyes i think it will fit there.best regards.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: May 18, 2020, 10:32:48 am
content: Quote from: kirill_ka on April 24, 2020, 07:05:51 pmMp3, I've got the boards. I'm afraid there isn't a lot of mystery there.One board (with all the pins soldered) is working. I've no problem programming it with both ISP and bootloader interfaces. So I can't tell what was wrong with it. The other one has a solder dag shorting out the resonator.Thanks for the boards, they always come in handy!

author: Mp3
author_rank: Frequent Contributor
timestamp: May 19, 2020, 06:44:03 am
content: Quote from: kirill_ka on May 18, 2020, 10:32:48 amI'll chalk it up to user error on the alive board, then. How embarrassing though on the other boardNo problem, would love to know if you find any quirks from doing a bottom side install. Glad they made it to you safely!

author: PixieDust
author_rank: Frequent Contributor
timestamp: May 29, 2020, 02:04:01 pm
content: Quote from: kirill_ka on January 30, 2018, 09:32:03 am4 of them? I see the two 0.022uF sitting next to the transformer, where are the other two?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: May 29, 2020, 02:33:33 pm
content: Quote from: PixieDust on May 29, 2020, 02:04:01 pmSee reply#34

author: kirill_ka
author_rank: Frequent Contributor
timestamp: May 29, 2020, 02:41:23 pm
content: Quote from: Mp3 on May 19, 2020, 06:44:03 amWell, not likelyThe socket installation is much cleaner. And I don't have a spare 3478a to experiment with.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: August 27, 2020, 09:31:51 am
content: As someone may have notedThe hp3478ext has a temperature measurement function.It only supports 1kOhm 3850 ppm/K RTDs. The constants for which are hardcoded.Yesterday I found a source of cheap sensors:https://aliexpress.com/item/32872179878.htmlThey look similar to the Honeywell sensor (700-102BAB-B00) that I have.

author: momoFukushima
author_rank: Newbie
timestamp: November 15, 2020, 11:17:37 pm
content: Hello kirill-ka,I recently bought a used 3478A and found this very interesting topic that can expand the functionalities as well as the prologix compatibility during searching various knowledge about this tool. Visiting the Git-hub, I noticed the source program has been updated very recently but looks like the binary has not been updated yet. I would be appreciated if you upload the updated binary, since I am not familiar with the compiling at all.Thanks

author: Tj138waterboy
author_rank: Regular Contributor
timestamp: November 16, 2020, 04:33:24 am
content: Not sure if this has been asked on other post but will the artag style adapter work and or does anyone have the gerber for a known working pcb layout.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 16, 2020, 07:02:27 pm
content: Quote from: momoFukushima on November 15, 2020, 11:17:37 pmHi,There aren't serious changes, but here you go:https://github.com/KIrill-ka/hp3478ext/releases/tag/r2.2fixed ++ver command to actually show a versionadded 250ms delay before trying to initialize the HP3478A during startupAttempt to read from the HP3478A too early caused a harmless error message to be displayed on the second try.some minor error handling modifications

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 16, 2020, 07:12:26 pm
content: Quote from: Tj138waterboy on November 16, 2020, 04:33:24 amSorry, I'm not quite sure what do you want.Do you mean using some AR488 hw to run hp3478ext or what?

author: momoFukushima
author_rank: Newbie
timestamp: November 16, 2020, 09:42:58 pm
content: Thank you very much for binary update, kirill_ka.

author: Tj138waterboy
author_rank: Regular Contributor
timestamp: November 17, 2020, 11:55:55 am
content: For the purpose of plugging into gpib externally. I was thinking that would work the same from my understanding. Pretty much just needs 5v supply to arduino and buzzer.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 17, 2020, 03:42:06 pm
content: Quote from: Tj138waterboy on November 17, 2020, 11:55:55 amThe external connection is not a problem. The cheap atmega328p board+USB2UART+connector+bunch of wires will do the job.AR488 hardware will not work straight away as it uses different pin assignments (at least).

author: mcj7247
author_rank: Newbie
timestamp: January 09, 2021, 04:01:39 am
content: Quote from: kirill_ka on November 17, 2020, 03:42:06 pmWould it be possible to remap the pins to a custom layout in the AR488 FW to align with the HP3478A Control Software?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 09, 2021, 06:48:29 pm
content: Quote from: mcj7247 on January 09, 2021, 04:01:39 amEverything's possible... Can you provide desired pin assignments?Do you mean hp3478ext by the "Control Software" or something else?

author: mcj7247
author_rank: Newbie
timestamp: January 09, 2021, 09:30:03 pm
content: Everything's possible... Can you provide desired pin assignments?Do you mean hp3478ext by the "Control Software" or something else?I think I may have the various tools confused and apologize if I do. I think I'm referring to the HP3478A Control Software app developed by Steve1515, lmester etc.

author: Tj138waterboy
author_rank: Regular Contributor
timestamp: January 10, 2021, 08:46:57 am
content: I just re-read entire thread and issue that seems to prevent using ar-tag adapter would be from post #105 the piezo/speaker pin. Also a reply from lmester pointed out you can't run both programs at same time, as from what I can tell all commands for the functions of 3478ext are manual button presses whereas the software mcj7247 shows in previous post is what I currently have been using and is ui controlled. It doesn't seem that the arduino sketch would allow both functions to work in unison due to the pin assignments as well as the user interface for the 3478 control software mcj7247 shows would have to be possibly recoded if you wanted a display.

author: Tj138waterboy
author_rank: Regular Contributor
timestamp: January 10, 2021, 08:50:02 am
content: Also im not even sure a usb powered arduino could drive a speaker directly while performing as a gpib adapter. Never measured current draw from piezo.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 10, 2021, 10:32:09 am
content: Quote from: Tj138waterboy on January 10, 2021, 08:46:57 amCorrect. If the PB2 (or PB1) pin is not available, then more modifications required for the hp3478ext to work. However if the variable tone buzzer is not essential, the firmware can be modified to use any digital pin for the buzzer.Quote from: Tj138waterboy on January 10, 2021, 08:46:57 amThe lmester's "HP3478A instrument control software"doeswork with the hp3478ext firmware. It has nothing to do with the pin assignments. You can't simultaneously use the PC software and the extended functions (relative, continuity, etc.). Once you exit the PC software, the extended functions "assigned" to the SRQ key will be restored.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: January 10, 2021, 10:40:16 am
content: Quote from: Tj138waterboy on January 10, 2021, 08:50:02 amAn active buzzer can be driven directly by the MCU pin. I recommend adding a resistor in series.The direct connection of a piezzo speaker will also work with a current limiting resistor, but the volume would be quite low.A FET driver is recommended anyway.

author: belzrebuth
author_rank: Frequent Contributor
timestamp: May 15, 2021, 01:23:43 am
content: So now that this project seems mature enough shouldn't there be a PCB gerber available for it?Just saying it would be far more tidy/safe to have this assembled outside and only do the absolute necessary soldering inside the instrument.As I understand it Miti already done a PCB for it, maybe sharing it would be a good idea?

author: bywqdq
author_rank: Contributor
timestamp: July 20, 2021, 04:46:37 am
content: Provide an idea to display the time when the multimeter is not operating. Add RTC to the circuit.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: July 20, 2021, 02:30:47 pm
content: Quote from: bywqdq on July 20, 2021, 04:46:37 amHi bywqdq, welcome to the forum!That would be so complex and inconvenient with an Atmega 328p.However if you provide some alternative hardware, I might do something about it

author: bywqdq
author_rank: Contributor
timestamp: July 20, 2021, 11:07:19 pm
content: I make one.

author: yo0
author_rank: Regular Contributor
timestamp: October 25, 2022, 04:10:58 pm
content: The hex files are compatible with the Arduino nano?I ask because I wired per the pin table in the GitHub to the conector but no luck.If not what is needed?Best regardsPio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: October 25, 2022, 06:18:44 pm
content: Hi,Does it respond via serial (USB) interface? If it does, the second thing to check is the GPIB address.

author: yo0
author_rank: Regular Contributor
timestamp: October 25, 2022, 07:12:13 pm
content: Quote from: kirill_ka on October 25, 2022, 06:18:44 pmthank you,no response, and the address is set #23, i triple check the wiring,perhaps defective nano? it can be read, write and verify with avrdude and avrdudessthank you in advance.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: October 25, 2022, 11:05:15 pm
content: It should respond to UART commands without any connections. Just the bare board.

author: yo0
author_rank: Regular Contributor
timestamp: October 26, 2022, 01:56:37 am
content: Quote from: kirill_ka on October 25, 2022, 11:05:15 pmI think yes it does. If I send text over serial monitor it appears in the console. I don't have experience with Arduino, sorryI needed load a serial sketch to do thatps.i think maybe the problem is the wiring, do you know which pin at the external dmm connector is #1?, i mean seeing it frontally , the red wire at the ribbon cable usually mean pin 1 as far i understand, but.. seeing the schematic pin 1 at the socket is connected to ground, that don't make sense to me. or at least hp mount the internal connector backwards to avoid the ribbon be too near the transformer. in that case pin 1 really is at the other extreme of the socket (i mean near to the notch of the socket, usually pin 1 is at the notch side). or the socket is inverted, i am confused.just an ideaBest regardsPio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: October 26, 2022, 07:05:42 am
content: Quote from: yo0 on October 26, 2022, 01:56:37 amIt's good to know, that the UART works. But you'd get the response from the hp3478-ext firmware. Just to know that it's loaded and works.It should respond with the <GPIB> prompt.The connector pinout is standard. Just google "GPIB pinout". You'd find the pictures of the connector with the pin names and numbers.

author: yo0
author_rank: Regular Contributor
timestamp: October 27, 2022, 07:57:14 pm
content: Quote from: kirill_ka on October 26, 2022, 07:05:42 amunfortunately didn't work, i check the wiring and pinout, change the arduino for another (both new) and nothing, seems like the software is not running.what software do you use for sending requests to the arduino?best regards.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: October 28, 2022, 03:38:20 pm
content: Quote from: yo0 on October 27, 2022, 07:57:14 pmkermitUsing the following settings:open port /dev/ttyUSB0set flow-control noneset carrier-watch offset speed 115200set terminal lf-display crlfconnectI don't think that incorrect settings in the eeprom is an issue here. But I recommend also programming the eeprom (eep file) to be sure.And please, disconnect the gpib connector. First we need to know that the serial communication is working.

author: yo0
author_rank: Regular Contributor
timestamp: October 28, 2022, 08:35:50 pm
content: Quote from: kirill_ka on October 28, 2022, 03:38:20 pmthank you, I think the software is running++addr++verSo I think the wiring is the culprit or perhaps menow i need figure out where is the mistake.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: October 29, 2022, 08:53:26 am
content: Quote from: yo0 on October 28, 2022, 08:35:50 pmKeep on trying! Eventually it will workThe next task is to get a reading from the 3478 through the serial.Try ++read

author: yo0
author_rank: Regular Contributor
timestamp: November 02, 2022, 12:33:49 am
content: Quote from: kirill_ka on October 29, 2022, 08:53:26 amthank you! it reads!so what's next?best regardsPio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 02, 2022, 06:46:56 am
content: Quote from: yo0 on November 02, 2022, 12:33:49 amThen it just works. To enable the extended functions of the 3478, enter OX1w command (before entering any of the ++ commands).This is also can be done by flashing the eeprom (eep file).Then you should see "init ok" after OX1 or during the start up.All the functions are initialted with the SRQ key. Also enable "power on SRQ" with the dip switch on the back of 3478. It allows the firmware to know when the 3478 is initialized.Some of the steps above are mentioned in the hp3478 ext documentation. But it's outdated, I know...

author: yo0
author_rank: Regular Contributor
timestamp: November 04, 2022, 01:48:36 am
content: Thank you, now it works, just something strange occurs after the self test ok , two different screens, one with the power on sqr switch and other without it active.Maybe 250ms delay isn't enough.Any ideas?best regards.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 04, 2022, 09:59:54 am
content: Quote from: yo0 on November 04, 2022, 01:48:36 amDo you power the arduino board externally?If yes, then those errors are probably normal. The 250ms delay only counts if the atmega and the 3478 are started simultaneously.Please, monitor the error codes for some time and tell me if something different appears. If they only happen during the start up, I can disable them.Are the "power on srq" and "no power on srq" errors consistently different?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 04, 2022, 11:48:14 am
content: Pio, It's a bit strange, that you are getting E:2F000005 and E:30000003Those codes are not happening on the first attempt to send something to the 3478.So there's a slight chance that the errors indicate some of the GPIB control lines are not wired up correctly.

author: yo0
author_rank: Regular Contributor
timestamp: November 04, 2022, 04:16:32 pm
content: Quote from: kirill_ka on November 04, 2022, 09:59:54 amyes i power it externally, if i power up the multimeter first got no error messages, the error codes stay the same for both srq switch states. E:30000003 for off and E:2F000005 for on, every time got the same code, i keep the power on srq switch to on as your advice. i am evaluating if it keep external attached or internal (have hard time soldering to ic sockets). can disable the displayed error codes via commands at the terminal?best regards and thank you again for your valuable help and kindness.Pio

author: yo0
author_rank: Regular Contributor
timestamp: November 04, 2022, 04:19:46 pm
content: Quote from: kirill_ka on November 04, 2022, 11:48:14 ami recheck the wiring and it match your table.Pio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 07, 2022, 08:05:05 am
content: Quote from: yo0 on November 04, 2022, 04:16:32 pmPlease, try the attached version. I've added the option.Oerr_disp0wshould disable the on-screen codes.Disclaimer: I've not tried it yet myself

author: yo0
author_rank: Regular Contributor
timestamp: November 14, 2022, 05:48:03 pm
content: thank you, it works!, now if i turn off the dmm the terminal connected to the arduino show errors, but i think it is normal.best regardsPio

author: Miti
author_rank: Super Contributor
timestamp: December 23, 2022, 02:38:18 pm
content: Quote from: kirill_ka on August 27, 2020, 09:31:51 amHi Kirill,How do you access that function? I think that I asked and I think that you answered, so forgive me if I'm too lazy to look through all the posts but did you publish a complete, updated menu tree anywhere. I know there is one in reply#19 but I think is obsolete by now.Cheers,Miti

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 23, 2022, 07:41:06 pm
content: Hi Miti,It shows up as TEMP when you cycle through with SRQ key in OHMS mode.But it's hidden when there's nothing connected.

author: Miti
author_rank: Super Contributor
timestamp: December 23, 2022, 10:24:46 pm
content: Aha, I found it, it didn't show up with the input open. However, it is not dynamic for me, it only reads the temperature once when i select the function and doesn't change when I change the resistance. I don't have an RTD, I simulated it with 100Ohm and 82Ohm.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 24, 2022, 04:52:18 am
content: Quote from: Miti on December 23, 2022, 10:24:46 pmIt only has 1K RTD constants compiled in. So I'd try 1000 and 820 insteadI use 1k because it's more suitable for 2 wire measurements.

author: Miti
author_rank: Super Contributor
timestamp: December 24, 2022, 12:34:17 pm
content: Quote from: kirill_ka on December 24, 2022, 04:52:18 amAnd that’s exactly what I used, 1k and 820Ohm but… brain fart.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 24, 2022, 01:19:22 pm
content: Quote from: Miti on December 24, 2022, 12:34:17 pmWhich revision are you using by the way?It just came up to me that there was a bug fixed in rev2.1.Recently I checked accuracy with a body thermometer. The readings were rather close (~0.2K difference). I think it's ok as I'm just using generic RTD constants.

author: Miti
author_rank: Super Contributor
timestamp: December 24, 2022, 04:09:37 pm
content: Quote from: kirill_ka on December 24, 2022, 01:19:22 pmI was behind with the updates. I don't know what revision was because it wasn't showing at ++ver but definitely was one with the bug. I updated to 2.2 and it works now.Thanks Kirill!

author: Miti
author_rank: Super Contributor
timestamp: December 24, 2022, 07:29:54 pm
content: Kirill,I'm trying your extension with this software:https://www.eevblog.com/forum/testgear/hp-34401a-standalone-softwareFor some reason I can't make it work. Do you know why? Have you tried this SW?

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 25, 2022, 06:42:19 pm
content: Quote from: Miti on December 24, 2022, 07:29:54 pmHi Miti,I'll take a look. Maybe it's using some of the ++ commands which are not implemented in hp3478ext.Thanks for the link, interesting software!Corrected link:https://www.eevblog.com/forum/testgear/hp-34401a-standalone-software/

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 29, 2022, 08:05:22 pm
content: Quote from: Miti on December 24, 2022, 07:29:54 pmThe first issue was <LF> line termination. Now the hp3478ext supports <CR>, <LF> and <CR><LF>.The second issue caused by the "software" continuously issuing ++read command. And the hp3478ext did not support command interruption which caused loss of any other commands.Fixed inhttps://github.com/KIrill-ka/hp3478ext/releases/tag/r2.3Now it works ok, besides that the first connection attempt fails (unless command echo is disabled with OI0w).Second attempt should work even if echo is enabled.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 29, 2022, 08:28:14 pm
content: Note that "hp-34401a-standalone-software" seems to have some serious issues with the way how it updates the readings.1. It doesn't check the actual status of HP3478A. It just sends the range switch command without checking the result.2. The displayed range is updated immediately while it still displays previous readings.3. In my setup it seriously lags behind the HP3478A. For example, if I switch from V to, it displays past V readings as Ohms for a good few seconds.Maybe my 12 year old core i5 CPU is not fast enough to keep up with 40 year old MCU of the HP3478A?

author: Miti
author_rank: Super Contributor
timestamp: December 29, 2022, 11:46:22 pm
content: Thanks Kirill, it works now but I see those issues as well and my laptop is I7.If I set it to fast, beside lagging behind the instrument, I see something that looks like burst reading. It updates fast a number of times and then it freezes for half a second or so. This happens with AR488 as well.

author: ysg2k6
author_rank: Newbie
timestamp: April 15, 2023, 04:05:20 pm
content: this is a very interesting project!Can this hp3478-ext firmware work together with AR488? I'm thinking to install internally a well flashed arduino promini without any ttl-USB conversion circuit, simply stay inside the case, meanwhile if in case I want to do data logging, I can insert the AR488 externally and connect it to PC... my question is, is there any interference between the internal simply hp3478-ext and external connected AR488?

author: Miti
author_rank: Super Contributor
timestamp: April 15, 2023, 09:19:07 pm
content: Quote from: ysg2k6 on April 15, 2023, 04:05:20 pmNope, no interference from what I can see. It is completely transparent to the GPIB port. You may not need the AR488 though, the extension shows up as a COM port that emulates a Prologix GPIB adapter.

author: ysg2k6
author_rank: Newbie
timestamp: April 15, 2023, 10:44:06 pm
content: thanks Miti. you mean use the hp3478-ext with ttl-usb circuit without AR488? my thought is to avoid drilling a hole on hp3478A case. or do you have good suggestion to do so? I think the AR488 is a generic gpib to usb adapter can be used on other instrument as well,so it is worth a try.

author: Miti
author_rank: Super Contributor
timestamp: April 16, 2023, 03:30:20 pm
content: Quote from: ysg2k6 on April 15, 2023, 10:44:06 pmYes, it does involve cutting a hole in the back panel, see reply #73, but then you don’t need the AR488 anymore. You can control it, read an write the calibration constants, upgrade the software.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 18, 2023, 04:06:07 pm
content: Quote from: ysg2k6 on April 15, 2023, 04:05:20 pmYes and no. When the hp3478-ext is in passive state, there should be no interference (although I'm not 100% sure).hp3478 is passive if:- there's no SRQ interrupt- it's not initializing- extended function is not active- there're no explicit serial/usb commands provoking hp3478-ext to access GPIB

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 18, 2023, 04:11:05 pm
content: Quote from: Miti on April 16, 2023, 03:30:20 pmI second that. USB interface to the hp3478-ext is usefulIf you absolutely don't want to drill the case, you can still sneak a cable through one of the existing holes.

author: ysg2k6
author_rank: Newbie
timestamp: April 20, 2023, 04:15:38 pm
content: Thanks kirill, I played the software HP_3478A_Software_AR488_Arduino_GPIB and HP3478A.exe, they are also interesting but I'd rather use the pure bench meter function, so I made decision not to make an external serial connection. the HP3478-ext I like most, and also I think the most useful function, is conductivity and diode, it is very helpful when doing some repair work.so I made a simplified circuit and a tiny PCB, it works like a charm! I BTW changed the 4 capacitors as well, now it may work for me for anther decades :-)

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 26, 2023, 08:00:21 pm
content: Thanks for the pictures! Very nice and clean installation.It's funny that you also find the diode function useful. It's just 3k Ohms mode with the units displayed as V. HP3478A has precise and round current source for Ohms measurement so the reading also can be interpreted as a voltage drop. I decided to add the "diode" as a separate function so I don't have to remember the Ohms range I need to select.

author: ysg2k6
author_rank: Newbie
timestamp: April 29, 2023, 04:17:36 am
content: Quote from: kirill_ka on April 26, 2023, 08:00:21 pmKirill, I'm interested in how you do this "Ohms interpreted as voltage drop". I have a linear programmable power supply with GPIB interface, what I want to do is to replace the transformer and diode bridge by an adjustable switching power supply, make the switching power output always 5V higher than the programmed output. by this way I can extend the max current from 1A to 5A, now I need to interpret 1A shown on PSU as 5A ... can I do the same as you did for HP3478_ext diode function? I'm not good at C coding, but if you can explain the way in detail, I believe I can try to make the code using Arduino.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: April 30, 2023, 09:11:16 pm
content: Quote from: ysg2k6 on April 29, 2023, 04:17:36 amSorry, I don't understand what are you trying to do.Note that the GPIB is just a bus. You need to check the command set of the particular instrument to see if your idea can be implemented.

author: ysg2k6
author_rank: Newbie
timestamp: June 08, 2023, 11:47:27 am
content: Quote from: Miti on December 29, 2022, 11:46:22 pmmay I invite you and @kirill_ka to test the modified HP3478A PC software? the full credit is owned by the original author(https://github.com/Niravk1997/HP-3478A-Software)unzip the attached .exe file and replace the one on your disk.

author: selevo
author_rank: Contributor
timestamp: November 15, 2023, 01:49:49 pm
content: Hi all!Can anyone tell how to use tcl? I didn't find any documentation. My multimeter does not have a display (cracked) . I want to read readings using a computer and this adapter (hp3478aext)https://github.com/KIrill-ka/hp3478ext/tree/master/tcl

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 17, 2023, 10:32:17 pm
content: Hi Selevo,Are you targeting some automated measurements or just want to see the readings?

author: yo0
author_rank: Regular Contributor
timestamp: November 17, 2023, 10:47:45 pm
content: Hello, will be implemented the to do list?especially the dBm function/*TODO list- Display 0 with O?- Implement unbuffered binary write TUD using escape-sequence as stop- Implement unbuffered binary read TUD using escape-sequence as stop- Save & restore "ext" functions using presets.- Add dBm measurements in ACV.*//*Best regardsPio

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 21, 2023, 03:20:16 pm
content: Quote from: yo0 on November 17, 2023, 10:47:45 pmHi,Do you think the world is ready for it?Ok, I'd add it by the end of 2023Quote from: yo0 on November 17, 2023, 10:47:45 pmThat was done already by the way. I forgot to remove it from the list.

author: yo0
author_rank: Regular Contributor
timestamp: November 22, 2023, 03:27:37 am
content: Quote from: kirill_ka on November 21, 2023, 03:20:16 pmyes we are ready!!thank you very much!!best regardsPio

author: selevo
author_rank: Contributor
timestamp: November 27, 2023, 01:31:25 pm
content: Only for read LCD informationI’ve been wanting to write something in tcl/TK for a long time, and then I came across an example that was just related to my problem. Although on the other hand it may not be very correct to install another interpreter one more language and do it another bike. )) While Windows has built-in tools for working with scripting languages.Quote from: kirill_ka on November 17, 2023, 10:32:17 pm

author: kirill_ka
author_rank: Frequent Contributor
timestamp: November 27, 2023, 05:54:15 pm
content: Writing GUI in Tcl/Tk is a pure funThe Tcl/Tk runtime is very compact if you get just an interpreter. You may even try androwish as it seems to have serial support. I think of adding some basic Tk GUI sample so to have at least something to start with. Selevo, feel free to PM me if you have questions about using Tcl with hp3478ext.

author: kirill_ka
author_rank: Frequent Contributor
timestamp: December 31, 2023, 08:34:58 pm
content: Here's a preliminary version of dBm function.The reference can only be set with the console command.E.g. Odbm_ref50w sets the reference to 50 Ohm.Switch to ACV, then three times press SRQ then LOCAL to enter.Pio, do we want a way to show/select the reference prior to entering the dBm mode? What do you think?

author: yo0
author_rank: Regular Contributor
timestamp: December 31, 2023, 09:07:40 pm
content: I think it is a very good idea, thank your very much for your valuable effort and talent, and happy new year to all!

author: Miti
author_rank: Super Contributor
timestamp: December 14, 2024, 03:42:58 am
content: Quote from: bywqdq on July 20, 2021, 11:07:19 pmHuh? How did I miss this? What is that LED replacement for 3478A display? Is it public?

author: bywqdq
author_rank: Contributor
timestamp: March 02, 2025, 03:00:32 am
content: Quote from: Miti on December 14, 2024, 03:42:58 am不是公开的

author: jozefch
author_rank: Newbie
timestamp: March 06, 2025, 05:21:16 pm
content: Just joined the HP3478A clubIs anyone willing to share their PCB mfg data for this great project? Unfortunately I'm not a PCB layouter by any meancheersJozef

author: Miti
author_rank: Super Contributor
timestamp: June 02, 2025, 02:10:06 am
content: Quote from: jozefch on March 06, 2025, 05:21:16 pmI just saw this message and I thought huh, I posted the PCB files! Nope, I have not. Give me some time and I'll attach my PCB here.Cheers,Miti

author: yo0
author_rank: Regular Contributor
timestamp: June 02, 2025, 02:33:04 am
content: By the way, the version 2.4 final is at the repository, thanks again to KirillBest regardsPio

author: Miti
author_rank: Super Contributor
timestamp: June 03, 2025, 12:39:01 am
content: Here are the Gerbers, the schematic, and the BOM for this project. Take the BOM with a grain of salt, check before you order.I've never made this version of board but the changes from the one that I have made are minimal, adding a pull down resistor and changed the USB pin header from 4 to 5 pins.

author: Vaionko
author_rank: Newbie
timestamp: September 02, 2025, 06:19:50 pm
content: Thank you kirill for this awesome project! Getting continuity with this is actually the reason I got a 3478A, otherwise I would've gotten something else. After a bit of fighting with bad connections, it works! I don't have any equipment to plug into the GPIB port, so I took the whole port out and replaced it with a 3D printed bracked with an Arduino Nano mounted on it and the USB port accessible on the back of the meter. This project is great!The 3D print file if anyone's interested:https://www.printables.com/model/1403032-arduino-nano-mount-for-hp-3478a-multimeterEdit: Now that I said this, I actually tested it with the bracket installed, and it doesn't work... I get a serial connection but no response to GPIB commands or the SRQ key...