CS-Lab Support Forum for CNC Community
Help to run this brand-new forum and stay with us.
Ask your questions, we are here to help!
are these features possible with this tool?
Quote from cncrouterinfo on 5 August 2023, 16:33Hi,
I came across CSMIO IP and simcnc recently and a few questions popped up.
- Is third-party integration through the python scripting possible ? the idea would be to create a separate program (python/c++) to communicate over RS485 to a VFD for example and push back the info to sim-cnc using (local serial/pipeline/file based transfer); This would also allow MPG integration from XHC-04b for example
- When having a gantry; Does it support tandem homing (individual home switch + individual index + individual offset vs index home? https://linuxcnc.org/docs/html/config/ini-homing.html This works fine in Linuxcnc for example (tandem axis; use index yes; HOME_SEARCH_ nonzero; VEL HOME_LATCH_VEL nonzero
I'm excited to learn more about this tool.
Thanks
Hi,
I came across CSMIO IP and simcnc recently and a few questions popped up.
- Is third-party integration through the python scripting possible ? the idea would be to create a separate program (python/c++) to communicate over RS485 to a VFD for example and push back the info to sim-cnc using (local serial/pipeline/file based transfer); This would also allow MPG integration from XHC-04b for example
- When having a gantry; Does it support tandem homing (individual home switch + individual index + individual offset vs index home? https://linuxcnc.org/docs/html/config/ini-homing.html This works fine in Linuxcnc for example (tandem axis; use index yes; HOME_SEARCH_ nonzero; VEL HOME_LATCH_VEL nonzero
I'm excited to learn more about this tool.
Thanks
Quote from CS-Lab Support on 7 August 2023, 13:36
- In general, you can communicate with various devices using Python in simCNC. However, some features, like MPG, are implemented in hardware to achieve the best motion smoothness and quality. CSMIO-MPG communicates with CSMIO/IP through CAN and updates wheel speed and position many times per second. Motion parameters are then calculated and executed internally in CSMIO/IP. Thanks to that, you have very low latency and smoothness. This is not a simple step-jogging.
- When you reference the axis with multiple drives, you can define homing with, index signal, and offset for each motor drive, but note that this feature is available on CSMIO/IP-S and IP-A models. CSMIO/IP-M can reference axes with slave motors without the index or independent corrections.
Regards,
Andrew
- In general, you can communicate with various devices using Python in simCNC. However, some features, like MPG, are implemented in hardware to achieve the best motion smoothness and quality. CSMIO-MPG communicates with CSMIO/IP through CAN and updates wheel speed and position many times per second. Motion parameters are then calculated and executed internally in CSMIO/IP. Thanks to that, you have very low latency and smoothness. This is not a simple step-jogging.
- When you reference the axis with multiple drives, you can define homing with, index signal, and offset for each motor drive, but note that this feature is available on CSMIO/IP-S and IP-A models. CSMIO/IP-M can reference axes with slave motors without the index or independent corrections.
Regards,
Andrew
Quote from cncrouterinfo on 7 August 2023, 13:48Thanks for the info Andrew;
So if I wanted to hook up a VFD with RS485 I could just remap the Spindle start, Speed command, etc and run Python code to send a string/data over an RS232 -> Rs485 port?
I understand the choice for item #2. it is only a little bit annoying if you already have an MPG which you won't be able to use with this. But I guess this interface is more aimed at retrofitting existing machine panels. And being an engineer myself I understand the design consideration.
Thanks for the info Andrew;
So if I wanted to hook up a VFD with RS485 I could just remap the Spindle start, Speed command, etc and run Python code to send a string/data over an RS232 -> Rs485 port?
I understand the choice for item #2. it is only a little bit annoying if you already have an MPG which you won't be able to use with this. But I guess this interface is more aimed at retrofitting existing machine panels. And being an engineer myself I understand the design consideration.
Quote from CS-Lab Support on 8 August 2023, 12:54Exactly. Spindle M3, M4, and M5 commands are just macros that you can edit. Spindle speed is different but also easy. Spindle RPM is stored in machine parameter #9003. You can define a Python action (menu configuration, page PyActions) triggered on change of param #9003 and call a macro, e.g., „rpm_changed.py.” Now in this macro, you can send a command to your vfd.
Exactly. Spindle M3, M4, and M5 commands are just macros that you can edit. Spindle speed is different but also easy. Spindle RPM is stored in machine parameter #9003. You can define a Python action (menu configuration, page PyActions) triggered on change of param #9003 and call a macro, e.g., „rpm_changed.py.” Now in this macro, you can send a command to your vfd.
Quote from cncrouterinfo on 8 August 2023, 13:26Thanks that is all very useful information.
On facebook I saw there a new H7 version is coming out; Will that replace the current offering or would it be an upgrade (technically and in terms of price) versus the current offering?
Are there any machine calibration features planned on the roadmap?
-ballscrew compensation
-X,Y,Z axis (non perfect straightness/flatness/squareness) calibration; I don't know the exact terms for this but friends of mine have done something simular with linux cnc and were able to increase the accuracy of their machine without changing the mechanics (Geometric machine errors).
Thanks for answering these question 🙂
Thanks that is all very useful information.
On facebook I saw there a new H7 version is coming out; Will that replace the current offering or would it be an upgrade (technically and in terms of price) versus the current offering?
Are there any machine calibration features planned on the roadmap?
-ballscrew compensation
-X,Y,Z axis (non perfect straightness/flatness/squareness) calibration; I don't know the exact terms for this but friends of mine have done something simular with linux cnc and were able to increase the accuracy of their machine without changing the mechanics (Geometric machine errors).
Thanks for answering these question 🙂
Quote from andre on 8 August 2023, 21:48Ballscrew compensation would be a great feature, especially as we happen to have our very own 1980s HP Laserinterferometer. Vote up for this one 🙂
As for the geometry compensation: Also nice, but I found this to be a very complex task. But would be interested in such a feature as well.
Cheers,
André___ a bit off topic, but maybe interesting:
Here is some data I generated on my machine some years ago (1.700 x 700mm in a 100mm grid). Turns out I had some weird things going on. Every color layer / mayor increment represents 0,05mm.
* Overall min/max deviation of 3/10mm across the whole table (min to max)
* Average at below 1/10mm
* An overall scewness in Y minus direction
* A strange patch measuring 500x300mm where there was almost no deviation (light blue area)Will need to run this again with simCNC and the integrated 3D probe in a much finer grid to eliminate any statistical issues. The manual includes a nice demo script to digitize and store coordinates to CSV.
Soon the machine will be producing it's own vacuum table, machined in place. This way I should be able to eliminate the majority of errors.
Ballscrew compensation would be a great feature, especially as we happen to have our very own 1980s HP Laserinterferometer. Vote up for this one 🙂
As for the geometry compensation: Also nice, but I found this to be a very complex task. But would be interested in such a feature as well.
Cheers,
André
___ a bit off topic, but maybe interesting:
Here is some data I generated on my machine some years ago (1.700 x 700mm in a 100mm grid). Turns out I had some weird things going on. Every color layer / mayor increment represents 0,05mm.
* Overall min/max deviation of 3/10mm across the whole table (min to max)
* Average at below 1/10mm
* An overall scewness in Y minus direction
* A strange patch measuring 500x300mm where there was almost no deviation (light blue area)
Will need to run this again with simCNC and the integrated 3D probe in a much finer grid to eliminate any statistical issues. The manual includes a nice demo script to digitize and store coordinates to CSV.
Soon the machine will be producing it's own vacuum table, machined in place. This way I should be able to eliminate the majority of errors.
Quote from cncrouterinfo on 8 August 2023, 22:05Yes that is very interesting to read; good to know I'm not the only one haha.
here is an implementation of some basic geometry correction written for linuxcnc. Open source afaik:
https://github.com/scottalford75/LinuxCNC-3D-Printing/tree/master/compensation
You could map the same for the other axis. In total 21 compensations are possible. It is unlikely that a hobbyist is going to do all of them. But even the simple ones could increase a machine's performance significantly. And reduce the mechanical requirement and more it into the software/calibration sphere.
Yes that is very interesting to read; good to know I'm not the only one haha.
here is an implementation of some basic geometry correction written for linuxcnc. Open source afaik:
https://github.com/scottalford75/LinuxCNC-3D-Printing/tree/master/compensation
You could map the same for the other axis. In total 21 compensations are possible. It is unlikely that a hobbyist is going to do all of them. But even the simple ones could increase a machine's performance significantly. And reduce the mechanical requirement and more it into the software/calibration sphere.
Quote from andre on 9 August 2023, 16:14Quote from cncrouterinfo on 8 August 2023, 22:05Yes that is very interesting to read; good to know I'm not the only one haha.
here is an implementation of some basic geometry correction written for linuxcnc. Open source afaik:
https://github.com/scottalford75/LinuxCNC-3D-Printing/tree/master/compensation
Cool, thank you for sharing. Also nice to see that there are more enthusiasts in the wild...
Will have a look at this in more detail for sure. Ideally such compensation would not run on software but on controller level utilizing FPGA perfromance...
Cheers,
AndréPS: I think you just wrote me a message on my website, but your email address bounces as undeliverable. Wanted to reply on your questions. Please let me know how I can reach you.
Quote from cncrouterinfo on 8 August 2023, 22:05Yes that is very interesting to read; good to know I'm not the only one haha.
here is an implementation of some basic geometry correction written for linuxcnc. Open source afaik:
https://github.com/scottalford75/LinuxCNC-3D-Printing/tree/master/compensation
Cool, thank you for sharing. Also nice to see that there are more enthusiasts in the wild...
Will have a look at this in more detail for sure. Ideally such compensation would not run on software but on controller level utilizing FPGA perfromance...
Cheers,
André
PS: I think you just wrote me a message on my website, but your email address bounces as undeliverable. Wanted to reply on your questions. Please let me know how I can reach you.
Quote from cncrouterinfo on 9 August 2023, 17:48Quote from andre on 9 August 2023, 16:14Quote from cncrouterinfo on 8 August 2023, 22:05Yes that is very interesting to read; good to know I'm not the only one haha.
here is an implementation of some basic geometry correction written for linuxcnc. Open source afaik:
https://github.com/scottalford75/LinuxCNC-3D-Printing/tree/master/compensation
Cool, thank you for sharing. Also nice to see that there are more enthusiasts in the wild...
Will have a look at this in more detail for sure. Ideally such compensation would not run on software but on controller level utilizing FPGA perfromance...
Cheers,
AndréPS: I think you just wrote me a message on my website, but your email address bounces as undeliverable. Wanted to reply on your questions. Please let me know how I can reach you.
Yes ideally you load this compensation matrix or formula in the FPGA memory, and depending on the x,y,z matrix that fits the closest for the current location; use the relevant compensation.
Haha yes I emailed you on your website, perhaps I filled in the wrong email address.
You can email me here (I'll delete it later):
Quote from andre on 9 August 2023, 16:14Quote from cncrouterinfo on 8 August 2023, 22:05Yes that is very interesting to read; good to know I'm not the only one haha.
here is an implementation of some basic geometry correction written for linuxcnc. Open source afaik:
https://github.com/scottalford75/LinuxCNC-3D-Printing/tree/master/compensation
Cool, thank you for sharing. Also nice to see that there are more enthusiasts in the wild...
Will have a look at this in more detail for sure. Ideally such compensation would not run on software but on controller level utilizing FPGA perfromance...
Cheers,
AndréPS: I think you just wrote me a message on my website, but your email address bounces as undeliverable. Wanted to reply on your questions. Please let me know how I can reach you.
Yes ideally you load this compensation matrix or formula in the FPGA memory, and depending on the x,y,z matrix that fits the closest for the current location; use the relevant compensation.
Haha yes I emailed you on your website, perhaps I filled in the wrong email address.
You can email me here (I'll delete it later):
Quote from cncrouterinfo on 10 August 2023, 13:40I noticed another item. That screensets dont have a language flag. So if you download a german screenset; the only option you have is to change all the words manually to english. That seems quite inefficient and makes sharing of screens / marcos / plugins more difficult. Is/are there any plans to move this to a separate language file?
I just happen to get a very good deal on a complete IP-S set incl; mpg and IO extender. So I'll be playing with it soon.
I'll also write a blog post or two about it. One being how it compares to LinuxCNC.
And document my plugins / scripts so others can use it.
I noticed another item. That screensets dont have a language flag. So if you download a german screenset; the only option you have is to change all the words manually to english. That seems quite inefficient and makes sharing of screens / marcos / plugins more difficult. Is/are there any plans to move this to a separate language file?
I just happen to get a very good deal on a complete IP-S set incl; mpg and IO extender. So I'll be playing with it soon.
I'll also write a blog post or two about it. One being how it compares to LinuxCNC.
And document my plugins / scripts so others can use it.