Author Topic: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)  (Read 452016 times)

0 Members and 3 Guests are viewing this topic.

Offline Electronix

  • Contributor
  • Posts: 39
  • Country: de
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #550 on: January 24, 2017, 07:26:50 pm »
Hi Prasimix,

is there a controlling software for windows which you can recommend?

Cheers

Sven
 

Offline iainwhite

  • Supporter
  • ****
  • Posts: 317
  • Country: us
  • Measure twice...
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #551 on: January 24, 2017, 10:33:10 pm »
Hi Prasimix,
is there a controlling software for windows which you can recommend?
Cheers
Sven

If you look at the software/firmware thread <here> (check message #6) it looks like they have experimented with Keysight/Agilent's windows application.  Another option (just a command-line) would be a telnet client.
 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #552 on: January 25, 2017, 11:50:12 am »
I cannot recommend anything in this moment. Currently I'm using serial and telnet for exchanging SCPI commands. Over the time we'll probably add possibility that our software simulator (multi-platform) can establish connection with real device and can be used for its programming and monitoring.
I never had a time to see what can be done e.g. with sigrok that someone mentioned or myopenlab. As iainwhite said I tested communication with Keysight Connection Expert some time ago and I need to test it again to see if some of changes in Firmware M3 and M4 will cause any problem.

If you find some free/general purpose SCPI controller please let me know.

Offline voltsandjolts

  • Supporter
  • ****
  • Posts: 2281
  • Country: gb
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #553 on: January 26, 2017, 04:03:08 pm »
I wrote a small python utility for sending scpi commands to a tti PSU, it should be easy enough to modify for the EEZ H24005.
Being python/tk it is cross platform.
https://www.eevblog.com/forum/testgear/bench-psu-remote-control-application-for-tti-pl-p-series-(winlinuxmac)/
 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #554 on: January 26, 2017, 04:07:32 pm »
Nice, you can try it directly with our Software simulator. Just open a connection on port 5025 (localhost or IP address if simulator is running on other computer) ...

Offline texaspyro

  • Super Contributor
  • ***
  • Posts: 1407
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #555 on: January 26, 2017, 10:03:15 pm »
Nice, you can try it directly with our Software simulator. Just open a connection on port 5025 (localhost or IP address if simulator is running on other computer) ...

I have quite a bit of experience using SCPI devices (lately mostly GPSDO's).  I fired up the simulator and connected it to the terminal emulator function in Lady Heather (a GPSDO/GPS control program that supports several SCPI based GPSDOs).  I noticed a few things...

A SCPI device should prompt for input with a prompt like "SCPI > " or maybe " EZPSU > ".   Without a prompt you have no way of telling that the command was noticed by the device.

When an error occurs the prompt should be replaced with the last error code:  "E-123 > " or "E+345 > ".    A *CLS command should reset the prompt back to normal.

After a bit of experimenting the simulator stopped responding.  I think it happened when the error queue filled up.  I had to restart the simulator to get it working again.

As anybody that has a lot of experience with using SCPI to control instruments will tell you... it is OK as a simple command interface for configuring an instrument.  But for actually monitoring an instrument it is HORRIBLE!.  The main difficulty is that responses to queries have no indication of what query the value being sent is in response to.   If the instrument or computer queries and responses get out of sync the whole protocol falls apart.   This can be particularly bad if you string a bunch of queries together with ";"'s

 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #556 on: January 27, 2017, 09:50:45 am »
Thanks for your feedback regarding software simulator. Can you provide to me script or code or reference to application used to communicate with simulator when it stuck that I can try to reproduce this at my side?

Regarding SCPI prompt, are you referring to one that has to be displayed when telnet session is established or in general? I'm not sure that some SCPI controller tolerate anything more then SCPI commands alone.

I can imagine how someone could create a real mess with programming, SCPI is not excluded, indeed :). But, I'm also wondering are you talking here about all type of interfaces (i.e. IEEE488, serial, Ethernet)? Do you have any experience with Ethernet when additional listen socket is used/opened that SCPI instrument could send responses asynchronously (when e.g. measurement is finished, when some error alert is triggered, etc.).
Also when string of multiple queries is used, I presume that sync commands such as *OPC should improve situation, or not?

Offline voltsandjolts

  • Supporter
  • ****
  • Posts: 2281
  • Country: gb
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #557 on: January 27, 2017, 10:53:53 pm »
SCPI-Telnet has prompt
SCPI-Raw no prompt
http://www.lxistandard.org/About/LXI-Protocols.aspx

AFAIK the EEZ PSU supports SCPI-Raw
 

Offline voltsandjolts

  • Supporter
  • ****
  • Posts: 2281
  • Country: gb
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #558 on: January 28, 2017, 09:28:32 am »
I wrote a small python utility for sending scpi commands to a tti PSU, it should be easy enough to modify for the EEZ H24005.
Being python/tk it is cross platform.
https://www.eevblog.com/forum/testgear/bench-psu-remote-control-application-for-tti-pl-p-series-(winlinuxmac)/

Hi Prasimix,
I wrote that python-tk utility because the TTi web interface has poor support for remote control. A decent web interface would be much more convenient and negate the need for installing any apps.
If the Due has space available for a webserver, it could serve up some small html+javascript page which could control the PSU via scpi.
Is that feasible?
 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #559 on: January 28, 2017, 04:44:11 pm »
Due still have some space, and possibly some simple, and not too CPU and memory demanding web server can be added.

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Encoder first preview...
« Reply #560 on: January 28, 2017, 04:47:46 pm »
I uploaded a new video about first implementation of encoder support in firmware and your feedback is highly appreciated:

 
The following users thanked this post: electricar

Offline texaspyro

  • Super Contributor
  • ***
  • Posts: 1407
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #561 on: January 28, 2017, 07:15:22 pm »
Due still have some space, and possibly some simple, and not too CPU and memory demanding web server can be added.

I'd love to see the firmware ported to a Raspberry Pi 3.  For around $30 you have a quad core 1+ GHz processor,  25+ Gflops GPU, 4 USB ports, wifi, ethernet, bluetooth, 1GB of RAM, and however much program space you could possibly want.   With support for the PI 800x480 touchscreen and maybe a couple of extra power boards thrown in.
 

Offline bingo600

  • Super Contributor
  • ***
  • Posts: 1977
  • Country: dk
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #562 on: January 28, 2017, 07:24:18 pm »
Due still have some space, and possibly some simple, and not too CPU and memory demanding web server can be added.

I'd love to see the firmware ported to a Raspberry Pi 3.  For around $30 you have a quad core 1+ GHz processor,  25+ Gflops GPU, 4 USB ports, wifi, ethernet, bluetooth, 1GB of RAM, and however much program space you could possibly want.   With support for the PI 800x480 touchscreen and maybe a couple of extra power boards thrown in.

Mark
Depending on the regulator loop the PI (Linux) might not be "tight enough" , but a combi could be "interesting" ...

/Bingo
 

Offline texaspyro

  • Super Contributor
  • ***
  • Posts: 1407
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #563 on: January 28, 2017, 07:33:51 pm »
Mark
Depending on the regulator loop the PI (Linux) might not be "tight enough" , but a combi could be "interesting" ...

/Bingo

I was thinking along the lines of possibly having something like an ATMEGA32 doing any of the real-time gruntwork and glue between the PI and the power boards.  I haven't looked at the PSU firmware, but got the impression that there was not much need for real-time control of the loops except for things like possibly triggering fault shutdowns.  A quad-core GHz processor should be plenty fast enough without much need for the ATMEGA helper, but it could be useful.
 

Offline krho

  • Regular Contributor
  • *
  • Posts: 222
  • Country: si
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #564 on: January 28, 2017, 07:45:34 pm »
Linux probably won't work as it is not real time. You'd need a co-processor of some sort to handle quick things.
Otherwise the new Pi3 compute module in SODIMM format is quite small although I find it bit power hungry 5W+.
However it could handle the screen in no time and also a webserver or any other task.

Oh. BTW Cortex M4 is cheaper, has more flash and ram than ATMEGA or XMEGA
« Last Edit: January 28, 2017, 07:48:12 pm by krho »
 

Offline Tazz

  • Contributor
  • Posts: 25
  • Country: fr
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #565 on: January 28, 2017, 08:16:19 pm »
Low level physical interfaces are scarce and poor on the PI.
The Cortex M3 of the Due is the perfect balance between pure old school µcontroller like ATMEGA/XMEGA and full blow µconputer like the PI or the BBB more suitable for the present task.
M4 or M7 would have been cool, but need the complete design of a µC board. Discovery board would have been an option but the learning curve/"getting started" with the dev environment is not as simple and accessible as the Arduino env and the STM32Duino is not "plug&play".
 
The following users thanked this post: prasimix

Offline texaspyro

  • Super Contributor
  • ***
  • Posts: 1407
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #566 on: January 29, 2017, 02:54:42 am »
Here are a couple of other things to consider when implementing a SCPI interface:

Allow for backspacing when parsing a SCPI command.  People drive these things from a keyboard and make mistakes while typing.

Different SCPI devices and control programs use either CR or LF to end and execute the command (I know of one bastard device that requires both CR and LF).   I would recommend allowing commands to end with either CR or LF.
 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #567 on: January 29, 2017, 08:15:31 am »
Here are a couple of other things to consider when implementing a SCPI interface:

Allow for backspacing when parsing a SCPI command.  People drive these things from a keyboard and make mistakes while typing.

Different SCPI devices and control programs use either CR or LF to end and execute the command (I know of one bastard device that requires both CR and LF).   I would recommend allowing commands to end with either CR or LF.

Thanks for suggestion, we'll check what is currently supported by used SCPI parser, and reported here and on the GitHub tracker (new opened issue #77).

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #568 on: January 29, 2017, 08:44:17 am »
Low level physical interfaces are scarce and poor on the PI.
The Cortex M3 of the Due is the perfect balance between pure old school µcontroller like ATMEGA/XMEGA and full blow µconputer like the PI or the BBB more suitable for the present task.
M4 or M7 would have been cool, but need the complete design of a µC board. Discovery board would have been an option but the learning curve/"getting started" with the dev environment is not as simple and accessible as the Arduino env and the STM32Duino is not "plug&play".

This is a just to the point. Arduino IDE is selected for two reasons: it's open source and "plug&play". I'd like to see another more powerful MCU that is directly supported from environment such as Arduino IDE. I was entertained in one moment with idea to squeeze down the TM4C1294 Connected LaunchPad to Arduino Due/Mega form factor and make it pin compatible with Due or simply put it directly on what is currently called Arduino Shield board. That MCU is equipped with many interesting stuff, and together with more capable display such as one with FT80x controller that could be an attractive combination even for more demanding projects. Again, the question is how to make it simple for use, and Lauchpad has Energia IDE but I'm not so sure that has a so dynamic community like Arduino does.

Talking about SBCs I see more attractive some open source solution such as BeagleBone instead of RPi.

Offline electricar

  • Regular Contributor
  • *
  • Posts: 89
  • Country: ch
Re: Encoder first preview...
« Reply #569 on: January 29, 2017, 11:43:38 am »
I uploaded a new video about first implementation of encoder support in firmware and your feedback is highly appreciated:



As you may already know I'm a big fan of the encoder! ;D
Somebody on Youtube already suggested what I would prefer:
- it would be nice to implement the "selection" and "confirmation" mode at once. So one could navigate by clicking, and only when a value is changed, confirmation is used.
- He also had a point on the dynamic acceleration : "it would be quite useful to have a dynamical acceleration - the faster the knob is turned, the higher the 'steps' are used for the encoder. So you have 'fine' and 'coarse' mode without having to change settings"

You current implementation with "Moving up speed" and "Moving down speed" is a constant setting right? So if you have "Moving up speed" set to 5, that will be your setting and therefore step size no matter how fast or slow you rotate the encoder right?
I think what he means is that your step size is dependent on how fast you rotate your encoder. The faster you rotate, the higher is the step size.

It's also possible that you already implemented this with "Moving up speed" and "Moving down speed" and I only have misunderstood your explanation.
 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #570 on: January 29, 2017, 11:51:04 am »
Huh, it seems that "Moving up speed" and "Moving down speed" are really bad choice of wording or my presentation sucks! That two params define what many people asked for: if you turning knob faster that set value will changed faster. Currently is implemented linear "sensitivity" curve but it can be exponential or anything else.
If someone have better terms for above mentioned "speeds" please let me know!

Offline Strada916

  • Frequent Contributor
  • **
  • Posts: 252
  • Country: au
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #571 on: January 29, 2017, 12:01:08 pm »
I think what the other guy was trying to say is. If you turn the knob slowly then it moves the numbers slowly kind of like a fine adjustment. If  you turn the knob fast then the numbers move fast like course adjustment. Does that make sence?

Sent from my D6503 using Tapatalk

The Bone, the Off-White, the Ivory or the Beige?
 

Offline prasimixTopic starter

  • Supporter
  • ****
  • Posts: 2022
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #572 on: January 29, 2017, 01:17:31 pm »
Yes, that is already implemented, and "sensitivity" is defined with that two params: one when you'd like to increase and another to decrease value. But naming is obviously not good.

Offline electricar

  • Regular Contributor
  • *
  • Posts: 89
  • Country: ch
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #573 on: January 29, 2017, 01:27:35 pm »
Yes, that is already implemented, and "sensitivity" is defined with that two params: one when you'd like to increase and another to decrease value. But naming is obviously not good.
Oh ok, so I think you implemented something that is already a step further than what the people wanted! :D

To make it more clear that you already implemented dynamic acceleration you could use something like
Dynamic acceleration sensitivity up
And
Dynamic acceleration sensitivity down

If it is too long to display you can off course make abbreviations or make a separate menu for this.
 

Offline iainwhite

  • Supporter
  • ****
  • Posts: 317
  • Country: us
  • Measure twice...
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #574 on: January 29, 2017, 06:26:41 pm »
I am impressed with the rotary encoder implementation.    Also, congratulations on hitting your $60,000 goal this weekend.
 
The following users thanked this post: prasimix


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf