thinking of digging into 3D printing, can i just add a head to my CNC router?

More
08 Nov 2021 19:08 #225710 by travis036
ok, some details about my machine here: forum.linuxcnc.org/show-your-stuff/40950...working-router-build
 
is a somewhat current picture...
the machine has a working area of about 40in X 40in X 3in. not much on the Z-axis, but i don't plan on printing much more than basic enclosures for projects, control panels, ect. in theory, i could make two halves for a total enclosure depth of 6in or so.
just trying to learn more about 3D printing.

so, before i spend any money on 3D printing hardware, can my machine do it? you know, flop the big spindle off, install the printing head, calibrate it, and go.
i have a copy of Slic3r, and figured out how to output LinuxCNC compatible code from Fusion360. so it is a matter of making the hardware and software config work with it.
here is the tiny bit i have learned, and what i plan to do with that knowledge, please correct if i am wrong. :)

hot-bed: a heated table for the first layer to stick to. not sure how to implement this... needs to be level to the head (for obvious reasons). thinking of using a thick table plate, with 3 fine-thread bolts to adjust leveling. i have a 24in square 1/4in plate of steel that could work for this. not sure how best to heat it. perhaps i could light a bonfire under it (only kidding... ;) )

extrusion head, aka hot-end: has a heater to heat the filament, much like a hot-glue gun has a stepper with a feed-wheel to advance the filament. and a fan to i assume cool the filament to prevent drips and strings common with a hot-glue gun.

now i know my machine is far less than ideal, but will it work enough for me to learn how to do it, so i can in the future build a better machine? i still want the machine able to convert back to a CNC router, with eventually a laser head as well, but that may not be needed (just a want).

how i "plan" to make the spindle removable, is to mount a fixed plate to the Z-axis box, and drill and tap it for he spindle mount bolts. the extruder head would be aligned with drilled holes, and alignment dowels that insert into the plate so the extruder can be aligned within reason.

as far as configuration, i can make a copy of my current, and edit it for 3D printing to include a 4th axis (A) for the extruder. for the M1xx codes, i will need to somehow create shell scripts to handle setting the bed temp, and head temp, and such.

am i on the right track? or should i abandon ship now, and learn much later when i "may" be able to afford a separate machine specific to 3D printing?

Thanks in advance for any help. :)

~Travis
Attachments:

Please Log in or Create an account to join the conversation.

More
08 Nov 2021 20:28 #225721 by tommylight
3d printers need at lesst 2 analog inputs for thermistors, although PLA and PETG can be printed without a heated bed, so 1 analog is usable.
Using and arduino should work with some workarounds.
The following user(s) said Thank You: travis036, Sadmeatball

Please Log in or Create an account to join the conversation.

More
08 Nov 2021 21:07 #225723 by travis036
i would be quite interested in how to use an arduino to read in the thermistors, back to LinuxCNC. or maybe i have that wrong, does LinuxCNC simply tell the arduino to set the head/bed to temperature n, and the arduino handles it? i would think the arduino simply reporting the temperature to a HAL pin would be easier, but i am sure i am wrong here ;)
the M1xx codes call a shell script. so what shell scripts should i create, and what should they do for each code?
looking at linuxcnc.org/docs/devel/html/gcode/m-code.html#mcode:m100-m199 i have some ideas, but not sure where to go with them.
I have attached a sample output from Slic3r in the attached file, as i have Slic3r configured...

~Travis
Attachments:

Please Log in or Create an account to join the conversation.

More
08 Nov 2021 22:58 #225728 by tommylight
I was thinking more in the line of LinuxCNC having a pin go high to arduino to turn heaters on, another pin from arduino to tell LinuxCNC it is OK to move when the temp is reached. PID and setpoint remain in arduino.
Another thing to be aware of, 3D printers need a very flat table, the first layer is always 0.2 to 0.3mm above the table, so any small bump will end up the nozzle, should be fixable by running a big end mill over the entire work area.
What about doing a separate build ? There is a 3D printer that is mostly ply wood, uses normal 608 bearings, so would end up quite cheap.
The following user(s) said Thank You: travis036, Sadmeatball

Please Log in or Create an account to join the conversation.

More
08 Nov 2021 23:40 #225735 by travis036
ok, i think i see where you are going with the Arduino. and if i absolutely have to set a temp, i could use a Arduino Mega and 8 pins from my 7i80HD-16 (i have several extra) to set a range broken down into 256 steps, and like you say, a feedback "at temperature" pin back to the Mesa. entirely doable, if i choose to go easy, or complicated ;) i could even have just 8 presets, and turn on the pin that matches that temperature setting, in case i run different materials (really, just guessing here). if i really go overboard, i think i remember something about sending data to a USB connected arduino being possible. but i understand what you say. it can be done easily with an arduino as the PID. once i figure out what works best at what temperature, i can program the arduino and just turn it on and off with a few pins.

I will have to check my steel plate for flatness... could i use thick glass for the surface? glass tends to look fairly flat.

as for a separate build, i just don't have the money for a second machine right now. it is one thing to add some parts to this machine. but another thing all together to build a new machine.
i will play with this idea for a while, make sure it will all work as i want, and then acquire parts as i can afford them.

for the hot bed, i am not finding much in the nature of something the size of my steel plate (24in square), so i am inclined to think i either need to think smaller (largest i found is 400mm square), or think about only printing with PLA or PETG.

~Travis

Please Log in or Create an account to join the conversation.

More
08 Nov 2021 23:55 #225736 by tommylight
Oh you have a Mega, so why not get a RAMPS and be done with it ?
Oh yeah, that would imply motor cable changes.....
Moving on, you really need 3 presets for PLA, PETG and ABS/HIPS (yes HIPS, a very nice and very neglected material in 3D printing, i print usable parts from it, end up very tough but a bit flexible if thin, not as much as PETG).
Thinking of it, i would ad a switch to change the drive inputs, that will be 6 to 9 pins in total from Mesa to Mega, leaving everything else as is. That way it is very simple to use and switch between them, yet totally independnt, and everything 3D related remains on the Mega,..... and use Klipper flashed on it and installed on a PC (no need for RPI3/4) ... I am sure i would choose this last route.

Please Log in or Create an account to join the conversation.

More
09 Nov 2021 00:01 #225738 by tommylight
Somehow i missed the bed part, do not bother with the existing bed, leave it as is.
Instead get some one sided circuit board = it has good adhesion and the copper side can be milled and used as a heater at the same time, just do not push it to much, easy to find and very cheap.
Or try to find the magnetic fabric used for car signage, here i get it for 9 Euro per 1X0.6 meter, so very cheap and works very, very well for PLA and PETG (maybe to well for PETG as printed at 55 degrees it does come off with parts of bed attached) and i print PLA on it at 30 to 35 degrees. It is also very flexible.

Please Log in or Create an account to join the conversation.

More
09 Nov 2021 10:48 #225800 by travis036
not really a route i was expecting... could be done though. all my machine connections are disconnectable, so in theory, i could swap cables over between the Ramps controller and the LinuxCNC controller, though to do that i would need to buy a second set of stepper drivers. i could take something like this: www.ebay.com/itm/363510493712 (looks fancy with the screen, but probably not necessary), and rather than the little stepper driver modules, i could breakout the step/direction/enable pins and connect them to the larger stepper drivers to handle my larger machine. and just use the little stepper modules for the filament feed stepper.

so it is possible, just not the direction i was planning on (using LinuxCNC). i may still find some way to use LinuxCNC, but Ramps is an interesting option to consider.

i found some comp and arduino code for a arduino based pendant that i could use to establish communication between LinuxCNC/HAL and an arduino for setting the actual temperature. i just have to figure out what each of the M1xx codes are supposed to do, so i know how to handle it. like in the gcode attached above, it has "M109 P205", that i interpret to set something at 205degC. so if i use the comp code to create a HAL pin to store the temp value, i can write to that value with a M1xx script, and the arduino will receive it, set the temp, and report back when up to temp with a pin going high. i can even use the same arduino and comp code to handle both the filament temperature and hot-bed temp, if it comes to that.

~Travis

Please Log in or Create an account to join the conversation.

More
09 Nov 2021 11:01 #225802 by tommylight
Maybe i was not clear, no RAMPS board, just Mega wuth the step/dir/enable pins switched to drives.
For heater control i use the "arduino servo motor drive 43A" or something like that, it is much better than RAMPS MOSFET's and it does not heat at all with a 60W hotend heater, costs about 4$. It also drives both heaters.

Please Log in or Create an account to join the conversation.

More
09 Nov 2021 21:55 #225883 by travis036
i think my Mesa 7i80HD-16 will control the steppers better than the Arduino Mega would. i am not looking for spectacular results, i just want to learn more about it, and taking a pre-packaged deal like RAMPS wont teach me as much.

so, looking up a 3d Printing M-code reference got me this: reprap.org/wiki/MCodeReference
it mentions "EmcRepStrap" so i got looking, and found: github.com/brendanjerwin/emcrepstrap which may turn out useful...
i also found: github.com/dewy721/EMC-2-Arduino which shows how to expose HAL pins to an arduino using Python.

or i may quit while i am ahead, nothing ventured, nothing gained, and nothing lost. i really thought it would be neat, 3D printing with LinuxCNC.

~Travis

Please Log in or Create an account to join the conversation.

Time to create page: 0.108 seconds
Powered by Kunena Forum