- Hardware & Machines
- Additive Manufacturing
- Considerations for LinuxCNC for a custom ender-3-based 3D printer
Considerations for LinuxCNC for a custom ender-3-based 3D printer
25 Jan 2022 02:32 - 25 Jan 2022 02:35 #233033
by kreyren
DISCLAIMER: I am Free Software and Free Hardware Designs developer -> I don't mind and expect engineering work so any relevant information to achieve this goal is appreciated.
I have Creality Ender 3 which i plan on completely rebuilding into a CoreXY to achieve 500mm/s (optimally +1000mm/s) printing speed.
GPIO
I assume that i will need 2 steppers per axis + extruder (7 axis in total?) with controls for extruder fan speed and bed heater (9 pins?).
Operating system
I want to use GNU Guix Nix/Linux with:
1. SSH - To be able to access the webcam and manage the printer remotely e.g. sending g-code instructions for fabrication
2. Tor Onion-routing - To be able to access the printer over onion-routing
I don't know how LinuxCNC works. Ideally let me know, if needed i can make packages for the used distribution.
Display
The printer currently has a blue single color LCD display with a knob input -> In my experience this is a helpful feature to monitor the build and make changes during the print so i would want to maintain this functionality, but i don't mind the printer without the display.
Expected development process
Initial
I want to start by converting the current Creality Ender 3 into a LinuxCNC
CoreXY mod
Once i can get LinuxCNC working reliably on the printer then i want to change it on CoreXY structure and add the additional stepper motors and ensure that LinuxCNC works as expected and optimize it for speed
The desired dimensions are 60x60x60 and up to 60x60x200 (cm)
Splicer
Expecting ability for the CNC to communicate with a splicer to change the color of the fillament on demand.
Heated Bed mod
For context Prusa printers use multiple heating elements on the heated bed to ensure that the heat is distributed evenly on a larger printing area, i want to adapt this functionality.
Changable head on demand
Expecting to have following heads:
1. 3D printing PLA
2. 3D printing TPU
3. 3D printing PVU (for supports that dissolve in the water)
4. 3D printing UV Resin (FDM)
5. Laser engraving
6. CNC drill
In current design each head should be changable by the printer that has, power, input and means of enumerization e.g. changing on CNC drill would use the input pin to control the speed of the drill and changing on 3D printer would use the input pin for the extruder
---
Question: How would i design the PCB for LinuxCNC on this workload and is there any list or recommendations of CPUs/SoCs that would be appropriate? e.g. is RISC-V capable of this workload? (any info that allows me to skip the research time appreciated)
I have Creality Ender 3 which i plan on completely rebuilding into a CoreXY to achieve 500mm/s (optimally +1000mm/s) printing speed.
GPIO
I assume that i will need 2 steppers per axis + extruder (7 axis in total?) with controls for extruder fan speed and bed heater (9 pins?).
Operating system
I want to use GNU Guix Nix/Linux with:
1. SSH - To be able to access the webcam and manage the printer remotely e.g. sending g-code instructions for fabrication
2. Tor Onion-routing - To be able to access the printer over onion-routing
I don't know how LinuxCNC works. Ideally let me know, if needed i can make packages for the used distribution.
Display
The printer currently has a blue single color LCD display with a knob input -> In my experience this is a helpful feature to monitor the build and make changes during the print so i would want to maintain this functionality, but i don't mind the printer without the display.
Expected development process
Initial
I want to start by converting the current Creality Ender 3 into a LinuxCNC
CoreXY mod
Once i can get LinuxCNC working reliably on the printer then i want to change it on CoreXY structure and add the additional stepper motors and ensure that LinuxCNC works as expected and optimize it for speed
The desired dimensions are 60x60x60 and up to 60x60x200 (cm)
Splicer
Expecting ability for the CNC to communicate with a splicer to change the color of the fillament on demand.
Heated Bed mod
For context Prusa printers use multiple heating elements on the heated bed to ensure that the heat is distributed evenly on a larger printing area, i want to adapt this functionality.
Changable head on demand
Expecting to have following heads:
1. 3D printing PLA
2. 3D printing TPU
3. 3D printing PVU (for supports that dissolve in the water)
4. 3D printing UV Resin (FDM)
5. Laser engraving
6. CNC drill
In current design each head should be changable by the printer that has, power, input and means of enumerization e.g. changing on CNC drill would use the input pin to control the speed of the drill and changing on 3D printer would use the input pin for the extruder
---
Question: How would i design the PCB for LinuxCNC on this workload and is there any list or recommendations of CPUs/SoCs that would be appropriate? e.g. is RISC-V capable of this workload? (any info that allows me to skip the research time appreciated)
Last edit: 25 Jan 2022 02:35 by kreyren. Reason: Added splicer
Please Log in or Create an account to join the conversation.
- ALittleOffTheRails
- Offline
- User is blocked
Less
More
- Posts: 247
- Thank you received: 65
25 Jan 2022 05:40 #233036
by ALittleOffTheRails
Replied by ALittleOffTheRails on topic Considerations for LinuxCNC for a custom ender-3-based 3D printer
So you want to design something like a Orange Pi, RPi or BBB from scratch to run Linuxcnc and have the included hardware on board to talk to the printer ?
Or are you looking just designing a driver board to connect to a PC or RPi.
As far as I am aware Linuxcnc only builds for x86 & ARM platforms, porting to another platform could be a huge task, dpending on your "Black Magic" skills.
Have you seen Remora, which is an attempt to repurpose (new firmware for the stm32 MCU) 3D Printer boards to talk with Linuxcnc running on an Rpi 4 over an spi interface.
forum.linuxcnc.org/18-computer/42276-rem...oller-via-spi#206114
How do you envision a Resin FDM printer working ? Or have you got things mixed up ? Or just a typo ?
Or are you looking just designing a driver board to connect to a PC or RPi.
As far as I am aware Linuxcnc only builds for x86 & ARM platforms, porting to another platform could be a huge task, dpending on your "Black Magic" skills.
Have you seen Remora, which is an attempt to repurpose (new firmware for the stm32 MCU) 3D Printer boards to talk with Linuxcnc running on an Rpi 4 over an spi interface.
forum.linuxcnc.org/18-computer/42276-rem...oller-via-spi#206114
How do you envision a Resin FDM printer working ? Or have you got things mixed up ? Or just a typo ?
Please Log in or Create an account to join the conversation.
- tommylight
- Online
- Moderator
Less
More
- Posts: 19011
- Thank you received: 6371
25 Jan 2022 14:04 #233066
by tommylight
Replied by tommylight on topic Considerations for LinuxCNC for a custom ender-3-based 3D printer
Adding to previous:
-CoreXY does not require 2 motors per axis,
-500 to 1000mm printing speed is fast, damn fast, so does call for high voltage stepper drives (not an issue for big printers), wider belts for any size over 250mm (BTW steel reinforced belts are no good for corexy due to tight bends), heavy base or bolting the printer to a wall, some sort of high flow hotend as most existing ones can not keep up for long (the ones on youtube do very thin layers at those speeds), etc etc.
Sectored heated bed is easy from the software/control side, given enough PWM outputs and analog inputs, each section needs it's own thermistor and PID loop. Also implementing the option to use only the sections being printed on should be doable.
-SSH - any Linux can do SSH
-TOR - ...not even asking
-
-Remora also does ethernet now
-splicer and tool changes should also be doable.
-
-assuming you know about klipper...
-CoreXY does not require 2 motors per axis,
-500 to 1000mm printing speed is fast, damn fast, so does call for high voltage stepper drives (not an issue for big printers), wider belts for any size over 250mm (BTW steel reinforced belts are no good for corexy due to tight bends), heavy base or bolting the printer to a wall, some sort of high flow hotend as most existing ones can not keep up for long (the ones on youtube do very thin layers at those speeds), etc etc.
Sectored heated bed is easy from the software/control side, given enough PWM outputs and analog inputs, each section needs it's own thermistor and PID loop. Also implementing the option to use only the sections being printed on should be doable.
-SSH - any Linux can do SSH
-TOR - ...not even asking
-
-Remora also does ethernet now
-splicer and tool changes should also be doable.
-
-assuming you know about klipper...
Please Log in or Create an account to join the conversation.
29 Jan 2022 20:04 #233477
by kreyren
Replied by kreyren on topic Considerations for LinuxCNC for a custom ender-3-based 3D printer
> So you want to design something like a Orange Pi, RPi or BBB from scratch to run Linuxcnc and have the included hardware on board to talk to the printer ? -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
The projected end-goal is to have a custom PCB with preferably libre CPU where i am leaning towards RISC-V and rockchip, but currently i want to go through the path of least resistance so i think that using RPi, Rock64, etc.. is sane assuming that it has enough of GPIO pins?
> Or are you looking just designing a driver board to connect to a PC or RPi. -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
Assuming that "Driver board" is board that runs the OS and expects connection to pins:
I like the idea of a modular design PCB that allows me to just use a CNC module that just snaps on the driver board so that the invidual modules can be changed on demand
e.g. changing the driver board to upgrade the CPU while keeping the original CNC module on the new driver board.
> As far as I am aware Linuxcnc only builds for x86 & ARM platforms, porting to another platform could be a huge task, dpending on your "Black Magic" skills. -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
In general porting to another platform is not a problem for me depending on how the software is written.
> Have you seen Remora, which is an attempt to repurpose (new firmware for the stm32 MCU) 3D Printer boards to talk with Linuxcnc running on an Rpi 4 over an spi interface.
> forum.linuxcnc.org/18-computer/42276-rem...oller-via-spi#206114 -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
So if i understand correctly finishing the firmware would allow me to connect RPi running Linux CNC to the PCB used by ender3 ? Or would i have to use a 3rd party PCB?
> How do you envision a Resin FDM printer working ? Or have you got things mixed up ? Or just a typo ? -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
Not a typo, this is the closest i found on the subject: invidious.snopyta.org/watch?v=SSE2q_ejjKc
Basically the head extruding the resin similar to a syringe with it having a UV lights on the extruder head to harden it as in theory and my small scale testing this could in theory enable printing of +2500mm/s without supports as it's extruding a cold material that hardens faster in comparison to e.g. PLA to not require supports.
for the record i don't like how the presented version on the video works and i want to use my own design for it.
> -CoreXY does not require 2 motors per axis, -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
> -500 to 1000mm printing speed is fast, damn fast, so does call for high voltage stepper drives (not an issue for big printers), wider belts for any size over 250mm (BTW steel reinforced belts are no good for corexy due to tight bends), heavy base or bolting the printer to a wall, some sort of high flow hotend as most existing ones can not keep up for long (the ones on youtube do very thin layers at those speeds), etc etc.
i was told that it does to reduce the stress on the axis and to reliably achieve +500mm/s, any relevant info on the subject is appreciated i didn't yet run any tests to support this claim, but note the provided development process as i currently just have a very rough sketch and didn't yet do any prototyping and research into the design so any information provided will be revisited once i have the ender3 converted on linuxCNC and working reliably.
Few things:
- I'm mandated to use clear energy (solar panels and with solution to generate electricity from wind and water in works which are enforced by 3rd party that is capable of putting on a sanction e.g. Big Room, inc.) so i want to make the design as energy efficient as possible ideally with it's own battery management (e.g. stop the print and get into a sane state when the battery reaches critical level so that the print can resume once the power is restored).
- I want it to maintain a light weight so current abstract design is using 3D printed/injection molded structural parts with them slid into a socket that is bolted to the floor and wall so that the shaking from e.g. bridge gap filling doesn't shake with the whole printer where the heavy duty high voltage steppers seems like a bad idea as they are too powerful to introduce an oscillation and thus layer shifting? -> 2 smaller, significantly more economical steppers that seems to be more energy efficient would be a better option + them offset from each other should negate the oscilation to enable higher speed for bridging and gap filling?
In terms of hotend i was thinking about using a thick (10mm wide) fillament that then splits into a multiple strips where each goes into a separate head that is of different width so that the printer has the option to change the hotend in the real time by offsetting on XY axis to use a different head... i didn't yet though this through e.g. such splitting would make the fillament to extrude to all heads at the same time.. maybe using a bouden tube that goes to each head which extruder is e.g. 80mm wheel with a piston that can put pressure on relevant fillament lines to engage the extruding to reduce the complexity of GPIO?
overall i want to passivly upgrade the printer over the time and keep the modular design open-source so i think that sensible reserve of GPIO pins is sane?
> Sectored heated bed is easy from the software/control side, given enough PWM outputs and analog inputs, each section needs it's own thermistor and PID loop. Also implementing the option to use only the sections being printed on should be doable. -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
agree that it seems simple, but i am not yet sure about any complications with it.
> -SSH - any Linux can do SSH -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
Agree, just making sure that LinuxCNC doesn't interfiere with it as it is an important features.
> -TOR - ...not even asking -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
I use tor as VPN basically to mitigate (D)DoS attacks and preserve routing privacy.
> -assuming you know about klipper... -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
Like using a klipper on the ender-3 board to enable using RPi running LinuxCNC to send the signal over the sdcard?
The projected end-goal is to have a custom PCB with preferably libre CPU where i am leaning towards RISC-V and rockchip, but currently i want to go through the path of least resistance so i think that using RPi, Rock64, etc.. is sane assuming that it has enough of GPIO pins?
> Or are you looking just designing a driver board to connect to a PC or RPi. -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
Assuming that "Driver board" is board that runs the OS and expects connection to pins:
I like the idea of a modular design PCB that allows me to just use a CNC module that just snaps on the driver board so that the invidual modules can be changed on demand
e.g. changing the driver board to upgrade the CPU while keeping the original CNC module on the new driver board.
> As far as I am aware Linuxcnc only builds for x86 & ARM platforms, porting to another platform could be a huge task, dpending on your "Black Magic" skills. -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
In general porting to another platform is not a problem for me depending on how the software is written.
> Have you seen Remora, which is an attempt to repurpose (new firmware for the stm32 MCU) 3D Printer boards to talk with Linuxcnc running on an Rpi 4 over an spi interface.
> forum.linuxcnc.org/18-computer/42276-rem...oller-via-spi#206114 -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
So if i understand correctly finishing the firmware would allow me to connect RPi running Linux CNC to the PCB used by ender3 ? Or would i have to use a 3rd party PCB?
> How do you envision a Resin FDM printer working ? Or have you got things mixed up ? Or just a typo ? -- ALittleOffTheRails (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233036)
Not a typo, this is the closest i found on the subject: invidious.snopyta.org/watch?v=SSE2q_ejjKc
Basically the head extruding the resin similar to a syringe with it having a UV lights on the extruder head to harden it as in theory and my small scale testing this could in theory enable printing of +2500mm/s without supports as it's extruding a cold material that hardens faster in comparison to e.g. PLA to not require supports.
for the record i don't like how the presented version on the video works and i want to use my own design for it.
> -CoreXY does not require 2 motors per axis, -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
> -500 to 1000mm printing speed is fast, damn fast, so does call for high voltage stepper drives (not an issue for big printers), wider belts for any size over 250mm (BTW steel reinforced belts are no good for corexy due to tight bends), heavy base or bolting the printer to a wall, some sort of high flow hotend as most existing ones can not keep up for long (the ones on youtube do very thin layers at those speeds), etc etc.
i was told that it does to reduce the stress on the axis and to reliably achieve +500mm/s, any relevant info on the subject is appreciated i didn't yet run any tests to support this claim, but note the provided development process as i currently just have a very rough sketch and didn't yet do any prototyping and research into the design so any information provided will be revisited once i have the ender3 converted on linuxCNC and working reliably.
Few things:
- I'm mandated to use clear energy (solar panels and with solution to generate electricity from wind and water in works which are enforced by 3rd party that is capable of putting on a sanction e.g. Big Room, inc.) so i want to make the design as energy efficient as possible ideally with it's own battery management (e.g. stop the print and get into a sane state when the battery reaches critical level so that the print can resume once the power is restored).
- I want it to maintain a light weight so current abstract design is using 3D printed/injection molded structural parts with them slid into a socket that is bolted to the floor and wall so that the shaking from e.g. bridge gap filling doesn't shake with the whole printer where the heavy duty high voltage steppers seems like a bad idea as they are too powerful to introduce an oscillation and thus layer shifting? -> 2 smaller, significantly more economical steppers that seems to be more energy efficient would be a better option + them offset from each other should negate the oscilation to enable higher speed for bridging and gap filling?
In terms of hotend i was thinking about using a thick (10mm wide) fillament that then splits into a multiple strips where each goes into a separate head that is of different width so that the printer has the option to change the hotend in the real time by offsetting on XY axis to use a different head... i didn't yet though this through e.g. such splitting would make the fillament to extrude to all heads at the same time.. maybe using a bouden tube that goes to each head which extruder is e.g. 80mm wheel with a piston that can put pressure on relevant fillament lines to engage the extruding to reduce the complexity of GPIO?
overall i want to passivly upgrade the printer over the time and keep the modular design open-source so i think that sensible reserve of GPIO pins is sane?
> Sectored heated bed is easy from the software/control side, given enough PWM outputs and analog inputs, each section needs it's own thermistor and PID loop. Also implementing the option to use only the sections being printed on should be doable. -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
agree that it seems simple, but i am not yet sure about any complications with it.
> -SSH - any Linux can do SSH -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
Agree, just making sure that LinuxCNC doesn't interfiere with it as it is an important features.
> -TOR - ...not even asking -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
I use tor as VPN basically to mitigate (D)DoS attacks and preserve routing privacy.
> -assuming you know about klipper... -- tommylight (forum.linuxcnc.org/additive-manufacturin...ed-3d-printer#233066)
Like using a klipper on the ender-3 board to enable using RPi running LinuxCNC to send the signal over the sdcard?
Please Log in or Create an account to join the conversation.
- Hardware & Machines
- Additive Manufacturing
- Considerations for LinuxCNC for a custom ender-3-based 3D printer
Time to create page: 0.071 seconds