Hi, I'm a sucker for HP gear. From the day I first saw an HP instrument at work, until the time I finally purchased one for myself, I've been fascinated by the build quality, beauty and durability. I am now the proud owner of a HP 3457A 7.5 digit multimeter. If you ask me, I will happily make the claim that it is the second best multimeter ever built by mankind, second only to the 8.5 digit HP 3458A. And while the 3457A is far from intuitive to use, I find it much easier to use than newer meters, like the 34401A.
As it is customary for me, when I get such an exciting piece of gear, the second thing to do (after repairing it, if needed) is to add sigrok support. Luckily, I had a NI USB to GPIB adapter available for this task. As the amount of features of this piece of gear is overwhelming, figuring out the best set of parameters for sigrok is quite a challenge. I have gotten along quite far implementing support for it [1], but I do realize the current state of the code is not quite up to standards. That's why I am coming to you to ask for advice. So far, I have encountered several challenges. 1) The multimeter does not have a way to probe the measurement mode. I have decided to not report a measured unit until one is set up via a config key. I chose this path as opposed to defaulting to a specific measurement, and hoping the user changes the MQ. 2) There was no way to set up the most important acquisition parameter for such gear, the number of powerline cycles for the ADC integration time. I added a config key for that. 3) With an NPLC of 100, the acquisition loop will time out, and libgpib does not offer a file descriptor for proper polling. I have not found a solution for this yet. 4) While I am able to use an MQ key to select between voltage, current, and resistance measurements, I did not yet figure out how to select AC measurements, or four wire resistance measurements using config keys. 5) My unit came with a HP 44492A relay multiplexer card. This card adds ten independent channels to the rear of the instrument. While I have implemented probing for option cards, I did not implement any sort of acquisition support. Besides the regular event-based loop acquisition, I would like to use this meter to trace operational parameters of a circuit. Here's how I would like to use the meter, and how I would like to be able to write the sigrok driver to implement this: 1) Control some other device (e.g. change power supply voltage). 2) Probe individual channels. What I'm thinking is get a measurement from a series of channels. The way I would like to do this is via reading config keys, as opposed to running an entire session with only one sample. 3) Repeat with different voltage What I found however is that config_get applies to a channel group, and not individual channels. I think creating a channel group for the front terminals and one for the rear option card is a sensible option, but I would like to avoid creating a channel group for each channel. My current plan is to clean up the current branch which only supports the front terminals, and add support for additional features in subsequent patches. Please feel free to take a look at the github branch [1], and post any suggestions you have. Currently, getting measurements with sigrok-cli can be achieved with the following command-line: Thanks, Alex [1] https://github.com/mrnuke/libsigrok/commits/hp3457a ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 _______________________________________________ sigrok-devel mailing list sigrok-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sigrok-devel