Hi there!
I’m looking into getting myself a good printer and I am wondering if I need to install some platform-specific drivers for them to run. I am running Debian 12 (GNU/Linux) and I am afraid that I must run some proprietary blob to connect to the printer.
Could someone share their experience please? Even if you don’t use Linux, your feedback would be very appreciated!
(Also, while you are at it, please share some recommendations for printers, I don’t really know where to go (>v<) Have about ±500€ )
On most printers, the files are either uploaded over WiFi through a web browser or transferred with a flash drive. As long as the slicer runs on your computer, you will be able to print. There are a lot of open source slicers for FDM printers than run on Linux.
Try to run something like fusion360 or freecad to see if your device can handle those, they will come in handy once you’re ready for them.
I just use Blender. Any advantage to using FreeCAD?
Blender is more of an artistic tool. Not great at creating precise geometry. Tools like freecad make it much easier to create functional parts where the geometry matters. They are also easier to edit and adjust things after the fact as they tend to be parameterized - letting you update a value to update the model.
But they are terrible at more artistic things like miniatures or figurines or more organic shapes which is where blender shines.
So it really depends on what you are trying to create. But for a lot of people using 3d printers (which I believe tend to create more functional than atheistic prints - at least from designs they have created themselves) tools like freecad tend to serve them better then tools like blender.
Blender can absolutely be great at creating precise geometry, one just needs to know how to properly use the tool. Yes, the workflow will be much different than in other CAD, but principally, Blender is just as good as any other, or even better due to a more extensive development history and greater degree of maturity.
It has its strength. The downside to blender is it’s geometry based unlike Fusion and others that are parametric.
Where this shines, for example, is when you’re defining a circle with a given radius. If it’s 4mm in a cad program and you export to STL it will be polygon based. But you can adjust the density of the export and, if you need to, scale your cad up 200%, 300%, etc and export again. Always resulting in the closest approximation of that circule in the stl or export. This way you don’t lose any fidelity. Blender does have some great tools for interpolating points in a mesh so it’s not useless either.
The best analogy I can think of is raster and vector. Doubling the size of a vector doesn’t result in aliasing. But, likewise, doing a high quality image of something photorealistic is not great on vector.
I use Fusion for cad modeling. The parametric design workflow allows me to adjust measurements, etc and have them show downstream, etc. But if I’m going to import something that’s already an 3d model I’ll use blender and mesh mixer to cleanup the model first.
I’ve also used just blender when using game assets to pose a model before exporting to a mesh for use in a slicer. Since, again, it’s the tool for the job.
I have a Sovol SV06, which normally uses an SD Card but I flashed Klipper on it and connected a Rasperry Pi to it (which is connected to my network via ethernet) and now I also have a web interface and can just upload the files and start the print from there.
Since it’s using the Raspberry Pi instead of the built-in microcontroller for all the calculations, it’s also a lot more accurate.
Ok, so a vast majority of 3d printers do not connect directly to a PC these days. They have a self contained microcontroller.
The workflow is:
- You design or download a 3D model you want to to print.
- Open the 3D model in a slicer software. The slicer takes a 3D model and, using a profile designed for a specific printer’s nozzle size and controller, converts the solid volume of the model into G-Code, or machine readable code that is a series of coordinates and move rates. This tells the printer where and how to put plastic.
- Export the G-code to a .gcode (or other) file. Save that file onto an SD card.
- Put the SD card in your printer.
- Select the file on the printer display and away you go.
Now, some printers use a network connection component, eg Bambu printers have a wifi adapter. This let’s them download firmware updates and receive print jobs from a computer remotely without needing to move SD cards. This does require the right software, e.g Bambu printers require proprietary Bambu Studio (or it’s open source fork OrcaSlicer) that has the networking module to talk to it. This doesn’t require special driver setup though.
Prusa is a very FOSS-friendly manufacturer. Their entire slicer and the firmware for all of their printers are free and open-source. And they make really high-quality 3D printers. With 500€ you should be able to get the Mini, though getting the larger flagship MK4S may pay off more in the long run.
+1 for prusa if you want to spend more and get something that just works with no fuss, if you’re wanting to go cheap&cheerful an Ender 3 will be a good option as well if you don’t mind the occasional bit of tinkering for about half the price, as it’s probably one of the most supported printers by the community and newer ones come with Auto bed leveling and half of the fancy stuff you had to add on back in the day.
I’d spend any money saved building/buying an enclosure and something to run octoprint with (Raspberry pi or a spare android phone)
Also going to throw my vote in for prusa. I’ve got a few printers, including a vivedino troodon and the prusa has worked it’s way into my default printer spot.
It’s not just the Foss prusa slicer, it’s everything else. All the parts can be purchased or printed, their instructions for assembly are really good, their support responds quickly when needed, etc…
If this hasn’t been thoroughly driven into the ground already by everyone else here…
Modern consumer 3D printers are self-contained, and do not require drivers for your computer, nor do they necessarily have to be connected to your computer at all. That definitely means no blobs. You can even run your printer with your PC powered off completely, or stick it in a room separate from your computers entirely. You might want to do either of the above because A) long print jobs can take approximately forever and you might want to let them run overnight, and B) they’re not exactly silent…
3D printers have an internal microcontroller and run what’s called “G-Code,” which (arguably in true UNIX/Linux tradition) is ultimately just a text file that’s even vaguely human readable that contains a set of specific instructions on how to move the print head around to create the object in question. G-Code is essentially just a program that your printer will run, and there are multiple ways in which to create it. How you get it to your printer is up to you: Most modern machines can be accessed over the network interface somehow, usually via a web browser, or you can just stick the files on a memory card or USB drive and chunk that into the printer physically.
The .gcode files you feed to your printer will be created by a piece of software called a “slicer,” which takes a 3D model and converts it into move instructions on a layer-by-layer basis (hence, “slicing”).
Whatever printer you buy will certainly come with its own slicer software, which may be lightly customized or not at all.
Nearly all slicer software is either open source or is derived from open source. The most notable and biggest name is probably Slic3r/Prusaslicer, which is open source, and is the basis of many manufacturer customized slicers such as Bambu’s OrcaSlicer, and Qidi’s QidiSlicer. Prusaslicer is available for Linux, and due to its ubiquity I recommend you start there.
You absolutely do not have to use the slicer your printer came with, and in fact you may not want to for various reasons. OS compatibility being one, and if your printer’s maker uses e.g. a customized version of Prusaslicer it is almost a certainty that their customized version is not based on the most recent version. If you don’t use the slicer software your machine came with you will have to configure Prusaslicer or whatever it is you decide to use for your machine, which is not as difficult as it sounds and basically just involves telling it that the physical maximum print volume of your machine is, where you expect the print head’s home position to be, how many extruders it has (probably just one), etc. The work has probably been done for you by someone else; you can get configurations for pretty much any machine from somebody on the internet somewhere.
You will also have to ensure that your slicer is spitting out G-Code in a format (or “flavor”) that your particular machine understands but that’s not a big deal these days considering basically every current consumer 3D printer can use Marlin G-Code.
I have only owned two printers personally, both Qidi machines: An original X-Plus, and now an X-Max 3. I’ve had great results with both. Qidi provides their own lightly customized version of Prusaslicer (see above) which they provide for Windows as well as Linux, but you can also just use Prusaslicer if you feel like it (see above again).
At the moment you can score an X-Plus 3 for $599 USD which is 536.95 EUR if Google is to be believed. I think this may be a good starting point for someone who wants a turnkey experience, a plug-in-and-use machine you can start printing with right away without a bunch of assembly, tuning, upgrading, fiddling, generalized nonproductive fucking around, nor dealing with Bambu’s proprietary bullshit. (You could spring for the X-Max 3 like mine if you want, but it’s physically enormous and probably overkill if you don’t absolutely need the larger build volume.) The Plus 3 and Max 3 are essentially the same except for size. The Plus/Max 3 are also fully enclosed machines with internal build chamber heaters and are thus ready to handle higher temperature and more exotic filaments right out of the box if ever you feel you would want to print in more than just PLA and PETG, again without having to mess with upgrades or aftermarket stuff. For instance my X-Plus 3 prints ABS and ASA pretty much just as easily as plain old PLA which is not something you can say about a lot of machines.
Most 3D printers are nothing like traditional paper printers and don’t need drivers, but require a program called a slicer to create the GCode that your 3D printer understands. Then the GCode file is transferred to the printer either via an SDcard or WiFi for printing.
There are several slicers (OrcaSlicer, PrusaSlicer ) that work reliably on linux. Please binge TeachingTech’s YouTube channel to get a better understanding of what 3D printing entails.
So there’s zero need to directly connect the pc to the printer. Usually there’s either a microsd or similar to plug in and load to print from that.
However, if you want to, Pronterface is a useful tool for providing command inputs via usb.
It gives you a basic gui to set temperature, manually move the print bead, some telemetry (real time temp charts,) and if you really felt like it… you can print small files across the usb (or push them to the sd and tell it to print from there. Though file transfer rate is usually dog-breath slow.)
Most usefully, it has a command line interface that allows you to send manual gcodes. This is very helpful for tuning and maintenance. (For example m851 will report XYZ offset, and you can set it with for example m851 z-2.47)
Or if you use UBL, create and store the g29 meshes (and if you add t to the command it’ll report values. For example g29 l0 t will load the mesh in slot 0, and report in the box.)
There’s a ton of useful g and m codes.
DON’T PANIC
There’s a massive wave of learning curve for 3D printing. It’s ABSOLUTELY subjective to the individual. So always keep in mind that you’re going to need to do almost all of it yourself.
The funny thing I experienced about the learning curve is how fun it is to ride the wave of “oh I understand now, let me try that… OMG what did I do?! Aaareggggg! Ok, I’ll try again tomorrow. Next week well wtf that was so easy. How did I not get that the first time?”
So the first thing to remember, not all printers provide a similar experience. You can end up with a model of the same filament and same size and to the naked eye, totally the same. But from different printers, could have black and white approaches and steps.
In general there’s a few programs that will let a PC directly connect to a 3D printer. It’s usually USB and manufacturers usually probably the drivers. If not any Linux system is gonna be able to talk to it. Windows is the one that might not talk to USB on a COM channel.
Direct connection is only needed in my case for upgrading the firmware. I have a Prusa MK3s Frankenstein. I have modified a bit of it.
Before I mod’d it took a bit to really tune it in. but now it’s really bulletproof and goes perfectly even after sitting for a while.
Remember to learn the basics for the printer you go with and then look at the mods
OP after I got my printer and got it printing (using a thumb drive for files for a bit) I setup a Raspberry PI running Octoprint on my network. Basically the printer hooks to the Pi and it serves as a print server of sorts. You can then send files to the Pi, configure it to watch your prints remotely (with a camera) and do some pretty cool things with it.
There are tons of videos on YouTube of course. Just something to think about.
Hey, that’s really cool! So with a VPN, I could steer this thing form anywhere! That ks for telling me.
There is actually an app that will let you remotely view and start/stop the printer without the use of the VPN.
My wife often works from home and is tech savvy so I have no problems running prints and checking in remotely and I often hear of others doing the same; however…
I would not recommend doing it without someone handy. Just my two cents. It’s not that someone could hack in - it’s that you are dealing with temps in the hundreds of degrees Celsius. While I don’t recall of these things catching fire, the thought that it could burn my house down has more than once crossed my mind.
As for printers the two go to’s for new 3d printers are Prusa and BambuLab .In this case Prusa doesn’t have anything to offer at this price range except for the mini which isn’t that good.
In the current market, you want a printer that runs Klipper. The system will typically include a web application that controls the printer (Fluidd, Mainsail, or Octoprint) running on an embedded RPi. You just access this through your browser, it’s not necessary to install anything on your PC.
You will need to install a slicer software. The slicer is sort of the equivalent of a document editor - it’s how you prepare the 3D file for printing. Your printer manufacturer will probably recommend or distribute a particular slicer, but the file format used for 3D printing (G-code) is an open standard published by NIST. Any slicer software can be used to output gcode for printing - you can use whatever you feel comfortable with.
Personally I reccomend Orca Slicer or SuperSlicer but there are many options.
By the way, the entire market of home 3D printers grew out of the RepRap project that started 20 years ago. The original project was open hardware and software, and so almost all of the software in use today is open because open source principles were the foundation of all of it. There are some companies in the field who keep their stuff proprietary, but frankly I avoid their products and consider them to be anathema to the 3D printing community.
So Indeed you can connect a 3d printer to a computer. But the conversation between them is limited to the comp sending the STL file to be printed. Thats it.
My practice is more strict though. I do not connect the 3d printer to the comp, nor to wifi. For security reasons. Its a device that can heat up and move fairly easily and none of the existing printers today have proper security measures.
And frankly its not necessary to connect a printer to a pc. Its a stand alone device that works perfectly fine as it is. You physically take the flash drive that contains STL files only in text form and put It on the printer. Theres nothing easier than this in my opinion.
Unless of course you run a 3dprinting farm which is a different cass.
In some less common scenarios you may need the ftdi or ch34x drivers. Support for these is usually already in the kernel but if not the ftdi comes with the arduino sdk and the ch34x drivers are available
You would generally only need this for older or super cheap printers, and even then you would generally only need this if you need to reflash the firmware for some reason or refuse to print from an sd/usb. but don’t refuse to do that, even back in the days before wireless printers it was a dumb idea to print via usb