Fix to make engrave speed setting working
within the current firmware engraving is done always with 100% speed (xspeed and xaccel is used), regardless of the setting in Visicut. For me this was too fast - when engraving wood the laser always evaporated the wood away - this lead to nice deep-engravings but there was nearly no change in color of the wood. So I've patched the firmware and made the speed setting from Visicut work again in Laos - now I can slow down the engraving which leads to nice dark color instead of just evaporating the wood away. The patch is not complex, just a few lines of code changed/added in one file. Actually this patch does not support yspeed and yaccel - therefore the firmware has to be expanded by a function that determines the direction of engraving before - I don't know where I can determine the actual position in LaosMotion.cpp, otherwise by comparing action.target.x and action.target.y with the actual position it should be easy to distiguish wheter xspeed or yspeed should be used. So for now only xspeed and xaccel is used because only this is implementend in the current firmware. I have tested this patch and it worked nicely on our installation. Maybe you can add it to the mainstream firmware.
Lutz (from Hackerspace-FFM)
Really awesome that you guys are tackling all these issues!
So with your fix someone can set the speed percentage in VisiCut, which becomes a percentage of the xspeed instead of the speed when someone is engraving?
Only when someone is engraving?
It would be faster to do a pull request btw, can I help with that in some way?
RE: Fix to make engrave speed setting working - Added by depronman over 6 years ago
Lutz / Peter,
This is really good and something I have had a problem with when engraving - great effort and much appreciated
Can I request that this latest change AND the firmware with the 'boundary, working origin, jog all moves in the correct direction' is combined, I understand that the 'boundary, working origin, jog all moves in the correct direction' firmware was developed by someone else, but I have been using it for about 6 to 8 weeks now and have found it to be very very stable and can no longer live without the boundary and origin functions.
I would however very much like to have the working cancel function and the engrave speed being set from visicut
Keep up the great work
for clarification: Actually the speed setting from Visicut is operates like that:
Cut & Mark Speed = config.txt:motion.speed * VisicutSpeed / 100
Engrave & 3D_Engrave Speed = config.txt:x.speed
With my patch engrave stuff is this:
Engrave & 3D_Engrave Speed = config.txt:x.speed * VisicutSpeed / 100
Important hint: VisicutSpeed is transmitted with 100% = 10000, so speed setting like 1.25% will be transmitted correctly.
Regarding the other issues in the firmware: I also like to get those other things fixed, but the code base should have a certain minimum quality. I will try to help to get those fixes ported back to the main trunk while ensuring a certain code quality.
Lutz, great to hear you thought it through.
I'm currently very hard at work on a project we have to finish tomorrow, but I'll try to test this on Tuesday.
Seems to work great!
I did a little test with 100% speed and 10% speed (same power). I also did some cutting (slow and fast) to check if nothing else broke.
Even the canceling works! (While not interrupting my cutting by accident)
(The cutting in the image looks very shaky because I was cutting slightly to fast)
I added the changes to the repository:
I've installed this version in our Fablab (Fablab Amersfoort) so hopefully more people will put it to the test soon.
@jaap, this was my first binary commit, please correct me if necessary.