LaserGRBL icon indicating copy to clipboard operation
LaserGRBL copied to clipboard

M3 bad number format: framing laser mode should be the same as import settings M3/M4

Open goofyseeker311 opened this issue 2 years ago • 30 comments

v.4.9.4 when you import for creality laser falcon engraver (10W) which uses M4, then the framing button gets the following error. framing and any other operation that uses M3/M4 should be consistent over the import laser mode selection.

what is that "bad number format" and "M3 S[......] F1000" stuff, should that not be an actual resolved value, and not a unresolved statement/macro?

lasergrbldebug

the same seems to happen for the lightning button, I assume its the engrave button. It will not even output any log error. it just returns to start like the framing action button.

also why cant I select/copy the log output text or even have the real time log in a text file, anywhere? also some of the action buttons down below seems to be missing clarification name text tags.

goofyseeker311 avatar Jun 26 '23 18:06 goofyseeker311

I have this same problem, using the same model (CR-Falcon 10W). Contacted creality support and being passed on to an engineer. I just updated to 4.9.4, but it also happened for me with v4.8.

thebruce0 avatar Jul 01 '23 01:07 thebruce0

LaserGRBL is not able to read the machine configuration from controller board. Please open menu grbl - grbl configuration and see what happens

arkypita avatar Jul 01 '23 02:07 arkypita

yep, if I remember correctly, it cant read the grbl configuration.

goofyseeker311 avatar Jul 01 '23 11:07 goofyseeker311

I tried using LightBurn and the Falcon seems to be communicating fine. Test cuts and etches were good. Seems it might be a bug with LaserGRBL?

thebruce0 avatar Jul 01 '23 15:07 thebruce0

yep general communication + job starting works, but the grbl parameters fetch and the framing fails

goofyseeker311 avatar Jul 01 '23 15:07 goofyseeker311

S[$30 * 3 / 100] is only a math formula to compute 3% of max power based on board configuration. Simply replace it with S10 (adjust number to have strongest or lightest beam) by editing custom button code.

To edit, right click over the button and select edit button

arkypita avatar Jul 01 '23 19:07 arkypita

but why an user needs to do any editing of code? why not fix the actual problem, instead of now having two problems, the original and the user becoming a programmer, for no reason

goofyseeker311 avatar Jul 01 '23 19:07 goofyseeker311

That's easy... because it is not a LaserGRBL problem.

LaserGRBL is written to be used with standard grbl firmware a very common standard firmware, with clear specifications, and used by dozens and dozens of different machine manufacturers. Firmware, is what runs inside the control board, and with which LaserGRBL talks to.

With a standard, well implemented firmware, by the manifacturer side, LaserGRBL is able to automatically read machine configuration as connect, and without the issue you are reporting.

But if a manifacturer (creality or any others...) decide to not implement something standard, but instead use something not standard, or they implement it poorly, and without releasing any specs... how can this be solved by me, who don't even have one to test?

What I can do is suggest workarounds, or ask you who report this problem to run some tests for me... But I can certainly cannot correct a problem of others by myself and without having the tools to do so.

arkypita avatar Jul 01 '23 20:07 arkypita

I tried using LightBurn and the Falcon seems to be communicating fine

And that's probably because lightburn uses a fixed S-value, instead of trying to calculate it proportional based on the machine configuration, like LaserGRBL does.

arkypita avatar Jul 01 '23 20:07 arkypita

well, I would use a default value in the lasergrbl software if the actual cant be read from the grbl device.

or at least make the program work even your program detects there is an error in the input values, notify user, dont stop the process with a hard hand. anyways getting the grbl parameters should be a default error popup if that does not work as it should.

the term is "gracefully failing".

goofyseeker311 avatar Jul 01 '23 21:07 goofyseeker311

thanks for the hint. if you had time and what to help what you can do is submit your "session log" file (menu ?, open session log) after you have opened the configuration page. In this way I can have the internal error that lasergrbl trap when reading configuration.

a more detailed info would be the using the "com log" feature (menu ?, activate extended log) that records the communication between lasergrbl and engraver, where I can find exactly the request/reply from lasergrbl to machine. You can start lasergrbl, acrivate extended log, connect to the machine, and then go to grbl, grbl configuration page.

arkypita avatar Jul 08 '23 14:07 arkypita

08/07/2023 18.00.42.990 Program ------- LaserGRBL v4.9.4 [64bit] START ------- 08/07/2023 18.00.45.977 Update DB Material DB is up to date 08/07/2023 18.00.48.877 SetStatus Machine status [Connecting] 08/07/2023 18.00.48.881 OpenCom Open COM4 @ 115200 baud (UsbSerial) 08/07/2023 18.00.48.951 SendImmediate Send Immediate Command [0x18] 08/07/2023 18.00.48.962 SetStatus Machine status [Idle] 08/07/2023 18.00.48.967 VersionInfo Detected Grbl v1.3a 08/07/2023 18.00.50.509 Refresh Config System.TimeoutException: Wrong number of config param found! (30/34) 08/07/2023 18.00.50.509 Refresh Config at LaserGRBL.GrblCore.RefreshConfig() in E:\LaserGRBL\LaserGRBL\Core\GrblCore.cs:line 1003 08/07/2023 18.01.03.459 SetStatus Machine status [Home] 08/07/2023 18.01.08.209 SetStatus Machine status [Idle] 08/07/2023 18.02.09.663 OpenFile Open C:\Users\tapio\Downloads\testnail.jpg 08/07/2023 18.02.49.710 SetStatus Machine status [Run] 08/07/2023 18.02.51.459 SetStatus Machine status [Idle]

00000 00269445 log Recording session started @ 08/07/2023 18.05.12 00001 00269507 tx [3F] 00002 00269757 tx [3F] 00003 00269759 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00004 00270007 tx [3F] 00005 00270009 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00006 00270257 tx [3F] 00007 00270259 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00008 00270507 tx [3F] 00009 00270509 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00010 00270756 tx [3F] 00011 00270758 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00012 00271006 tx [3F] 00013 00271008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>\r\r 00014 00271256 tx [3F] 00015 00271258 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00016 00271506 tx [3F] 00017 00271508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00018 00271757 tx [3F] 00019 00271758 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00020 00272006 tx [3F] 00021 00272008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00022 00272028 tx G0X100.000Y0.000\n 00023 00272029 rx ok\r\r 00024 00272256 tx [3F] 00025 00272258 rx <Run|MPos:12.788,0.000,0.000|FS:8100,0>\r\r 00026 00272506 tx [3F] 00027 00272509 rx <Run|MPos:51.562,0.000,0.000|FS:10000,0>\r\r 00028 00272756 tx [3F] 00029 00272758 rx <Run|MPos:89.225,0.000,0.000|FS:4900,0>\r\r 00030 00273006 tx [3F] 00031 00273008 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00032 00273256 tx [3F] 00033 00273258 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00034 00273506 tx [3F] 00035 00273508 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>\r\r 00036 00273756 tx [3F] 00037 00273758 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00038 00274006 tx [3F] 00039 00274008 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00040 00274241 tx G0X100.000Y0.000\n 00041 00274241 tx M3S[$303/100]F1000\n 00042 00274241 tx G1Y47.400\n 00043 00274241 tx G1X177.000\n 00044 00274241 tx G1Y0.000\n 00045 00274241 tx G1X100.000\n 00046 00274242 tx M5\n 00047 00274242 tx G0X0Y0\n 00048 00274243 rx ok\r\r 00049 00274243 rx error:2\r\r 00050 00274245 rx error:22\r\r 00051 00274246 rx error:22\r\r 00052 00274246 rx error:22\r\r 00053 00274247 rx error:22\r\r 00054 00274248 rx ok\r\r 00055 00274249 rx ok\r\r 00056 00274256 tx [3F] 00057 00274258 rx <Run|MPos:99.988,0.000,0.000|FS:1500,0>\r\r 00058 00274506 tx [3F] 00059 00274509 rx <Run|MPos:83.550,0.000,0.000|FS:9000,0>\r\r 00060 00274756 tx [3F] 00061 00274758 rx <Run|MPos:43.388,0.000,0.000|FS:10000,0>\r\r 00062 00275006 tx [3F] 00063 00275009 rx <Run|MPos:7.838,0.000,0.000|FS:4000,0>\r\r 00064 00275256 tx [3F] 00065 00275258 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00066 00275507 tx [3F] 00067 00275509 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00068 00275713 tx G0X100.000Y0.000\n 00069 00275714 rx ok\r\r 00070 00275756 tx [3F] 00071 00275759 rx <Run|MPos:0.425,0.000,0.000|FS:2700,0>\r\r 00072 00276006 tx [3F] 00073 00276009 rx <Run|MPos:21.212,0.000,0.000|FS:10000,0|WCO:0.000,0.000,0.000>\r\r 00074 00276256 tx [3F] 00075 00276260 rx <Run|MPos:62.412,0.000,0.000|FS:10000,0|Ov:100,100,100|A:S>\r\r 00076 00276505 tx [3F] 00077 00276508 rx <Run|MPos:94.875,0.000,0.000|FS:3100,0>\r\r 00078 00276755 tx [3F] 00079 00276757 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00080 00277006 tx [3F] 00081 00277010 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00082 00277255 tx [3F] 00083 00277257 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00084 00277505 tx [3F] 00085 00277508 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00086 00277756 tx [3F] 00087 00277757 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00088 00278006 tx [3F] 00089 00278008 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00090 00278256 tx [3F] 00091 00278257 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00092 00278439 tx G0X100.000Y0.000\n 00093 00278440 rx ok\r\r 00094 00278506 tx [3F] 00095 00278507 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00096 00278756 tx [3F] 00097 00278757 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00098 00279006 tx [3F] 00099 00279007 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00100 00279256 tx [3F] 00101 00279258 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00102 00279506 tx [3F] 00103 00279508 rx <Idle|MPos:100.000,0.000,0.000|FS:0,0>\r\r 00104 00279604 tx G0X100.000Y0.000\n 00105 00279604 tx M3S[$303/100]F1000\n 00106 00279604 tx G1Y47.400\n 00107 00279605 tx G1X177.000\n 00108 00279605 tx G1Y0.000\n 00109 00279605 tx G1X100.000\n 00110 00279605 tx M5\n 00111 00279605 tx G0X0Y0\n 00112 00279606 rx ok\r\r 00113 00279607 rx error:2\r\r 00114 00279608 rx error:22\r\r 00115 00279609 rx error:22\r\r 00116 00279610 rx error:22\r\r 00117 00279611 rx error:22\r\r 00118 00279611 rx ok\r\r 00119 00279612 rx ok\r\r 00120 00279756 tx [3F] 00121 00279758 rx <Run|MPos:94.850,0.000,0.000|FS:5700,0>\r\r 00122 00280006 tx [3F] 00123 00280008 rx <Run|MPos:62.250,0.000,0.000|FS:10000,0>\r\r 00124 00280256 tx [3F] 00125 00280259 rx <Run|MPos:21.062,0.000,0.000|FS:7300,0>\r\r 00126 00280506 tx [3F] 00127 00280509 rx <Run|MPos:0.412,0.000,0.000|FS:0,0>\r\r 00128 00280756 tx [3F] 00129 00280758 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00130 00281006 tx [3F] 00131 00281008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00132 00281256 tx [3F] 00133 00281258 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00134 00281506 tx [3F] 00135 00281508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00136 00281755 tx [3F] 00137 00281757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00138 00282006 tx [3F] 00139 00282008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00140 00282255 tx [3F] 00141 00282257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00142 00282505 tx [3F] 00143 00282507 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00144 00282755 tx [3F] 00145 00282757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00146 00283005 tx [3F] 00147 00283007 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00148 00283255 tx [3F] 00149 00283257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00150 00283506 tx [3F] 00151 00283509 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>\r\r 00152 00283755 tx [3F] 00153 00283757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00154 00284005 tx [3F] 00155 00284008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00156 00284255 tx [3F] 00157 00284257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00158 00284506 tx [3F] 00159 00284508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00160 00284756 tx [3F] 00161 00284757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00162 00285006 tx [3F] 00163 00285007 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00164 00285256 tx [3F] 00165 00285257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00166 00285506 tx [3F] 00167 00285507 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00168 00285756 tx [3F] 00169 00285757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00170 00286006 tx [3F] 00171 00286008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>\r\r 00172 00286256 tx [3F] 00173 00286258 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00174 00286506 tx [3F] 00175 00286508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00176 00286756 tx [3F] 00177 00286758 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00178 00287006 tx [3F] 00179 00287008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00180 00287255 tx [3F] 00181 00287257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00182 00287505 tx [3F] 00183 00287507 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00184 00287756 tx [3F] 00185 00287758 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00186 00288005 tx [3F] 00187 00288007 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00188 00288255 tx [3F] 00189 00288257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00190 00288505 tx [3F] 00191 00288507 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>\r\r 00192 00288756 tx [3F] 00193 00288757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00194 00289006 tx [3F] 00195 00289007 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00196 00289257 tx [3F] 00197 00289258 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00198 00289507 tx [3F] 00199 00289508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00200 00289756 tx [3F] 00201 00289757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00202 00290006 tx [3F] 00203 00290008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00204 00290256 tx [3F] 00205 00290257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00206 00290506 tx [3F] 00207 00290508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00208 00290756 tx [3F] 00209 00290757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00210 00291006 tx [3F] 00211 00291008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:0.000,0.000,0.000>\r\r 00212 00291256 tx [3F] 00213 00291258 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|A:S>\r\r 00214 00291506 tx [3F] 00215 00291508 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00216 00291756 tx [3F] 00217 00291758 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00218 00292006 tx [3F] 00219 00292008 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00220 00292256 tx [3F] 00221 00292257 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00222 00292506 tx [3F] 00223 00292507 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00224 00292756 tx [3F] 00225 00292757 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r 00226 00293006 tx [3F] 00227 00293007 rx <Idle|MPos:0.000,0.000,0.000|FS:0,0>\r\r

button presses (approximate): corner - frame - corner - frame - corner, corner works, frame does not, just moves a first step then back to origin.

grblconfigerror

a start-up connection extended log file: comlog2.zip

goofyseeker311 avatar Jul 08 '23 15:07 goofyseeker311

Refresh Config System.TimeoutException: Wrong number of config param found! (30/34), hmh

goofyseeker311 avatar Jul 08 '23 15:07 goofyseeker311

Thank you for the fast reply, and the start-up log (this was the most important one)

As it can be seen in session log, LaserGRBL expect 34 parameters, but machine send only 30. (Refresh Config System.TimeoutException: Wrong number of config param found! (30/34)). A standard grbl firmware has 34 parameters, Falcon use a non standard one. This cause an exception in reading configuration, and lasergrbl don't have all the parameters to correctly operate the machine.

00021	00052756	rx	$0=10\r\r
00022	00052756	rx	$1=250\r\r
00023	00052756	rx	$2=0\r\r
00024	00052756	rx	$3=4\r\r
00025	00052757	rx	$4=0\r\r
00026	00052757	rx	$5=0\r\r
00027	00052757	rx	$6=0\r\r
00028	00052757	rx	$10=1\r\r
00029	00052757	rx	$11=0.010\r\r
00030	00052757	rx	$12=0.002\r\r
00031	00052757	rx	$13=0\r\r
00032	00052758	rx	$20=0\r\r
00033	00052758	rx	$21=0\r\r
00034	00052758	rx	$22=1\r\r
00035	00052758	rx	$23=3\r\r
00036	00052758	rx	$24=1500.000\r\r
00037	00052758	rx	$25=4500.000\r\r
00038	00052758	rx	$26=20\r\r
00039	00052758	rx	$27=3.000\r\r
00040	00052758	rx	$30=1000.000\r\r
00041	00052759	rx	$31=0.000\r\r
00042	00052759	rx	$32=1\r\r
00043	00052759	rx	$100=80.000\r\r
00044	00052759	rx	$101=80.000\r\r
00045	00052759	rx	$110=10000.000\r\r
00046	00052759	rx	$111=10000.000\r\r
00047	00052759	rx	$120=500.000\r\r
00048	00052760	rx	$121=500.000\r\r
00049	00052760	rx	$130=400.000\r\r
00050	00052760	rx	$131=415.000\r\r

Look like they (Falcon) decide to remove some parameters they not use, for example ones regarding Z axis (102, 112, 122, 132) Here is the list of all the official grbl parameters: https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration

By my side this behavior on the part of the manufacturer is wrong, because it moves from what is a standard to put something on the market that is different from how other machines behave, and it does so without even testing the behavior on one of the popular software.

On the other hand, I can make some small modifications to make lasergrbl more "good-mouthed", in order to accept the configuration even if it lacks data.

arkypita avatar Jul 08 '23 15:07 arkypita

PS. if you want to edit the button to work, using the workaround I suggest you, here is the code you should write;

M3 S10 F1000

M3S[$303/100]F1000 can't work

arkypita avatar Jul 08 '23 15:07 arkypita

PS. if you want to edit the button to work, using the workaround I suggest you, here is the code you should write;

M3 S10 F1000

M3S[$303/100]F1000 can't work

why would I need to write any code? I still recommend the fail-safe mode. proper handling of exceptions. not assuming everything is right, on any machine. good defaults for failing things. graceful fail assumed operation mode. ie make sure your software does not fail, even if the machine fails somehow. this is standard programming code of conduct. ie. assume you dont get any of the promised parameters. assign only the parameters you get. use nice defaults for anything you dont get from the machine by a standard. warn user about the non-standard machine, more graceful, than just stopping working. give it a change to working even somewhat safely. ask the user real time if the parameters seem useful enough to continue operating the program with the hand-wavy settings configuration.

goofyseeker311 avatar Jul 08 '23 15:07 goofyseeker311

PS. if you want to edit the button to work, using the workaround I suggest you, here is the code you should write; M3 S10 F1000 M3S[$303/100]F1000 can't work

why would I need to write any code? I still recommend the fail-safe mode. proper handling of exceptions. not assuming everything is right, on any machine. good defaults for failing things. graceful fail assumed operation mode.

I see in your comlog the command "M3S[$303/100]F1000\n" I assume you have edited the default code of framing custom button, but what you wrote is wrong: $303 does not exist

arkypita avatar Jul 08 '23 15:07 arkypita

PS. if you want to edit the button to work, using the workaround I suggest you, here is the code you should write; M3 S10 F1000 M3S[$303/100]F1000 can't work

why would I need to write any code? I still recommend the fail-safe mode. proper handling of exceptions. not assuming everything is right, on any machine. good defaults for failing things. graceful fail assumed operation mode.

I see in your comlog the command "M3S[$303/100]F1000\n" I assume you have edited the default code of framing custom button, but what you wrote is wrong: $303 does not exist

no, its default program code. I just use the program, I dont program anything or edit anything. not even parameters if I dont have to.

goofyseeker311 avatar Jul 08 '23 15:07 goofyseeker311

PS. if you want to edit the button to work, using the workaround I suggest you, here is the code you should write; M3 S10 F1000 M3S[$303/100]F1000 can't work

why would I need to write any code? I still recommend the fail-safe mode. proper handling of exceptions. not assuming everything is right, on any machine. good defaults for failing things. graceful fail assumed operation mode.

I see in your comlog the command "M3S[$303/100]F1000\n" I assume you have edited the default code of framing custom button, but what you wrote is wrong: $303 does not exist

no, its default program code. I just use the program, I dont program anything or edit anything. not even parameters if I dont have to.

My fault, it is likely that the missing parameter $30 turns $30*3 into $303 Ignore my last messages.

arkypita avatar Jul 08 '23 16:07 arkypita

bug? in the log?

goofyseeker311 avatar Jul 08 '23 16:07 goofyseeker311

no, custom button use math evaluation (they can compute formula, like "width + 5") but in this case the formula $30*3 is missing of the $30 variable, and so turns out in $303 (or something like this)

arkypita avatar Jul 08 '23 16:07 arkypita

If you want you can try this pre-release and tell me if it works for you: https://github.com/arkypita/LaserGRBL/releases/download/v4.9.5/install.exe

arkypita avatar Jul 08 '23 16:07 arkypita

If you want you can try this pre-release and tell me if it works for you: https://github.com/arkypita/LaserGRBL/releases/download/v4.9.5/install.exe

yes framing works in it and grbl configuration parameters show up properly.

btw, the lightburn way of doing the framing is to loop frame until its stopped. now it returns to the origin after a single frame pass.

goofyseeker311 avatar Jul 08 '23 17:07 goofyseeker311

btw, the lightburn way of doing the framing is to loop frame until its stopped. now it returns to the origin after a single frame pass.

Actually I haven't been able to get lightburn to do more than a 1 frame pass on the latest version I have. So now if you're saying lasergrbl is also doing a 1 frame pass, perhaps there's another command setting that needs to be adjusted which lightburn hasn't done either.

thebruce0 avatar Jul 08 '23 17:07 thebruce0

btw, the lightburn way of doing the framing is to loop frame until its stopped. now it returns to the origin after a single frame pass.

Actually I haven't been able to get lightburn to do more than a 1 frame pass on the latest version I have. So now if you're saying lasergrbl is also doing a 1 frame pass, perhaps there's another command setting that needs to be adjusted which lightburn hasn't done either.

lightburn does frame passes until its stopped, by the stop button. Idk what you mean by that. "it" refers to lasergrbl in this case.

goofyseeker311 avatar Jul 08 '23 17:07 goofyseeker311

lightburn does frame passes until its stopped, by the stop button. Idk what you mean by that. "it" refers to lasergrbl in this case.

I mean in Lightburn, when I hit frame, it only does one pass. With the PC in the next room I don't get there in time to see the framing. I know I can slow it, but the point is it only does one and doesn't continue the framing until stopped. I have a tablet that I use remote desktop so I can be next to it to see the one framing pass when I hit the button.

So if Lasergrbl is now also doing only 1 pass with this update, perhaps it's the same issue, and both apps need to adjust the command to make it do continued framing until stopped?

That is an assumption based on this comment:

btw, the lightburn way of doing the framing is to loop frame until its stopped. now it returns to the origin after a single frame pass.

(My lightburn doesn't do this)

thebruce0 avatar Jul 08 '23 17:07 thebruce0

lightburn does frame passes until its stopped, by the stop button. Idk what you mean by that. "it" refers to lasergrbl in this case.

I mean in Lightburn, when I hit frame, it only does one pass. With the PC in the next room I don't get there in time to see the framing. I know I can slow it, but the point is it only does one and doesn't continue the framing until stopped. I have a tablet that I use remote desktop so I can be next to it to see the one framing pass when I hit the button.

So if Lasergrbl is now also doing only 1 pass with this update, perhaps it's the same issue, and both apps need to adjust the command to make it do continued framing until stopped?

That is an assumption based on this comment:

btw, the lightburn way of doing the framing is to loop frame until its stopped. now it returns to the origin after a single frame pass.

I dont have your issue with lightburn, it loops until stopped. so I dont think its it.

goofyseeker311 avatar Jul 08 '23 17:07 goofyseeker311

I dont have your issue with lightburn, it loops until stopped. so I dont think its it.

I know, I'm just saying, in my lightburn, it only does one loop. So perhaps IF lasergrbl is now only doing one loop, it's a related updated command issue.

thebruce0 avatar Jul 08 '23 17:07 thebruce0

I dont have your issue with lightburn, it loops until stopped. so I dont think its it.

I know, I'm just saying, in my lightburn, it only does one loop. So perhaps IF lasergrbl is now only doing one loop, it's a related updated command issue.

no, I think lasergrbl has always done just one loop in frame. but idk, has it? the code in the frame button in lasergrbl will tell if it was designed to do a loop or just once, during a frame.

well, now its a button, maybe a two-state button will loop the code. there seems to be no repeat jumps in the gcode.

goofyseeker311 avatar Jul 08 '23 17:07 goofyseeker311

@goofyseeker311 One of the best things about LaserGRBL is the ability to customise its behaviour. If you want to be able to frame your outline three times, say, you can just create that button yourself!

  • Right click on any blank space in the toolbar, and click "Add Custom Button"
  • In the "Gcode" box, paste the following: G0 X[left] Y[bottom] M3 S1 F1000 G1 Y[top] G1 X[right] G1 Y[bottom] G1 X[left] G1 Y[top] G1 X[right] G1 Y[bottom] G1 X[left] G1 Y[top] G1 X[right] G1 Y[bottom] G1 X[left] M5 G0 X0 Y0
  • Assign a Tool Tip (e.g. "Frame 3 times") and click Create!

Now, any time you click that button it will trace the axis-aligned bounding box around your image three times. You can also right-click on any of the existing buttons and click edit code to see some of the other variables available to you to use.

alastaira avatar Jul 10 '23 14:07 alastaira