Open source EEZ Studio for accessing your (SCPI) instruments - Page 1
Forum section: electronics / testgear

author: prasimix
author_rank: Unknown
timestamp: May 01, 2018, 09:40:53 am
content: I'm going to present here a EEZ Studio on which we are working for quite some time and first milestone (M1) is reached yesterday that is released and ready for evaluation.The EEZ Studio is an open source cross-platform (developed in Electron) modular visual tool aimed to address various programming and management tasks for EEZ H24005 programmable power supply and other test and measurement instruments that support SCPI. Currently it has two main modules:EEZ Studio Project Editor(orESP) andEEZ Studio Workbench(orESW) and I'd like to cover in more details later module since it could be of interest for general audience not just owners of the EEZ H24005.ESW version M1 quick factsDynamic environment where multiple instruments and other "widgets" can be placed and easily accessedSession oriented interaction with each SCPI instrumentHistory of all activities with search/content filteringSupport for serial (via USB) and TCP/IP communicationDirect import of ESP generated IDFs and Keysight’sOffline Command Expert commandsetsBuilt-ininstrument extensionsfor Rigol1000 seriesof DSO/MSOQuick navigation via calendar ("heatmap") or sessions list viewShortcuts (hotkeys and buttons) that can be user defined or come predefined from imported IDF. The shortcut can contain single or sequence of SCPI commands or Javascript code.Javascript code for task automation (e.g. logfile, or programming list upload/download, etc.) can be also assigned to the shortcutSCPI commands context sensitive help with searchFile upload (instrument to PC) with image preview (e.g. screenshots)File download (PC to instrument) automation for transferring instrument profilesSimple arbitrary waveform editor (envelope and table mode)Displaying measurement data as graphsScheduled for future milestones (partial list)Support for other connections (i.e. VXI-11, USBTMC, IVI) using 3rd party open sourceInstrument extensions for popular instruments from other vendorsPrint and PDF export(External) data loggerProtocol analyzer using 3rd party open sourceImport/export of all working data (i.e. measurements, session history, shortcuts, settings, etc.) for archiving purposes or easier integration with e.g. so-calledELNsWithout going into more detail in this moment I'll show you in next post how is possible within 5 minutes to have ESW operational and help you to have all your interactions with instrument stored on one place and easily accessible.

author: prasimix
author_rank: Unknown
timestamp: May 01, 2018, 09:44:33 am
content: InstallationVisitEEZ Studio home pageand move down toDownloadsection with links to installation packages (with hash info) or visitGitHubdirectly and choose installation package for your operating system. When installation is finished successfully run EEZ Studio and it will create database where all activities are stored, and install a set of so-calledinstrument extensionsfor EEZ H24005, its simulator (if you can are interested, get ithere) and various Rigol's 1000 series MSO/DSO.When EEZ Studio is up and running ESW home page is displayed. You can go back to this page anytime using its icon in upper left corner. Installation will also add three instruments: EEZ H24005, its simulator and one generic SCPI instrument that could be used as entry point to any SCPI instrument that can be accessed using one of two currently supported interfaces.Deleting and adding instrumentsInstruments that are not needed can be easily removed from the ESW home page: just click on the instrument icon, and from right-click menu selectDelete. Deleted instrument goes to “recycle bin” which appears in upper right corder asDeleted instruments. There you can restore instruments (and all interactions with it!) back to home page or remove it permanently.Add instrumentoption in upper right corner allows you to add new instrument which has instrument extension installed (more about that in future posts). When selected, a list of all available instruments is displayed:As an example Rigol DS1074Z-S will be added and few basic actions with it will be presented.Right side of the ESW home page shows basic information about selected instrument that include available interfaces (supported in current ESW version) and itshistory.Instrument sessionWhen instrument is installed we are ready to start communicating with it. That can be done by selecting optionOpen SCPI terminalor with double-click on instrument icon when new session window dedicated to that instrument is opened. ESW support work with multiple instruments, therefore one session window is opened for each instrument.Please pay attention to the following session window options and sections:Header section contain information about instrument and connection statusShortcuts section is displayed on the bottom.Shortcutscould come withinstrument extensionsor can be added by userSCPI help can be reached by selecting the blue question mark option, in lower left cornerCommand line for sending SCPI command is also displayed but it's disabled if connection with instrument is not establishedLet's continue with establishing connection. In case of Rigol, ESW in this version could offer only Ethernet connection. Rigol is using non-standard port5555(instead of 5025) that we have to enter together with its IP address (192.168.10.124 in my case) and selectConnect:After the first successful connection we'll get something like this:Take note that command line is now enabled and that connection status is changed. We can found in connection status section basic information about connection (e.g. IP address and port) and identification string received from instrument when standard *IDN? query is sent what represent the beginning of new session.You can also see that all interaction are timestamped and all activities is recorded into instrument history.Collecting measured dataWithout spending any more time for explaining anything else, we are now ready to collect measurements! In case of Rigol we prepared two predefined shortcuts:ScreenshotandWaveform data. They are assigned to function keys F2 and F3 respectively (and that can be modified!) or can be execute by clicking on their buttons down in the shortcuts section.TheScreenshotrepresent the most trivial and fastest way to collect measured data. Here is an example with two channels active:Oops, I forgot to close connection info form, so here is another oneReceived image is now stored into session history but it can be easily saved to disk or clipboard and we can add some note. The later option proved to be particularly useful: if you add a note shortly after making screenshot, about e.g. measurement conditions, expected and achieved results you are not risking to forgot a real meaning of it especially when multiple measurements are accomplished. Allnotecontent is searchable and you can quickly come back to the right measurement no matter of how many hours, days or months passed. An example of adding note:Added note appears below image and it can be further edited or completely deleted.Now, let's see what can we get withWaveform datashortkey. Contrary to previously presentedScreenshotshortkey that is sending a simple sequence of two commands: STOP and DISP:DATA?Waveform datais a javascript that exchange multiple SCPI commands and raw data stored into Rigol's memory. Depending of number of active/displayed channels and selected timebase number of available samples could vary, but this script take care of all that so you just need to press F3 or click on it's button and we'll get the following:This operation last for quite some time since it seems that Rigol has finite capability to make available samples for transfer and also limited output buffer. Therefore script has to ask for multiple chunks that are assembled into single graph before make it available on the screen. Hence multiple blue info boxes on the right side about script execution progress that will disappear shortly.In this example we can see thatsampling ratewas 500 MS/s and that Rigol provided 1 200 000 samples (1.14 Mb) per channel. As in previous example it's possible to add a note to each graph/recording and now we are in better position to inspect received data more closely: just by clicking on the graph it will be displayed over the complete session windows:Configureoption opens entry form preloaded with data received from the Rigol:If you are missing black background that you have on instrument, simply select it as shown on the picture that follows. That is a global option and will affect all other graphs.Graph data can be now zoomed in and out andmin-maxis used as default rendering algorithm. Here is an example of zoomed in view:Rigol, as I believe many others deploy various manipulations that data on the TFT LCD screen looks “better” or closer to analog scope. Therefore results taken as bitmap (screenshot) or presented as raw data could differ in appearance or “smoothness” or “sharpness”. ESW for now, offers two other rendering algorithmaverageandgradually:We can zoom-in extensively but not to infinity, or not beyond the limit of samples. If we go so far, each sample is starts to show as small ball connected with the “tail” to the zero for better indication that we reached sampling rate/resolution:Data once transferred to the PC can be further processed using various math operations as today's DSO are doing in “realtime”. We believe that all what Rigol is already offering on the instrument will be add for offline processing in ESW.Finally, for this basic presentation let's say a few words about before mentionedSCPI help:Here we have all Rigol SCPI commands "indexed" and searchable. Displayed command can be copied directly into session's command line. When executed Rigol will sent its respond. In first attempt that was an error since channel number was not specified. ACQuire:MDEPth? followed and another query with correctly specified channel number:When we don't need to work with instrument, we can close the connection using theDisconnectoption, and that action will be also recorded into session history and displayed on the session window together with information about session duration:I believe that this short presentation about basic operation with ESW will be inspirational enough for many of you to invest some time testing it, send us some feedback and even possibly decide to use it on the daily basis. Thanks a lot in advance for that!*****************A note about including support for Rigol DSO/MSO: the reason for that is quite simple, that's currently only 3rd party SCPI capable instrument available to us (and used in “lab” work) so it was used as a guinea pig for testing ESW features. Hopefully over the time the situation with more directly support for other vendors will be better, and possibly some of their representative/employees who are scanning this forum recognize even in this early stage the potential of ESW and offer/borrow us something from their product line. We are quite open for such possibility and I believe that could be a win-win combination for all of us without fear that such deal could possibly cannibalize software solutions they are already offering.

author: julianhigginson
author_rank: Frequent Contributor
timestamp: May 01, 2018, 10:46:49 am
content: Looks very cool! I'll give it a go with my H24005 soon.

author: prasimix
author_rank: Unknown
timestamp: May 03, 2018, 05:25:51 am
content: A quick note about "requirements" since some people asked for it: no middleware/driver (e.g. VISA, IVI, etc.) is needed to establish connection with Rigol scope over Ethernet. Just plug the cable, find its IP address and use it together with port 5555 to start connection.

author: prasimix
author_rank: Unknown
timestamp: May 03, 2018, 07:01:30 pm
content: Set/change instrument name (label) and session nameIn this post I'll present more ESW functionality. Lets start with name of the instrument which is added on theHome page. When connection with the instrument is established for the first time, ESW will use instrument identification string queried with *IDN? Command. That string could be pretty long and can spent a lots of space, looking unnecessary messy. That can be easily rectified by entering a text string of your choice in fieldLabel:Now we'll continue by opening a new session with the same Rigol. This timeSessions listtab is selected on the right side of the page. Here is possible to add a name to the session (a newly created or previous one). That can help us in the future to find a content that we are searching for:Just place cursor over the session row and edit option (pencil) will appear that when selected open a new entry form:Adding data into the sessionSession does not necessarily contain only data gathered during the interaction with an instrument. ESW currently also allows us to insert the following:User noteFile from disk (with file preview if possible)Merging of more graph into new oneSelect aNoteicon to open an entry form for adding your note:Note can, for example contain link to external content that will be opened with single click:When an added file from the disk is recognized as image, ESW will also show its preview. (click on it to enlarge it to its original size):You can use this option to import into the session (raw) data from some other measurement that resides on your disk (e.g. exported from other session) or someone sent it to you:Merging of more graphs allows us to make a compilation of various measurements taken from few sessions. You can initiate it by choosing theAdd chartoption:A list of available graphs that belongs to all sessions recored for selected instrument is displayed with check boxes on the left used for selection of graph that are of interest for us:SelectAdd chartto finish your selection and a new graph will appear a the end of the current session:Now we can see thatConfigureform of the newly compiled graph contains information for each of them. Here you can for example change the name (Label) of each trace to something else (by default channel numbers taken from origin are used):Content searchFinally we can see what kind of data can be found searching thru sessions. Search operation is quite simple: just enter a few letters that contain a word of interest and ESW will start with listing all results:If searched term is found inside an inserted item it looks like this:When we don't needSearch, CalendarandSessions listyou can hide that part of the window.

author: JPortici
author_rank: Super Contributor
timestamp: May 03, 2018, 07:24:42 pm
content: seems like cool software, however download is very slow.. (around 15kbps)

author: prasimix
author_rank: Unknown
timestamp: May 03, 2018, 07:26:27 pm
content: Thanks for your feedback. Do you mean download from instrument: a screenshot or memory capture?

author: JPortici
author_rank: Super Contributor
timestamp: May 03, 2018, 08:57:22 pm
content: oh sorry for not being cleardownloading from github..third attempt... it also failed somewhere in the middle.

author: Mr.B
author_rank: Unknown
timestamp: May 03, 2018, 09:12:52 pm
content: Wow.Very impressed.I know what will be keeping me busy tomorrow.

author: JPortici
author_rank: Super Contributor
timestamp: May 03, 2018, 10:03:10 pm
content: oooh i was finally able to download it..impressive work

author: prasimix
author_rank: Unknown
timestamp: May 04, 2018, 06:46:46 am
content: Quote from: JPortici on May 03, 2018, 08:57:22 pmOops, I didn't notice that while testing download. Possibly its depends of time of day/current load of GitHub.

author: prasimix
author_rank: Unknown
timestamp: May 05, 2018, 09:25:35 am
content: A few words about "advanced" instrument session options:ScriptingESW allows us to create scripts to automate sending SCPI commands to the instrument. Currently two type of scripts are supported: a textual sequence of SCPI commands and Javascript code. List of available scripts (assigned to the Shortcuts described below) can be accessed using the icon on the left side of the session window.Here is a simple example of script that contains a SCPI commands sequence:When content of Rigol memory is accessed as described in one of previous post Javascript code is used because some programming logic with variables is needed when multiple SCPI commands and queries are exchanging with displaying progress status on the screen. Feel free to look and further modify this script (make an backup copy before that you can switch back in case of trouble):ShortcutsShortcutscan be provided with theinstrument extensionbut they can be also created by user (see columnGroup). Here is an example of list of all available shortcuts:To add a new shortcut selectAdd shortcut. For example, we'd like to assign instrument self-test query (*TST?) to function key F10. If we don't want to assign any key to the shortcut (i.e. only want to have a button on the screen) already entered key can be cleared with option "x" next toKeybindingfield. Some of the keys are intentionally not allowed to be used as shortcut (e.g. Del, Ins, PgUp, PgDn, etc.).Since shortcut is used to call a script, you have to choose what type will be used (Action type) and inAction codeyou have to enter script code.Added shortcut become visible in the lower part of the session window:In this example we can see that group called "My group" is selected that is also user/custom defined group since shortcuts can be grouped for easier management of many shortcuts. To work with groups useShow groupsoption or to go back to shortcuts selectShow shortcuts.System settingsIt was already mentioned that ESW will create database where all interaction with all instruments will be stored. We are using SQLite for storage and you can find its initial location underSettingsreachable using the icon in lower left side of the ESW'sHome page:So, if you take care of your measurement add this database file into your backup scheduler, or move it into some of your folders that are already covered with backup routine. If database name or location is changed EEZ Studio need to be restarted, so in that case useRestartoption.Another parameter listed under system settings areLocale. Use it to change how datatime is displayed.

author: prasimix
author_rank: Unknown
timestamp: May 05, 2018, 05:03:42 pm
content: Here I'm going to demonstrate how is possible to import directly command set for a Keysight instrument that can be found in theirOffline Command Expert Command sets.First, if you don't have it locally, go to KeysightOffiline Command Expert Command Setspage and selectDownload(you'll be asked to register/login):When downloaded, unzip it to the desired folder where it occupy about 1.3 Gb (!). Now you can start EEZ Studio and select in ESW module (default one)Extension managerby selecting its icon on the left side:Use optionInstall Extension, and as an example we're going to install InfiniiVision 4000 X-Series Oscilloscope. My Offline Command sets are located in Downloads folder where I have to locate InfiniiVision4000X zip file:When selected ESW will import it and it will appear as new addedinstrument extension:Unfortunately this zip file does not include a picture of instrument, but that can be easily fixed by find it somewhere on the Net, e.g. one that is on the official instrument'spage:Right click on the picture, and we are ready to save it locally:We can remove excessive surrounding white background (in any image editor) and add it using theChange image optionwhen picture appear in instrument extension info:Now, we can go back to the ESW Home page, selectAdd instrumentoption and select new added Keysight instrument from the list:... and it will appear on the Home page:Instrument is now ready for use (if it can be accessed by Ethernet telnet session) and we can see under SCPI help section complete list of available commands as imported from Keysight zip file:Thanks in advance to anyone who is going to invest some time testing it with some Keysight instrument that can be reached by interfaces currently supported with this first version (i.e. EEZ Studio M1).

author: morris6
author_rank: Regular Contributor
timestamp: May 07, 2018, 07:59:39 pm
content: Quote from: prasimix on May 05, 2018, 05:03:42 pmThanks for this "how to use guide".Installing the extension for the Keysight 34461A was easy, following the example you gave.So far I tested a few measurements and a screen dump (HCOPy:SDUMp:DATA?), it works OK.Next is to write a script for some data capture...I have a question: Is it possible to erase a picture, screen dump, from the session history? It seems there are icons for save, clipboard and add note, but not for erase?

author: prasimix
author_rank: Unknown
timestamp: May 07, 2018, 08:25:57 pm
content: Looks great! Thanks a lot for that. Currently there is no possibility to remove anything from the session. I'm aware that such strict policy is not necessary in Hobbyist/DIYer lab but could be interesting in some other environment (that also require better security/user access control, etc.). Anyway, since everything is going into database, plan is to make it similar to what is already possible with deleted instrument: when you'd like to delete an item, in the first step it will be marked as deleted and will disappear, and in second it can be completely removed from the database. The first step is accompanied with the risk that "workflow" will be broken. That can make a testing/experimenting reconstruction after some time more difficult or even impossible. But that can be resolved with restore/undelete action from the "trash bin" as long as second step (purge) is not selected."Deleted items" will be just another type of data filter/view that can be used to narrow search over tons of data. I'll keep you posted about progress, we are just reached Milestone 1, and few more are waiting in the row.

author: HighVoltage
author_rank: Super Contributor
timestamp: May 08, 2018, 06:26:57 pm
content: Thanks, looks great so far.I will be testing your software soon.

author: s8548a
author_rank: Regular Contributor
timestamp: June 17, 2018, 05:15:04 pm
content: Being using this software for a couple of days, amazing worka couple of doubts:when switching ON the PSU from standby, gets an error " **ERROR: 310,"List not found ", but the channel trigger mode is set to fixed only.when clear protection command is given, all the channel protections are still enabled on the PSU display.*RST command is not clearing the channel VA settings to default state (not verified about other settings). update:auto recall on power On settings under user profile.

author: prasimix
author_rank: Unknown
timestamp: June 19, 2018, 07:02:43 am
content: Quote from: s8548a on June 17, 2018, 05:15:04 pmSuch error could happen when LIST is read from SD card but cannot be found (e.g. you deleted it or switch to other SD Card). All LISTs from profiles are stored in PROFILES folder using the following naming convention: LST_<CH_INDEX>_<PROFILE_LOCATION>.CSVFor example LIST on channel 1, profile 3 will be stored as LST_1_3.CSVQuote from: s8548a on June 17, 2018, 05:15:04 pmThat's right. Clearing is not the same as disabling. "Clear protection" shortcut does just clearing. You can add SCPI commands for disabling it the same shortcut or define a new one.

author: dpenev
author_rank: Regular Contributor
timestamp: June 20, 2018, 10:58:48 am
content: Hello,Some random thoughts from a random user.The EEZ software looks interesting to me as all SCPI instruments on the bench can be controlled from one place.On top of this no big interface layers like ni-visa which I personal hate are used.The software seems capable of doing simple but well looking reports with some organization in a calendar.It can also import some basic commands from Agilent command set.All this is really nice. Thank you for the software!Now, I am not into HTML and Java Script. I already can export data from my SCPI instruments usinghttps://github.com/lxi-tools/lxi-toolsSo EEZ Studio would be interesting to me if it supports my instruments or if it is easy to add support myself.I have checked the Rigol DS1000 Waveform javascript and it doesn't look very obvious to me.On top of that it seems that this script doesn't go in pure form in the github but rather in some strange file to me rigol_ds 1000b.eez-projectSuppose I want to add my instrument and update the EEZ Studio later. What is the procedure so I keep my additions and eventually contribute to the open source?And now an example. I have Siglent SSA3021X spectrum analyzer.With the general SCPI block I tested that it is recognized and that I can retrieve start frequency, stop frequency and for example trace 1 data.See attached.What my action java script will look like if I want just to plot this trace in dBm vs Frequency  ato-scaling the magnitude?I believe an example will be useful for others.Thank you.

author: dpenev
author_rank: Regular Contributor
timestamp: June 20, 2018, 11:41:41 am
content: I also decided to test what morris6 has done.I hit an issue.

author: prasimix
author_rank: Unknown
timestamp: June 20, 2018, 12:03:37 pm
content: Thanks for your feedback. Please note that EEZ Studio is even not in a "Beta" stage, we published what is done by reaching internally set first milestone (M1). A long journey is in front of us to make it not just attractive but also usable with many instruments. You are correctly noticed that what is now available and not listed as "generic instrument" need some extra work. We call it "instrument extension" as EEZ Studio already has everything included for making it. Currently we are storing there instrument identification info, picture, shortcuts and HTML help for supported/recognized SCPI commands. You can take a look by selecting File ...Open option and go to Instruments folder searching for file with.eez-projectextension. For example, here is one of the pages that belongs torigol_ds_mso_1000.eez-projectfile:We are using internally developed Openoffice/Libreoffice extension (WebPublish, will be available soon on the GitHub) that convert.odtfile to HTML in controlled manner. I spent some time to type in and bookmarking texts from Rigol's programming manuals. We are using special bookmark convention to easily process content of such HTML file. A collection of generated HTML files for mentioned "instrument extension" can be found useddocfolder:Unfortunately, a whole process is not documented yet, but my plan is to make a sort of "cookbook" how to create your own instrument extension.The good thing is that EEZ Studio is now live on GitHub, so everyone is more then welcomed to participate in this moment at least with reporting errors found in M1, but also suggestions, wishes, etc. We'll try to add into our schedule what is reported and regarding your question about trace plotting I'd like to suggest you to open anew issue, and possibly attach there an graph example and we'll follow up with questions and solutions. We are working on the the M2 (Milestone 2) and progress and what is planned to be included can be trackedhere.In the meantime, we made a great progress in establishing USBTMC connection with Rigol scope. That is not so staightforward as Ethernet connection, but with a shortreadmeit should be easily manageable for the most of people (hopefully still much easier then adding NI-VISA). Various content filtering is also added and it's possible to delete/purge/undelete any items from instrument history (with items counters!). We'd also like to add in the M2 a first group of "math" operations on acquired data.Something what we possibly will need very soon (better then later) is making a session instrument independent or to promote existing session on certain instrument to such type of session. If such session type exists one could pick and choose results from multiple instruments, together with other external "items" (recorded video/audio/textual remarks, PDFs, images, datasheets, spreadsheets/tables, etc.). In that way, at the end, one can create a comprehensive lab report that can be easily converted in a job report for internal use or for end customer, for the publishing purpose, etc. That is in line with going toward modernELNsolution as mentioned in the first post.

author: prasimix
author_rank: Unknown
timestamp: June 20, 2018, 12:07:23 pm
content: Quote from: dpenev on June 20, 2018, 11:41:41 amI need more input here: what script, script purpose, etc. That is obviously a bug, since EEZ Studio should exit gracefully in case of an error.

author: dpenev
author_rank: Regular Contributor
timestamp: June 20, 2018, 02:25:06 pm
content: Hello,The script is:HCOP:SDUM:DATA:FORM BMPHCOP:SDUM:DATA?The instrument is Keysight 24461AI guess something related with the png conversion?

author: prasimix
author_rank: Unknown
timestamp: June 20, 2018, 02:49:57 pm
content: Quite possible. Does it generate .png or .bmp as HCOP:SDUM:DATA:FORM BMP suggested?

author: dpenev
author_rank: Regular Contributor
timestamp: June 20, 2018, 03:55:13 pm
content: I don't know this but note that it was working for morris6.Have you changed anything since his version?I am using Windows 10

author: prasimix
author_rank: Unknown
timestamp: June 20, 2018, 04:00:24 pm
content: Currently only one version is released, that isM1. In the project master branch you can see that newer builds are available but its not released until we decide what will be delivered within the next release (M2). Therefore if you downloaded the same version as morris6 and you got that issue possibly the problem is someplace else. I don't know if morris6 also run it on the Win10 or not.EDIT: Hm, from morris6 screenshot it seems that he is using EEZ Studio on Windows too. I have to ask my colleague who is in charge for development (that means next week since he went on vacation yesterday.

author: dpenev
author_rank: Regular Contributor
timestamp: June 20, 2018, 07:58:14 pm
content: OK, if you want me to test something please let me know.

author: apblog
author_rank: Regular Contributor
timestamp: June 21, 2018, 05:09:42 am
content: This is very cool.It makes me want to support SCPI on the debug serial port of a board I am designing. This would be great for easily collecting data from the board.Is the software able to load columnar data from the serial port, and save it as a CSV file?

author: prasimix
author_rank: Unknown
timestamp: June 21, 2018, 05:45:24 am
content: In fact you don't need necessarily to support SCPI since you have to implement some kind of SCPI parsing/processing that could consume extra MCU time and memory. EEZ Studio is a sort of serial console when that interface is selected. Collected data, after they are stored into the database, can be presented in a various way and also exported in different formats. Exporting and collecting .csv (single column) are already accomplished. We have to add multiple column collection that is task#18(fell free to add your comments and suggestion here and directly in GitHub).

author: prasimix
author_rank: Unknown
timestamp: July 03, 2018, 09:05:40 pm
content: Quote from: dpenev on June 20, 2018, 02:25:06 pmYou was right here there is an issue with bmp to png conversion. Please feel free to contact me by PM and I'll send you an intermediate build that address this issue. I assume that you'll need a 64-bit Windows version, right?

author: dpenev
author_rank: Regular Contributor
timestamp: July 03, 2018, 11:14:19 pm
content: correct

author: prasimix
author_rank: Unknown
timestamp: July 04, 2018, 12:12:52 pm
content: Ok, I can also leave a linkhere(it will expire within few days from now). This is a 64-bit Win installation that should correct that problem. If you already have some important data captured with EEZ studio, just as precaution backup its database (storage.db) file first.EDIT: This version does not rectify your problem. It's created that you collect bitmap from your instrument once again and send it to me for further inspection. Sorry for initial disinformation.

author: dpenev
author_rank: Regular Contributor
timestamp: July 05, 2018, 01:40:09 pm
content: Hi prasimix,I have uninstalled the previous release EEZ Studio and installed the one you have provided in the link above.After staring the new EEZ Studio I had my old settings there (I have set up two instruments SSA3032Xand Keysight 34461A and I have removed the few power supplies instruments you manufacture which come pre-installed)I have tested screen capture from Keysight 34461A and it is working now! See the picture.I may have updated Java on my computer meanwhile (not really sure) so I have decided to test with the old version again(especially as install/uninstall keeps my settings)I have uninstaled the test version and have installed the official release, but on start I didn't got my configured instruments there. ;(So I unistalled the release and installed the test version for the second time and all is working fine again.Please let me know if you need some dumps to analyze.I hope you will get some useful information from my test report.ThanksDimitar

author: prasimix
author_rank: Unknown
timestamp: July 05, 2018, 02:53:10 pm
content: Excellent! Don't worry about issue with configuration. When you started new version it was automatically updated database tables hence when you tried to use old one it cannot work correctly. You can leave a new one and despite the fact that images are now correctly displayed please send us for inspection one screenshot (use save icon bellow captured screenshot).

author: dpenev
author_rank: Regular Contributor
timestamp: July 05, 2018, 03:34:28 pm
content: here it is

author: prasimix
author_rank: Unknown
timestamp: July 06, 2018, 01:23:51 pm
content: Thanks, that helped us to find out where is the problem. Used graphical library has issue with certain internal organization of BMP file. It's now replaced with another one that should rectify that problem.

author: prasimix
author_rank: Unknown
timestamp: August 30, 2018, 07:53:10 am
content: TheM2 versionis released yesterday and ready for download (Linux, Mac, Win). Since imgur.comcurrentlyexperienced a upload images major outage after the latest maintenance, I'll post more info (with pictures) shortly after they become operational again.

author: prasimix
author_rank: Unknown
timestamp: August 31, 2018, 09:57:21 am
content: Ok, it seems that situation with imgur.com has been stabilized. Here and in few posts that follows I'll try to give a brief description of major changes in M2 version.Navigation and general settingsNow, by default when instrument is selected and opened from the Home page, a new instrument tab will be created. Here is an example of home page and four instrument tabs:You can open as much as you wish tabs, but if you'd still need to move instrument in a separate window you can do that by right click on instrument tab and select “Open in window” option:Under “Settings” tab of the Home page you can now set “Locale” that is currently offer few date format and single time format for the selected country:Search and content filteringSearch and content filtering allows you to faster navigate thru the content. Content filtering represents a list of various items (content types) and it can grow in the future as new items will be introduced. A new option for show or hide the right part of the window has been also added.Content search open a new “panel” (Search results) where you can see the results. When item is selected it will be also displayed in the instrument “activity log” (left side). When search using entered phrase is time consuming then progress info will be displayed and result counter will be update accordingly.Panels on the right side of the instrument window can be rearranged to share displayed space, and it can be even arranged as multiple tabs (it’s currently missing for Home page but it’s already assigned for M3 in#36). If you want to change location of a panel simply click, drag and move it to some other part of that screen area.Deleting itemsItems from the instrument activity log can be now also deleted. Simply click on the item or more of them using Shift and Ctrl keys and select Trash bin icon:Note that deleted item will be in this step only marked as deleted and disappear from activity log. If selected instrument has deleted items you can access its “trash bin” using the following option:Here you have possibility to see what items are marked as deleted, you can select one of more items to be undeleted or purged (permanently removed):If you want to purge all trash bin content click somewhere in activity log outside of any item and the following option will appear:Please note that this operation cannot be withdrawn. Use "Back" option to close trash bin section.

author: Zucca
author_rank: Unknown
timestamp: August 31, 2018, 11:44:37 am
content: Impressive....What about GPIB SCPI? for example using an agilent usb GPIB 82357b?Sorry in advance if it was a stupid question.

author: prasimix
author_rank: Unknown
timestamp: August 31, 2018, 12:05:38 pm
content: Nothing is stupid in your question, indeed. Everything started with GPIB and it's still around. Our current problem is that we don't have access to any instrument equipped with GPIB interface. I tried few times to find something as second-, third-, any-hand on the eBay but without success. Other possibility is to locate somewhere in our close proximity (actually Zagreb, Croatia, that unfortunately isn't a hi-tech zone) and try to do some development work. I'm also not aware about any T&M rental service that covers Croatia (that is for some time now part of EU). In one or another way it should be based on sort of GPIB to USB or GPIB to Ethernet bridge similar to one that you mentioned or something else (preferably open source if you ask me).

author: prasimix
author_rank: Unknown
timestamp: August 31, 2018, 02:02:55 pm
content: Sessions and historyWorking with sessions is now different. The major change made is that session is not related to an instrument anymore. Session, that could represent a test case, an experiment, etc. could include work with various instruments and when new session is opened, all items exchanged with instrument will belong to that session. It you don't care about session you can simply ignore it: select and establish connection with instrument and start use it.We are planning in future releases to add importing, exporting, printing (with some per-formatting) of sessions that could simplify reporting, exchanging results with your peers or sending it to us to simplify debugging of found issue, etc.To open a new session use the “Start session” when you give session a name. You don't need to open any instrument to start a new session hence it is opened from the Home page.When opened, the session name will be displayed in the top right corner and info about newly opened session will be inserted into instrument “activity log”. The session will remain opened until “Close” option is not selected and confirmed.The list of all sessions is available from “History” tab on the Home page (second from the top). If session list is not visible select icon on the top right, or Show/hide arrow on the window splitter:Obviously the instrument session history from now on do not necessary include what is displayed in general history, and for accessing instrument history you have to open instrument tab:USBTMC connectionA new USBTMC type of connection is added. Unfortunately this one is not so straightforward as serial or Telnet session. For Windows you have to create USB driver for your instrument, if you don't have it already. Fortunately that is not a big task thanks to Zadig. Just install and run it, select you instrument from the list and connected USB devices and choose “Install WCID Driver”.On the Linux it seems that due to some kernel “bug” or whatever, it is not possible to establish connection with PC that has newer USB host controller (3.0?). For older one you probably have to follow the procedure that is nicely described here under USB connection section. We didn't check what's going on on Mac so far, so if someone of you have a chance to check it please let us know.If USB driver is properly installed and recognized, USBTMC option will appear in the instrument’s list of interfaces and to open an USBTMC connection you have to specify instrument USB VID and PID:When connection is established you'll get info about that in the instrument activity log and you can continue to work with instrument as in case of other connections (i.e. serial or Telent/Ethernet):PDF previewIf PDF is uploaded into activity log it’s “thumbnail” will be now displayed:Click on it and the PDF viewer will be opened with possibility to browse thru its content, zoom in/out and rotate page orientation:

author: prasimix
author_rank: Unknown
timestamp: September 01, 2018, 10:33:58 am
content: Extensions repositorySo-calledInstrument extensionsthat contains information about instrument’s SCPI command sets and parameters that EEZ Studio can use for better working with instruments are now migrated to the GitHub repository. That should simplify procedure of adding support for new instruments created by community members that has access to instruments not currently supported. We are planing to draft a first specification how to do that in M3 version.The “View” combo-box offer various selection to the extensions:Now, when EEZ Studio is started, it will try to make a connection to GitHub and check if new extensions or newer version of existing extensions exists. You can also initiate that procedure in any time by selecting “Update catalog” option:… and you’ll be informed about the status of the operation:From now on, not only instrument extensions can be added, but also extensions that accomplishes other tasks as "Advanced measurements" extensions shown above. But, since that one is still work in progress scheduled to be completed in M3 (#16) I'm not going into more details about it.That's all about new features of the M2, I do believe that some of you will invest some time and attention to check it and come back with some feedback. Thanks!

author: ghpicard
author_rank: Contributor
timestamp: September 03, 2018, 10:11:38 pm
content: This seems to be a great tool.I'm already working on some macros for my HP 54516B and HP 54542A. Not precisely state of the art but yet very capable.I will use the serial port for the communications.

author: dpenev
author_rank: Regular Contributor
timestamp: September 04, 2018, 07:20:17 am
content: Hi prasimix,Great progress!M3 will be a major mailstone for me.Keep up the good work.

author: s8548a
author_rank: Regular Contributor
timestamp: November 30, 2018, 08:00:05 am
content: Hi prasimix,I have messed up with my EEZ Studio installation(Win7x64) when I tried to change the Rigol DS1054z interface from Ethernet to USBTMC, Studio just gone blank with an empty white window.Uninstalled and reinstalled with Appdata folder contains only the storage.db, The scope were showing with a question mark only and when clicked again blank screen appears.Put back the backup Appdata folder and created a new scope instrument with interface USBTMC and it gives an error - "LIBUSB_ERROR_NOT_SUPPORTED" -how to resolve this?Is my old measurement data gone? how to recover it?Thanks.

author: prasimix
author_rank: Unknown
timestamp: November 30, 2018, 09:51:24 am
content: Hi, don't worry about your data, they are in your storage.db, but your instrument is not installed/found. But, before (re)installing instrument, please provide a screenshot when blank screen appears by selecting aToggle Developer toolsfromViewmenu:

author: Rerouter
author_rank: Super Contributor
timestamp: November 30, 2018, 10:06:53 am
content: Out of curiousity, where do the instrument definitions end up being stored on windows? I wouldn't mind filling out a definition for the siglent 1204x-e to help this project.

author: s8548a
author_rank: Regular Contributor
timestamp: November 30, 2018, 10:27:51 am
content: Please find attached the Developer tools view screenshot:

author: s8548a
author_rank: Regular Contributor
timestamp: November 30, 2018, 10:33:51 am
content: Quote from: s8548a on November 30, 2018, 10:27:51 am

author: prasimix
author_rank: Unknown
timestamp: November 30, 2018, 02:32:02 pm
content: Thanks, it seems that you have a problem with selected interface (i.e. USBTMC). For Win version you need to generate an USB driver for your instrument. But, before that first try to fix instrument icon in Studio. For that you have to install that instrument (fromExtension managertab), and after restart proper instrument icon should appear. After that you change interface from USBTMC to serial or Ethernet and check if you can see instrument's data.Please open a new issue on theGitHuband attach there screenshot from your previous post.

author: prasimix
author_rank: Unknown
timestamp: November 30, 2018, 02:40:33 pm
content: Quote from: Rerouter on November 30, 2018, 10:06:53 amThanks again Rerouter for your interest and previous contributions to EEZ projects. Yes, it's possible to add a new instrument with its own set of scripts/shortcuts and SCPI commands manual. We've planned to include into M3 step by step instructions how to do that, but if you are interested to start something even before, please let me know and I can prepare for you instructions how to do that.

author: RoGeorge
author_rank: Super Contributor
timestamp: November 30, 2018, 05:46:50 pm
content: Just discovered the topic and played with EEZ Studio for about an hour.What an amazing tool, THANK YOU!Can hardly wait for M3, especially the doc for defining new instruments from scratch. Until then, I'll try this weekend to define new extensions for a Rigol DP832 (Programmable DC Power Supply with 3 channels) and Rigol DG4102 (DDS Function/Arbitrary Waveform Generator with 2 channels). If there are already hints/docs/help files about how to create a new extension, please kindly point me to them.Again, thank you, so far I love this tool.

author: s8548a
author_rank: Regular Contributor
timestamp: November 30, 2018, 06:16:35 pm
content: Hi prasimix,I just played a bit with Agilent U1252A (it is not a full featured SCPI device) and EEZ Studio with the information found from another thread and commands found from:https://sigrok.org/wiki/Agilent_U12xxx_seriesI don't know about the data logging part, may be a java-script expert can do?Please tell how to add this as an extension with image of the device.

author: prasimix
author_rank: Unknown
timestamp: December 01, 2018, 07:35:47 am
content: Quote from: RoGeorge on November 30, 2018, 05:46:50 pmGreat to see you here RoGeorge (and thanks for give usscreen capture), it seems that I have to speed up writing instructions how to add a new instrument. I'll try to make some in coming days, please stay tuned.

author: prasimix
author_rank: Unknown
timestamp: December 01, 2018, 07:53:38 am
content: Quote from: s8548a on November 30, 2018, 06:16:35 pmPlease note that currently is not possible to change icon of a generic instrument. Regarding data logging, some scripting would be required (possibly simpler for internal and more complex for external logging).

author: Rerouter
author_rank: Super Contributor
timestamp: December 02, 2018, 10:31:06 am
content: Looking forward to your write up, I have gotten most of my scopes written up in your current XML formats, but the definition is an invalid link and it seems its not fully implemented?Things like synopsis of a function, a command format, or making a clear way to deal with mandatory and optional terms

author: prasimix
author_rank: Unknown
timestamp: December 31, 2018, 02:07:50 pm
content: Hi everyone, just a quick notice that the latest milestone (M3, v0.9.1) is just published and available on the GitHub fordownloadand evaluation. I didn't manage to include step-by-step instructions how to add a new instrument, but I'll try to keep up with the promise and start to write about it here in the coming days. I'll also post screenshots about newly added features. Thanks in advance for your attention and possible comments and questions.

author: RoGeorge
author_rank: Super Contributor
timestamp: January 02, 2019, 07:28:37 pm
content: Installed the Linux deb version on Ubuntu 18.10, then grabbed a screenshot from a Rigol DS1054Z.All working, THANK YOU!If writing a 'How to define an extension for a new type of instrument, step by step' is too time consuming for the current developing stage, maybe you can just record the screen while you re-create a very popular instrument, like Rigol DS1054Z, then post the video on YouTube. Something casual, for developers, not marketing-level video production (eventually you can post the video as unlisted).A simple walk through will be enough at first, in order to understand the steps and the main idea, without describing each and every button and field.Just a small note for the SCPI commands that are sent by the 'Screensshot' button of the EEZ Studio (Rigol DS1054Z family extensions):For the DS1054Z (and probably all the Rigol 1000Z oscilloscopes family), there is no need to send an SCPI 'STOP' before 'DISP:DATA?'. The ':STOP' is sometimes mandatory (e.g. for ':WAVeform:DATA?'), but 'DISP:DATA?' can capture the screen while the oscilloscope is in the RUN mode. Without the STOP before screenshot, the oscilloscope will preserve the RUN or STOP mode before and after the screenshot.Another thing, it was not possible for me to edit the commands sent by the 'Screenshot' button, yet it was possible to add a new button for sending only a 'DISP:DATA?' (without the preceding STOP command). The newly created button is working as expected.I guess some files from the 'Rigol DS1104Z' extension were deployed as read only.Good idea to make a separate repo for the instruments (extensions only).So far, great job!

author: bicycleguy
author_rank: Frequent Contributor
timestamp: January 02, 2019, 11:52:26 pm
content: Quote from: prasimix on December 31, 2018, 02:07:50 pmNew years resolutions

author: Rerouter
author_rank: Super Contributor
timestamp: January 03, 2019, 04:46:00 am
content: Quote from: RoGeorge on January 02, 2019, 07:28:37 pmThere are 3 main files for the definition, the .idf .sdl and the package.jsonThe idf atleast to me, seems to be the most basic stuff, like the error handling,The sdl is where you define every single little detail about all the commands for the help tree, what parts are optional, what is required, and defining the return data type, though its unclear how one would fully flesh this out for commands with multiple parametersand the package.json is where all the built in commands like the ones you want to edit are baked in to, but can be opened with a text editor, and the script you want to edit is baked into some oddly formatted java script (seems to be mainly things for a parser?? e.g. newlines and escaped text)Using this I have so far made a definition with an image for the siglent 1000X-E's, but its not fully fleshed out, bloody thing has some 415 SCPI commands, 70% of which where undocumented.

author: prasimix
author_rank: Unknown
timestamp: January 03, 2019, 02:58:52 pm
content: First, I'd like to announce ahot fix for M3 release (0.9.2)since few minor issues were found when working with project in ESP. It is relevant only for people who is willing to try to create or edit instrument extensions.Quote from: RoGeorge on January 02, 2019, 07:28:37 pmSorry for not responding faster regarding delivering of instrument extension creation instructions, but I planned to start that process in a day or two. I'm trying to finish some other things before Chinese New Year celebration begins. Thanks for suggestion about making a video with screenshot sequence. I'll take that into account.Quote from: RoGeorge on January 02, 2019, 07:28:37 pmThat's right. Currently we have STOP command in shortcut that comes with Rigol instrument extension, and you can in the meantime easily override it by creating your own shortcut and hide or delete one that comes from instrument extension. Here is instructions for other members how to do that and what you probably accomplished successfully:First, open your instrument and make sure that you're in "Terminal" tab where you can check what shortcuts are currently visible:If you move to "Shortcuts" tab you can see a list of currently available user defined shortcuts and one that comes with instrument extension. In this table you can see which one is selected to be visible in the toolbar and from here you can remove or edit selected shortcut.Please note that shortcut that comes with instrument extension once deleted can be restored only by reinstallation of instrument extension.If you don't want to delete it you can select it and deselect it's presence on the toolbar. Also it's possible to remove its assigned key (F2 in example below):Now, you can define your own shortcut using "Add shortcut" green button, when an entry form will appear:When the old shortcut that comes with instrument extension is deselected and a new one is added shortcut list will looks like this:Finally when you move back to "Terminal" tab a new toolbar will appear:

author: prasimix
author_rank: Unknown
timestamp: January 03, 2019, 03:34:00 pm
content: Quote from: Rerouter on January 03, 2019, 04:46:00 amThere is no need to dig into any of above mentioned files. That's why ESP part of the EEZ Studio exists.Anyone who is eager to see how instrument extension "source" looks like, before step-by-step instructions is not ready, I can suggest to open one of the existing project for our EEZ H24005 power supply, currently supported Rigol scopes. In addition to that M3 version is now capable to import as a project a Keysight Command Expert offline command set zip file. A whole library (over 1GB) is freely available fromhere.For example, let's say that you'd like to see how instrument extension looks like for Rigol DSO/MSO1000 family. Clone or downloadstudio-extensionsrepository, and then in ESW chooseFile > Open...option and selectorg/rigol/rigol_ds_mso_1000/rigol_ds_mso_1000.eez-projectfile from your local disk where you clone or download repository.And you are there... feel free to explore all menus for which I have to tell you how to use it properly.If you'd like to import any of Keysight command set as an ESP project, go back to ESW and this time selectFile > Import instrument definition...option:Select .zip file of interest and if it's valid Keysight package a new selection form will appear:SelectProjectand new ESP window will appear with parameters extracted from Keysight package. ChooseWorkbench extensionoption if simply want to add "compiled" instrument extension for selected Keysight instrument as already described in the post#12.

author: TiN
author_rank: Super Contributor
timestamp: January 03, 2019, 04:14:52 pm
content: prasimixQuoteNot sure if there was any progress on GPIB side , but I have quite a fleet of instruments with GPIB that I can help to test with, if the support there. Currently I use my GPIB interfaces on linux machines (RPi) so I don't know much on what is needed (smallest/easiest libraries /etc) to make it work on Windows. Also I'm far from software world, but can do basic scripting coding to help testing.I have industry NI GPIB-USB-HS dongles and Agilent 82357B dongle to test with, and also few Agilent E5810A GPIB-LAN gateway (visible on Windows just like LXI device over ethernet, that gateways "gpib0,N" parameter to the specificNGPIB instrument).If you think it's helpful, I can send you 82357B dongle (free of charge) for development, as I don't use it anymore.Once you get GPIB interfacing, i'll be happy to invest time and help adding Keithley, HP/Agilent/Keysight, Fluke and Wavetek/Datron instruments into your promising EEZ Studio.

author: prasimix
author_rank: Unknown
timestamp: January 03, 2019, 04:23:42 pm
content: Many thanks TiN for your generous offer. Yes, having access to GPIB adapter will be definitely a great step toward adding meaningful integration of GPIB channel into the EEZ Studio. I can send you in PM my address.

author: prasimix
author_rank: Unknown
timestamp: January 04, 2019, 02:32:13 pm
content: I'll present here some of new features added into M3 version.Database housekeepingUnderSettingson the Home page is now possible to compact database, which can grow considerable over the time:EEZ Studio will remind you (with small red indicator on theSettingsicon) once a month to perform database compression. When Compact database is finished, a small summary will be displayed as shown below. Size reduction is not significant in my case since I've performed compression recently.Exchanging session items using notebooksNotebooks allows you to export or import selected items from the instrument session, and combine items from more instrument sessions on the single place. That could be beneficial for exchanging information with other EEZ Studio users. To initiate creation of new notebook, select one or more items from instrument session first. A new icon will appear in upper right corner calledExport selected history items to notebook:That option offers three possibility. If you'd like to exchange your data with other user selectExport as notebook file. Two other options can be used to export items to new or existing notebook within EEZ Studio.If notebook is exported into file (with.eez-notebookextension), the following new message will be displayed:Working with notebooks is possible by selectingNotebookstab on the Home page:Here you can add a new notebook or import it from file, for example import notebook file:For testing purposes, above mentioned test notebook file is zipped and attached in this post that you can for test import and display it in your EEZ Studio. Please first unzip it since forum does not allow attachment with any extension type.

author: prasimix
author_rank: Unknown
timestamp: January 04, 2019, 04:30:19 pm
content: Combine graphsA new graph can be added into instrument session that include two or more graphs. That feature could be interesting when graph comparison is needed or you want to perform math operation that require more then one signal (see below). To start adding a new graph, selectAdd chartoption in the upper right corner:A new message for graph selection is displayed:All graphs that belongs to instrument session history will be displayed with check box for selection. We'll select two graphs in our example:Confirm with blue buttonAdd chartand new item that combine selected graph will be added at the end of the instrument session history:Graph measurements (math operations)If session item type is graph directly acquired from instrument, or imported as file it is possible now to perform a first batch of math operations on it. Please note that this is a still under development, we are still missing a lots of important operations and performance and capability of currently supported is a subject for further improvements. To enter graph, you have to click on when cursor shape is changed to "preview" (not select it, we have currently an issue with that which is reported as#57in GitHub!). We'll use newly created graph just mentioned above and get the following:Here we can see a new added selectionAdd measurementinMeasurementstab. Please note that you can select and move any of the available tabs and rearrange them to serve you better.For example we can add A - B measurement (note that Y-axis resolution can be changed just in one direction, that is reported as#55):FFT is also added, but has performance issue, and we'll try to use some library written in C/C++ to improve calculation speed. Its performance is also heavily dependent of number of used samples. Currently we are working will all samples within selected area. We have to find a way how to use selected samples from complete stream without significantly affect resulting spectrum appearance.Other issue is related to selected duration. We can see that on 1 kHz sinewave generated with Rigol signal generator (set to 5 Vpp, 0 V offset). If the sampling rate is huge (1 GSPS) and selecting only about one period FFT (rectangle) spectrum looks like this (also note that more then one measurement type can be visible simultaneously):Calculated frequency is pretty accurate: 1.012 KHz. But, if we select on the same graph more then a single period, we'll get the following:Calculated frequency is now 1.318 KHz. More predictable results can be expected if more periods are included into selection that presume also lower sampling rate. The same sinewave measured on the same instrument with 125 MSPS will looks like this:A word about graph navigation. When graph is opened for the first time its displayed asZoom defaultoption is selected:Zoom alloption will try to display it as big as possible, in our case amplitude (y-axis) resolution will be changed:You can select with a cursor part of the graph to zoom into it (displayed it as big as possible on x-axis). Simply click on the first point, drag and release to the second point. Here is how that could looks like before releasing the mouse button:It's possible to enable or disable X-axis and Y-axis rulers (seeRulerstab). In that case cursor selection define part of the graph that will be used for measurements. In that case selection boundaries will looks a little bit different (bold white lines):Click inside selection to move it inside graph, or select boundary line to resize it.Finally note about graph export: you can save it as file usingSaveoption beneath graph (visible when you exit preview mode in instrument session history). In that case graph will be saved in raw format an in our case it will generate a 7.5 MB file size. But if you'd like to exchange graph with other EEZ Studio users, useExport as notebook fileoption described in previous post. In that case the same file will be compressed and only 18.6 KB in size.

author: prasimix
author_rank: Unknown
timestamp: February 25, 2019, 04:24:15 pm
content: After so many delays and preoccupations with other tasks, I've managed to finish first draft of instruction guide how to create an IEXT (Instrument extension) for the EEZ Studio. Instructions are availablehere, and .odt files are committed to GitHubhere. Thanks in advance to anyone who is willing to improve that text for better understanding.I'd like to announce also the0.9.3release (M3 Hot Fix 2) that include few essential fixes and improvements that process of creating IEXT can be possible.Finally, I've also set up EEZ Discord server (mind that Discord has desktop client too where you can enterinvitation link!) that possibly could speed up communication about creating an IEXT, but also for general discussion about EEZ Studio and other open source projects.

author: dpenev
author_rank: Regular Contributor
timestamp: February 26, 2019, 09:19:13 am
content: Hello,After about a year I have decided to check the progress of this very promising software.I have decide to test with the SSA3032X instrument.I have installed the extension SSA3032X without issues and it is shown as "installed"I can connect to the instrument and send basic scpi commands but my shortcuts and scripts are empty.Is it seems SSA3032X extension is empty. correct?I will try to add some shorcuts but for the script related withhttps://github.com/eez-open/studio/issues/31I may need some helpThnaksDimitar

author: prasimix
author_rank: Unknown
timestamp: February 26, 2019, 09:44:34 am
content: Hi Dimitar, you're right, the Siglent IEXT is "half baked" and is missing some SCPI subsystems, and shortcuts and scripts, too.But, the :HCOPy:SDUMp:DATA? that does not follow SCPI standard for transferring data block is implemented. For start, please let me know if it now can return meaningful data.

author: dpenev
author_rank: Regular Contributor
timestamp: February 27, 2019, 10:12:58 am
content: Hello,Yes I already confirmed that :HCOPy:SDUMp:DATA? is working fine with SSA3032X instrument.I may try to add some shortcuts to set the f_start, f_stop, RBW and detector.Do you think making vector plots as for Rigol scopes is complex to be implemented?

author: Rerouter
author_rank: Super Contributor
timestamp: February 27, 2019, 12:10:34 pm
content: dpenev, take a look at the new project editor, looks like we should be able to even script up a full UI for the things if we needed to,to prasimix, Very stupid question, but with SCPI is there anyway to have the prefix be a variable, e.g. C1, C2, C3, C4, for C1:BWL, when I approach it with digital channels it blows things out very quickly,

author: dpenev
author_rank: Regular Contributor
timestamp: February 28, 2019, 09:35:36 am
content: Hi Rerouter,Thanks. I have checked the project editor but I am not sure if this is what I need.I need to be able to include vector chart/plots for my SSA3032X to be able to zoom and export to CSV things (for example) which seems to be made for the Rigol scopes.And this is not that I need this desperately but I think this is required to make this tool more useful for SSA3032XBeing able to dump the screen and adding few shortcuts which I plan to do is already a step forward.As for the project editor I have to admit that I don't get the idea.Is it going to help me with achieving the above goals I have mentioned?ThanksDimitar

author: Rerouter
author_rank: Super Contributor
timestamp: February 28, 2019, 09:51:55 am
content: Sorry, I should explain better as I am learning it myself aswell for a SDS1104, Currently it doesn't appear to natively support vector plotting, I missed that point, However It could likely be added as a GUI option in a later version,Most of the shortcuts are Javascript based, so with some massaging I'm working to get the graphing working with the siglent scopes, (pretty much just formatting it in the correct way) from that point its just pipe to the correct GUI element, However for your currently requested display mode, I recommend adding an issue to the github project.https://github.com/eez-open/studio/issues

author: dpenev
author_rank: Regular Contributor
timestamp: February 28, 2019, 12:06:34 pm
content: Thanks Rerouter,I have added an issue an year ago actually.However we have to thank the developers for their work so far and start helping I believe.I will see what I can do next few weeks for SSA3000X

author: dpenev
author_rank: Regular Contributor
timestamp: February 28, 2019, 12:45:34 pm
content: OK I have decided to give it a try with a shortcutAll is meant to be super easy so good.Unfortunately I am complete dump with Javascript.I saw how to create edit box in javascript from Internet and tried this:var fstart = prompt("Enter the Start Frequency", "");connection.command(`:FREQuency:STARt ${fstart}`);The EEZ studio however said that "prompt() is and will not be supported".What is the suggested way to make simple edit box so I can enter one or few parameters if the shortcut/script requires it?connection.command(`:FREQuency:STARt 1e3`); works so I am half way there.

author: prasimix
author_rank: Unknown
timestamp: February 28, 2019, 04:51:44 pm
content: I'll try to follow up on the recent discussion between @dpenev and @Rerouter. First, please note that current function for drawing graph is more or less in line with scope data, but can be to some extent used with data received from other sources.Graph functions already accept (i.e. recognize) various data formats. For example, I can import file that is generated by Audacity (as RAW headless .wav, 64-bit float) that looks like this in Audacity:On the ESW side, we can useAttach fileoption ..... and import it into the instrumentTerminal.We have to select proper format of imported data usingConfigureoption, otherwise graph cannot be displayed properly:

author: prasimix
author_rank: Unknown
timestamp: February 28, 2019, 05:09:01 pm
content: Some idea how to use JavaScript code within ESW can be found in shortcuts that were already implemented in couple of existing IEXTs, like importing data from Rigol's memory (rigol_waveform_data.js), or starting a datalogging on EEZ H24005 (eez_psu_dlog_start.js).An example of simple edit box can be found here:enter_start_frequency.jsthat we can use in a new shortcut:... that will appear in the list of shortcuts:... and become visible on the instrument'sTerminal, where we'll also open a Debug console on the right (Ctrl+Shift-I or usingView ... Toggle Developer Toolsoption):When we select the newly added shortcut a new edit box will appear where we can insert e.g. 4000:... and that value will become visible in Debug console, that is currently the only way to debug scripts:

author: dpenev
author_rank: Regular Contributor
timestamp: February 28, 2019, 08:31:50 pm
content: Hi Prasimix,My Fstart shortcut now looks like bellow:I have few questions inside the code in the comments.The edit box input() default value doesn't appear whatever I try.Could you please comment ?Do I need to add some more EEZ dependent stuff?var defaultValues = {starFrequency: 1000};var values = await input({title: "Enter Start Frequency",fields: [{name: "startFrequency",displayName: "Start frequency",type: "number"}]}, defaultValues); //How to pass the default values?if (!values || (values.startFrequency !== values.startFrequency)) {//session.deleteScriptLogEntry(); //Do I need this?return;}connection.acquire(); //Do I need this?connection.command(`:FREQuency:STARt ${values.startFrequency}`);connection.release(); //Do I need this?console.log(values); //Do I need this?

author: prasimix
author_rank: Unknown
timestamp: March 01, 2019, 10:19:10 am
content: The following code contain an error, for default frequencystartFrequencyshould be used (that's the answer why default value didn't work):Code:var defaultValues = {starFrequency: 1000};Don't know how you came up with this code:Code:if (!values || (values.startFrequency !== values.startFrequency)) {//session.deleteScriptLogEntry(); //Do I need this?return;}... but something like this is applicable:Code:if (!values) {// user clicked on Cancel buttonreturn;}The following lines are required, so the answer is, yes:Code:connection.acquire(); //Do I need this?connection.release(); //Do I need this?Please give us some time, and Martin will try to prepare for you a script skeleton that could be used for collecting data from your instrument.

author: prasimix
author_rank: Unknown
timestamp: March 01, 2019, 10:53:55 am
content: Hi again, inadd_chart_sample.jsyou can see how to create a graph from comma separated values that Siglent should generate with TRACe:DATA? command as you reported in#31.Code:var defaultValues = {startFrequency: 1234};var values = await input({title: "Enter Start Frequency",fields: [{name: "startFrequency",unit: "frequency",displayName: "Start frequency",type: "number"}]}, defaultValues);connection.acquire();await connection.command(`FREQuency:STARt ${values.startFrequency}`);var data = await connection.query("TRACe:DATA? 1");session.addChart({description: "This is description",data,samplingRate: 1000, // 1000 samples per secondoffset: 0,scale: 1,format: 4, // CSV stringunit: "frequency",color: "rgb(255,250,205)", // line color on black backroundcolorInverse: "rgb(51,51,0)", // line color on white backgroundlabel: "This is y-axis label"});connection.release();

author: dpenev
author_rank: Regular Contributor
timestamp: March 01, 2019, 12:32:44 pm
content: QuoteOh it is not only my lack of javascript experience. It seems I have to go and check my eyesQuoteI came up to this myself as a way to check if any value is entered (it is not NaN) and if cancel is pressed.It seems this is working for me.QuoteThis code doesn't check for empty box + Enter but with working defaults I think it is not an issue.QuoteThank you very much!

author: dpenev
author_rank: Regular Contributor
timestamp: March 01, 2019, 12:34:24 pm
content: Quote from: prasimix on March 01, 2019, 10:53:55 amThank you. I will try this as a second step after I finish my simple shortcut buttons.

author: dpenev
author_rank: Regular Contributor
timestamp: March 04, 2019, 09:41:31 am
content: Hello I have created a few shortcut buttons for SSA3032X.Attached is the project file and the extensionI want to implement a drop down list selection.Is this supported and if yes can you give an example?

author: prasimix
author_rank: Unknown
timestamp: March 04, 2019, 10:01:53 am
content: Quote from: dpenev on March 04, 2019, 09:41:31 amYes, check an example here:enter_start_frequency.js

author: dpenev
author_rank: Regular Contributor
timestamp: March 04, 2019, 02:36:10 pm
content: OK I have prepared a pull request with some ssa shortcuts. More stuff on the way.Sent from my MI NOTE Pro using Tapatalk

author: prasimix
author_rank: Unknown
timestamp: March 06, 2019, 08:58:27 am
content: Many thanks for making first change in Siglent's spectrum analyzer IEXT. I can see now the following shortcuts:I believe that in next version you'll add a script to capture its internal memory data that EEZ Studio can recognize as a graph data.Looking forward that other members follow your example and contribute with new IEXTs for instruments that they have on their benchtops.Please take into account that I've added the following notice in GitHub's readme.md:Quote

author: 2N3055
author_rank: Super Contributor
timestamp: April 11, 2019, 07:53:13 pm
content: Hi!Import for Keysight DSOX3000T (InfiniiVision3000X_7_11-v1.zip) is not right.It imported just few commands.Regards,

author: prasimix
author_rank: Unknown
timestamp: April 19, 2019, 06:25:34 am
content: Quote from: 2N3055 on April 11, 2019, 07:53:13 pmThanks for reporting this. We didn't know that some Keysight instrument package could have more then one .SDL file. Mentioned package include two and commands that belongs to second file are not imported. I've opened a new issue for that in GitHub (#71) and we'll fix that in the next release.

author: 2N3055
author_rank: Super Contributor
timestamp: April 19, 2019, 07:04:14 am
content: Quote from: prasimix on April 19, 2019, 06:25:34 amThanks!If you need help testing let me know.Regards,Siniša

author: prasimix
author_rank: Unknown
timestamp: November 21, 2019, 11:19:02 am
content: Dear all, If you find EEZ studio interesting and useful and would like to help in some way to further develop it, here's an opportunity to do so by making a small donation to it in thecrowdfundingcampaign currently underway. Thanks in advance to everyone, just spreading the word about the campaign can help.

author: prasimix
author_rank: Unknown
timestamp: November 24, 2019, 06:20:03 pm
content: A short video that shows how to start collecting data from your scope in a couple of minutes:

author: dpenev
author_rank: Regular Contributor
timestamp: November 27, 2019, 01:57:43 pm
content: Hello,I am very glad that EEZStudio has got a good progress.Especially the post processing of the numerical data!Any plants to work onhttps://github.com/eez-open/studio/issues/31or your main concern now are the scopes and power supplies?Any plans to expand the current scripting support?Please keep up the good work!

author: prasimix
author_rank: Unknown
timestamp: November 27, 2019, 02:13:02 pm
content: Quote from: dpenev on November 27, 2019, 01:57:43 pmIt's very difficult to do any work without equipment and feedback. Many months ago I was documented how to create IEXT (instrument extension) but it seems that no one so far didn't find it interesting to invest some time trying to add support for new instrument.Quote from: dpenev on November 27, 2019, 01:57:43 pmMicroPython will be part of the EEZ BB3 project, and it's possible that we also add it on the EEZ Studio side. Currently we are busy trying to put as much as possible features in the EEZ BB3 firmware (presuming that crowdfunding will be successful) so with our limited resources I cannot say when the next EEZ Studio version (M4) will be released.I'd also like to thank the two backers who have donated to EEZ Studio so far.

author: prasimix
author_rank: Unknown
timestamp: December 15, 2019, 09:19:59 am
content: The EEZ Studio latestbuildgot its first implementation of MicroPython for EEZ BB3.The crowdfunding is still active, please consider making asmall donationto make the EEZ studio even better and more usable for various other instruments.

author: Pjoms
author_rank: Regular Contributor
timestamp: April 28, 2020, 07:26:00 am
content: Hello!I'm playing around with Java-script in EEZ Studio and my EEZ H24005 from the crowdfunding.I'm also a total beginner on Java-script...Is it possible to read a measurement from the instrument into a variable?I can read the value, but I'm not able to get into a variable.This works, and display the measurement:Code:connection.acquire();connection.command('MEAS:CURR? CH1');connection.release();This also displays the measurement, but I got nothing in my variable:Code:var chargeCurrconnection.acquire();chargeCurr = connection.command('MEAS:CURR? CH1');connection.release();console.log(chargeCurr);Is it possible to use DLOG and redirect the value into a variable instead of a file?What I'm playing with here, as just a goal for education, is to make a simple charger for a 18650 LiPo-cell.1. Output 4.2V, 1,5A2. Switch off the output then the current drops below 150 mA3. Switch off the output if it still on after 4h

author: mvladic
author_rank: Contributor
timestamp: April 28, 2020, 08:03:38 am
content: Hello Pjoms!You need toawaitfor command to finish, like this:Code:var chargeCurrconnection.acquire();chargeCurr = await connection.command('MEAS:CURR? CH1');connection.release();console.log(chargeCurr);https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

author: Pjoms
author_rank: Regular Contributor
timestamp: April 28, 2020, 12:49:18 pm
content: Thanks! Another major thing was the need to use connection.query instead of connection.command.chargeCurr = await connection.query(`MEAS:CURR? CH1`);

author: Pjoms
author_rank: Regular Contributor
timestamp: April 29, 2020, 07:20:15 am
content: Now I'm in some deep water here, as a totally beginner in Java Script...I have copied the code for the input dialog from the script "Dlog start" and modified it for my purpurs.It went quite well, but suddenly, and for me without any obvious reason, the script stopped to work.After some frustrating, testing, more frustrating and testing (without knowing what I'm doing or what the error messages means...) it turns out that it works just fine if I just change the name for the storage.getItem!My best guess is that it is an array that has been messed up some way.I'm using the EEZ PSU software simulator ver. v1.1 as instrument by the way.Can someone bring some light over my confusion here...?The original lines in Dlog startCode:var defaultValues = storage.getItem("EezDlogValues", {...storage.setItem("EezDlogValues", values);My lines that not working anymoreCode:var defaultValues = storage.getItem("LiPoChargeValues", {...storage.setItem("LiPoChargeValues", values);If I just change the name, the code works...Code:var defaultValues = storage.getItem("LiPoChargeValuesX", {...storage.setItem("LiPoChargeValuesX", values);The console give me this messages then I try to run the script, but I'm afraid that I'm not able to understand much of it...Code:Uncaught TypeError: Cannot read property 'toFixed' of undefinedat Object.roundNumber (C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\roundNumber.js:11)at TimeUnit.formatValue (C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\units.js:19)at TimeUnit.formatValue (C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\units.js:116)at GenericDialog.props.dialogDefinition.fields.forEach.fieldProperties (C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\generic-dialog.js:49)at Array.forEach (<anonymous>)at new GenericDialog (C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\generic-dialog.js:47)at zf (C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:127)at Wg (C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:163)at ah (C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:176)at hi (C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:221)roundNumber @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\roundNumber.js:11formatValue @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\units.js:19formatValue @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\units.js:116GenericDialog.props.dialogDefinition.fields.forEach.fieldProperties @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\generic-dialog.js:49GenericDialog @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\generic-dialog.js:47zf @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:127Wg @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:163ah @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:176hi @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:221ii @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:222Ki @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:238fi @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:234uf @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:232Si @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:252Ti @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:252Yi.render @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:260(anonymous) @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:263Qi @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:249aj @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:263render @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:265showDialog @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\dialog.js:125Promise @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\generic-dialog.js:260showGenericDialog @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\generic-dialog.js:259resolve @ C:\Program Files\EEZ Studio\resources\app.asar\dist\instrument\window\script.js:23input @ C:\Program Files\EEZ Studio\resources\app.asar\dist\instrument\window\script.js:22(anonymous) @ VM536:16(anonymous) @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\script-engines\javascript.js:20(anonymous) @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\script-engines\javascript.js:7__awaiter @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\script-engines\javascript.js:3run @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-shared\script-engines\javascript.js:12doExecuteShortcut @ C:\Program Files\EEZ Studio\resources\app.asar\dist\instrument\window\script.js:224executeShortcut @ C:\Program Files\EEZ Studio\resources\app.asar\dist\instrument\window\script.js:253executeShortcut @ C:\Program Files\EEZ Studio\resources\app.asar\dist\instrument\window\terminal\terminal.js:257executeShortcut @ C:\Program Files\EEZ Studio\resources\app.asar\dist\instrument\window\terminal\toolbar.js:76onClick @ C:\Program Files\EEZ Studio\resources\app.asar\dist\eez-studio-ui\action.js:26da @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:14ka @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:15la @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:15ya @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:17Ca @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:18Aa @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:18Fa @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:21Gd @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:84Pi @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:249Nb @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:39Jd @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:86Ri @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:250Id @ C:\Program Files\EEZ Studio\resources\app.asar\node_modules\react-dom\cjs\react-dom.production.min.js:85I don't know if this means anything, but sometimes then I just scrolling in the code the console spits out a burst of messages like this.Code:Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'.at a.scrollLines (index.min.js:1)at p.$renderChanges (index.min.js:1)at index.min.js:1scrollLines @ index.min.js:1$renderChanges @ index.min.js:1(anonymous) @ index.min.js:1requestAnimationFrame (async)schedule @ index.min.js:1scrollToY @ index.min.js:1onScrollTopChange @ index.min.js:1n._signal @ index.min.js:1setScrollTop @ index.min.js:1$computeLayerConfig @ index.min.js:1$renderChanges @ index.min.js:1(anonymous) @ index.min.js:1requestAnimationFrame (async)schedule @ index.min.js:1scrollToY @ index.min.js:1onScrollTopChange @ index.min.js:1n._signal @ index.min.js:1setScrollTop @ index.min.js:1scrollBy @ index.min.js:1onMouseWheel @ index.min.js:1n._emit.n._dispatchEvent @ index.min.js:1onMouseWheel @ index.min.js:1(anonymous) @ index.min.js:1

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 07:40:27 am
content: Nothing is wrong with the "LiPoChargeValues" name per se. Problem is what is currently stored under that name in local storage. For some reason it contains invalid value for some of the fields. Can you open console, print the contents of "LiPoChargeValues" like this:Code:console.log(JSON.stringify(storage.getItem("LiPoChargeValues")))and send here the result.

author: Pjoms
author_rank: Regular Contributor
timestamp: April 29, 2020, 08:27:58 am
content: The console returns the follow:Code:{"startCurrent":1.5,"stopCurrent":0.1,"maxChargeTime":10}It turns out that if I use these exact variabels the script work, but if I change a name or add an other variable it dosen't work anymore.Then if I change the name as I mentioned before, the code works again. After that it looks like it is "locked" to this structure.It also looks like those values lives even outside the actual script, eg it is possible to access from another script.Is there a need or a way to clear or reset the string/array someway then changes are done?

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 09:32:50 am
content: Can you send me the part of the script with fields definition and "await input", basically everything between "storage.getItem" and "storage.setItem".

author: Pjoms
author_rank: Regular Contributor
timestamp: April 29, 2020, 09:43:02 am
content: You are so welcome.It is practically a plain copy of the start of the "Dlog start" script.Code:var defaultValues = storage.getItem("LiPoChargeValues", {startCurrent: 1.5,stopCurrent: 0.1,maxChargeTime: 10,});var values = await input({title: "Start Dlog",fields: [{name: "startCurrent",displayName: "Charging current",unit: "current",validators: [validators.rangeInclusive(0.1, 5)]},{name: "stopCurrent",displayName: "End ocf charge current",unit: "current",validators: [validators.rangeInclusive(0.01, 0.5)]},{name: "maxChargeTime",displayName: "Max charging time",unit: "time",validators: [validators.rangeInclusive(1, 86400000)]}]}, defaultValues);if (!values) {session.deleteScriptLogEntry();return;}storage.setItem("LiPoChargeValues", values);session.scriptParameters = values;

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 10:07:45 am
content: Let me give you some explanations first (sorry if you already know this):The purpose of "storage.getItem" and "storage.setItem" is to remember (inside local storage which is kept even after Studio restarts) the last parameters that you entered, so when you start script again you will be greeted with same parameters you used last time. If you don't need this feature you can remove it, so your script can look like this:Code:var defaultValues = {startCurrent: 1.5,stopCurrent: 0.1,maxChargeTime: 10,};var values = await input({title: "Start Dlog",fields: [{name: "startCurrent",displayName: "Charging current",unit: "current",validators: [validators.rangeInclusive(0.1, 5)]},{name: "stopCurrent",displayName: "End ocf charge current",unit: "current",validators: [validators.rangeInclusive(0.01, 0.5)]},{name: "maxChargeTime",displayName: "Max charging time",unit: "time",validators: [validators.rangeInclusive(1, 86400000)]}]}, defaultValues);if (!values) {session.deleteScriptLogEntry();return;}session.scriptParameters = values;Also, to answer your question, any script can access this local storage items with "storage.getItem". Check this:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorageNow, If I start the script code you send me everything works fine on my computer. But, If I change the script slightly I can see the same error as you. This is changed script:Code:var defaultValues = storage.getItem("LiPoChargeValues", {startCurrent: 1.5,stopCurrent: 0.1,maxChargeTime: 10,});var values = await input({title: "Start Dlog",fields: [{name: "startCurrent1", // "startCurrent" renamed to "startCurrent1"displayName: "Charging current",unit: "current",validators: [validators.rangeInclusive(0.1, 5)]},{name: "stopCurrent",displayName: "End ocf charge current",unit: "current",validators: [validators.rangeInclusive(0.01, 0.5)]},{name: "maxChargeTime",displayName: "Max charging time",unit: "time",validators: [validators.rangeInclusive(1, 86400000)]}]}, defaultValues);I changed "startCurrent" to "startCurrent1". The error is because defaultValues doesn't contain the value for "startCurrent1". But if I put "startCurrent1" inside defaultValues, everything is ok again:Code:var defaultValues = storage.getItem("LiPoChargeValues", {startCurrent1: 1.5, // now, we have the value for "startCurrent1"stopCurrent: 0.1,maxChargeTime: 10,});var values = await input({title: "Start Dlog",fields: [{name: "startCurrent1",displayName: "Charging current",unit: "current",validators: [validators.rangeInclusive(0.1, 5)]},{name: "stopCurrent",displayName: "End ocf charge current",unit: "current",validators: [validators.rangeInclusive(0.01, 0.5)]},{name: "maxChargeTime",displayName: "Max charging time",unit: "time",validators: [validators.rangeInclusive(1, 86400000)]}]}, defaultValues);Maybe you also changed the fields definition for the input, but forget to change defaultValues?

author: Pjoms
author_rank: Regular Contributor
timestamp: April 29, 2020, 11:23:13 am
content: Thanks, that clarify and confirm a lot of what I was assuming.But I'm afraid I'm still banging my head pretty hard here...I have tried some more, and from what I can understand it looks like the deal breaker here is if I chose Cancel or Ok in the dialog box!As long as I click Cancel in the dialog box then I run the script the storage seems still undefined and I can change anything. But as soon I click Ok the values stores and that storage structure seems unable to be changed by modifying the input variabels, eg. change startCurrent to startCurrent1.If I choose a new name for the storage, eg. change LiPoChargeValues to LiPoChargeValues1, it works again with the new variables.I tried to remove the stored values, but width no luck... "storage.removeItem is not a function)storage.removeItem('LiPoChargeValues');I hope you can follow me here...

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 11:43:06 am
content: Which version of Studio do you use? Just to be sure we are on the same version.

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 12:02:43 pm
content: I can't reproduce what you are experiencing. For me it works as expected. If I press Cancel button then script execution is done and nothing is stored inside local storage. If I press OK button then selected parameters are stored in local storage and script proceeds with the execution using selected parameters.You can check what is stored in local storage here:Knowing the true name of the "Key" you can remove from storage like this (by accessing "localStorage" object directly):Code:localStorage.removeItem("instrument/166/scripts-storage/LiPoChargeValues")

author: Pjoms
author_rank: Regular Contributor
timestamp: April 29, 2020, 12:58:35 pm
content: I use EEZ Studio 0.9.3Thanks for that guide to find the stored data!If I delete it there it's possible to run the script again with the new values.https://imgur.com/a/kYVdPvkEdit: I tried to insert a picture, but it doesn't show up...

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 01:29:40 pm
content: Can you try with the latest version (nightly-build)?

author: Pjoms
author_rank: Regular Contributor
timestamp: April 29, 2020, 02:28:41 pm
content: Quote from: mvladic on April 29, 2020, 01:29:40 pmI can try it later, hopefully tonight. Can the nightly-build and 0.9.3 be installed at the same time?The more I (hope) I understand how this works and hangs together, the more I'm starting to imagine that the behavior I experiencing maybe is just the right thing.If I set up a storage with some variables in "Script1", and then if some other "Script2" is able to change the names of the variables, some funny things will surely occur in "Script1".Am I thinking the right way here?

author: mvladic
author_rank: Contributor
timestamp: April 29, 2020, 02:53:22 pm
content: QuoteNo. Also, after you install nightly-build it is not safe to go back to version 0.9.3, unless you make a backup of settings and database which are stored here: C:\Users\<your_user_name>\AppData\Roaming\eezstudio. This is because newer version of Studio can automatically change format of settings and database which could be problematic if you decide later to start older version.QuoteYes, use different names for local storage items in different scripts, unless you deliberately want to access same local storage item from different scripts.

author: Pjoms
author_rank: Regular Contributor
timestamp: April 30, 2020, 10:02:48 am
content: Ok, here we go again...I think I now understand what caused my confusion yesterday, and I'm satisfied with that. Thanks again for your help!Now a new problem...If I set up the unit for an input value as "time" the dialog box shows "s" after the value.So far so good.But if I enter a large number eg. 3600s it first works fine, but the next time I run the script it shows like "3.6Ks" and the dialog will not accept it.The same thing happens if I set a large number in defaultValues.It is possible to enter eg. "1h" and it stores as 3600, but the next time it show "3.6Ks".1. How can I solve this?2. Are there any other types of units allowed, except Voltage, Current, Power, Time, Boolean and string?Code:{name: "dummyReg",displayName: "Dummy time (1-5h)",unit: "time",validators: [validators.rangeInclusive(1, 5)]},The whole test codeCode:var values = await input({title: "Start Test",fields: [{name: "startCurrent",displayName: "Charging current",unit: "current",validators: [validators.rangeInclusive(0.1, 5)]},{name: "stopCurrent",displayName: "End ocf charge current",unit: "current",validators: [validators.rangeInclusive(0.01, 0.5)]},{name: "maxChargeTime",displayName: "Max charging time",unit: "time",validators: [validators.rangeInclusive(1, 86400000)]},{name: "dummyReg",displayName: "Dummy time (1-5h)",unit: "time",validators: [validators.rangeInclusive(1, 5)]},{name: "dummyReg2",displayName: "Dummy power",unit: "power",validators: [validators.rangeInclusive(0.1, 5)]}]}, defaultValues);if (!values) {session.deleteScriptLogEntry();return;}storage.setItem("LiPoChargeValuesTest", values);session.scriptParameters = values;console.log(JSON.stringify(storage.getItem("LiPoChargeValuesY1")))

author: mvladic
author_rank: Contributor
timestamp: April 30, 2020, 11:19:32 am
content: QuoteThis is bug in Studio. You should fill a bug report herehttps://github.com/eez-open/studio/issues.QuoteIn thelatest Studio (nightly-build)folowing types are supported:- "integer"- "number"- "string"- "boolean"- "enum"- "radio"- "range"And following units are allowed for "number" type:- "volt" (alias: "voltage")- "amp" (alias: "amperage", "ampere", "current")- "watt" (alias: "wattage", "power")- "frequency"- "sampling rate"- "decibel"- "joule"- "unknown" (alias: "unkn"). This means: no unit.This is example of "radio" type (this is from Coupling script from BB3 instrument):Code:connection.acquire();let numChannels = await connection.query("SYSTem:CHANnel?");if (numChannels === 0) {connection.release();notify.error("There is no channel installed!");return;}let numValidChannels = 0;let couplingPossible = true;for (let i = 1; i <= numChannels; i++) {const testResult = await connection.query(`DIAG:TEST? CH` + i);if (testResult == 2) {++numValidChannels;} else {if (i == 1 || i == 2) {couplingPossible = false;}}}couplingPossible = couplingPossible &&(await connection.query(`SYST:CHAN:OPT? CH1`)).indexOf("Coupling") != -1 &&(await connection.query(`SYST:CHAN:OPT? CH2`)).indexOf("Coupling") != -1;if (!couplingPossible && numValidChannels < 2) {connection.release();notify.error("Coupling is not possible!");return;}const availableCouplingTypes = [{id: "NONE",label: "Uncoupled",image: "data:image/png;base64,..."}];if (couplingPossible) {availableCouplingTypes.push({id: "SER",label: "Series",image: "data:image/png;base64,..."});availableCouplingTypes.push({id: "PAR",label: "Parallel",image: "data:image/png;base64,..."});availableCouplingTypes.push({id: "SRA",label: "Split rails",image: "data:image/png;base64,..."});}availableCouplingTypes.push({id: "CGND",label: "Common GND",image: "data:image/png;base64,..."});const fields = [{name: "type",displayName: "",type: "radio",enumItems: availableCouplingTypes}];values = await input({title: "Power outputs coupling",fields}, {type: "NONE"});if (!values) {connection.release();session.deleteScriptLogEntry();return;}session.scriptParameters = values.type;connection.command(`INST:COUP:TRAC ${values.type}`);connection.release();(Please note that I shortened "image" properties because forum software would not allowed me to post such a big script. To get data uri from image file you can use online tools like this:https://onlinepngtools.com/convert-png-to-data-uri)This dialog look like this:And here is example of "enum" and "range" types:Code:const STORAGE_ITEM = "test";var defaultValues = storage.getItem(STORAGE_ITEM, {option: "Option 2",color: 4,howMany: 3});var values = await input({title: "Test enum and range field types",fields: [{name: "option",type: "enum",enumItems: ["Option 1", "Option 2", "Option 3"]},{name: "color",type: "enum",enumItems: [{id: 1,label: "Red"},{id: 2,label: "Green"},{id: 3,label: "Blue"},{id: 4,label: "Yellow"}]},{name: "howMany",type: "range",minValue: 1,maxValue: 10}]}, defaultValues);if (values) {storage.setItem(STORAGE_ITEM, values);console.log(values);} else{session.deleteScriptLogEntry();}And this is how it looks:

author: prasimix
author_rank: Unknown
timestamp: August 07, 2020, 08:58:49 pm
content: We are slowly progressing with EEZ Studio, by adding new features here and there based on the requirements that have arisen from everyday work. I'm started lately to work on adding AC line filter for passing CE testing and I made a dozens of measurements with different filters. Quick comparison of results (i.e. screenshots from the spectrum analyzer) became very difficult. Therefore aScrapbookis introduced where you can with drag & drop add screenshots of current interest. This significantly accelerated my finding a filter with the desired characteristics. Example of what I currently have in the scrapbook:The latest EEZ Studio can be downloaded at:https://github.com/eez-open/studio/releases/tag/nightly-build

author: prasimix
author_rank: Unknown
timestamp: October 16, 2020, 09:08:56 am
content: The latest release 0.9.7 is available for download athttps://github.com/eez-open/studio/releases/tag/0.9.7

author: prasimix
author_rank: Unknown
timestamp: March 16, 2021, 08:11:16 am
content: Thanks to Lex Brugman, we got another "3rd-party" IEXT:

author: prasimix
author_rank: Unknown
timestamp: March 23, 2021, 11:26:04 am
content: Thanks to Andrew Young (yngndrw) we got IEXT for Keysight DSO/MSO Infiniivision 2000 X series ...

author: prasimix
author_rank: Unknown
timestamp: March 27, 2021, 03:00:22 pm
content: I am glad to announceEEZ Flowto you. It allows visual programming likeNode-RED, or say LabVIEW if we are talking about T&M solutions. We have been thinking about EEZ Flow (which we didn't even know what it would be called at the time) for more than five years and finally something started happening in that area thanks primarily toNLnetwho decided to sponsor its development.Yesterday, the first milestone (tagged asPre-release 0.9.8.1) was completed, which brings the first basic elements for creating flowcharts from existing components, editing, copying, deleting, etc. EEZ flow will be able to work with three types of components:WidgetsandActionsare already supported and we will addDecorations. The important thing is that it will be possible to import external components as well, so as a first example, acomponentwas created to connect to the Postgres database. This will allow other developers to add their own components.We continue to work on the EEZ flow and through the next four milestones the idea is to achieve the following:Execute flows on a PC (to control various instruments including BB3) and display the corresponding dashboardsExecute flows directly on BB3 which will mean that the complete existing GUI can be replaced if someone wants itDebugger for PC (with single step execution, breakpoints, etc.)Debugger for BB3 (with single step execution, breakpoints, etc.)The EEZ flow will start to be usable as soon as the next milestone is finished. Execution onBB3(i.e. its MCU module) opens up the possibility to design a display module like Nextion that will be completely open source.Here are the first screenshots:

author: AlanS
author_rank: Unknown
timestamp: March 28, 2021, 10:23:34 pm
content: Fabulous progress - well done to all!

author: prasimix
author_rank: Unknown
timestamp: March 31, 2021, 02:36:50 pm
content: As work on EEZ flow has continued, we already have the first runtime results: this is a functional flow that reads voltage and current from an external device and displays them on the screen. Commands are MEAS:VOLT? and MEAS:CURR? The set delay between two readings is 500 ms. If the delay is not set the reading speed is up to 160 times per second!

author: prasimix
author_rank: Unknown
timestamp: April 01, 2021, 02:21:11 pm
content: New thing for today is added support for popularPlotlygraphs. This means that through EEZ flow data will be able to be presented in a variety of attractive ways. Here is the first example with flip between EEZ Flow frontend and backend. Again, this is not a simulation, this is what can be seen on the screen when the flow is started and communicates with an external device (EEZ BB3 in this case, but it can be any other instrument that supports SCPI).

author: Mike G
author_rank: Regular Contributor
timestamp: July 07, 2021, 02:14:15 pm
content: Hi Prasimix, further to posts 601 - 602 a week or so ago, in the (EEZ Bench Box 3 - sequel to H24005) topic, my BB3 with the notorious green board is still causing me serious problems.It still will not always power on correctly, sometimes showing a black screen with standby light on, power cycling ususally corrects this, but far more seriously it resets completely and randomly with no input from me. By this I mean it can be just turned on doing nothing but with the outputs turned on, not connected, I will hear a beep and when I look across the workshop the BB3 has reset, I see the ethernet symbol flash as it reconnects and all outputs are now off.This is really causing me doubts about the useability of this power supply, certainly for long term tests and analysis.PLease could you offer any help or, hopefully, a solution.Thank you and regards Mike

author: Mike G
author_rank: Regular Contributor
timestamp: July 07, 2021, 02:34:24 pm
content: Hi again, just look what it is doing right now

author: prasimix
author_rank: Unknown
timestamp: July 07, 2021, 03:38:30 pm
content: Ok, don't know how you ended up reporting this issue here, but never mind. It's highly likely that your MCU module is in trouble (a green version again that comes from Poland). If you have any artifacts on the screen probably there is some soldering issue with SDRAM or STM32F7 MCU itself. Please contact me on PM or info@envox.eu to continue with discussion.

author: Mike G
author_rank: Regular Contributor
timestamp: July 08, 2021, 03:49:22 am
content: I reported this matter here because in post 606 on the (EEZ Bench Box 3 - sequel to H24005) topic you asked me and any others to report problems on this topic page to enable you to build up evidence, if I misunderstood then I apologise.I will contact you in private later today.Mike

author: prasimix
author_rank: Unknown
timestamp: July 08, 2021, 06:38:11 am
content: It was this#606and you kept posting in therightplace, so it confused me how we ended up here, but it doesn’t matter. You have my PM in your inbox.

author: Mike G
author_rank: Regular Contributor
timestamp: July 26, 2021, 12:44:21 pm
content: Can anyone help me with this please?I wanted to add the facility to adjust the current at which the zener voltage is read, not a big problem and it works fine apart from one tiny niggle that I cannot puzzle out.The maximum current is set at 10mA, the minimum at 1mA, the Max and Min buttons work fine but if I manually enter 10mA on the keypad it will not allow it saying "Value is greater than 10.0mA"If anyone could try it on their BB3 and see if it does the same.I am running 1.7.1 with a R2B4 CPU moduleIf I am doing something stupid please forgive me as I am a crusty old hardware engineer.The extenstion of the txt file needs changing to .res to load.Thanks in advance.

author: jan28
author_rank: Contributor
timestamp: July 26, 2021, 02:16:42 pm
content: Quote from: Mike G on July 26, 2021, 12:44:21 pmLine 42 of the script:value = scpi('DISP:INPUT? "I_SET",NUMBER,AMPER,0.001,0.01,' + str(I_SET))If I type the SCPI command directly in studio I get the same behaviour.... I can only reproduce this at max 10mA, other values I tried don't have this behaviour. It also gives the error if you type 9.9999999mA with a max of 10mA...My conclusion: Some kind of conversion/rounding threshold anomaly. Worth making a GitHub issue for.Workaround I can give for now: 'DISP:INPUT? "I_SET",NUMBER,AMPER,0.001,0.01000001'(hitting max will also give 0.01)

author: Mike G
author_rank: Regular Contributor
timestamp: July 26, 2021, 02:45:13 pm
content: Quote from: jan28 on July 26, 2021, 02:16:42 pmThank you jan28I too had found the workaround and could find no issue with the python code so was wondering if it was the same on other BB3s. Maybe this is not my fault, I just like things to work correctly.Thank you again, regards Mike

author: prasimix
author_rank: Unknown
timestamp: October 31, 2021, 08:48:49 am
content: Yesterday we released the latest version of EEZ Studiov0.9.88which now includes an experimental R&S®VISA interface. A shortHow toarticle has also been published describing how to easily start collecting screenshots from DSO and other equipment. It is currently tested with Rigol DS1074Z and Siglent VNA1015X.Thanks in advance to everyone who will invest some time and test EEZ Studio with their instruments. Feel free to report issues on GitHubissuetracking, your feedback will help us make it better and useful for as many instruments as possible.

author: kawal
author_rank: Frequent Contributor
timestamp: July 12, 2022, 03:22:35 pm
content: Awesome toolJust started playing with it an the 8714 over ethernet.

author: kawal
author_rank: Frequent Contributor
timestamp: July 12, 2022, 09:02:13 pm
content: trying to make a graphSo far a was able to create an array of frequency steps and an array of data points for the corresponding frequencies.Trying to make a graph from the data but the scope examples are confusing.Is the scope data organized as [x1,y1,X2 y2.......Xn,Yn]?If I need interleaved data I can easily do that inside the js.here is the js code so farconnection.acquire();connection.command("FORMat real 64");var StartF = await connection.query("SENSe1:FREQuency:STARt?");var StopF = await connection.query("SENSe1:FREQuency:STOP?");var PointsF = await connection.query("SENSe1:SWEep:POINts?");var StepF = ((StopF-StartF)/(PointsF-1));// notify.info(`steps ${StepF/1000000}MHz`);var freq = [];var level = await connection.query("TRAC? CH1FDATA");var level_array = level.split(',');for (var i =0; i < PointsF; ++i){freq.push(StartF + i * StepF);//notify.info(freq);}// notify.info(freq/1000000);// notify.info(freq[PointsF-1]/1000000);// notify.info(level_array);

author: mvladic
author_rank: Contributor
timestamp: July 13, 2022, 07:35:26 am
content: If you mean the example of "Waveform data" for the Keysight oscilloscope, then know that in that example the data is not sent as [x1, y1, x2, y2, ...] but as [y1, y2, ...], and the x values are defined with sampleRate, i.e. x values are implicitly calculated, so they are not sent.

author: kawal
author_rank: Frequent Contributor
timestamp: July 14, 2022, 03:18:15 am
content: thanks for your reply . Yes .... that should be easily adapted to my needs as the VNA 8714ET also sends only Y values. I calculated all the X values and the x step. But its still complicated for me to understand how to get the data to display. I found that the instrument also generates prn files that are easily imported to excel so thats my fall back. I would love to get the instrument working as the scope example.here is an example prn file.The array here provides the y values:var level = await connection.query("TRAC? CH1FDATA");var level_array = level.split(',');here I calculate the step size between the samples on the x axisvar StartF = await connection.query("SENSe1:FREQuency:STARt?"); // read start frequency (5MHz)var StopF = await connection.query("SENSe1:FREQuency:STOP?"); // read stop frequency (55MHZ)var PointsF = await connection.query("SENSe1:SWEep:POINts?"); //read number of points (401)var StepF = ((StopF-StartF)/(PointsF-1)); // calculate the step size 0.125MHzMy graph is not rolling data but should be from 5Mhz to 55Mhz with a 0.125Mhz in between every sampleY values .txt

author: mvladic
author_rank: Contributor
timestamp: July 14, 2022, 02:22:12 pm
content: Here is the example how to add a chart where data is in CSV format. The source code is in the attached zip file.Some screenshot:

author: kawal
author_rank: Frequent Contributor
timestamp: July 14, 2022, 04:19:35 pm
content: mvladicI appreciate it . Thank you.kawal

author: kawal
author_rank: Frequent Contributor
timestamp: July 14, 2022, 05:07:37 pm
content: mvladicI got it somewhat workinghow to change the X from seconds to Hz KHz or Mhz ?

author: kawal
author_rank: Frequent Contributor
timestamp: July 14, 2022, 05:48:28 pm
content: mvladicYour example helped me a lot but still need more help to get this usable.X axis needs to be in different units , in this case HzI need to have a way to specify the start of the graph since my data starts at 5Mhz not at 0MHzI can easily manipulate the graph but can t change the units on the x axis and i cant specify the start of the graph.maybe its not possible?Are there any other types of graphs available? Where can i find information about this?thank you so muchkawal

author: mvladic
author_rank: Contributor
timestamp: July 15, 2022, 07:04:30 am
content: Currently, it is not possible to change unit or start value for the X axis.

author: HKJ
author_rank: Super Contributor
timestamp: July 15, 2022, 07:33:41 am
content: Quote from: kawal on July 14, 2022, 05:48:28 pmIf you can export to cvs format you can use TestController:https://lygte-info.dk/project/TestControllerIntro%20UK.htmlAny column from the cvs file can be used on the X axis, if you are missing a frequency column, it may be possible to calculate on

author: prasimix
author_rank: Unknown
timestamp: July 15, 2022, 08:39:21 am
content: Quote from: kawal on July 14, 2022, 05:07:37 pmFeel free to open a new feature request in GitHub:https://github.com/eez-open/studio/issues/new

author: kawal
author_rank: Frequent Contributor
timestamp: July 15, 2022, 11:58:25 am
content: Quote from: prasimix on July 15, 2022, 08:39:21 amprasimixThanks - I did - great job on EEZE studio . Its real easy to use and very useful.Kawal

author: kawal
author_rank: Frequent Contributor
timestamp: July 15, 2022, 06:55:50 pm
content: I found a temporary solution for my problem - display Mhz as us Ghz as ms.I added padding to the data and adjusted the sampling rate and timescale based on the scanned frequencies.If the applications allowed just to change the units from ps=Hz ns=kHz us= Mhz and ms=GHz it would be 75% of my needs.

author: kawal
author_rank: Frequent Contributor
timestamp: July 18, 2022, 03:49:57 am
content: making a lot of progress on the 8714ETadded remote functions :Averaging on/off and number of samples 1.....64bandwidth selection 15Hz...6500HzStart and stop frequency - your choice - defaults populate from current as read from instrumentFrequency centerSpannumber of data pointsA general setup function that will ask you of most of the settings.Changed the padding to use the Y value of the 1st data point instead of a fixed -80dBnext will be to stitch graphs if more than 1601 data points are needed

author: CScott
author_rank: Contributor
timestamp: December 08, 2022, 06:59:11 pm
content: I'd like to add an instrument to EEZ Studio. The documentation for this seems to be herehttps://www.envox.eu/studio/create-an-instrument-extension/project-items/settings/My problem is that documentation seems to bear no relation to the current version of the software 0.9.97. The difference is so large that I'm not sure if there is something wrong with my installation or the documentation is out of date, or that I'm dumber than a rock.As an example the docs show the screen for new Project Features "esp_settings-new_project.png" attached.What I see is this "MyNewProject.jpg" attached.There is just no correlation between these. Can someone point me in the right direction please?

author: prasimix
author_rank: Unknown
timestamp: June 26, 2023, 01:13:48 pm
content: Hi, and sorry for huge delay in response (I never received a notification about a new message). You're completely right. The existing documentation is obsolete, but we are in the process of writing complete documentation for the latest version of EEZ Studio, so an updated version of the instructions for creating IEXT can be expected soon. Thank you for following us and for your patience.The progress of creating new documentation can be followed athttps://www.envox.eu/eez-studio-docs/

author: prasimix
author_rank: Unknown
timestamp: September 07, 2023, 10:05:52 am
content: A refreshed version ofHow to create an IEXTis now available athttps://www.envox.eu/eez-studio-docs/iext-introduction/Please let me know if you find any inconsistencies so I can correct them.

author: coromonadalix
author_rank: Super Contributor
timestamp: September 07, 2023, 12:29:15 pm
content: Is there any Siglent SSG SDG extensions somewhereIs there a repo to see some extensions and or try to create themI want to try adding a picoscope in the mix ....

author: prasimix
author_rank: Unknown
timestamp: September 07, 2023, 12:34:16 pm
content: Thank you for your interest. There are currently several instruments supported and the projects can be found here:https://github.com/eez-open/studio-extensions/tree/master/orgThe entry point to download EEZ Studio for FREE is here:https://www.envox.eu/support-us/

author: prasimix
author_rank: Unknown
timestamp: April 11, 2024, 03:13:01 pm
content: Here is a short update after a long time:We managed to secure the fourth round of financing from NLnet for the further development of EEZ Studio.In the previous round, the emphasis was on the improvement and further development of the visual editor for the embedded GUI (Projectsection) with added support for LVGL 8.3 and recently 9.0 versions. EEZ Studio is still the only free and open source visual editor that supports the popular LVGL.In this round, through several milestones, the emphasis will be on the improvement and further development of theInstrumentssection of EEZ Studio, of whichMilestone 18 (v0.12.0)was released a few days ago.Stay tuned and thank you in advance for your attention, for FREE download athttps://www.envox.eu/studio/studio-introduction/

author: prasimix
author_rank: Unknown
timestamp: May 10, 2024, 02:56:04 pm
content: The latest EEZ Studio release is now available (v0.13.0). Communication with non-SCPI devices is now enabled and as an example we have added IEXT for the popular TinySA spectrum analyzer and signal generator.https://www.envox.eu/2024/05/10/eez-studio-v0-13-0-release/

author: prasimix
author_rank: Unknown
timestamp: May 30, 2024, 09:12:32 am
content: FLOSS Weekly Episode 785: Designing GUIs And Building Instruments With EEZThis week Jonathan Bennett chats with Dennis and Goran about EEZ, the series of projects that started with an Open Source programmable power supply, continued with the BB3 modular test bench tool, and continues with EEZ Studio, a GUI design tool for embedded devices.https://hackaday.com/2024/05/29/floss-weekly-episode-785-designing-guis-and-building-instruments-with-eez/

author: prasimix
author_rank: Unknown
timestamp: June 14, 2024, 08:34:35 am
content: EEZ Studio in action...https://github.com/FractalEngineer/eez-studio-projects

author: prasimix
author_rank: Unknown
timestamp: August 31, 2024, 08:51:13 pm
content: Two parts video on how to use EEZ Studio to build an Arduino LVGL UI fromnerdhut.de:

author: prasimix
author_rank: Unknown
timestamp: September 07, 2024, 10:26:35 am
content: Another great intro to EEZ Studio...

author: prasimix
author_rank: Unknown
timestamp: October 18, 2024, 02:55:03 pm
content: Quote from: prasimix on May 30, 2024, 09:12:32 amWe received an email from a certain Carl who says:I recently heard about you on FLOSS weekly, and noticed the difficulty with the name. It seems to me that there is an easy (no pun intended) solution. Since EEZ studio is intended to make an embedded electrical engineer's job easier, and since the coursework to become an electrical engineer is referred to as double E, you could call it Double easy studio, and aspire to make embedded GUIs "Double Easy"The suggestion sounds good to me, and I'd love to hear your opinion. I must also say that as soon as I read this, the following thought immediately occurred to me: maybe it should be pronounced "E Squared Studio", just like I2C is pronounced "I squared C" 🤓

author: PlainName
author_rank: Super Contributor
timestamp: October 18, 2024, 03:36:54 pm
content: Only Americans pronounce it 'zee'. Here in the original world it is 'zed', so...Double-easy is a good play. I don't think E-squared would work since you would then really need to rebrand as E2Z.

author: KungFuJosh
author_rank: Super Contributor
timestamp: October 18, 2024, 03:41:32 pm
content: "Two Easy" or "2Easy" makes more sense in the context of the claims of making it easier.

author: prasimix
author_rank: Unknown
timestamp: October 18, 2024, 06:43:40 pm
content: Quote from: PlainName on October 18, 2024, 03:36:54 pmYes and no, since EE is equal to E * E that is E2Anyway, thanks for your input.

author: Kean
author_rank: Unknown
timestamp: October 19, 2024, 04:17:41 am
content: I think that Double Easy (double-eee-zee) is quite clever, and would encourage its adoption. Even for those of us that might naturally say zed rather than zee, we would get it.And while double-eee-zed doesn't pick up the extra meaning, it isn't any harder to say than eee-eee-zee which is what I've tend to know it as. OK, one extra syllable but it still flows.PS. I've said eye-two-cee for a few decades rather than eye-squared-cee, but while I am certain to not be the only one, I am also not sure how prevalent that is.

author: PlainName
author_rank: Super Contributor
timestamp: October 19, 2024, 08:27:16 am
content: QuoteSame. I think it's because we try to reduce the number of syllables, or shapes our mouths must make. Nicknames, for instance, are nearly always shorter and, given the choice we try to use acronyms rather than initialisms. Even the great initialism example of the BBC we try to make easier by calling it the 'beeb'.