Closed editorialbot closed 1 month ago
Hi @ceds92,
Oh yes. As my last project with the Demo was without feedback I did not have the Z channel selected indeed. I did make sure that auto-save was enabled. I still believe that forcing it is better, and thank you for your change.
I still get the same error with the Z channel enabled however. I think this is due to how you grab the Z channel, in combination with some undocumented features of Nanonis. From my console, output of your program:
File "D:\Koen\Python36\Lib\site-packages\scanbot\server\scanbot.py", line 230, in survey ,scanData, = scan.FrameDataGrab(14, 1) # Grab the data within the scan frame. Channel 14 is . 1 is forward data direction
Now from the sxm result-file:
:DATA_INFO: Channel Name Unit Direction Calibration Offset 30 Z m both 7.500E-8 0.000E+0 0 Current A both 1.000E-9 0.000E+0
It seems that Nanonis is not consistent with its channel numbers for even the basic topography. You expect topography Z to have number 14, in my case it is 30. Which I also never would have guessed if I had not talked with another lab from the other size of the world. In fact, it seems that I have no channel numbers in the range [8 - 23].
My guess is that they will defend it as a feature highlighting the flexibility of their equipment. I am unsure if this change in numbering has to do with us having the V5e version instead of the V5.
As I do not know your code, I do not know if it is feasible to look for the Name of the Z channel instead of the number? If not, you can think about adding this as a parameter in the configuration?
Hi @KoenImdea,
Ah damn ok that's annoying, I guess it's good that you're testing with a different version of Nanonis because my aim for this project was for other groups to be able to use it if they like it.
Thanks for your suggestion, I will see if I can download that version of Nanonis and have a look into this over the next couple of days.
I will keep you posted and let you know when I figure it out.
Thanks!
Edit: with the framedatagrab function I believe it grabs 'slot' 14 instead of 'RT Idx' 30. Which appears to be Z in your version of Nanonis too. Nevertheless, I will have a try after downloading your version and let you know the outcome.
Hi @KoenImdea,
I contacted specs but unfortunately I am not able to install 5e with my licence. However, I checked one of our sxm files and in data_info, I see that Z is on channel 14, not 30 like yours. So it seems like the tcp command to get frame data differs between the two versions.
In version 5, channel refers to the 'slot' number.
In version 5e, channel refers to the 'RT Index'.
This is how it seems (I've sent an email to specs for them to confirm). I will take your suggestion and try to find the channel number based on the channel name.
Hi @ceds92 , Thanks for looking into this. In my experience the manufacturers of SPM electronics for some reason like to have a few of these undocumented surprises. Which is why I really admire the statement in your paper trying to get compatibility with all (and seeing your efforts, you should get at least most) Nanonis STMs.
Hi @KoenImdea,
Sorry to be a pain, but since I don't have access to version 5e could you please let me know what the output is when you run the attached script with only the Z-channel highlighted?
On version 5, the output is the following:
Slot number: 14
RT Idx 30
Buffer channels [14]
I just want to confirm the behaviour before I release the fix we discussed.
Thanks
Dear @ceds92, I rather think it is me who is going to be a pain once you see the output of the script on my PC:
Traceback (most recent call last): File "D:\Koen\Python\scanbot-4\helper_script\z-channel_check.py", line 20, in <module> inSlots = signalsModule.InSlotsGet() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Koen\Python36\Lib\site-packages\nanonisTCP\Signals.py", line 102, in InSlotsGet size = self.NanonisTCP.hex_to_int32(response[idx:idx+4]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Koen\Python36\Lib\site-packages\nanonisTCP\nanonisTCP.py", line 57, in hex_to_int32 return struct.unpack("<i",struct.pack("I",int("0x"+h32.hex(),16)))[0] ^^^^^^^^^^^^^^^^^^^^^^ ValueError: invalid literal for int() with base 16: '0x'
Ok, thanks for doing that test @KoenImdea . I have received a reply from specs and I think I know what's going on. I'll fix it at some point this week and hopefully it's ready for when you get back
Hi @KoenImdea, I have been in communicating with specs - there is no way to obtain the version of nanonis using the TCP interface. To make Scanbot compatible with the different versions of nanonis will take some work. I need to rewrite parts of the nanonisTCP library to accommodate for changes to the TCP interface across different versions. It's not a huge amount of work but I'm pretty busy in the lab at the moment so it will take me some time to get to it (hopefully ~2 weeks). I'll be tracking this fix in the issue I created above.
Anyway, just thought I'd give you this update - thanks for your patience!
Thank you for your work!
Hi @KoenImdea,
I have tested the fix for Nanonis version compatibility on the latest version of Nanonis V5 13520 (as well as my older version 11391) and they both seem to be working.
It is available for you to have another look when you're ready.
Hi @ceds92, I think there is a curse on me. Now I just get a 404 in my browser. This is what my CLI says: `Successfully installed scanbot-4.4.2 PS D:\Koen\Python\scanbot-4> scanbot Initialising app... Loading scanbot_config.ini... WARNING: invalid line in config file: Loading whitelist.txt... No whitelist found... create one with add_user
The problem could be with my node.js. The node command and npm install command work (and I installed your App), but I always have the feeling something is not right with them on my PC. Which is one of the reasons why I tend to develop in Docker containers. However, I do not have one suitable to run your app as I maintain a separation between the ones running node and the ones running Python.
Hi @KoenImdea,
Thanks for trying to test again. Sorry to hear you had problems installing Scanbot - I have created a separate issue and will try to solve it there.
Just curiously, it sounds like you attempted to install Scanbot by cloning the repository and following the instructions here.
I usually run into that 404 error if I have forgotten to run the command in step 4:
npm run build
before running
pip install .
npm run build
packages the front-end into a build folder which is where the server looks for the .js files. When running pip install .
, that build folder should be copied to the installation location.
If you did run step 4 and this is not the case, I'll have to dig deeper.
Thanks for your time!
Hi @ceds92,
Yes, sorry. You are right, that was a problem exists between keyboard and chair situation.
Your fix did something. Unfortunately, I'm still getting some errors.
Quoting everything would make my post way to long. I've tried to run one survey, and one bias dependent imaging. This is the output I get on the command line: PowerShell_output.txt Both routines seem to have problems with a empty or zero-size array.
Here are the two *.sxm files as saved by my Nanonis: ScanbotTests.zip
Cheers, Koen
Ok, thanks @KoenImdea. Apologies, I feel like I'm wasting a lot of your time with this.
Scanbot currently is running on two STMs here at Monash university (both with Nanonis V5) so I think there must be further incompatibilities with V5e. It's a little frustrating that I can't get a licence for V5e to test before I push through fixes hoping that they will work on your machine. I will try to contact Specs again to see if they can allow me something temporarily but I'm not sure how else to proceed here.
I'll let you know how I go.
Julian
@KoenImdea, good news... I have explained the situation to specs and they have agreed to give me a temporary license for 5e so I can solve these issues on my own instead of going back and forth.
I'll keep you posted.
Thanks
Hi @KoenImdea,
Apologies, I have not been able to attend to this yet as I am preparing for my final PhD review. I will be working on this again hopefully next week.
I'll keep you posted
@ceds92 Just want to give you a ping. How is it going? Hope your final PhD review is going well.
Hi @zhubonan, thanks for checking in. I had my pre-submission milestone (and passed :)) on Thursday so I literally started looking into this today.
I tested Scanbot on the latest versions of V5 and V5e (R13718) and it seems to be working. I was able to download the specific version of V5e that @KoenImdea is using (R11796) and I was able to reproduce the errors he is encountering.
So, I have narrowed down the issue to a specific version/version range at least. I am waiting on a reply from SPECS (vendor of Nanonis) to see if they can give me the release notes for the problematic versions. I was going to wait until they replied before posting anything here, but since you asked, this is the update.
I'll post another update when I know more.
Hi @KoenImdea,
After racking my brain for a few hours trying to figure this out, I received the below response from specs:
I have tested Scanbot on the 5e version you gave me (thanks for that!) and it seems to be working fine with Scanbot. I think the issue is with a specific version (or maybe version range) where FrameDataGrab is returning an empty array for the frame data. This behaviour is happening on R11796 (the version the reviewer happens to be testing on) but is not happening on the latest version I have (R13718). Please see the attached Python script I used.
I was trying to look in the release notes if there was something about this but couldn't find anything. Just wondering if you could provide some insight?
Thanks, Julian
Response:
Hi Julian, there was indeed a known issue with the API that returned the scan data. The indexing of the signal was wrong, so the function didn’t return any error but the returned data was wrong (or empty). It was fixed in the R12280 software release (November 2022).
I don't see an easy and clean way around this so I might just have to put a note in the documentation which specifies versions of Nanonis are compatible/incompatible. would it be possible to test Scanbot on R12280 or later?
Hi @zhubonan , @ceds92 ,
I did the updates as suggested and all seems to work.
I filled in the checklist that was auto-generated before.
Please let me know what the next steps are.
Best, Koen
And @ceds92 , Thanks for your efforts!
That's great! Thanks so much for persisting with this @KoenImdea.
I guess, I have a few minor updates to make to the documentation regarding version compatibility but I think that's all from my end.
Hi @zhubonan I have updated the documentation according to Koen's recommendations. Is there anything else required from me?
Great, I will run some additional checks then we can move to the next stage!
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Hi @KoenImdea, just to check - you would recommand for acceptance right?
@editorialbot set <DOI here> as archive
@editorialbot set <version here> as version
@editorialbot generate pdf
@editorialbot check references
and ask author(s) to update as needed@editorialbot recommend-accept
Hi @KoenImdea, just to check - you would recommand for acceptance right?
Hi @zhubonan, Yes I would.
Hi @ceds92 there are a few more things for you to do before I can move the submission to the next stage. Please make a release of the package and deposit to a publicly available repository (for example, Zenodo) to get an DOI. This DOI will be linked to the JOSS publication. Please see the author checklist above and make sure the metadata matches with that of the paper.
In the manuscript test, please make sure that the figures are cross-referenced (line 26 and 29 in the Draft).
PS: Other recently published JOSS papers can act as examples on how the archive DOI is linked with the paper.
@editorialbot set 10.5281/zenodo.12669343 as archive
I'm sorry @ceds92, I'm afraid I can't do that. That's something only editors are allowed to do.
Hi @zhubonan,
The correct version is 4.5.1 with the following DOI: 10.5281/zenodo.12669343
I have double checked and the meta data on zenodo now matches the JOSS paper (authors, ORCIDs, and licence).
I also updated the paper so the figures are cross-referenced.
Please let me know if there's anything else
@editorialbot check references
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1088/2632-2153/ab42ec is OK
- 10.1021/acs.jpca.0c10731 is OK
- 10.1038/s42005-020-0317-3 is OK
- 10.5281/zenodo.7402665 is OK
- 10.1021/acsnano.8b02208 is OK
MISSING DOIs
- No DOI given, and none found for title: Mimea Nanonis
INVALID DOIs
- None
@editorialbot set 10.5281/zenodo.12669343 as archive
Done! archive is now 10.5281/zenodo.12669343
@editorialbot set 4.5.1 as version
Done! version is now 4.5.1
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Hi @ceds92 there are some inconsistency between the affliations of the authors with that in the archive. Could you please fix those? Otherwise it all looks fine to me!
@zhubonan Whoops, fixed!
Sorry, I forgot to say that the title of the archive should match the paper as well.
@zhubonan thanks, fixed
@editorialbot recommend-accept
Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1088/2632-2153/ab42ec is OK
- 10.1021/acs.jpca.0c10731 is OK
- 10.1038/s42005-020-0317-3 is OK
- 10.5281/zenodo.7402665 is OK
- 10.1021/acsnano.8b02208 is OK
MISSING DOIs
- No DOI given, and none found for title: Mimea Nanonis
INVALID DOIs
- None
:wave: @openjournals/pe-eics, this paper is ready to be accepted and published.
Check final proof :point_right::page_facing_up: Download article
If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/5618, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept
Hi @ceds92, I made a few small fixes in https://github.com/New-Horizons-SPM/scanbot/pull/38, can you merge this?
Thanks for that @kyleniemeyer. I have merged the pull request
Submitting author: !--author-handle-->@ceds92<!--end-author-handle-- (Julian Ceddia) Repository: https://github.com/New-Horizons-SPM/scanbot Branch with paper.md (empty if default branch): joss Version: 4.5.1 Editor: !--editor-->@zhubonan<!--end-editor-- Reviewers: @ziatdinovmax, @KoenImdea Archive: 10.5281/zenodo.12669343
Status
Status badge code:
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
Reviewer instructions & questions
@ziatdinovmax & @jagar2, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review. First of all you need to run this command in a separate comment to create the checklist:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @zhubonan know.
✨ Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest ✨
Checklists
📝 Checklist for @ziatdinovmax
📝 Checklist for @KoenImdea