synthetos / g2

g2core - The Next Generation
Other
631 stars 296 forks source link

Not updating positions in status report #365

Open breiler opened 6 years ago

breiler commented 6 years ago

Sorry for this noob issue... But I've been experimenting for a couple of hours and I'm not getting anywhere.

I've tried loading my Due with the g2core-gShield-100.26.bin (I've also tried the latest build 101.03) and connected to it using MacOSX and CoolTerm. I can post commands and get nice responses from the hardware. I don't have any shields connected to it, just running it stand alone.

But if I try to move the machine using G0 X10 the position isn't updated in the status report. I've tried connecting to it using Chilipeppr and I get the same thing there.

screen shot 2018-06-29 at 13 54 29

Is there a setting that I'm missing, or is my hardware bad (bought a cheaper Due from China: https://www.banggood.com/Arduino-Compatible-DUE-R3-32-Bit-ARM-With-USB-Cable-p-906466.html?rmmds=search&cur_warehouse=CN).

Settings:

$$
{"r":{"sys":{"fb":100.26,"fbs":"100.26-10-g1ff7","fbc":"settings_default.h","fv":0.99,"hp":3,"hv":0,"id":"0084-e739-29c6-29c","jt":0.75,"ct":0.01,"sl":0,"lim":1,"saf":1,"m48e":1,"mfoe":0,"mfo":1,"mtoe":0,"mto":1,"mt":2,"spep":1,"spdp":0,"spph":1,"spdw":1,"ssoe":0,"sso":1,"cofp":1,"comp":1,"coph":1,"tv":1,"ej":1,"jv":2,"qv":0,"sv":1,"si":250,"gpl":0,"gun":1,"gco":1,"gpa":2,"gdi":0}},"f":[1,0,3]}
{"r":{"1":{"ma":0,"sa":1.8,"tr":1.25,"mi":8,"su":1280,"po":0,"pm":0,"pl":0}},"f":[1,0,1]}
{"r":{"2":{"ma":1,"sa":1.8,"tr":40,"mi":8,"su":40,"po":0,"pm":0,"pl":0}},"f":[1,0,1]}
{"r":{"3":{"ma":2,"sa":1.8,"tr":1.25,"mi":8,"su":1280,"po":1,"pm":0,"pl":0}},"f":[1,0,1]}
{"r":{"4":{"ma":3,"sa":1.8,"tr":360,"mi":8,"su":4.44444,"po":0,"pm":0,"pl":0}},"f":[1,0,1]}
{"r":{"x":{"am":0,"vm":1000,"fr":1000,"tn":0,"tm":0,"jm":1000,"jh":1000,"hi":0,"hd":0,"sv":500,"lv":100,"lb":4,"zb":2}},"f":[1,0,1]}
{"r":{"y":{"am":0,"vm":1000,"fr":1000,"tn":0,"tm":0,"jm":1000,"jh":1000,"hi":0,"hd":0,"sv":500,"lv":100,"lb":4,"zb":2}},"f":[1,0,1]}
{"r":{"z":{"am":0,"vm":1000,"fr":1000,"tn":0,"tm":0,"jm":500,"jh":500,"hi":0,"hd":0,"sv":250,"lv":25,"lb":4,"zb":2}},"f":[1,0,1]}
{"r":{"a":{"am":0,"vm":288000,"fr":288000,"tn":-1,"tm":-1,"jm":288000,"jh":288000,"ra":0.199,"hi":0,"hd":0,"sv":144000,"lv":28800,"lb":5,"zb":2}},"f":[1,0,1]}
{"r":{"b":{"am":0,"vm":288000,"fr":288000,"tn":-1,"tm":-1,"jm":288000,"jh":288000,"ra":0.199,"hi":0,"hd":0,"sv":144000,"lv":28800,"lb":5,"zb":2}},"f":[1,0,1]}
{"r":{"c":{"am":0,"vm":288000,"fr":288000,"tn":-1,"tm":-1,"jm":288000,"jh":288000,"ra":0.199,"hi":0,"hd":0,"sv":144000,"lv":28800,"lb":5,"zb":2}},"f":[1,0,1]}
{"r":{"di1":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di2":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di3":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di4":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di5":{"mo":0,"ac":0,"fn":4}},"f":[1,0,1]}
{"r":{"di6":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di7":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di8":{"mo":0,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"di9":{"mo":1,"ac":0,"fn":0}},"f":[1,0,1]}
{"r":{"do1":{"mo":1}},"f":[1,0,1]}
{"r":{"do2":{"mo":1}},"f":[1,0,1]}
{"r":{"do3":{"mo":1}},"f":[1,0,1]}
{"r":{"do4":{"mo":1}},"f":[1,0,1]}
{"r":{"do5":{"mo":1}},"f":[1,0,1]}
{"r":{"do6":{"mo":1}},"f":[1,0,1]}
{"r":{"do7":{"mo":1}},"f":[1,0,1]}
{"r":{"do8":{"mo":1}},"f":[1,0,1]}
{"r":{"do9":{"mo":1}},"f":[1,0,1]}
{"r":{"he1":{"e":false,"p":9,"i":0.12,"d":400,"st":0,"t":-1,"op":0,"tr":-1,"at":false,"an":0,"fp":1,"fm":0.4,"fl":40,"fh":40}},"f":[1,0,1]}
{"r":{"he2":{"e":false,"p":9,"i":0.12,"d":400,"st":0,"t":-1,"op":0,"tr":-1,"at":false,"an":0,"fp":0,"fm":0,"fl":0,"fh":0}},"f":[1,0,1]}
{"r":{"he3":{"e":false,"p":9,"i":0.12,"d":400,"st":0,"t":-1,"op":0,"tr":-1,"at":false,"an":0,"fp":0,"fm":0,"fl":0,"fh":0}},"f":[1,0,1]}
{"r":{"p1":{"frq":100,"csl":7900,"csh":12800,"cpl":0.13,"cph":0.17,"wsl":0,"wsh":0,"wpl":0.1,"wph":0.1,"pof":0.1}},"f":[1,0,1]}
{"r":{"g54":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g55":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g56":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g57":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g58":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g59":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g92":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g28":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
{"r":{"g30":{"x":0,"y":0,"z":0,"a":0,"b":0,"c":0}},"f":[1,0,1]}
justinclift commented 6 years ago

Ahhh, this sounds similar to when I was first experimenting with g2core, and hadn't enabled the motors (virtually) in the settings.

Gimme a few minutes and I'll jump on a box with a g2 controller connected. I can't remember the JSON bits off hand, as I use text mode personally when doing stuff in a terminal. :wink:

justinclift commented 6 years ago

Ahhh, yep. I think that's the problem you're hitting as well. In your x/y/z lines, it's showing those axes as disabled:

{"r":{"x":{"am":0,"vm":1000,"fr":1000,"tn":0,"tm":0,"jm":1000,"jh":1000,"hi":0,"hd":0,"sv":500,"lv":100,"lb":4,"zb":2}},"f":[1,0,1]}
{"r":{"y":{"am":0,"vm":1000,"fr":1000,"tn":0,"tm":0,"jm":1000,"jh":1000,"hi":0,"hd":0,"sv":500,"lv":100,"lb":4,"zb":2}},"f":[1,0,1]}
{"r":{"z":{"am":0,"vm":1000,"fr":1000,"tn":0,"tm":0,"jm":500,"jh":500,"hi":0,"hd":0,"sv":250,"lv":25,"lb":4,"zb":2}},"f":[1,0,1]}

That doesn't mean there's anything wrong. Those are just the default settings for now, and there is ongoing discussion on how best to change that. :wink:

justinclift commented 6 years ago

Since you're using serial input for the moment, you'll probably find it easier to switch into text mode instead of json. To do that just type:

$ej=0

You can then look at the settings for the x, y, and z motors individually using $x, or $y, or $z. For example, on a g2core Due here:

$x
[xam] x axis mode                 1 [standard]
[xvm] x velocity maximum      18000 mm/min
[xfr] x feedrate maximum      18000 mm/min
[xtn] x travel minimum            0.000 mm
[xtm] x travel maximum          420.000 mm
[xjm] x jerk maximum           3000 mm/min^3 * 1 million
[xjh] x jerk homing           18000 mm/min^3 * 1 million
[xhi] x homing input              2 [input 1-N or 0 to disable homing this axis]
[xhd] x homing direction          1 [0=search-to-negative, 1=search-to-positive]
[xsv] x search velocity        2000 mm/min
[xlv] x latch velocity       100.00 mm/min
[xlb] x latch backoff             4.000 mm
[xzb] x zero backoff              2.000 mm
g2core[mm] ok> 
$y
[yam] y axis mode                 1 [standard]
[yvm] y velocity maximum      17000 mm/min
[yfr] y feedrate maximum      17000 mm/min
[ytn] y travel minimum            0.000 mm
[ytm] y travel maximum          435.000 mm
[yjm] y jerk maximum           3000 mm/min^3 * 1 million
[yjh] y jerk homing           17000 mm/min^3 * 1 million
[yhi] y homing input              4 [input 1-N or 0 to disable homing this axis]
[yhd] y homing direction          1 [0=search-to-negative, 1=search-to-positive]
[ysv] y search velocity        2000 mm/min
[ylv] y latch velocity       100.00 mm/min
[ylb] y latch backoff             4.000 mm
[yzb] y zero backoff              2.000 mm
g2core[mm] ok> 
$z
[zam] z axis mode                 1 [standard]
[zvm] z velocity maximum       1200 mm/min
[zfr] z feedrate maximum       1200 mm/min
[ztn] z travel minimum            0.000 mm
[ztm] z travel maximum           68.000 mm
[zjm] z jerk maximum           3000 mm/min^3 * 1 million
[zjh] z jerk homing            3000 mm/min^3 * 1 million
[zhi] z homing input              6 [input 1-N or 0 to disable homing this axis]
[zhd] z homing direction          1 [0=search-to-negative, 1=search-to-positive]
[zsv] z search velocity        1200 mm/min
[zlv] z latch velocity       100.00 mm/min
[zlb] z latch backoff             4.000 mm
[zzb] z zero backoff              4.000 mm

In my example above, take a look at the xam, yam, and zam settings. On mine they're set to 1 (standard mode). Yours are set to 0 (disabled mode). Change them with:

$xam=1
$yam=1
$zam=1

Now the motors should move (virtually) when you give it G0 (etc) commands.

In theory. :wink:

breiler commented 6 years ago

Awesome it works, thanks a bunch! :clap:

aldenhart commented 6 years ago

I added a Troubleshooting page to the Getting Started section where we can collect these kinds of issues. https://github.com/synthetos/g2/wiki/Troubleshooting

breiler commented 6 years ago

@aldenhart I personally am fine with all the motors disabled from the start. For the end user I think this should be handled by the UI giving the user a proper feedback. And for UI-implementors this is just a documentation issue (which you have solved for now with the troubleshooting guide).

This may actually not be a bug/issue, but instead a feature. =) By having them disabled from the beginning will enable the UI-implementors to check if the GCode contain unintentional axis movement and warn the user. Just a thought for the ongoing discussion...

justinclift commented 6 years ago

As a data point, the (slowly ongoing :wink:) discussion about it is in #341. You're welcome to jump in. :smile: