https://wiki.munichmakerlab.de/index.php?title=CNC_router_build/CNC_router_controller&feed=atom&action=historyCNC router build/CNC router controller - Revision history2024-03-29T06:08:05ZRevision history for this page on the wikiMediaWiki 1.39.5https://wiki.munichmakerlab.de/index.php?title=CNC_router_build/CNC_router_controller&diff=6555&oldid=prevVrs: Vrs moved page CNC router controller to CNC router build/CNC router controller without leaving a redirect2022-09-10T15:38:52Z<p>Vrs moved page <a href="/index.php?title=CNC_router_controller&action=edit&redlink=1" class="new" title="CNC router controller (page does not exist)">CNC router controller</a> to <a href="/wiki/CNC_router_build/CNC_router_controller" title="CNC router build/CNC router controller">CNC router build/CNC router controller</a> without leaving a redirect</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<tr class="diff-title" lang="en">
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="1" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:38, 10 September 2022</td>
</tr><tr><td colspan="2" class="diff-notice" lang="en"><div class="mw-diff-empty">(No difference)</div>
</td></tr></table>Vrshttps://wiki.munichmakerlab.de/index.php?title=CNC_router_build/CNC_router_controller&diff=6144&oldid=prevMilian at 10:48, 10 September 20222022-09-10T10:48:44Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:48, 10 September 2022</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Part of [[CNC router build]]</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Goals =</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Goals =</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>Milianhttps://wiki.munichmakerlab.de/index.php?title=CNC_router_build/CNC_router_controller&diff=1877&oldid=prevRagnaroek23: /* Check optotransmitter connection */2016-09-20T22:46:50Z<p><span dir="auto"><span class="autocomment">Check optotransmitter connection</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 23:46, 20 September 2016</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l11">Line 11:</td>
<td colspan="2" class="diff-lineno">Line 11:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>During startup, a quick selftest routine checks all outputs:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>During startup, a quick selftest routine checks all outputs:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">1. </del>Activate ENABLE signal, verify current flow</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Activate ENABLE signal, verify current flow</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">2. </del>Deactivate ENABLE signal, verify no current</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Deactivate ENABLE signal, verify no current</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">3. </del>Activate DIRECTION signal, verify current flow</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Activate DIRECTION signal, verify current flow</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">4. </del>Activate STEP signal, verify current flow</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Activate STEP signal, verify current flow</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">5. </del>Deactivate STEP signal, verify no current</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Deactivate STEP signal, verify no current</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">6. </del>Deactivate DIRECTION signal, verify no current</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Deactivate DIRECTION signal, verify no current</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">7. </del>Activate STEP signal, verify current flow</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Activate STEP signal, verify current flow</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">8. </del>Deactivate STEP signal, verify no current</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># </ins>Deactivate STEP signal, verify no current</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This should test the connections, without moving the axis or changing the motor driver's microstep count (which may be important for the Z axis).</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This should test the connections, without moving the axis or changing the motor driver's microstep count (which may be important for the Z axis).</div></td></tr>
</table>Ragnaroek23https://wiki.munichmakerlab.de/index.php?title=CNC_router_build/CNC_router_controller&diff=1874&oldid=prevSimonRichter: Created page with "= Goals = The controller board is where all the commands and status reports for the CNC mill come together. It's the first place that knows of problems, and should attempt to..."2016-09-16T20:21:42Z<p>Created page with "= Goals = The controller board is where all the commands and status reports for the CNC mill come together. It's the first place that knows of problems, and should attempt to..."</p>
<p><b>New page</b></p><div>= Goals =<br />
<br />
The controller board is where all the commands and status reports for the CNC mill come together. It's the first place that knows of problems, and should attempt to handle them as good as possible to avoid damage to the equipment. Also, it should integrate the different approaches to control preferred by different users.<br />
<br />
== Check optotransmitter connection ==<br />
<br />
The motor drivers contain internal optotransmitters to isolate the controller from the motor power. The connection from the controller board to the driver board is treated as unreliable, as these cables can be removed easily.<br />
<br />
When a signal is sent, the circuit verifies that the current is adequate for a LED (10mA to 30mA); when no signal is sent, the current should be zero.<br />
<br />
During startup, a quick selftest routine checks all outputs:<br />
<br />
1. Activate ENABLE signal, verify current flow<br />
2. Deactivate ENABLE signal, verify no current<br />
3. Activate DIRECTION signal, verify current flow<br />
4. Activate STEP signal, verify current flow<br />
5. Deactivate STEP signal, verify no current<br />
6. Deactivate DIRECTION signal, verify no current<br />
7. Activate STEP signal, verify current flow<br />
8. Deactivate STEP signal, verify no current<br />
<br />
This should test the connections, without moving the axis or changing the motor driver's microstep count (which may be important for the Z axis).<br />
<br />
== Check motor driver voltage/current ==<br />
<br />
The motor drivers should be powered while the machine is active, and current draw should be adequate for the given control inputs.<br />
<br />
A "power good" signal is generated using a zener diode and an optotransmitter in series. This allows a quick reaction when a fuse breaks.<br />
<br />
A more detailed voltage measurement is achieved with a voltage to PWM encoder, supplied by the measured voltage, isolated by an optotransmitter.<br />
<br />
The current is measured using a hall effect sensor and a voltage to PWM encoder.<br />
<br />
The current measurement is used to detect a broken connection to the motor behind the voltage sensor.<br />
<br />
== Check endstop switches ==<br />
<br />
When an endstop is hit, further movement in this direction should be stopped. A few steps might be acceptable for controlled deceleration.<br />
<br />
== Continuous position display ==<br />
<br />
The current position should always be displayed on a large display.<br />
<br />
== Zero position ==<br />
<br />
There should be a virtual zero position. When set, coordinate display becomes relative to this position.<br />
<br />
== Soft endstops ==<br />
<br />
There should be a way to set two positions on each axis to serve as the new min/max positions. The controller then reports the endstop as having been hit.<br />
<br />
== Input selection ==<br />
<br />
Control signals can be generated by internal controllers (Arduino compatible) or passed in from external interfaces. A switch interface allows selection of the signal source while the current source does not generate ENABLE signals and the emergency stop isn't active.<br />
<br />
== Spindle control ==<br />
<br />
The VFD controlling the spindle can be interfaced through RS-485. The controller should periodically poll the current speed for display and monitors error conditions.<br />
<br />
== Manual control ==<br />
<br />
A simple controller should be usable for quick commands as a separate input source.<br />
<br />
== Storage and communication ==<br />
<br />
The controller should provide SD card slots, Ethernet, USB, parallel and serial connections that can be connected to the internal controllers.<br />
<br />
= Implementation =<br />
<br />
The current state can be found on GitHub, at https://github.com/GyrosGeier/cnc.git .</div>SimonRichter