Activity for GXSM

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Not wrong, but not the latest any more even I have not bumped up the Version Number since the move. Some new features: back-ports from Gxsm4 related to pyremote and other details are new. And I just made the adjustments for MOVE SPEED for MK3.

  • Takayuki Suzuki Takayuki Suzuki posted a comment on discussion Help

    Hello Percy Thank you for your reply. I am sorry that "I am using GXSM3 (3.54.0) installed via SVN" is wrong. I installed the GXSM3 (3.54.0) via GitHub. Takayuki

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    I committed the patch to the for some time now official and latest Gxsm3 at GitHub as we moved it over a year ago there -- the SF SVN is absolutely outdated, behind and left as it is: https://github.com/pyzahl/Gxsm3 PS: if you are adventurous you may play even with Gxsm4 (still need to forward patch this fix so), it fully supports the SRMK2/3, but is less tested and may have some issue in details. As we are moving on to a new hardware platform. Read more at https://github.com/pyzahl/Gxsm4

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Glad you found it, sorry for the delay, was busy and not checking here. I'll look into patching the SVN accordingly. Now more focused on Gxsm4 and the next gen all new controller RPSPMC! But will do my best to maintain Gxsm3/SR-MK2/3 support.

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Yes this is a known "issue". Move Speed calculations assumes or uses the same gain as XY-Scan. If you need a exact move speed, you need to compensate by the ratio between XY Scan vs XY Offset Gain.

  • Takayuki Suzuki Takayuki Suzuki posted a comment on discussion Help

    Sorry for the continuous posting. I also similarly changed the lines 1139 and 1523 in sranger_mk3_hwi_spm.C. Takayuki

  • Takayuki Suzuki Takayuki Suzuki posted a comment on discussion Help

    Hello Thorsten I have found that If I changed not only VX and VY, but also VX0 and VY0 from 20 to 2, both 'ScanSpd' and 'MoveSpd' worked correctly. However, in that case, 'Offset XY' is limited only to +-20V, instead of +-200V of the Mk3-HV1. Therefore, I checked the GXSM3 source code, changed the line 1839 in sranger_mk3_hwi_spm.C from double mvspd = fract * sranger_mk2_hwi_pi.app->xsm->Inst->X0A2Dig (DSPControlClass->move_speed_x) / DSPControlClass->frq_ref; to double mvspd = fract * sranger_mk2_hwi_pi.app->xsm->Inst->XA2Dig...

  • Takayuki Suzuki Takayuki Suzuki posted a comment on discussion Help

    Hello Thorsten I usually do not watch X and Y signals in an oscilloscope, but I think yes. When VX=20, VY=20, ScanSpd=1000 Ang/s, MoveSpd=1000 Ang/s, both scan and move speeds seem to be 1000 Ang/s (read-back of scan speed is 998.285 A/s). When VX=2, VY=2, ScanSpd=1000 Ang/s, MoveSpd=1000 Ang/s, scan and move speeds seem to be 1000 Ang/s and 100 Ang/s, respectively. I also tried to set the MoveSpd to the desired value after changing the gain, but it still does not work correctly. best regards, T...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Help

    Hi Takayuki. Sounds like a bug! Just to be sure: “Correct” means that regardless of the gain settings in scan and moven mode, you see the same slope on an oscilloscope, right? Please try setting the motion speed to the desired value after changing the gain. I assume that the input field for the scan speed reads back the actual value. Let's say you set 100 nm/s, but due to numerical issues (frequency of the DSP, digital to analog converter resolution, ...) , it's only 97.3 nm/s. So after you set 100...

  • bugrahan guner bugrahan guner posted a comment on discussion Help

    Hi Percy, We run the gxsm3 from the main directory in the terminal: tech@dell:~$ gxsm3 We allowed read and write permissions by changing the owner of the file Ev_Sep2023.log. As of now, we get another error and it says critical next to it. How can we fix this issue? (gxsm3:643019): Gtk-CRITICAL **: 10:00:41.992: gtk_combo_box_text_insert: assertion 'text != NULL' failed (gxsm3:643019): Gtk-CRITICAL **: 10:00:41.992: gtk_combo_box_text_insert: assertion 'text != NULL' failed (gxsm3:643019): Gtk-CRITICAL...

  • bugrahan guner bugrahan guner posted a comment on discussion Help

    Hi Percy, We did the permission part. Now when we want to start we get the following error. tech@dell:~$ gxsm3 (gxsm3:658598): Gtk-CRITICAL **: 10:10:11.310: gtk_combo_box_text_insert: assertion 'text != NULL' failed (gxsm3:658598): Gtk-CRITICAL **: 10:10:11.310: gtk_combo_box_text_insert: assertion 'text != NULL' failed (gxsm3:658598): Gtk-CRITICAL **: 10:10:11.310: gtk_combo_box_text_insert: assertion 'text != NULL' failed (gxsm3:658598): Gtk-CRITICAL **: 10:10:11.311: gtk_combo_box_text_insert:...

  • Takayuki Suzuki Takayuki Suzuki posted a comment on discussion Help

    Hello everyone I am using GXSM3 (3.54.0) installed via SVN on Ubuntu 24.04 with MK3-PLL and MK3-HV1. I also use mk3_spd_controll_minimal.py with both 'GXSM Link' and 'GXSM Gains' being ON. I have a question about 'MoveSpd'. I found that the 'MoveSpd' in Scan Characteristics works correctly, only when VX=20, VY=20, VZ=20 in Piezo Drive Settings. But the actual move speed becomes ten times slower than the value of 'MoveSpd', when VX=2, VY=2, VZ=2. Meanwhile, 'ScanSpd' works correctly in both settings...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Help

    HI Jose. This “inconvenience” has been bothering me for quite some time. Basically, the dkms package should update the kernel module when a new kernel is installed. Unfortunately, this does not work. Another related problem sometimes occurs with my graphics card drivers. In this case, SecureBoot is enabled in the BIOS and I have to go through the entire Shim/Mok procedure to enroll the driver. Indeed, dissabling automatic kernel updates is an option, but certainly to a very good one., because that...

  • Jose Bustamante Jose Bustamante posted a comment on discussion Help

    Hi all, I had a problem with Linux kernel module version mismatch error, after an automatic update. I installed gxsm3 in a new computer. It was running well until I rebooted it and gxsm3 would not open. It showed this error: No hardware Open Device failed. Device user: /dev/sranger_mk2_7 after checking dmesg, there was this problem : [90572.674885] usb_sranger_mk23: disagrees about version of symbol module_layout Apparently the problem was that the driver did not match my current kernel, so the kernel...

  • Percy Zahl Percy Zahl modified a comment on discussion GXSM Installation Knowledge

    I have seen this one older debian system. This seam to be a desktop integration issue with the system/distro. To my best knowledge this not a Gxsm4 or meson problem. And I also found you can simply ignore it, it seams to work anyways! FAILED: install script '/usr/bin/update-desktop-database -q /usr/local/share/applications' exit code 1, stopped

  • Percy Zahl Percy Zahl posted a comment on discussion GXSM Installation Knowledge

    I have seen this one one older debian/desktop integration issue with the system/distro. To my best knowledge this not a Gxsm4 or meson problem. And I also found you can simply ignore it, it seams to work anyways! FAILED: install script '/usr/bin/update-desktop-database -q /usr/local/share/applications' exit code 1, stopped

  • Gleb Turlakov Gleb Turlakov posted a comment on discussion GXSM Installation Knowledge

    Hello I was trying to compile gxsm4 using ninja but it failed at the last step with this error FAILED: install script '/usr/bin/update-desktop-database -q /usr/local/share/applications' exit code 1, stopped FAILED: meson-internal__install /usr/bin/meson install --no-rebuild ninja: build stopped: subcommand failed. After that I tried with flatpak, but it requires login and password here Initialized empty Git repository in /home/ws-490/gxsm4-git/.flatpak-builder/git/https_gitlab.gnome.org_pyzahl_gtksourceview.git-U6MIC3/...

  • Percy Zahl Percy Zahl posted a comment on discussion SPM electronics

    I looked up the (ThorLabs) KIM101. Key question is, how are you controlling this? Via python / USB? I do not see any direct trigger or control "input", digital or analog. What could be made to be activated/deactivated at DSP/real time level with some tweaks.. Did you tested that? Key question is the response time here all over and if that is going well at python time scales what is around 20..50ms at best. This not intended to be real time. What do you need or in other words: How fast are you moving...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion SPM electronics

    Hi Tugce. If you want the tip extend while feedback is on and the coarse approach is moving continously, it might be simple. Just setting the set point of the feedback high enough will extend the z-piezo to its limit. You can check its position in a python script (see Percy's posting) with gxsm.rtquery ("z"). In the moment, contact is achived, the feedback will retract the tip. So you just have to make a while loop for setting for example the "motor" output (out7) to 5V (or whatever you need) as...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion SPM electronics

    Hi Tugce. If you want the tip extend while feedback is on and the coarse approach is moving continously, it might be simple. Just setting the set point of the feedback high enough will extend the z-piezo to its limit. You can check its position in a python script (see Percy's posting) with gxsm.rtquery ("z"). In the moment, contact is achived, the feedback will retract the tip. So you just have to make a while loop for setting for example the "motor" output (out7) to 5V (or whatever you need) as...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hello, We have designed and built a custom microscope using the MK3-PLL controller, and we are now working on implementing the auto-approach function. Our goal: We want to set a voltage threshold (from tunneling current or another input channel) so that when this value is reached during coarse approach, the motors stop automatically. Details you asked for: Hardware: Controller: MK3-PLL Scanner: Custom piezo tube (XYZ) High Voltage Amplifier: Connected to Z channel (HVA output to piezo Z electrode)...

  • Percy Zahl Percy Zahl modified a comment on discussion SPM electronics

    There is a gxsm build in python script accessible via templates lib from the python console as part of the code collections in the "watchdog" template you may use and modify a copy for your needs: accessible via Py-Console Menu -> Action -> Control -> Watchdog see also here for the gxsm source location, line 407ff in (embedded templates): https://github.com/pyzahl/Gxsm3/blob/master/plug-ins/common/pyscript_templates.h Keep in mind: a) no hard real time via python, only control hi level actions and...

  • Percy Zahl Percy Zahl modified a comment on discussion SPM electronics

    There is a gxsm build in python script accessible via templates lib from the python console as part of the code collections in the "watchdog" template you may use and modify a copy for your needs: accessible via Py-Console Menu -> Action -> Control -> Watchdog see also here for the gxsm source location, line 407ff in (embedded templates): https://github.com/pyzahl/Gxsm3/blob/master/plug-ins/common/pyscript_templates.h Keep in mind: a) no hard real time via python, only control hi level actions and...

  • Percy Zahl Percy Zahl posted a comment on discussion SPM electronics

    There is a gxsm build in python script accessible via templates lib from the python console as part of the code collections in the "watchdog" template you may use and modify a copy for your needs: see also here for the gxsm source location, line 407ff in: https://github.com/pyzahl/Gxsm3/blob/master/plug-ins/common/pyscript_templates.h

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hi Percy, A delayed thank you, you helped me find my issue! It turns out it was due to my using pyenv as a python version management tool; it does not update the LD_LIBRARY_PATH, so I need to do that on my end. Thanks again, Nick

  • Tugce Tugce posted a comment on discussion SPM electronics

    Thanks Thorsten, Yes, your summary is correct: we want to start with the piezo fully extended and feedback on, then perform coarse motion via pulses until the feedback starts to retract and the Z voltage drops below a threshold. We’re currently unsure how to best implement this. If you could point us to an example (e.g. the demo-autoapproach script) or provide any guidance on how to trigger pulses based on Z voltage, that would be very helpful. Thanks again!

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion SPM electronics

    I am stil confused. Let's resume your plans. You want to have an auto approach as follows: The piezo is fully extended and feedback is on, a course motion controlled by pulses should move forward until the feedback starts to retract the piezo and its z voltags is below a given threshold. Is this so far correct? As Percy suggested, the python interface would be most suitable for this. You do not need a extra input for the z-position as this is directly accessible. You just have to think about how...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    3.11.2 in gxsm4 on Debian arhf.. Just to make sure, the python console window or plugin is not available at all you say or some thing iffy with it? This sounds like a library issue/not found etc. either at compile time, not build, OR what I suspect a ldpath issue and the runtime at plugin load fails finding the library and the plugin won't load then at all. Start Gxsm with full debug options: gxsm -D 10 -P 10 and digg in the output for the the pyremote plugin name and see if there are errors pointing...

  • Tugce Tugce posted a comment on discussion SPM electronics

    My goal is to set up auto-approach system. That means: As the piezo tube approaches the surface, I want to monitor the voltage (e.g., on In3) and stop the motors automatically once it reaches a defined threshold. I realize I may have caused some confusion in earlier messages. I'm still new to this system and not yet fully familiar with all its details. Could you please guide me on how to implement this threshold-based stopping logic in GXSM? Thanks. Tugce

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hi Percy, So in fact what I was seeing was that Python 3.10 was working well and Python 3.11 / Python 3.12 were not. But keep in mind, the symptom is that the pyremote console does not pop up in gxsm. Can you think of any pointers to help me debug why it may not be popping up the remote console? Maybe just pointers as to where to look in the code for any decision criteria to display the a plugin UI? Perhaps there are things I can check to ensure the pyremote side compiled properly and/or it was copied...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hi Percy, I’m using Gxsm (v3) with an SRanger MK3-PLL (currently detected as MK2:SPM in Gxsm). I’m trying to drive the In3 channel from Gxsm to control a piezo system. The setup is: DSP FB-3 output → 10 kΩ load resistor → breakout box → high-power piezo amplifier Monitoring the FB-3 output with an oscilloscope and multimeter. Observations: - Bias voltage works fine – when I change it in Gxsm, the voltage at FB-3 changes accordingly. - In3 does not output – changing In3 in the Gxsm GUI has no effect...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Hi Nick, I do not recall the exact details out of my head, but I recall some thing major been incompatible < 3.11 -- so I am afraid we can not support < 3.11 any more. There were some macros to patch various changes/call back names, etc, and I cleaned all that historic junk up... You may dig into git history... likely the same similar issues you want the old code on the other side. sorry. PS: Try to move forward only and figure out the new ways! What exactly is not working with latest Python? Within...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion SPM electronics

    What do you mean with IN3 does not output? It is an input you can use for the z-feedback regulator. All 8 BNC on the right side of the controller (FB-i, FB-2, FB-3, FB-4, 5, 6, 7, 8) are inputs! In the GXSM gui they should be named In0: I-Tunnel, In1, .... In7. To do so, please make sure that the gain (see section source - see Fig. 23.23 in the gxsm3 manual: https://github.com/pyzahl/Gxsm3/blob/master/debian/Gxsm3-main.pdf) for this respective input is set at least to 0.5. The feedback output is...

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hello, I am trying to run gxsm3 when compiled from source with Python version 3.11 (specifically, 3.11.5). Here is some information about my setup: Ubuntu 22.04 GTK+ version 3.24.33-1ubuntu2.2 GtkSourceView version 5.4.0-1 libfftw 3.3.8-2ubuntu8 libnetcdf 1:4.8.1-1 libquicktime 2:1.2.4-12build5 libcairo 1.16.0-5ubuntu2 (for usage with pycairo) libgirepository 1.72.0-1 (required for PyGObject) python 3.11.5, with: numpy 1.26.4 pycairo 1.28.0 PyGObject 3.50.1 (any higher requires libgirepository2.0-dev,...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hi Percy, I’m using Gxsm (v3) with an SRanger MK3-PLL (currently detected as MK2:SPM in Gxsm). I’m trying to drive the In3 channel from Gxsm to control a piezo system. The setup is: DSP FB-3 output → 10 kΩ load resistor → breakout box → high-power piezo amplifier Monitoring the FB-3 output with an oscilloscope and multimeter. Observations: - Bias voltage works fine – when I change it in Gxsm, the voltage at FB-3 changes accordingly. - In3 does not output – changing In3 in the Gxsm GUI has no effect...

  • Percy Zahl Percy Zahl posted a comment on discussion SPM electronics

    I do not know how your approach mechanism is working in detail. The GXSM or SRanger based auto approach is a two step process: enable feedback and wait/watch it it gets into regulation or fully extends Z if in regulation, process completed. END. Ready to scan. if not retract Z piezo (fine) all the way then perform N coarse steps in Z (N steps shall be less than the Z fine range + plenty of safety room) repeat with enable feedback again.... THUS the END condition is found by this method safely. Any...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hi Percy, Thanks again for your reply. I realized I was mixing things up earlier, so let me clarify the situation. We’ve designed a microscope and it’s mostly complete now. My professor asked me to set up a threshold voltage for an automatic approach. For example, if the threshold is set to 3 V, the system should keep approaching until it reaches that voltage and then stop. The thing is, I’m quite new to GXSM and I don’t have much experience with it yet. Honestly, I’m not very confident about how...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hi Thorsten, Thanks again for your reply. I realized I was mixing things up earlier, so let me clarify the situation. We’ve designed a microscope and it’s mostly complete now. My professor asked me to set up a threshold voltage for an automatic approach. For example, if the threshold is set to 3 V, the system should keep approaching until it reaches that voltage and then stop. The thing is, I’m quite new to GXSM and I don’t have much experience with it yet. Honestly, I’m not very confident about...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Just a note: how fast are you trying to scan? What is the Gxsm main window status line showing while scanning for the FIFO fill? The USB data transfer of USB2 and other critical data is shared and if you exceed 100% (stay below 50..70% to be safe) things get iffy and data is been lost -- in that case Gxsm looses the data stream and will halt. There is no automated limiting in place usual STM is typically way slower. But AFM in air or other methode may exceed the limits which are non trivial to estimate...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Help

    Hi. What exactly happens when the scan is interupted. I can not see in you screenshots. It gxsm3 crashing or does the controller stopp unindently the scanning (you can check by conneting a scope to the outputs of the controller)? A few notes: I see that you are using an elder ventiotec distribution using an elder ubuntu 22.04 and "only" gxsm3-3.53. You might want to update to a newer ubuntu 24.04 which will enable you to use gxssm3-3.54 available on launchpad. There had been a few - less critical...

  • Xunbing Cai Xunbing Cai posted a comment on discussion Help

    Hello, I recently installed the GXSM3-3.53.0, and connect it with MK2_A810. and I flash the DSP with "FB_spmcontrol_MK2_A810.out",flash the FPGA with "SR2_Analog_810_V200.rbt",also I installed the USB driver successfully. When I start the scan process, sometimes It can finish a whole scan process. While in lots of cases, the scan process can be interrupted. And then I can't control the hardware with the software. what I can do is just restarting the hardware and software. I check the logbook, there...

  • Percy Zahl Percy Zahl posted a comment on discussion SPM electronics

    Not any more as the Python interpreter is now running in it's own thread. Gxsm is not effected by time.sleep(). However, you won't be able to "force stop" the python script while it is sleeping. -P

  • Stefan Schroeder Stefan Schroeder modified a comment on discussion SPM electronics

    IIRC you shouldn't be using time.sleep, because it will stop the main loop of the Gxsm application, freezing it. I remember that we had gxsm.sleepinstead. The unit is tenth of a second.

  • Stefan Schroeder Stefan Schroeder posted a comment on discussion SPM electronics

    IIRC you shouldn't be using time.sleep, because it will stop the main loop of the Gxsm application, freezing it. I remember that we had gxsm.sleepinstead.

  • Percy Zahl Percy Zahl modified a comment on discussion SPM electronics

    Hello, I am not exactly sure exactly about your plan, but via Gxsm python interface you may adjust the Bias to any value or program a ramp, or what so ever as you can set the bias using simply the gxsm python console. Example to ramp bias from 0 to 5V in 0.1 steps every 0.1s -- cut and paste this into the gxsm python console and run it! No need for any proprietary matlab. You also may use/combine this and manage any external "IO" python can access -- this said, everything is possible! import numpy...

  • Percy Zahl Percy Zahl modified a comment on discussion SPM electronics

    Hello, I am not exactly sure exactly about your plan, but via Gxsm python interface you may adjust the Bias to any value or program a ramp, or what so ever as you can set the bias using simply the gxsm python console. Example to ramp bias from 0 to 5V in 0.1 steps every 0.1s -- cut and paste this into the gxsm python console and run it! No need for any proprietary matlab. You also may use/combine this and manage any external "IO" python can access -- this said, everything is possible! import numpy...

  • Percy Zahl Percy Zahl posted a comment on discussion SPM electronics

    Hello, I am not exactly sure exactly about your plan, but via Gxsm python interface you may adjust the Bias to any value or program a ramp, or what so ever as you can set the bias using simply the gxsm python console. Example to ramp bias from 0 to 5V in 0.1 steps every 0.1s -- cut and paste this into the gxsm python console and run it! No need for any proprietary matlab. You also may use/combine this and manage any external "IO" python can access -- this said, everything is possible! import numpy...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion SPM electronics

    Hi Tugce. The VB output is usually used for the bias voltage so that it is a DC voltage. I do not see how you want to use this for triggering a coarse step. This is certainly the reason why you see only for this channel a DC voltage in the scope. Just to be on the same level: a) You are using an MK2 or MK3 controller. b) You need a standard trigger signal (0V -> 5V) after a z-ramp is finished and while the piezo is still retracted. c) Did you look for the SRanger-DSP-Mover window? Or are you using...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hi Thorsten, Thank you for your detailed reply! Let me clarify step by step: How do we connect the coarse driver? GXSM’s VB output → PiezoDrive HV amplifier → KIM101 I/O 2 (+5 V TTL). We’re not using AFG or GPIO. The HV amplifier scales the VB output (~185 V without attenuator, ~1.6 V with attenuator). What do we see at the oscilloscope? We observe DC voltage only at VB. After a Z-ramp, no trigger pulses are visible at the oscilloscope. Function generator test? We haven’t tested with an external...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion SPM electronics

    How do you connect the coarse driver to GXSM? Are you using the M-output and the arbitrary function generator or do you connect to the GPIOs? The GPIO switch in coarse motion mode just between modes, but the do not provide single pulses. Therefore, you might have to use the arbitrary function generator! Locks that your piezo controller works on the rising edge .... Did you try with a function generator to test your matlab script? What timing parameters do you need for your course driver? What is...

  • Tugce Tugce posted a comment on discussion SPM electronics

    Hi everyone, We’re trying to set up an auto-approach function in our system and would appreciate your advice. Setup: Controller: Thorlabs KIM101 + 3x PIA25 piezo motors Software: GXSM for feedback, model: MK3-PLL Amplifier: PiezoDrive HV amplifier model: MK3-PLL Goal: Motors should move step by step and stop automatically when a defined threshold voltage (e.g., 5 V) is reached. Current state: GXSM outputs a voltage visible on the feedback screen. A MATLAB script reads this voltage (via oscilloscope)...

  • Percy Zahl Percy Zahl modified a blog post

    Now for Gxsm4 and Gxsm3: probe data access from python!

  • Percy Zahl Percy Zahl created a blog post

    Now for Gxsm4 and Gxsm3: probe data access from python!

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    Make sure you do not have a version clash between the gxsm build system python/numpy and a virt env, that is asking for trouble. Not exactly sure so. It should run python/numpy as of the .gxsm/python/VEnv... folder. If you do anything odd/mixing versions beyond that, no exact clue either: But as you know gxsm has compiled in pthyon support/structures and if there is a major version incompatibility you may ask for trouble a like! Thus I strongly recommend to NOT use a major (or any) different python...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Make sure you do not have a version clash between the gxsm build system python/numpy and a virt env, that is asking for trouble. Not exactly sure so. It should run python/numpy as of the .gxsm/python/VEnv... folder. If you do anything odd/mixing versions beyond that, no exact clue either: But as you know gxsm has compiled in pthyon support/structures and if there is a major version incompatibility you may ask for trouble a like! Thus I strongly recommend to NOT use a major (or any) different python...

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hi Percy, Excuse the delay again! I had a similar issue with numpy and un-checking, while very strange as numpy is not used at this point [...] I don't have this folder, perhaps because I am running gxsm3 from an environment-activated shell already? Could you confirm the version of numpy you are using? I could upgrade to that to see if it resolves my issue. I'm currently on version 1.25.2 (which I see dates to July 2023). 1) No -- you'd need to recode this or better add an option. [...] Thank you...

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    I had a similar issue with numpy and un-checking, while very strange as numpy is not used at this point... I found I had a broken (after updates I think) up virtual python environment setup in .gxsm3/GxsmPythonVenv and after deleting it (rm or mv GxsmPythonVenv folder so Gxsm won't use it) the problem disappeared. May be you have a similar issue? I did not yet tried to recreate it... 1) No -- you'd need to recode this or better add an option. OR what I do if I do not want to autosave, simply uncheck...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    I had a similar issue with numpy and un-checking, while very strange as numpy is not used at this point... I found I had a broken (after updates I think) up virtual python environment setup in .gxsm3/GxsmPythonVenv and after deleting it (rm or mv GxsmPythonVenv folder so Gxsm won't use it) the problem disappeared. May be you have a similar issue? I did not yet tried to recreate it... 1) No -- you'd need to recode this or better add an option. OR what I do if I do not want to autosave, simply uncheck...

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hi Percy, Let me answer some questions first: Can you please explain to me why you do not have a previous Topo scan stored, as this seams very unusual as of a "blind-shot" with STS, ... to me? I am running unit tests on the controller, to ensure I can perform actions as expected. As you might expect, I designed the tests to be atomic, so that a spec start test does not rely on a prior scan start. However, this is not a significant issue. I believe you are correct that someone running a spectroscopy...

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    UPDATE (there was never an issue, I had a messed up gxsm3 python VirtEnv -- all good - -problem solved by deleting broken GxsmPythonVenv!): Sorry, my bad. This is not yet 100% back ported to GXSM3, a feature Gxsm4 functional with Gxsm4! But the latest GIT has a few check buttons enabled in Gxsm3 (mainly do need to assign the id's via GUI building (simple), refer to the code where it is enabled). It works via the "gxsm.action()" method and has two action ids: one for ' CHECK-'... and one for 'UNCHECK-...'....

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Sorry, my bad. This is not yet 100% back ported to GXSM3, a feature Gxsm4 functional with Gxsm4! But the latest GIT has a few check buttons enabled in Gxsm3 (mainly do need to assign the id's via GUI building (simple), refer to the code where it is enabled), but there is an issue with "checking vi a script", causing a odd crash (gxsm3 only) -- I had not time to resolve this yet. It works via the "gxsm.action()" method and has two action ids: one for ' CHECK-'... and one for 'UNCHECK-...'. See screenshot!...

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hi Percy, Excuse the delay, I somehow did not notice this! Thank you for the information. Regarding this: Note; YOU CAN via script check/uncheck the auto safe options(s)! May be that helps? Could you clarify how this is done? I don't see any 'hover' indications of a set/get param via the UI, so I assumed it was not possible. Thank you again, Nick

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    I suggest to simply check the "autosave" box in any STS/GVP/... folder. And stick to the default auto file naming conventions based on the "master" (previous) scan name for auto save STS data. There is no partial "probe" at this time. Aborted scans, yes. One option would be to delete saved aborted scans data files. Anyways, not sure about your process or planning and aborting (script controlled??). Note; YOU CAN via script check/uncheck the auto safe options(s)! May be that helps? You can only query...

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    I suggest to simply check the "autosave" box in any STS/GVP/... folder. And stick to the default auto file naming conventions based on the "master" (previous) scan name for auto save STS data. You can only query a path from a loaded/saved scan channel. There is currently no way to "query" or "set" probe data file names/path as this is a plain text file export. However I have future plans to make (most recent) probe data as in GXSM memory directly python accessible as this is most useful. The main...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    I suggest to simply check the "autosave" box in any STS/GVP/... folder. And stick to the default auto file naming conventions based on the "master" (previous) scan name for auto save STS data. You can only query a path from a loaded/saved scan channel. EXAMPLE CODE for name query and path/name/... separations: from string import * import os import time #folder = '/home/pzahl/BNLBox/Data/Percy-P0/Exxon-Yunlong/20220401-Cu111-PP-TS-prev-warmup65C/' full_original_name = gxsm.chfname(0).split()[0] postfix='X'...

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Help

    Hello, I had three (somewhat linked questions), all related to pyremote: 1. Is there a way to request the base save directory? I have thus far been doing this by calling 'gxsm.chfname()' after running a scan. However, this will not work if I am only performing some form of spectroscopy (i.e. I have not run a scan prior to saving a spectroscopy file). Note: this is at least my finding, as 'gxsm.chfname(0)' was returning 'EE: Invalid Channel'. I was looking over the commands, but did not immediately...

  • Nick Sullivan-Molina Nick Sullivan-Molina posted a comment on discussion Open Discussion

    As a minor follow-up: I ended up integrating vector probe file reading (spectroscopy files), and published it to PyPI. So you can now access the source code here, and the PyPI repository is here.

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Hi Bugrahan, I also looked up this other patch, they have been all committed to git right away after locating the issue. I am currently on vacation and can not test it again, but I am 100% sure there have been no further changes. Not sure what is happening, also all later Gxsm3 updates have not been related to any hardware, mainly addition to the pyremote infrastructure. Double check you do have a recent DSP code running! I did not adjusted any version numbers, thus you won't see any difference besides...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    Hi Bugrahan, I also looked up this other patch, they have been all committed to git right away after locating the issue. I am currently on vacation and can not test it again, but I am 100% sure there have been no further changes. Not sure what is happening, also all later Gxsm3 updates have not been related to any hardware, mainly addition to the pyremote infrastructure. Double check you do have a recent DSP code running! I did not adjusted any version numbers, thus you won't see any difference besides...

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    If you are talking about this patch, I recall to have that "officially" patched in the main git. if (feedback_mixer.mode[mi] & 0x10) // negate feedback source? Else please remind me on details. Not sure what was related to lift mode. -P

  • bugrahan guner bugrahan guner posted a comment on discussion Help

    Hi Percy, The issue was when we wanted to use the 'lift off' mode, we wanted to get a topo image over a line, finish the forward and backward imaging of the line and follow the same line path by lifting our cantilever with a certain amount so we can make measurements over the same line when we are far away. We are mainly using XS 2nd ZOff value in the Advanced tab SR DSP Control to tune this distance. However the value we put in there is not applied during the second scan of the same line (the software...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    If you are talking about this patch, I recall to have that "officially" patched in the main git. if (feedback_mixer.mode[mi] & 0x10) // negate feedback source? Else please remind me on details. Not sure what was related to lift mode. best regards -Percy Dr. Percy Zahl Email: pzahl@bnl.gov Center for Functional Nanomaterials WWW: http://www.bnl.gov/cfn Bldg. 735 - NC Brookhaven National Laboratory Work: +01 (631) 344-2968 Upton, NY 11973-5000, USA .^. /V\ //G\ Visit Gxsm now! Unlimited and free SPM+...

  • bugrahan guner bugrahan guner posted a comment on discussion Help

    Hi @zahl, We had a recent problem that you patched and solved for the lift mode. I guess we kind of updated the software first time that we got the patches from you. Is there a way that we can only configure this patch but don't receive other updates or updated patches as we don't want to mess with the system's current condition but just want to fix the same issue regarding the lift off height change? Previously we installed the software based on the suggestions in the feed (https://sourceforge....

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    I was able to install it on a 32-bit version of Ubuntu. Thank you very much.

  • Percy Zahl Percy Zahl posted a comment on discussion Developers

    @stm I have not touched nor installed that in a decade... just using my old install (working fine on latest Debian). Well, I guess this is beyond Gxsm support in some aspects. Anyways, I can not really encourage any MK2/3 code hacks by "novices" as it is squeezed on the DSP at 100% capacity of the on chip fast RAM and even adding a line or two in fast code sections will fail the linking. Just as a warning. Sure can be counter acted via stripping "not utilized code/functions" for a particular project......

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    I was able to reproduce the problem on Ubuntu 24.04 LTS and with the cgt_c5500_4.4.1 tools. If you just use sudo ./ti_cgt_c5500_4.3.7_setup_linux_x86.bin the terminal hangs and nothing happens. Please try sudo ./ti_cgt_c5500_4.3.7_setup_linux_x86.bin --mode console This should install the cgt into /opt/ti/... Please check the exact path, because you will have to set in in the Makefile. Use an editor like gedit to adapt the file <your gxsm="" source="" foler="">/plug-ins/hard/MK2-A810_spmcontrol/Makefile</your>...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    With the MK3 PLL the dFreq is stored as image, but the center Frequency F0 is also stored as meta data in the NetCDF file. So the absolute value can be always reconstructed. The reason for using dF is manifold, one is simply precision, the other no need for images.

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    Thanks for your reply. I have run the .bin from the terminal with authorization, but nothing happened. My environment is 64bit, so I believe that it is not possible to run a 32bit .bin. I would like to know if there is a way to solve this problem.

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Help

    Are you using the internal PLL? Remember GXSM can use up to four ínput channel connected with a fuzzy logic as input for the z-feedback. The patch rack (script) allows you to root certain signal. The rest might be just a proper scaling factor to convert counts (internal number) or volt (external input) <-> absolute frequency. Thorsten :-)

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    It is quite a while ago that I needed the CGT to be installed. Usually I would suggest a procesure like this: cd < folder where you downloaded the binary > chmod 755 ti_cgt_c5500_4.3.7_setup_linux_x86.bin sudo ./ti_cgt_c5500_4.3.7_setup_linux_x86.bin For sure a double click in the file browser will not work, but you may be able to make the file executable with a right-click and some property menu. The CGT is quite old - the release of the specific binary was 2010. There is a chance that there is...

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    Thank you for your reply. I downloaded the .bin file for “C5500 Code Generation Tools v4.3.7” from the following URL I tried to run the downloaded .bin file and install it, but nothing happened. How can I install it? https://software-dl.ti.com/dsps/forms/self_cert_export.html?prod_no=ti_cgt_c5500_4.3.7_setup_linux_x86.bin&ref_url=https://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/codegen/C5500/4.3.7

  • Carson Sander Carson Sander posted a comment on discussion Help

    We are attempting to set up the MK3 PLL to operate a tuning fork AFM by enabling phase feedback and using the shift in resonance frequency (dF, as displayed in the pan view window) to drive the Z-position feedback. Due to some issues with our particular setup (the issues are not with GXSM or the MK3), it would be nice if we could drive the Z-position feedback with the absolute value of dF rather than the standard signed dF. Is this already a functionality implemented in GXSM3? If not, then where...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    So you want to modifiy the code on the controller? For MK2 it is in https://github.com/pyzahl/Gxsm3/tree/master/plug-ins/hard/MK2-A810_spmcontrol For MK3 it is in https://github.com/pyzahl/Gxsm3/tree/master/plug-ins/hard/MK3-A810_spmcontrol Look for the file FB_spm_autoapproach.c in there. In addition, you will need the respective compiler from Texas instruments. This is what I found in a README of the MK2: ** install the TI "cgtools-c5500" in /opt/TI/cgtools-c55 -- tested with: TMS320C55x Code Generation...

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    Thank you for your reply. I would like to change the automatic approach mechanism mentioned in Percy's reply a), which file should I make the change to?

  • Percy Zahl Percy Zahl posted a comment on discussion Developers

    Just commenting on this: a) the Mover Tab "Auto-Approach" is controlling the DSP/hardware level auto approach mechanism. What is a cycle of Feedback ON, check for ZS fully extended or in regulation (done and finished), else ZS retracting via inverted feedback. Coarse steps, and repeat checking.... This can can start/stop this via python only. (Unless you recode the DSP, at you fingers if you wish, C code -- but this is hard core low level, be warned) b) You can create your own on a "slow" python...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    I am not sure what you mean. The mover window is coded in C. You are able to control quite a lot of widget from python, but you can not change the behaviou of them totally. gxsm.action emulates the interaction of the user with the GUI. Not all widget have a python connection yet. Just hold the mouse over the widget which you want to control remotely. If a tooltip appears it will tell you the name of the widget used in gxsm.action. I guess your questions aim that you want to know if a certain button...

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    I am not sure what you mean. The mover window is coded in C. You are able to control quite a lot of widget from python, but you can not change the behaviou of them totally. gxsm.action emulates the interaction of the user with the GUI. Not all widget have a python connection yet. Just hold the mouse over the widget which you want to control remotely. If a tooltip appears it will tell you the name of the widget used in gxsm.action. I guess your questions aim that you want to know if a certain button...

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    Sorry, I have two more questions I would like to change the auto-approach method (procedure) of the mover control window, is this possible in Python? If so, which code should I look at? 2.Where is the definition of gxsm.action() in remote-gxsm3.py?

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    What do you mean be logic? As for the mover control, the python code will use the feedback loop as signal. If the piezo is extended above a certain threshold value, the tip is retracted by setting the gain parameter with the opposite sign. While the piezo is retracted, you can trigger your coarse step. Here you have all the freedom you need. The the orginal feedback parameter are set and the tip starts approaching. For ultra-high vacuum applications, this stepwise appraoch is the standard procedure....

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    Can I also change the logic of the auto approach in python by coding?

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    Hi. The waveforms are generated in GXSM and then transfered as table to the DSP. Please have a look at <gxsm3-source>/plug-ins/hard/sranger_mk2_hwi_mover.C</gxsm3-source> You may also be able to code your own coarse approach in python using usb communication to control the coarse motion. Thorsten :-)

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    Thank you for taking the time to answer my questions. Does GXSM3 only send information about the parameters of the output waveform to MK2-A810, but does not include a program for how the waveform is generated?

  • Thorsten Wagner Thorsten Wagner posted a comment on discussion Developers

    The mover can produce also wave forms used by stepper motors but you need the additional H-brigde (electronics) for that. If you have a motor controller with TTL input, you might use the pulse generated on a analog out or on the GPIOs. If just pulses are used you have to define the moving direction "manually". So what do you have in mind? Thorsten :-)

  • 長谷川 駆 長谷川 駆 posted a comment on discussion Developers

    I would like to change from the current auto approach system to a system using only stepper motors. Is it possible to change the auto approach system by rewriting the gxsm3 source code?

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    I highly recommend to use GVP as you started to explore already as this gives you any possible options and freedoms (the FZ dose not more than creating the vectors for you from a simplified parameter inputs and my be to simple for your needs). What is saturation? The reading? Z? Keep in mind: you ALWAYS start at the current Z and if the available range towards the Z-limits is insufficient it can not do more than hitting the limits = saturation. a) move/center Z with Z-Offset manually to have sufficient...

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    I highly recommend to use GVP as you started to explore already as this gives you any possible options and freedoms (the FZ dose not more than creating the vectors for you from a simplified parameter inputs and my be to simple for your needs). What is saturation? The reading? Z? Keep in mind: you ALWAYS start at the current Z and if the available range towards the Z-limits is insufficient it can not do more than hitting the limits = saturation. a) move/center Z with Z-Offset manually to have sufficient...

  • Percy Zahl Percy Zahl modified a comment on discussion Help

    I highly recommend to use GVP as you started to explore already as this gives you any possible options and freedoms (the FZ dose not more than creating the vectors for you from a simplified parameter inputs and my be to simple for your needs). What is saturation? The reading? Z? Keep in mind: you ALWAYS start at the current Z and if the available range towards the Z-limits is insufficient it can not do more than hitting the limits = saturation. a) move/center Z with Z-Offset manually to have sufficient...

  • Percy Zahl Percy Zahl posted a comment on discussion Help

    I highly recommend to use GVP as you started to explore already as this gives you any possible options and freedoms (the FZ dose not more than creating the vectors for you from a simplified parameter inputs and my be to simple for your needs). What is saturation? The reading? Z? Keep in mind: you ALWAYS start at the current Z and if the available range towards the Z-limits is insufficient it can not do more than hitting the limits = saturation. a) move/center Z with Z-Offset manually to have sufficient...

  • bugrahan guner bugrahan guner modified a comment on discussion Help

    Hi @zahl, We were recently trying to do some indentation measurements by using the Z control menu. I am describing the problem below and will be attaching the necessary screenshots. Thank you in advance for your help. We need to be able to record the loading and unloading curves for this. So far it records the unloading part without a problem but trying to record the loading part (initial move towards the surface) as well, we tried using the 'dual mode' and the 'full ramp' options. I believe the...

1 >