{"action":"created","issue":{"url":"https://api.github.com/repos/synthetos/TinyG/issues/120","labels_url":"https://api.github.com/repos/synthetos/TinyG/issues/120/labels{/name}","comments_url":"https://api.github.com/repos/synthetos/TinyG/issues/120/comments","events_url":"https://api.github.com/repos/synthetos/TinyG/issues/120/events","html_url":"https://github.com/synthetos/TinyG/issues/120","id":53811678,"number":120,"title":"TinyG G18 XZ Plane Seems to be Reversed","user":{"login":"thrushd","id":8573804,"avatar_url":"https://avatars.githubusercontent.com/u/8573804?v=3","gravatar_id":"","url":"https://api.github.com/users/thrushd","html_url":"https://github.com/thrushd","followers_url":"https://api.github.com/users/thrushd/followers","following_url":"https://api.github.com/users/thrushd/following{/other_user}","gists_url":"https://api.github.com/users/thrushd/gists{/gist_id}","starred_url":"https://api.github.com/users/thrushd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thrushd/subscriptions","organizations_url":"https://api.github.com/users/thrushd/orgs","repos_url":"https://api.github.com/users/thrushd/repos","events_url":"https://api.github.com/users/thrushd/events{/privacy}","received_events_url":"https://api.github.com/users/thrushd/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-01-08T22:49:08Z","updated_at":"2015-02-23T11:20:09Z","closed_at":"2015-02-23T11:20:09Z","body":"Hello,\r\n\r\nI recently upgraded my custom CNC to TinyG. So far I am absolutely loving the intuitive settings and ease of use, unfortunately a small issue popped up. When my machine goes to do an arc (using G2 and G3, but it also happens in radius mode) in the G18 plane it will move in the opposite direction it is intended (CW instead of CCW). It only seems to happen in the G18 plane. I noticed this when trying a simple facing operation for my vacuum bed, the specific G18 arcs are being used for the lead ins. They were very small though so it was hard to tell at first. This prompted me to make a quick test piece to experiment on, just a 50mm x 50mm block. \r\n\r\n![block_with_tool_path](https://cloud.githubusercontent.com/assets/8573804/5672158/117a859c-9743-11e4-94a5-3ef221b09873.png)\r\n\r\nDid the same basic facing operation but this time made the lead in and out radii much bigger, 10mm. It is very noticeable now. Also loaded it into the HSMWorks backplotter and played with the code. Reversing the G2 and G3 shows what my machine is actually doing:\r\n\r\n![hsmworks_backplot_mod](https://cloud.githubusercontent.com/assets/8573804/5672197/55dd61fa-9743-11e4-86f5-685d9aa599cd.png)\r\n\r\nBut when I use that modified reversed code on the machine it behaves great. So it seems to me that the G18 plane is reversed on the TinyG. I have played with all the settings I can think of, nothing changes. Used a variety of post processors and got the same results so I have been sticking to the built in \"generic tinyg\". Completely out of ideas and haven't been able to find anyone else with this issue. Any help or insight greatly appreciated!\r\n\r\n**Details:**\r\n\r\nCAD: Solidworks 2014 Education Edition\r\nCAM: HSMWorks 2014\r\n\r\nTinyG Settings Dump:\r\n\r\n```\r\n[fb]  firmware build            438.02\r\n[fv]  firmware version            0.97\r\n[hp]  hardware platform           1.00\r\n[hv]  hardware version            8.00\r\n[id]  TinyG ID                    3X3566-SRM\r\n[ja]  junction acceleration  100000 mm\r\n[ct]  chordal tolerance           0.0100 mm\r\n[sl]  soft limit enable           0\r\n[st]  switch type                 0 [0=NO,1=NC]\r\n[mt]  motor idle timeout         30.00 Sec\r\n[ej]  enable json mode            0 [0=text,1=JSON]\r\n[jv]  json verbosity              1 [0=silent,1=footer,2=messages,3=configs,4=linenum,5=verbose]\r\n[js]  json serialize style        1 [0=relaxed,1=strict]\r\n[tv]  text verbosity              1 [0=silent,1=verbose]\r\n[qv]  queue report verbosity      2 [0=off,1=single,2=triple]\r\n[sv]  status report verbosity     1 [0=off,1=filtered,2=verbose]\r\n[si]  status interval           250 ms\r\n[ec]  expand LF to CRLF on TX     0 [0=off,1=on]\r\n[ee]  enable echo                 0 [0=off,1=on]\r\n[ex]  enable flow control         1 [0=off,1=XON/XOFF, 2=RTS/CTS]\r\n[baud] USB baud rate              5 [1=9600,2=19200,3=38400,4=57600,5=115200,6=230400]\r\n[net] network mode                0 [0=master]\r\n[gpl] default gcode plane         0 [0=G17,1=G18,2=G19]\r\n[gun] default gcode units mode    1 [0=G20,1=G21]\r\n[gco] default gcode coord system  1 [1-6 (G54-G59)]\r\n[gpa] default gcode path control  2 [0=G61,1=G61.1,2=G64]\r\n[gdi] default gcode distance mode 0 [0=G90,1=G91]\r\n[1ma] m1 map to axis              0 [0=X,1=Y,2=Z...]\r\n[1sa] m1 step angle               1.800 deg\r\n[1tr] m1 travel per revolution    5.0000 mm\r\n[1mi] m1 microsteps               8 [1,2,4,8]\r\n[1po] m1 polarity                 0 [0=normal,1=reverse]\r\n[1pm] m1 power management         2 [0=disabled,1=always on,2=in cycle,3=when moving]\r\n[2ma] m2 map to axis              1 [0=X,1=Y,2=Z...]\r\n[2sa] m2 step angle               1.800 deg\r\n[2tr] m2 travel per revolution    5.0000 mm\r\n[2mi] m2 microsteps               8 [1,2,4,8]\r\n[2po] m2 polarity                 0 [0=normal,1=reverse]\r\n[2pm] m2 power management         2 [0=disabled,1=always on,2=in cycle,3=when moving]\r\n[3ma] m3 map to axis              2 [0=X,1=Y,2=Z...]\r\n[3sa] m3 step angle               1.800 deg\r\n[3tr] m3 travel per revolution    5.0000 mm\r\n[3mi] m3 microsteps               8 [1,2,4,8]\r\n[3po] m3 polarity                 0 [0=normal,1=reverse]\r\n[3pm] m3 power management         2 [0=disabled,1=always on,2=in cycle,3=when moving]\r\n[4ma] m4 map to axis              3 [0=X,1=Y,2=Z...]\r\n[4sa] m4 step angle               1.800 deg\r\n[4tr] m4 travel per revolution  360.0000 mm\r\n[4mi] m4 microsteps               8 [1,2,4,8]\r\n[4po] m4 polarity                 0 [0=normal,1=reverse]\r\n[4pm] m4 power management         2 [0=disabled,1=always on,2=in cycle,3=when moving]\r\n[xam] x axis mode                 1 [standard]\r\n[xvm] x velocity maximum       1200 mm/min\r\n[xfr] x feedrate maximum       1200 mm/min\r\n[xtn] x travel minimum        -1000.000 mm\r\n[xtm] x travel maximum            0.000 mm\r\n[xjm] x jerk maximum            100 mm/min^3 * 1 million\r\n[xjh] x jerk homing           10000 mm/min^3 * 1 million\r\n[xjd] x junction deviation        0.0500 mm (larger is faster)\r\n[xsn] x switch min                0 [0=off,1=homing,2=limit,3=limit+homing]\r\n[xsx] x switch max                1 [0=off,1=homing,2=limit,3=limit+homing]\r\n[xsv] x search velocity         800 mm/min\r\n[xlv] x latch velocity          100 mm/min\r\n[xlb] x latch backoff             5.000 mm\r\n[xzb] x zero backoff              3.000 mm\r\n[yam] y axis mode                 1 [standard]\r\n[yvm] y velocity maximum       1200 mm/min\r\n[yfr] y feedrate maximum       1200 mm/min\r\n[ytn] y travel minimum         -500.000 mm\r\n[ytm] y travel maximum            0.000 mm\r\n[yjm] y jerk maximum            100 mm/min^3 * 1 million\r\n[yjh] y jerk homing           10000 mm/min^3 * 1 million\r\n[yjd] y junction deviation        0.0500 mm (larger is faster)\r\n[ysn] y switch min                0 [0=off,1=homing,2=limit,3=limit+homing]\r\n[ysx] y switch max                1 [0=off,1=homing,2=limit,3=limit+homing]\r\n[ysv] y search velocity         800 mm/min\r\n[ylv] y latch velocity          100 mm/min\r\n[ylb] y latch backoff             5.000 mm\r\n[yzb] y zero backoff              3.000 mm\r\n[zam] z axis mode                 1 [standard]\r\n[zvm] z velocity maximum       1200 mm/min\r\n[zfr] z feedrate maximum       1200 mm/min\r\n[ztn] z travel minimum         -150.000 mm\r\n[ztm] z travel maximum            0.000 mm\r\n[zjm] z jerk maximum            100 mm/min^3 * 1 million\r\n[zjh] z jerk homing           10000 mm/min^3 * 1 million\r\n[zjd] z junction deviation        0.0500 mm (larger is faster)\r\n[zsn] z switch min                0 [0=off,1=homing,2=limit,3=limit+homing]\r\n[zsx] z switch max                1 [0=off,1=homing,2=limit,3=limit+homing]\r\n[zsv] z search velocity         800 mm/min\r\n[zlv] z latch velocity          100 mm/min\r\n[zlb] z latch backoff             5.000 mm\r\n[zzb] z zero backoff              3.000 mm\r\n[aam] a axis mode                 3 [radius]\r\n[avm] a velocity maximum     230400 deg/min\r\n[afr] a feedrate maximum     230400 deg/min\r\n[atn] a travel minimum           -1.000 deg\r\n[atm] a travel maximum           -1.000 deg\r\n[ajm] a jerk maximum           5760 deg/min^3 * 1 million\r\n[ajh] a jerk homing            5760 deg/min^3 * 1 million\r\n[ajd] a junction deviation        0.0500 deg (larger is faster)\r\n[ara] a radius value              0.1989 deg\r\n[asn] a switch min                1 [0=off,1=homing,2=limit,3=limit+homing]\r\n[asx] a switch max                0 [0=off,1=homing,2=limit,3=limit+homing]\r\n[asv] a search velocity         600 deg/min\r\n[alv] a latch velocity          100 deg/min\r\n[alb] a latch backoff             5.000 deg\r\n[azb] a zero backoff              2.000 deg\r\n[bam] b axis mode                 0 [disabled]\r\n[bvm] b velocity maximum       3600 deg/min\r\n[bfr] b feedrate maximum       3600 deg/min\r\n[btn] b travel minimum           -1.000 deg\r\n[btm] b travel maximum           -1.000 deg\r\n[bjm] b jerk maximum             20 deg/min^3 * 1 million\r\n[bjd] b junction deviation        0.0500 deg (larger is faster)\r\n[bra] b radius value              1.0000 deg\r\n[cam] c axis mode                 0 [disabled]\r\n[cvm] c velocity maximum       3600 deg/min\r\n[cfr] c feedrate maximum       3600 deg/min\r\n[ctn] c travel minimum           -1.000 deg\r\n[ctm] c travel maximum           -1.000 deg\r\n[cjm] c jerk maximum             20 deg/min^3 * 1 million\r\n[cjd] c junction deviation        0.0500 deg (larger is faster)\r\n[cra] c radius value              1.0000 deg\r\n[p1frq] pwm frequency            125000 Hz\r\n[p1csl] pwm cw speed lo               0 RPM\r\n[p1csh] pwm cw speed hi           11520 RPM\r\n[p1cpl] pwm cw phase lo           0.000 [0..1]\r\n[p1cph] pwm cw phase hi           1.000 [0..1]\r\n[p1wsl] pwm ccw speed lo           1000 RPM\r\n[p1wsh] pwm ccw speed hi           2000 RPM\r\n[p1wpl] pwm ccw phase lo          0.125 [0..1]\r\n[p1wph] pwm ccw phase hi          0.200 [0..1]\r\n[p1pof] pwm phase off             0.000 [0..1]\r\n[g54x] g54 x offset               0.000 mm\r\n[g54y] g54 y offset               0.000 mm\r\n[g54z] g54 z offset               0.000 mm\r\n[g54a] g54 a offset               0.000 deg\r\n[g54b] g54 b offset               0.000 deg\r\n[g54c] g54 c offset               0.000 deg\r\n[g55x] g55 x offset              75.000 mm\r\n[g55y] g55 y offset              75.000 mm\r\n[g55z] g55 z offset               0.000 mm\r\n[g55a] g55 a offset               0.000 deg\r\n[g55b] g55 b offset               0.000 deg\r\n[g55c] g55 c offset               0.000 deg\r\n[g56x] g56 x offset               0.000 mm\r\n[g56y] g56 y offset               0.000 mm\r\n[g56z] g56 z offset               0.000 mm\r\n[g56a] g56 a offset               0.000 deg\r\n[g56b] g56 b offset               0.000 deg\r\n[g56c] g56 c offset               0.000 deg\r\n[g57x] g57 x offset               0.000 mm\r\n[g57y] g57 y offset               0.000 mm\r\n[g57z] g57 z offset               0.000 mm\r\n[g57a] g57 a offset               0.000 deg\r\n[g57b] g57 b offset               0.000 deg\r\n[g57c] g57 c offset               0.000 deg\r\n[g58x] g58 x offset               0.000 mm\r\n[g58y] g58 y offset               0.000 mm\r\n[g58z] g58 z offset               0.000 mm\r\n[g58a] g58 a offset               0.000 deg\r\n[g58b] g58 b offset               0.000 deg\r\n[g58c] g58 c offset               0.000 deg\r\n[g59x] g59 x offset               0.000 mm\r\n[g59y] g59 y offset               0.000 mm\r\n[g59z] g59 z offset               0.000 mm\r\n[g59a] g59 a offset               0.000 deg\r\n[g59b] g59 b offset               0.000 deg\r\n[g59c] g59 c offset               0.000 deg\r\n[g92x] g92 x offset               0.000 mm\r\n[g92y] g92 y offset               0.000 mm\r\n[g92z] g92 z offset               0.000 mm\r\n[g92a] g92 a offset               0.000 deg\r\n[g92b] g92 b offset               0.000 deg\r\n[g92c] g92 c offset               0.000 deg\r\n[g28x] g28 x position             0.000 mm\r\n[g28y] g28 y position             0.000 mm\r\n[g28z] g28 z position             0.000 mm\r\n[g28a] g28 a position             0.000 deg\r\n[g28b] g28 b position             0.000 deg\r\n[g28c] g28 c position             0.000 deg\r\n[g30x] g30 x position             0.000 mm\r\n[g30y] g30 y position             0.000 mm\r\n[g30z] g30 z position             0.000 mm\r\n[g30a] g30 a position             0.000 deg\r\n[g30b] g30 b position             0.000 deg\r\n[g30c] g30 c position             0.000 deg\r\ntinyg [mm] ok> \r\n```\r\n\r\nThanks!\r\n      "},"comment":{"url":"https://api.github.com/repos/synthetos/TinyG/issues/comments/75525403","html_url":"https://github.com/synthetos/TinyG/issues/120#issuecomment-75525403","issue_url":"https://api.github.com/repos/synthetos/TinyG/issues/120","id":75525403,"user":{"login":"aldenhart","id":232833,"avatar_url":"https://avatars.githubusercontent.com/u/232833?v=3","gravatar_id":"","url":"https://api.github.com/users/aldenhart","html_url":"https://github.com/aldenhart","followers_url":"https://api.github.com/users/aldenhart/followers","following_url":"https://api.github.com/users/aldenhart/following{/other_user}","gists_url":"https://api.github.com/users/aldenhart/gists{/gist_id}","starred_url":"https://api.github.com/users/aldenhart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aldenhart/subscriptions","organizations_url":"https://api.github.com/users/aldenhart/orgs","repos_url":"https://api.github.com/users/aldenhart/repos","events_url":"https://api.github.com/users/aldenhart/events{/privacy}","received_events_url":"https://api.github.com/users/aldenhart/received_events","type":"User","site_admin":false},"created_at":"2015-02-23T11:20:09Z","updated_at":"2015-02-23T11:20:09Z","body":"This issue is fixed in edge build 440.13 (and above). Please let me know if you have any questions."}}