Thanks Brad.
The user screens don't appear by default, I didn't mean to give that impression. I did find that writing text to them will cause them to display, so
display.changescreen(display.SCREEN_GRAPH_SWIPE) is not needed, unless you need to go back to that screen later.
I did find the display API, along with a couple of useful GitHub sites. It's just challenging to navigate through all the various references in order to pick out what I am specifically looking for. But I'm getting there.
About the inability to remove the swipe screen- I found that creating the screen, workinging with it, and removing it worked fine. After that, I could re-create the screen and again work with it. But at that point, I could no longer remove that screen, unless I did a reboot or a system reset. And other screen navigation errors would occasionally show up at this point also. It won't keep me from doing what I want, just an interesting bug. This happens the same way on both the 6500 and 2450.
I'll try out tsp.net later, good to know that I should be able to communicate with other instruments this way directly from the DMM or SMU.
Yesterday I reached the conclusion that VS Code wouldn't be able to talk to two instruments at the same time, at least not in the same code window. In separate windows, of course, this is not a problem. But I appreciate your confirming this. Because of this, I decided to switch to Python, since I'm quite comfortable with that. After installing PyVISA and PyVISA-py, it was quite easy to talk to several instruments (TSP and SCPI) at the same time. So now I think I'll add in something like the Adafruit FT232H, which will allow me to talk to I2C devices from the same program. So I will have no trouble controlling digital and analog IO, specialized sensors and so on from the same test machine control program. Pretty impressive capability! I figure if I need some sections of the programs to run at higher speeds, I can offload those to the Keithley devices to run locally as TSPA scripts.
If anyone is wondering why I didn't go with the TestController route, I did give that a try. I found the interface to be a bit confusing, but I'm sure I would have easily figured it out with more time. (And this is not meant as criticism of the program- for a one person development effort, it's an amazing piece of software with a lot of functionality) I made the choice to go the Python route for several reasons:
- I'm comfortable with Python, and there is a lot of available functionality with add in modules for graphing, math, exporting etc.
- I wanted to be able to use TSP on the Keithley instruments
- I spot-checked communications with several instruments. My DC load and DC linear power supply worked fine over SCPI. But I tried the DMM6500, and found a lot of machine errors, and occasional lock-ups requiring a reset. And there is no driver for the 2450 SMU.
- The Python approach lets me easily talk to raspberry pi types of devices- sensors, IO, stepper motors, etc. Or I can run the whole thing on a raspberry pi to keep the computer free. I did see that TestController can connect to microcontrollers, but it wasn't clear how to do this, and I prefer programming Python to Arduino C.
I appreciate your comments on the API commands not be fully documented or supported. I'd rather have them as they are, instead of "locked away" as hidden calls. Again, I'm very impressed with the thought that has gone into these machines, from the user interface and general functionality, and the overall quality of the documentation.