Skip to content

CartesianGSlinger

data-color-mode=“auto” data-light-theme=“light” data-dark-theme=“dark” data-a11y-animated-images=“system” data-a11y-link-underlines=“true”

<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-b39ad27f3538ace3.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-a33d805aa3bce2cb.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-9c8f61f9f58ad7b2.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-be05a7e2c0ccd82f.css" />
Cartesian-Gantry-Slinger/journal.md at main · firesareba/Cartesian-Gantry-Slinger · GitHub

<meta name="hovercard-subject-tag" content="repository:1171893472" data-turbo-transient>
<meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">
<meta name="user-login" content="">
<meta name="viewport" content="width=device-width">
<meta name="description" content="Contribute to firesareba/Cartesian-Gantry-Slinger development by creating an account on GitHub.">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">
<meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/firesareba/Cartesian-Gantry-Slinger/blob/main/journal.md" />
<meta name="twitter:image" content="https://opengraph.githubassets.com/5d8d6192755dc4a821e3f00c65868ad048a0c76c8d5823cd4260923935780103/firesareba/Cartesian-Gantry-Slinger" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="Cartesian-Gantry-Slinger/journal.md at main · firesareba/Cartesian-Gantry-Slinger" /><meta name="twitter:description" content="Contribute to firesareba/Cartesian-Gantry-Slinger development by creating an account on GitHub." />

<meta name="hostname" content="github.com">
<meta name="expected-hostname" content="github.com">
<meta name="turbo-cache-control" content="no-cache" data-turbo-transient>
<meta data-hydrostats="publish">

<meta name="turbo-body-classes" content="logged-out env-production page-responsive">
<meta name="release" content="d81e5ef035ea5218d2be3322c4950b97e6bd21fd" data-turbo-track="reload">
<div class="position-relative header-wrapper js-header-wrapper ">
<a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>
<span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9f5284db9e9c869f.module.css" />

<react-partial partial-name=“keyboard-shortcuts-dialog” data-ssr=“false” data-attempted-ssr=“false” data-react-profiling=“false”

<div class="position-relative HeaderMenu-link-wrap d-lg-inline-block">
<a
href="/login?return_to=https%3A%2F%2Fgithub.com%2Ffiresareba%2FCartesian-Gantry-Slinger%2Fblob%2Fmain%2Fjournal.md"
class="HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded px-2 py-1"
style="margin-left: 12px;"
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/firesareba/Cartesian-Gantry-Slinger/blob/main/journal.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="aa084cfbd0d369397a20375804aa28f1de7dfc7cb433962bc08b74c4a971d676"
data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to go to homepage&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Sign in;ref_loc:Header&quot;}"
>
Sign in
</a>
</div>
<a href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=firesareba%2FCartesian-Gantry-Slinger"
class="HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1"
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/firesareba/Cartesian-Gantry-Slinger/blob/main/journal.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="aa084cfbd0d369397a20375804aa28f1de7dfc7cb433962bc08b74c4a971d676"
data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show;ref_cta:Sign up;ref_loc:header logged out&quot;}"
>
Sign up
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
<button data-target="react-partial-anchor.anchor" id="icon-button-e0d0a0d2-6498-47a5-adbc-bd0c37a1e719" aria-labelledby="tooltip-d594d62b-2a0f-4aaa-934b-3f07ead50b85" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
Appearance settings
<template data-target="react-partial-anchor.template">
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9f5284db9e9c869f.module.css" />

<react-partial partial-name=“appearance-settings” data-ssr=“false” data-attempted-ssr=“false” data-react-profiling=“false”

</template>
</react-partial-anchor>
<button type="button" class="sr-only js-header-menu-focus-trap d-block d-lg-none">Resetting focus</button>
</div>
</div>
</div>
<div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
<svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
<button id="icon-button-7cf64c28-8aed-4a34-84b3-00b1ac589f95" aria-labelledby="tooltip-3d5ed7f5-2707-4d4d-bc96-a87df50c23cb" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
Dismiss alert
<div id="js-flash-container" class="flash-container" data-turbo-replace>
<div class="d-flex flex-nowrap flex-justify-end tmp-mb-3 tmp-px-3 tmp-px-lg-5" style="gap: 1rem;">
<div class="flex-auto min-width-0 width-fit">
<span class="author flex-self-stretch" itemprop="author">
<a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/firesareba/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/firesareba">
firesareba

/ Cartesian-Gantry-Slinger

<span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span>
</div>
<div id="repository-details-container" class="flex-shrink-0" data-turbo-replace style="max-width: 70%;">
<ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
  • Notifications You must be signed in to change notification settings
  • Fork 0
  • </div>
    </div>
    <div id="responsive-meta-container" data-turbo-replace>
    <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 tmp-px-3 px-md-4 tmp-px-md-4 px-lg-5 tmp-px-lg-5">

    <react-app app-name=“code-view” initial-path=“/firesareba/Cartesian-Gantry-Slinger/blob/main/journal.md” style=“display: block; min-height: calc(100vh - 64px);” data-attempted-ssr=“true” data-ssr=“true” data-lazy=“false” data-alternate=“false” data-data-router-enabled=“true” data-react-profiling=“false”

    Latest commit

     

    History

    History
    65 lines (41 loc) · 5.92 KB

    File metadata and controls

    65 lines (41 loc) · 5.92 KB

    🛠️ Project: Cartesian Gantry Slinger

    Made by: @firesareba // simha saraswati
    Repository: Cartesian-Gantry-Slinger
    Total Time Invested: 42 Hours

    • I have a 3D printer

    📅 2/27 - 3/1

    Time: 8 Hrs

    RESEARCH: > Well, this time was just a lot lot lot lot lot of research. I was origianlly planning a flying gantry, then a weird thing where the toolhead alone drops down for the z, then I settled on this. The main purpose of having it like this is so the bed stays stationary, so tall or heavy prints arent messed up by sudden movements. In this research, i mainly used AI (ai helped a lot when making this printer), namely Gemini 3 Flash in Google AI Studio. Other resources include some videos, my favorite of which is this one: https://www.youtube.com/watch?v=yuAN5AzEWCg. Other useful resources are McMasterCarr (LIFESAVER)/


    📅 3/9

    Time: 7 Hrs

    I hopefully finished most of the Y axis. It uses belts as the drive with linear rails as guides. In this kind of printer it moves the entire XZ gantry across the Y axis instead of the bed. I might change the size of the bed (140mmx140mm) later if I have space.

    Screenshot 2026-03-09 at 2 01 20 PM

    📅 3/12

    Time: 8 Hrs

    Today I finished the Z axis, which basically uses lead screws with 2 nema 17 pancakes moving it up and down. I first designed a custom mount which goes onto the MGN12H of the Y axis and attatches to the belt with the loop and ziptie method (I was originally planning to use the more simple passenger belt but apparently that sucks), even then, its technically compatible with both methods so yeah. It has nema 17 pancake and a 2020 extrusion on it (IDK if i will buy a machined one or a printed one, whichever is cheaper). I used lead screws witha flange nut to hold the x axis while having it all connected to MGN12H rails (i use a lot of these rails in this project). I made this journal AFTER I also finished part of the x axis so thats why its like that. U can see how it moves in the mp4 video in the repo.

    Screenshot 2026-03-09 at 2 01 20 PM


    📅 3/14

    Time: 4 Hrs

    Ok, today was the easiest, the X axis was really easy, i mean its close to done, i still need the toolhead stuff. All i did was design a mount for the flange nut and the MGN12H that goes up and down with the z axis. Then i put another MGN12H rail (i promise its the last one) across it bridging the 2 mounts together for a unified x axis (im using the rail as a structure to reduce weight). Then i mounted a nema 17 pancake motor to one end of the axis and a idler pulley to the other end creating a belt system, which when i design toolhead, will be another loop and fasten belt drive. You can see how it looks on the picture before, and i will provide a close look in a video after when the whole printer is finished,


    📅 3/15

    Time: 7 Hrs

    Today was by far the most PAINFUL DAY out of all of them. The one where i designed the toolhead. GOSH the amount of BRAINCELLS i lost doing this was insane. The gist of it is that a plate connects to the belt for movement, which is connected the the BMG extruder, which also has a Nema 17 Pancake attatched to it. Then i thought i was done, then i realized i needed the fucking blower fan (OK) but also the bed leveling sensor. the amount of braincells i lost for this single thing was insane, i never want to do ts again. the mounting was so annoying. But ay, atleast this is finished (hopefully lol). Now I have to do everything else, and i will be done with design.

    image

    📅 3/16-3/17

    Time: 8 Hours

    Yesterday and today was pretty basic, although it was a lot of work. Basically what i worked on is mounting components like bed, SKR Mini, and worked on the bom. Overall it was pretty simple. The reason it was much simpler is because the build plate is stationary, meaning I can use a really basic mounting system and done need a complex one, (I used a screw clamp). The biggest pain was the BOM, i did NOT anticipate how expensive MGN12h rails are :_(, I had to cost cut in many ways, including replacing some extrusions with printed ones, using a old latpop to run klipper instead of a pi zero, and other measures, but it all worked out in the end :D! Hopefully it gets aproved and I can go to RMRRF!!!! :D :D :D :D :D.

    This could be important: on Aliexpress, you CAN buy dollar express items on their own as a normal choice item. Just scroll to the bottom the the item (dont click add to my picks) and copy item link, then paste it and u got the actual item!!!

    Screenshot 2026-03-17 221811 Screenshot 2026-03-17 221807

    Screenshot 2026-03-17 221758

    Screenshot 2026-03-17 221752 Screenshot 2026-03-17 221741 Screenshot 2026-03-17 221734 Screenshot 2026-03-16 163949
    </main>
    <footer class="footer tmp-pt-7 tmp-pb-6 f6 color-fg-muted color-border-subtle p-responsive" role="contentinfo" >

    Footer

    © 2026 GitHub, Inc.
    <nav aria-label="Footer">
    <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>
    <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
    </li>
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
    </li>
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
    </li>
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
    </li>
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
    </li>
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
    </li>
    <li class="mx-2">
    <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
    </li>
    <li class="mx-2" >
  • </ul>
    </nav>
    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
    data-locale="en"
    data-initial-cookie-consent-allowed=""
    data-cookie-consent-required="false"
    ></ghcc-consent>
    <template id="site-details-dialog">
    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
    <template id="snippet-clipboard-copy-button">
    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>