{"id":4292,"date":"2023-01-06T17:18:00","date_gmt":"2023-01-06T22:18:00","guid":{"rendered":"https:\/\/jimsghost.place\/?p=4292"},"modified":"2024-12-28T18:02:28","modified_gmt":"2024-12-28T23:02:28","slug":"doomsun-preparation-stage-en","status":"publish","type":"post","link":"https:\/\/jimsghost.place\/?p=4292","title":{"rendered":"DOOMSUN E32-FNC: Preparation stage"},"content":{"rendered":"\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-19e250f3 wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-right has-custom-ink-color has-text-color has-link-color wp-elements-0fdef781322422c527e508d9f73fcaa1\"><em>&#8220;In seeking the mystery of every tiny detail<\/em><\/p>\n\n\n\n<p class=\"has-text-align-right has-custom-ink-color has-text-color has-link-color wp-elements-7edab1269b9bbcd9cf6a56a42e769bd5\"><em>one can discover something truly beautiful.&#8221;<\/em><\/p>\n\n\n\n<p class=\"has-text-align-right has-x-small-font-size\">&#8212; Aristides: <em>The Path to Harmony of the Parts<\/em><\/p>\n<\/div>\n\n\n\n<!--more-->\n\n\n\n<p>The entire project was divided into several stages and stretched over an indeterminate number of months. There was no reason to rush, so each stage was carried out as meticulously and thoroughly as possible. This part of the story focuses on the very first stage \u2014 the preparatory one.<\/p>\n\n\n\n<p>This preparatory stage could very well have been the last, as its results alone would determine whether it was worth spending even a single cent or minute of time on the project moving forward or whether it would be better to abandon the idea and redirect resources to something else.<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image alignright size-medium is-resized\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c-640x366.webp\" alt=\"\" class=\"wp-image-751\" style=\"aspect-ratio:1;object-fit:cover;width:250px\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c-640x366.webp 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c-1024x585.webp 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c-768x439.webp 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c-1536x878.webp 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.11.08-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-modern-workbench-where-a-wide-variety-of-c.webp 1792w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<p>According to the overall plan, it was necessary to turn the existing pile of aluminum into something resembling a kit, from which a new machine could later be assembled. In addition, it was essential to create accompanying technical documentation: to determine what kind and how many fasteners were needed, to have a complete list of all parts with their dimensions (in case new ones needed to be manufactured), and to outline the assembly order, among other things.<\/p>\n\n\n\n<p>The task was to completely disassemble everything, simultaneously identifying what required replacement, what could be repaired, and what could be reused as is. This also included attempting to correct as much as possible the consequences of poorly executed work, metaphorically referred to as the handiwork of &#8220;clumsy-handed Chinese.&#8221; In essence, this meant performing a thorough exorcism so that, literally, not even a trace of their influence would remain near the machine.<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image alignleft size-medium is-resized\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr-640x366.webp\" alt=\"\" class=\"wp-image-754\" style=\"aspect-ratio:1;object-fit:cover;width:250px\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr-640x366.webp 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr-1024x585.webp 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr-768x439.webp 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr-1536x878.webp 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/DALL\u00b7E-2024-08-17-09.24.23-A-photorealistic-image-with-an-aspect-ratio-of-16_9-high-resolution-and-high-detail.-The-scene-features-a-close-up-of-a-futuristic-CNC-machine-contr.webp 1792w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<p>Next, during this stage, it was necessary to select a control system for the machine. This included deciding which controller would manage everything, which motor drivers to use, what type of power supply was needed, and so on. These decisions needed to be addressed at a theoretical level during this stage in order to understand the direction of development.<\/p>\n\n\n\n<p>There is a significant difference between flashing GRBL firmware onto an Arduino and using an onboard microcomputer with LinuxCNC or something similar. The choice of control system would determine the set of components required, as well as the scale of the effort, time, and financial investment needed.<\/p>\n\n\n\n<p>Based on the results of all the operations described above, a detailed list of necessary components, spare parts, and fasteners would need to be compiled for procurement or further consideration.<\/p>\n\n\n\n<p>The final outcome of this stage would involve making a decision about the project&#8217;s future. If it turned out that the set of surviving parts accounted for approximately 60-70% of the project&#8217;s requirements, it would make sense to proceed. If less, the project would head to the morgue as a source of spare parts and materials for other endeavors.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>The entire process unfolded as follows\u2026 A component assembly &#8220;on the surface,&#8221; meaning one that was easiest to access, was chosen. This assembly was completely disassembled into its individual parts. For example, the parts of the XY axis carriage:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015-640x480.jpg\" alt=\"\" class=\"wp-image-3318\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015-640x480.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015-1024x768.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015-768x576.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015-1536x1152.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_015.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>\u0414\u0435\u0442\u0430\u043b\u0438 \u043e\u0447\u0438\u0449\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0439 \u043a\u0440\u0430\u0441\u043a\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412\u0441\u0435 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u044f \u0437\u0435\u043d\u043a\u0443\u044e\u0442\u0441\u044f, \u0441\u043e \u0432\u0441\u0435\u0445 \u043a\u0440\u043e\u043c\u043e\u043a \u0441\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0441\u043a\u0438, \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0448\u043b\u0438\u0444\u0443\u044e\u0442\u0441\u044f \u0438 \u0442.\u043f. \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0432\u0441\u0435 \u0440\u0435\u0437\u044c\u0431\u044b \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u043f\u0440\u043e\u0447\u0438\u0449\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u0435\u0442\u0447\u0438\u043a\u0430. <\/p>\n\n\n\n<p>Each part was cleaned of old paint and repaired if possible. All holes were countersunk, all edges were beveled, surfaces were sanded, and so on. Every single threaded hole in the parts was cleaned with a new tap.<\/p>\n\n\n\n<p>In some particularly problematic cases, threaded holes had to be drilled out to a larger diameter and restored using <em>coil inserts<\/em> or <em>helicoil thread inserts<\/em> (see Google and YouTube for details):<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image aligncenter size-medium is-style-rounded\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"344\" data-id=\"758\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416-640x344.png\" alt=\"\" class=\"wp-image-758\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416-640x344.png 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416-1024x551.png 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416-768x413.png 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416-1536x826.png 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/Screenshot-2023-06-21-102416.png 1602w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/hq720.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"360\" data-id=\"772\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/hq720-640x360.jpg\" alt=\"\" class=\"wp-image-772\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/hq720-640x360.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/hq720.jpg 686w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/C1918x959086-S543-FJPG.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"543\" height=\"272\" data-id=\"770\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/C1918x959086-S543-FJPG.jpeg\" alt=\"\" class=\"wp-image-770\"\/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>This method made it possible to fix most of the misaligned holes and poorly cut threads.<\/p>\n\n\n\n<p>Unfortunately, not much could be done about holes that were drilled off-mark. However, this was not a major issue since the clumsy monkey that created these parts apparently drilled the mating parts &#8220;on the spot.&#8221; Consequently, the mating part had a similarly misaligned hole, so everything \u2014 more or less \u2014 fit together in the end. As a result, nearly all parts were, grudgingly, deemed more or less acceptable after repair and restoration \u2014 though a heavy sense of disappointment lingered.<\/p>\n\n\n\n<p>At the same time, a 3D model was created for each part, with dimensions taken directly from the physical component.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" data-id=\"3321\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top-640x366.jpg\" alt=\"\" class=\"wp-image-3321\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top-640x366.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top-1024x586.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top-768x440.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top-1536x879.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-top.jpg 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" data-id=\"3319\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base-640x366.jpg\" alt=\"\" class=\"wp-image-3319\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base-640x366.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base-1024x586.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base-768x440.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base-1536x879.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-base.jpg 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" data-id=\"3320\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom-640x366.jpg\" alt=\"\" class=\"wp-image-3320\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom-640x366.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom-1024x586.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom-768x440.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom-1536x879.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/part_axisX_carrier-front-bottom.jpg 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>The 3D models of all parts were then assembled into a single digital structure with all necessary fasteners. Bolts, nuts, washers \u2014 everything was modeled exactly as it should be in reality. Fortunately, modern CAD software eliminates the need to manually draw all the fasteners \u2014 they can simply be taken from a standard library and automatically added to the project:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-640x366.jpg\" alt=\"\" class=\"wp-image-3322\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-640x366.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-1024x586.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-768x440.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-1536x879.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier.jpg 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Later, these subassemblies were combined into the final structure using the same principle:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front-640x366.jpg\" alt=\"\" class=\"wp-image-3324\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front-640x366.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front-1024x586.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front-768x440.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front-1536x879.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front.jpg 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>With just a single click, I can now generate a complete list of every single component that makes up the machine, including the number and type of bolts required.<\/p>\n\n\n\n<p>Similarly, assembly diagrams are almost automatically generated, showing which part connects to which and which screw goes where:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings-640x366.png\" alt=\"\" class=\"wp-image-3325\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings-640x366.png 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings-1024x586.png 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings-768x440.png 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings-1536x879.png 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/sas_axisX_carrier-front_drawings.png 1677w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Piece by piece, a sort of kit for assembling the machine came together. It included a detailed description of all components and fasteners:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025-640x311.jpg\" alt=\"\" class=\"wp-image-3327\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_025.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3328\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027-640x311.jpg\" alt=\"\" class=\"wp-image-3328\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_027.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3329\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026-640x311.jpg\" alt=\"\" class=\"wp-image-3329\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-02-04_026.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>The next step was to integrate electronics into the project. At this stage, the actual control block didn\u2019t need to exist in its physical form yet. However, it was crucial to have a clear understanding of what it would look like and what components would be required.<\/p>\n\n\n\n<p>Yes, of course, I already had a ready-made setup lying around, based on Arduino Uno board:<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3332\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002-640x311.jpg\" alt=\"\" class=\"wp-image-3332\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_002.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3331\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001-640x311.jpg\" alt=\"\" class=\"wp-image-3331\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2024-11-09_001.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Essentially, this was an almost complete controller, only lacking a power supply and motor wires. But\u2026 &#8220;Man, admit it, you didn\u2019t come here just to hunt,&#8221; as the bear would say (loosely quoting a famous phrase).<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>By the way, this wasn\u2019t the first robot I\u2019d built. I had plenty of devices in my projects where this setup could theoretically be used. Yet, it kept sitting in storage\u2026 probably for about ten years now. Every time I\u2019d take it out, dust it off, and after some deliberation and exploring alternatives, put it back. Such a useful and necessary setup\u2026 an incomplete relic of the past.<\/p>\n<\/blockquote>\n\n\n\n<p>At one point, I had the opportunity to work with a CNC machine controlled by LinuxCNC. A massive beast the size of a shed. And &#8220;it had a neon inside!&#8221; Meaning, just an ordinary &#8220;Raspberry Pi.&#8221; Not the standard Raspberry Pi but the Compute Module version. Still, fundamentally, it was just a regular Raspberry Pi.<\/p>\n\n\n\n<p>Sometimes, the inertia of thought plays cruel jokes on us. Following this inertia, all my ideas stubbornly revolved around the idea of running LinuxCNC on a Raspberry Pi. After all, I had plenty of those gathering dust in my stash as well.<\/p>\n\n\n\n<p>The problem, however, was that ready-made CNC &#8220;hats&#8221; for Raspberry Pi generally relied on low-power stepper motor drivers that were often mounted directly on the hat itself. For example:<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8f5ff1d71d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8f5ff1d71d\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"520\" height=\"520\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/raspberry-pi-cnc-board.jpg\" alt=\"\" class=\"wp-image-843\" style=\"aspect-ratio:4\/3;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/raspberry-pi-cnc-board.jpg 520w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/raspberry-pi-cnc-board-150x150.jpg 150w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Even worse, in many cases, the Raspberry Pi served merely as a &#8220;computer,&#8221; while an Arduino or similar device acted as the actual &#8220;controller&#8221; managing the motors:<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8f5ff1de86&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8f5ff1de86\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"471\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/20170731_170240-600x471-1.jpg\" alt=\"\" class=\"wp-image-846\" style=\"aspect-ratio:3\/2;object-fit:cover\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>But I\u2019d already had enough experience with low-power drivers. They\u2019re fine for something like a 3D printer, but not for a CNC router. Such drivers typically can\u2019t deliver enough power to the motors, causing missed steps when material resistance increases \u2014 and, well, you know how that ends.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>For this very reason, my mid-sized CNC machine for woodworking often struggled with anything harder than MDF panels or basic planks. If it was oak, it was game over! You\u2019d have to cut at a painfully slow pace with an extremely shallow depth per pass. The motors and spindle were fine \u2014 even the shortest Nema23 motors are beasts in terms of torque. But what\u2019s the point if the driver can only supply half the allowable current at best?<\/p>\n<\/blockquote>\n\n\n\n<p>Consequently, the idea of using high-power external motor drivers was embedded into this project from the very beginning.<\/p>\n\n\n\n<p>Finding a Raspberry Pi &#8220;hat&#8221; compatible with external drivers turned out to be quite the challenge! Strange as it may sound, that was the situation at the time. I scoured the entire Google search engine and came up nearly empty-handed. Occasionally, I\u2019d come across hats with additional outputs for external drivers, but they were either poorly designed, overly complicated, or incomplete.<\/p>\n\n\n\n<p>Sure, there was nothing stopping me from taking a standard hat designed for onboard drivers, rigging up &#8220;dummy plugs&#8221; with outputs for external drivers, and calling it a day. I could even design my own custom hat. That wouldn\u2019t have been too difficult either. But all of these felt like makeshift solutions, cobbled together with duct tape and wire. I wanted something\u2026 I wasn\u2019t sure exactly what\u2026 but something that worked seamlessly, out of the box. I was tired of piecing things together with spit and string. There was already enough of that in the mechanical part of the project.<\/p>\n\n\n\n<p>So, I kept mulling it over, swinging back and forth between the extremes of &#8220;GRBL on an Arduino&#8221; and &#8220;LinuxCNC on a Raspberry Pi,&#8221; as if nothing else existed in the world.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8f5ff1eb2c&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8f5ff1eb2c\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"563\" height=\"563\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/MK4-M4-CNC-4-AXIS-Mach4-motion-control-card-CNC-breakout-board-2000KHZ.jpg\" alt=\"\" class=\"wp-image-848\" style=\"aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/MK4-M4-CNC-4-AXIS-Mach4-motion-control-card-CNC-breakout-board-2000KHZ.jpg 563w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/MK4-M4-CNC-4-AXIS-Mach4-motion-control-card-CNC-breakout-board-2000KHZ-150x150.jpg 150w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-1a0eff7f wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Yes, I was aware of ready-made specialized &#8220;controller boxes&#8221; for CNC routers.<\/p>\n\n\n\n<p>However, these still required an external computer for control, and their prices\u2026 well, let\u2019s just say they weren\u2019t appealing. And internally, they weren\u2019t much different from &#8220;an Arduino with GRBL&#8221; \u2014 just with more hassle for a DIY enthusiast. I\u2019d dealt with such solutions in the context of industrial equipment and glanced at them as an option, but not too closely.<\/p>\n<\/div>\n<\/div>\n<\/blockquote>\n\n\n\n<p>These mental gymnastics came to an end one evening when I needed to tweak the firmware on one of the light switches in my house. We had a disagreement over what should count as &#8220;movement in the room&#8221; \u2014 or rather, the disagreement was between the switch and my cat\u2026 but that\u2019s beside the point.<\/p>\n\n\n\n<p>I had already transitioned all the controllers in my smart home to use the ESP32 microcontroller. And it was at this moment that the idea finally struck me: why not explore using the ESP32 as a controller for the CNC machine? In hindsight, it seemed like an obvious idea that should have occurred to me from the start. It\u2019s a shame how inertia and professional bias can blind you. Don\u2019t be a slave to it!<\/p>\n\n\n\n<p>Unsurprisingly, the very first Google searches led me to a GRBL port for the ESP32, and from there to a specialized branch called <a href=\"http:\/\/wiki.fluidnc.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">FluidNC<\/a>, which solved all my problems.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"http:\/\/wiki.fluidnc.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/fluidnc_logo-640x480.png\" alt=\"\" class=\"wp-image-3340\" style=\"aspect-ratio:16\/9;object-fit:contain\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/fluidnc_logo-640x480.png 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/fluidnc_logo-1024x768.png 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/fluidnc_logo-768x576.png 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/fluidnc_logo.png 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>First, there was already a ready-made board for FluidNC designed for use with external motor drivers (6 Pack 2.0 External):<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/oshwlab.com\/bdring\/6-pack-2-0_copy\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"445\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2RlFLGSQL4I9ItnmmWf4RHHkYfqUEP01FXDuPLsY-640x445.jpeg\" alt=\"\" class=\"wp-image-856\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2RlFLGSQL4I9ItnmmWf4RHHkYfqUEP01FXDuPLsY-640x445.jpeg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2RlFLGSQL4I9ItnmmWf4RHHkYfqUEP01FXDuPLsY-1024x712.jpeg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2RlFLGSQL4I9ItnmmWf4RHHkYfqUEP01FXDuPLsY-768x534.jpeg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2RlFLGSQL4I9ItnmmWf4RHHkYfqUEP01FXDuPLsY-1536x1069.jpeg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2RlFLGSQL4I9ItnmmWf4RHHkYfqUEP01FXDuPLsY.jpeg 1794w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>No need to search or invent new solutions. The author even sold these boards as fully assembled units, but at the time, they were out of stock. However, thanks to open source, the same author provided all the design files needed to order the boards from Chinese manufacturers with minimal effort.<\/p>\n\n\n\n<p>Second, FluidNC natively supported six axes. While I didn\u2019t need all six, I did need four. The ruins I was restoring came with an additional &#8220;A&#8221; axis:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1-640x311.jpg\" alt=\"\" class=\"wp-image-3333\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2022-12-29_008-1.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Originally, this axis could only be connected as a replacement for the &#8220;Y&#8221; axis. But that\u2019s absurd in today\u2019s world. Why &#8220;instead of&#8221; when you can have &#8220;together with&#8221;? Unfortunately, most hobbyist solutions for Arduino and Raspberry Pi only supported three axes. The same limitation applied to GRBL firmware \u2014 at least in its classic form at the time of this project. FluidNC, however, had no such problem out of the box, nor did the aforementioned board.<\/p>\n\n\n\n<p>Third, the ESP32 option tackled two tasks at once. It served as both the &#8220;controller&#8221; and the &#8220;computer&#8221; in a single package. It even offered remote control via WiFi or Bluetooth, along with an onboard server providing a direct web interface for managing the machine. Plus, it allowed for any other form of external control, if needed.<\/p>\n\n\n\n<p>The more I read about FluidNC, the more I liked it. I had no shortage of ESP32 boards of various versions scattered around my drawers \u2014 I didn\u2019t even need to get out of my chair. Before I even finished reading the firmware\u2019s wiki, it was already up and running:<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3334\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023-640x311.jpg\" alt=\"\" class=\"wp-image-3334\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_023.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"311\" data-id=\"3335\" src=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024-640x311.jpg\" alt=\"\" class=\"wp-image-3335\" srcset=\"https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024-640x311.jpg 640w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024-1024x498.jpg 1024w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024-768x374.jpg 768w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024-1536x747.jpg 1536w, https:\/\/jimsghost.place\/wp-content\/uploads\/2023\/01\/2023-01-27_024.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Completely plug-and-play, &#8220;one click,&#8221; just as I\u2019d hoped.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Outcome of the Preparatory Stage:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hardware<\/strong>: Check.<\/li>\n\n\n\n<li><strong>Fasteners<\/strong>: Check.<\/li>\n\n\n\n<li><strong>Control Block<\/strong>: Conditionally present.<\/li>\n\n\n\n<li><strong>Auxiliary electronic components<\/strong> (e.g., buttons and wires): Partially available, with the rest easy to acquire.<\/li>\n<\/ul>\n\n\n\n<p>The only major purchases left were new motors and a spindle. But there was no work involved there \u2014 just an online order and waiting for delivery to the doorstep. After that, it would simply be a matter of bolting them into place.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>My Friend involved in the project \u2014 the same one who had been pestering me about this machine for years \u2014 volunteered to take on the task of manufacturing the motherboard for the controller and the necessary modules. First, he meticulously checked all the schematics for errors and overall feasibility. The idea was that by the time he completed the electrical portion of the project, I would have finished restoring the mechanical part. Then, it would just be a matter of plugging everything together\u2026 And, by and large, that&#8217;s exactly how things turned out.<\/p>\n<\/blockquote>\n\n\n\n<p>With this setup, the project was given the &#8220;green light&#8221; by a majority vote in my head.<\/p>\n\n\n\n<p>Such are the things\u2026 <a href=\"\/?p=4329\">To be continued here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;In seeking the mystery of every tiny detail one can discover something truly beautiful.&#8221; &#8212; Aristides: The Path to Harmony of the Parts<\/p>\n","protected":false},"author":1,"featured_media":3302,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[279],"tags":[310,318,324],"class_list":["post-4292","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools-en","tag-machines-en","tag-cnc-en","tag-doomsun-en"],"featured_image_src":"https:\/\/jimsghost.place\/wp-content\/uploads\/2024\/11\/doomsun.jpg","author_info":{"display_name":"Jim","author_link":"https:\/\/jimsghost.place\/?author=1"},"_links":{"self":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/posts\/4292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4292"}],"version-history":[{"count":0,"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/posts\/4292\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=\/wp\/v2\/media\/3302"}],"wp:attachment":[{"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jimsghost.place\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}