<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ivo&#39;s CNC Corner</title>
    <link>https://cnc.ibeltchev.com/</link>
    <description>Recent content on Ivo&#39;s CNC Corner</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://cnc.ibeltchev.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Motor Types</title>
      <link>https://cnc.ibeltchev.com/docs/architecture/motor_types/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/architecture/motor_types/</guid>
      <description>&lt;h1 id=&#34;motor-types&#34;&gt;Motor Types&lt;a class=&#34;anchor&#34; href=&#34;#motor-types&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;CNC machines use stepper motors for precise movement of each axis. The stepper motors are able to turn a fraction of a degree at the&#xA;instruction of the CPU.&lt;/p&gt;&#xA;&lt;p&gt;Here you can see side by side an open-loop motor and a closed-loop motor.&#xA;&lt;div style=&#34;max-width: 600px&#34; 1 &gt;&#xD;&#xA;  &lt;label class=&#34;book-image&#34; for=&#34;book-image-toggle-1&#34; &gt;&#xD;&#xA;    &lt;input class=&#34;toggle&#34; type=&#34;checkbox&#34; id=&#34;book-image-toggle-1&#34; onkeydown=&#34;javascript: if (event.keyCode == 27) checked=false;&#34; /&gt;&#xD;&#xA;    &lt;img src=&#34;https://cnc.ibeltchev.com/docs/architecture/motor_types/motor_types.jpg&#34; alt=&#34;Open-loop motor and Closed-loop motor&#34;loading=&#34;lazy&#34;title=&#34;Open-loop motor and Closed-loop motor&#34; /&gt;&#xD;&#xA;  &lt;/label&gt;&#xD;&#xA;&lt;/div&gt;&lt;/p&gt;&#xA;&lt;p&gt;Stepper motors contain 2 electromagnetic coils. The coils are energized in sequence, which in turn rotates the shaft one step at a time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grbl Variants</title>
      <link>https://cnc.ibeltchev.com/docs/architecture/grbl_variants/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/architecture/grbl_variants/</guid>
      <description>&lt;h1 id=&#34;grbl-variants&#34;&gt;Grbl Variants&lt;a class=&#34;anchor&#34; href=&#34;#grbl-variants&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;There are 3 major families of the Grbl firmware.&lt;/p&gt;&#xA;&lt;h2 id=&#34;grbl&#34;&gt;Grbl&lt;a class=&#34;anchor&#34; href=&#34;#grbl&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;&lt;em&gt;Project website: &lt;a href=&#34;https://github.com/gnea/grbl&#34;&gt;https://github.com/gnea/grbl&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The original Grbl firmware targets the 8-bit microcontroller Atmega 328p, the same one found in Arduino Uno boards.&#xA;It has a few major limitations:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Only 3 axes are supported - X, Y and Z&lt;/li&gt;&#xA;&lt;li&gt;Because of the limited ROM size, not all features can be used at the same time. Each firmware has to choose which subset of the available features to include&lt;/li&gt;&#xA;&lt;li&gt;Because of the limited RAM size, the command buffer is quite short, meaning it can slow down for complex toolpaths&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Still, despite its limitations, it has enough capabilities to power most hobbyist CNCs and remains one of the most popular choices to this day.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Parser State</title>
      <link>https://cnc.ibeltchev.com/docs/gcode/parser_state/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/gcode/parser_state/</guid>
      <description>&lt;h2 id=&#34;parser-state&#34;&gt;Parser State&lt;a class=&#34;anchor&#34; href=&#34;#parser-state&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;Before you can understand and use G-code commands you have to understand the concept of parser state.&lt;/p&gt;&#xA;&lt;p&gt;The parser state is a table that remembers the last used command parameters so future commands can use them by default.&#xA;These parameters are the unit of measurement (millimeters or inches), relative or absolute positions,&#xA;movement speed (AKA &amp;ldquo;feed rate&amp;rdquo;), and more.&lt;/p&gt;&#xA;&lt;details &gt;&lt;summary title=&#34;Learn more about the parser state&#34;&gt;&lt;img src=&#34;https://cnc.ibeltchev.com/deep_dive.png&#34; width=&#34;24&#34; height=&#34;24&#34; style=&#34;vertical-align: middle; filter: invert(1)&#34; /&gt;&amp;nbsp;&lt;b&gt;Deep Dive: Parser state and movement commands&lt;/b&gt;&lt;/summary&gt;&lt;div class=&#34;markdown-inner&#34;&gt;&#xD;&#xA;&lt;p&gt;Every movement command contains coordinate values like &lt;strong&gt;X&lt;/strong&gt;, &lt;strong&gt;Y&lt;/strong&gt; or &lt;strong&gt;Z&lt;/strong&gt;.&#xA;These values can be interpreted differently depending on the current parser state. It stores things like:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pin Testing</title>
      <link>https://cnc.ibeltchev.com/docs/troubleshooting/pin_testing/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/troubleshooting/pin_testing/</guid>
      <description>&lt;h1 id=&#34;pin-testing&#34;&gt;Pin Testing&lt;a class=&#34;anchor&#34; href=&#34;#pin-testing&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;The motion controller has multiple electrical inputs for receiving external signals. They are called &amp;ldquo;pins&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;The most common pins are used for limit switches and probing.&#xA;Others can be hooked to physical buttons, like for initiating homing, or pausing a job.&lt;/p&gt;&#xA;&lt;p&gt;It is important to ensure that they are working properly.&lt;/p&gt;&#xA;&lt;h2 id=&#34;testing-limit-switches&#34;&gt;Testing limit switches&lt;a class=&#34;anchor&#34; href=&#34;#testing-limit-switches&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;First, you need to find the limit switches. There are usually two for each axis. They could be stationary on each side of the axis.&#xA;Or they could be mounted on the carriage and move with it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tramming a CNC Router</title>
      <link>https://cnc.ibeltchev.com/docs/articles/tramming/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/articles/tramming/</guid>
      <description>&lt;h1 id=&#34;tramming-a-cnc-router&#34;&gt;Tramming a CNC Router&lt;a class=&#34;anchor&#34; href=&#34;#tramming-a-cnc-router&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;div style=&#34;max-width: 500px&#34; 1 &gt;&#xD;&#xA;  &lt;label class=&#34;book-image&#34; for=&#34;book-image-toggle-1&#34; &gt;&#xD;&#xA;    &lt;input class=&#34;toggle&#34; type=&#34;checkbox&#34; id=&#34;book-image-toggle-1&#34; onkeydown=&#34;javascript: if (event.keyCode == 27) checked=false;&#34; /&gt;&#xD;&#xA;    &lt;img src=&#34;https://cnc.ibeltchev.com/docs/articles/tramming/tram.jpg&#34; alt=&#34;Tramming&#34;loading=&#34;lazy&#34;title=&#34;Tramming&#34; /&gt;&#xD;&#xA;  &lt;/label&gt;&#xD;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;a class=&#34;anchor&#34; href=&#34;#introduction&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;To get the best performance out of your CNC machine, you need to &amp;ldquo;tram&amp;rdquo; it - this is the process that ensures that all axes are square.&#xA;It includes:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The X and Y movements are perpendicular&lt;/li&gt;&#xA;&lt;li&gt;The Z movement is perpendicular to the XY plane&lt;/li&gt;&#xA;&lt;li&gt;The spindle shaft is parallel to the Z axis&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Most online tutorials describe an overly simplified process that almost exclusively focuses on checking if the spindle shaft is perpendicular to the XY plane.&#xA;And worse, the prescribed method for correcting the alignment almost certainly gets the spindle out of parallel.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Spindle Types</title>
      <link>https://cnc.ibeltchev.com/docs/architecture/spindle_types/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/architecture/spindle_types/</guid>
      <description>&lt;h1 id=&#34;spindle-types&#34;&gt;Spindle Types&lt;a class=&#34;anchor&#34; href=&#34;#spindle-types&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;We&amp;rsquo;ll do a quick overview of the different spindle options and how they can be controlled.&lt;/p&gt;&#xA;&lt;p&gt;Here you can see side by side a 400W DC spindle, a 1.25HP trim router, and an 800W water-cooled VFD spindle.&#xA;&lt;div style=&#34;max-width: 600px&#34; 1 &gt;&#xD;&#xA;  &lt;label class=&#34;book-image&#34; for=&#34;book-image-toggle-1&#34; &gt;&#xD;&#xA;    &lt;input class=&#34;toggle&#34; type=&#34;checkbox&#34; id=&#34;book-image-toggle-1&#34; onkeydown=&#34;javascript: if (event.keyCode == 27) checked=false;&#34; /&gt;&#xD;&#xA;    &lt;img src=&#34;https://cnc.ibeltchev.com/docs/architecture/spindle_types/spindle_types.jpg&#34; alt=&#34;DC spindle, Trim router, VFD spindle&#34;loading=&#34;lazy&#34;title=&#34;DC spindle, Trim router, VFD spindle&#34; /&gt;&#xD;&#xA;  &lt;/label&gt;&#xD;&#xA;&lt;/div&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;dc-motor&#34;&gt;DC motor&lt;a class=&#34;anchor&#34; href=&#34;#dc-motor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;Most hobby-level machines come out of the box with a simple DC spindle.&#xA;Such DC motor spindles are often underpowered and have low-quality bearings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Basic Movement Commands</title>
      <link>https://cnc.ibeltchev.com/docs/gcode/movement_commands/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/gcode/movement_commands/</guid>
      <description>&lt;h1 id=&#34;basic-movement-commands&#34;&gt;Basic Movement Commands&lt;a class=&#34;anchor&#34; href=&#34;#basic-movement-commands&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;Before reading about the movement commands, make sure you are familiar with the parser state.&#xA;It is critical to understanding how the command parameters are interpreted.&lt;br&gt;&#xA;Read about it here: &lt;a href=&#34;https://cnc.ibeltchev.com/docs/useful_commands/parser_state&#34;&gt;Parser state&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Another important concept to understand is that a movement command will only move along the specified axes. If your command only&#xA;contains a &lt;strong&gt;Z&lt;/strong&gt; coordinate, then it will only move up or down. If it contains only &lt;strong&gt;X&lt;/strong&gt; and &lt;strong&gt;Y&lt;/strong&gt;, it will only move horizontally.&#xA;(&lt;strong&gt;G28&lt;/strong&gt; and &lt;strong&gt;G30&lt;/strong&gt; are exceptions, as they will move on all axes if none are listed).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Electromagnetic Interference</title>
      <link>https://cnc.ibeltchev.com/docs/troubleshooting/emi/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/troubleshooting/emi/</guid>
      <description>&lt;h1 id=&#34;electromagnetic-interference-emi&#34;&gt;Electromagnetic Interference (EMI)&lt;a class=&#34;anchor&#34; href=&#34;#electromagnetic-interference-emi&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;blockquote class=&#39;book-hint important&#39;&gt;&#xD;&#xA;&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I am not an electrical engineer.&#xA;Everything you read on this page is bits and pieces I&amp;rsquo;ve collected over the years that seem sensible.&#xA;They could be incomplete, totally wrong, or simply a case of cargo cult (magic ferrite beans, really?).&lt;/p&gt;&#xA;&lt;p&gt;Consult with other more reputable sources before making drastic changes to your equipment.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Electromagnetic interference is the bane of all electronics.&lt;/p&gt;&#xA;&lt;p&gt;CNC machines are especially susceptible to it for three reasons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sender Software</title>
      <link>https://cnc.ibeltchev.com/docs/architecture/sender/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/architecture/sender/</guid>
      <description>&lt;h1 id=&#34;sender-software&#34;&gt;Sender Software&lt;a class=&#34;anchor&#34; href=&#34;#sender-software&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;There are 3 main options for interfacing with your CNC machine. A dedicated sender software, a design package, or an offline controller.&lt;/p&gt;&#xA;&lt;h2 id=&#34;dedicated-sender-software&#34;&gt;Dedicated sender software&lt;a class=&#34;anchor&#34; href=&#34;#dedicated-sender-software&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;A dedicated sender software has only one purpose - to operate the CNC machine.&#xA;It will provide the best experience if you only need to execute your existing G-code files.&lt;/p&gt;&#xA;&lt;p&gt;Such software will show the current machine state, tool position, and other information.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wiring a VFD for a Spindle</title>
      <link>https://cnc.ibeltchev.com/docs/articles/vfd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/articles/vfd/</guid>
      <description>&lt;h1 id=&#34;wiring-a-vfd-for-a-spindle&#34;&gt;Wiring a VFD for a Spindle&lt;a class=&#34;anchor&#34; href=&#34;#wiring-a-vfd-for-a-spindle&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;&lt;em&gt;How I connected a Huanyang VFD to a FoxAlien Vasto CNC&lt;/em&gt;&lt;/p&gt;&#xA;&lt;div style=&#34;max-width: 500px&#34; 1 &gt;&#xD;&#xA;  &lt;label class=&#34;book-image&#34; for=&#34;book-image-toggle-1&#34; &gt;&#xD;&#xA;    &lt;input class=&#34;toggle&#34; type=&#34;checkbox&#34; id=&#34;book-image-toggle-1&#34; onkeydown=&#34;javascript: if (event.keyCode == 27) checked=false;&#34; /&gt;&#xD;&#xA;    &lt;img src=&#34;https://cnc.ibeltchev.com/docs/articles/vfd/intro.jpg&#34; alt=&#34;VFD&#34;loading=&#34;lazy&#34;title=&#34;VFD&#34; /&gt;&#xD;&#xA;  &lt;/label&gt;&#xD;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;a class=&#34;anchor&#34; href=&#34;#introduction&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;The 400W spindle that comes with the FoxAlien CNC machines is adequate for a beginner, but for more serious work you need an upgrade.&#xA;I chose to go with an 800W water-cooled VFD spindle. You get multiple benefits:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The extra power allows you to cut faster and deeper&lt;/li&gt;&#xA;&lt;li&gt;Improved accuracy and stability reduces tool chatter&lt;/li&gt;&#xA;&lt;li&gt;You can control the RPMs directly from the G-code&lt;/li&gt;&#xA;&lt;li&gt;The spindle is significantly quieter, especially if you choose a water-cooled variant&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here I&amp;rsquo;ll describe in detail how I achieved this upgrade.&#xA;My experience is with the Vasto V1 model, however it should work for any other CNC that has a PWM output for a laser module.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Controlinator 3000</title>
      <link>https://cnc.ibeltchev.com/docs/articles/pendant/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/articles/pendant/</guid>
      <description>&lt;h1 id=&#34;controlinator-3000&#34;&gt;Controlinator 3000&lt;a class=&#34;anchor&#34; href=&#34;#controlinator-3000&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;p&gt;&lt;em&gt;CNC handheld pendant for OpenBuilds CONTROL&lt;/em&gt;&lt;/p&gt;&#xA;&lt;div style=&#34;max-width: 500px&#34; 1 &gt;&#xD;&#xA;  &lt;label class=&#34;book-image&#34; for=&#34;book-image-toggle-1&#34; &gt;&#xD;&#xA;    &lt;input class=&#34;toggle&#34; type=&#34;checkbox&#34; id=&#34;book-image-toggle-1&#34; onkeydown=&#34;javascript: if (event.keyCode == 27) checked=false;&#34; /&gt;&#xD;&#xA;    &lt;img src=&#34;https://cnc.ibeltchev.com/docs/articles/pendant/main.jpg&#34; alt=&#34;Controlinator 3000&#34;loading=&#34;lazy&#34;title=&#34;Controlinator 3000&#34; /&gt;&#xD;&#xA;  &lt;/label&gt;&#xD;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;a class=&#34;anchor&#34; href=&#34;#introduction&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;I started my CNC journey on a pretty advanced Roland MDX-540 machine.&#xA;It had a nifty pendant with a lot of useful features.&#xA;It displayed the current machine state and coordinates, had controls for jogging and zeroing, and could control the running jobs.&#xA;&lt;div style=&#34;max-width: 500px&#34; 2 &gt;&#xD;&#xA;  &lt;label class=&#34;book-image&#34; for=&#34;book-image-toggle-2&#34; &gt;&#xD;&#xA;    &lt;input class=&#34;toggle&#34; type=&#34;checkbox&#34; id=&#34;book-image-toggle-2&#34; onkeydown=&#34;javascript: if (event.keyCode == 27) checked=false;&#34; /&gt;&#xD;&#xA;    &lt;img src=&#34;https://cnc.ibeltchev.com/docs/articles/pendant/roland-mdx540.jpg&#34; alt=&#34;Roland MDX-540 pendant&#34;loading=&#34;lazy&#34;title=&#34;Roland MDX-540 pendant&#34; /&gt;&#xD;&#xA;  &lt;/label&gt;&#xD;&#xA;&lt;/div&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Other Useful Commands</title>
      <link>https://cnc.ibeltchev.com/docs/gcode/other_commands/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cnc.ibeltchev.com/docs/gcode/other_commands/</guid>
      <description>&lt;h1 id=&#34;other-useful-commands&#34;&gt;Other Useful Commands&lt;a class=&#34;anchor&#34; href=&#34;#other-useful-commands&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xD;&#xA;&lt;h2 id=&#34;pause&#34;&gt;Pause (G4)&lt;a class=&#34;anchor&#34; href=&#34;#pause&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;&lt;strong&gt;G4&lt;/strong&gt; inserts a pause in the G-code. It is also called &amp;ldquo;dwell&amp;rdquo;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;G4 P3 - a 3-second pause&#xD;&#xA;G4 P0.5 - a half-second pause&#xD;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This is useful for example when you want to insert a pause in the G-code to allow the spindle to get up to speed.&#xA;Make sure you don&amp;rsquo;t pause during actual cutting. If the tool spins in one place for long, it could burn the material and start a fire.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
