Hacker News new | ask | show | jobs
by j-pb 2435 days ago
I'm glad that prusa has stayed true to his open hardware pledge all these years, while continuing to push the reprap ideals.

Everybody is complaining about the price, but c'mon this thing is designed printed and assembled in Prague, the EU. It creates local jobs for people with fair wages, social security and good quality of life, we should strive to have more of our stuff produced in the west.

Happy to see him design another printer, I really love my MK3.

9 comments

The price seems fine to me. This is going to print a lot of useful parts for people and comes with great software for both your computer and the printer that you can hack and modify. If this is anything like my i3, then it's going to have high quality parts (Noctua fans!) and come in kit form to let you assemble it yourself so you know where everything is if something breaks and you need to repair it.

I am surprised that they switched to a more powerful microcontroller. While it is something Reddit endlessly complains about (despite having no software engineering experience), a lot of engineering is invested into their existing 8-bit platform which works perfectly fine. You don't need 32-bit pointers to read a string like "G1 X42" and pulse an I/O pin a couple times ;)

My guess is that driving that big color display and more importantly ethernet/ip stack would be a huge PITA on an 8bitter.
Yeah, I posted a few comments here without actually watching their marketing video, and didn't realize it had those two things. Upgrading to get those features seems like a good idea, to compete with the cheaper models.

I don't think I would have engineered a new board and control stack just to get a web interface and a screen. Their last model (the i3 MK3S) has headers to accept a Pi Zero, and that seems like a good approach modulo the bugs, which would be worth fixing. (Apparently the bugs are, the Pi Zero isn't fast enough to emit gcode to the UART and record a video stream from a camera at the same time. I kind of doubt it, but that's what I'm told. The other problem is that the i3 has one power switch, so it can't keep the RPi on when the printer is powered off. This means a lot of people are corrupting their SD card, which is probably why they complain about the setup randomly breaking.)

I just want a USB serial port that accepts gcode. I have plenty of computers with much better screens (and SSL stacks) around for doing something more powerful ;)

> I just want a USB serial port that accepts gcode. I have plenty of computers with much better screens (and SSL stacks) around for doing something more powerful ;)

That's fair, but then you've added an extra processor which adds a lot of cost. I don't want to tie up a full computer and the associated space just to run my printer. Many people don't have a spare computer they can dedicate to printing either.

I just use a Raspberry Pi in a case that mounts to my i3, but I do realize that $35 is an order of magnitude more expensive than even an ultra luxury ARM microcontroller. I also realize that the Micro SD storage system that the Pi uses would never work in a consumer electronics product. (This is why the compute module has eMMC.)
I've built a ton of systems and they almost always end up being a variant of "arduino running GRBL" combined with "some sort of 'real computer' running Linux". For example, my MK3 is driven by a Raspberry Pi 3 running Octoprint. It's basically an appliance.
> I just want a USB serial port that accepts gcode.

From what I've heard, this is not reliable in the current implementations. If the computer goes to sleep, is under high load, or crashes this can result in a failed print. Of course you could build in more and more safeguards for this sort of thing (buffer the gcode, have some "emergency stop" movement which moves the head up and away from the print and decreases the temp of the hot end if there is a break in the stream of instructions) but this is a lot of additional effort when you could just as easily push all the gcode onto an SD card on the printer.

Same, but I also like an SD card slot that can read a big gcode file.

Write file, insert, pick job, walk away, done.

For very long prints, SD is my goto. No failures.

> come in kit form to let you assemble it yourself so you know where everything is if something breaks and you need to repair it

In the release they say that it will come in 3 pieces that you put together, not a full from-scratch kit

> While it is something Reddit endlessly complains about (despite having no software engineering experience)

While I agree Reddit's obsession with weird technical details is annoying, this is a pretty arrogant position. I've written motion control code for both 8-bit and 32-bit designs, and the difference is bigger than "read a string and pulse an IO a few times". The Atmega has been outdated for the past 10 years, the only reason it picked up in 3D printing was because of the accessibility through Arduino and similar---not for any good, technical reason. They're going to need to switch at some point, may as well be now.

Sure, you don't _need_ a 32 bit processor, but a modern Cortex-M0 or M4 is much more powerful than an Atmega328 for the same cost or less. My Prusa Mk3 takes a non-negligible amount of time to sort files on the SD card, and the screen could really show more information. There is also much more advanced motion planning they could do with a little more power available.

Additionally, we don't need to speculate, they explained their reasoning in the article:

> Why did we decide to switch to a 32-bit board? Surprisingly, raw performance is not the main reason. We can now write cleaner and more abstract (reusable) code without assembler hacks like on the 8-bit board. Adding new features becomes much less of a hassle and we don’t have to count every single byte in the flash memory. Unit tests and JTAG debugging sped up the development and we also got the chance to include ethernet and optional Wi-Fi connections.

If you read through the firmware you'll find 1000000x #define's for different features that I'm sure they're eager to get rid of.

> There is also much more advanced motion planning they could do with a little more power available.

But for 3D printing isn't the printer simply reading the instructions in the gcode? It's not doing any motion planning at all, that is all decided by the slicer.

No, on most CNC machines the controller actually handles much of the motion planning.

The slicer will generate a command that says go from point (x1, y1, z1) to point (x2, y2, z2) with speed f, but it doesn't say anything about acceleration, or how to transition into the next move. A very simplistic controller will use a trapezoidal ramp profile where it will ramp up to the programmed feed rate at a fixed acceleration, then stay at the programmed feed, then ramp down in time to reach the end point. However, if the move was a very short line or arc as part of a large surface, the machine doesn't need to reach 0 speed before starting the next move. A smarter controller will 'look ahead' to predict the next few move and plan the motion of the machine to eliminate jerkiness or stopping.

The slicer may tell the machine what acceleration to use, but that's really just setting a parameter in the machine controller, and isn't settable per-move.

This isn't as critical for 3D printers as it is for big, heavy milling machines. Nevertheless, you can do clever things like trying to compensate for vibration, or speeding up or slowing down the extruder motor based on the pressure of the plastic in the nozzle.

This isn't to say Prusa is switching just to do better motion planning, it sounds like that isn't a primary goal, but I'm trying to illustrate there is a lot more room for intelligence than 'just wiggling some IO'.

I see.

I can see some benefit to motion planning on the device if, for example, decisions are being made based on real-time data. For example, if there is a pressure sensor for the nozzle then the board could use this this realtime data to adjust it's motion.

If there's no realtime data being input then everything is simply a deterministic function of the gcode, and all of these aspects related to acceleration and jerk can be precomputed on your powerful multi-core desktop and "rolled into" the gcode.

It can't be "rolled into" the gcode though. Gcode is sadly extremely limited, and while you could build some pretty complex extensions, there is no reason to avoid switching to a (cheaper) more powerful microcontroller to avoid building gcode hacks.

Regardless, I was just pointing out one place where a bit of extra power could help with printing. However, that's not really the point. It's not that the core _needs_ to be 32 bit, it's that most modern microcontrollers are 32 bit. The Atmega is more expensive, has less memory, no JTAG, no DMA, poor debugging support, and mediocre peripherals. The extra power to run more advanced motion control is just a bonus when you switch to a modern Cortex-M.

The real usefulness of power is the possibly to add other features not directly related to printing like built-in ethernet/wifi, or a larger screen (it drives me nuts that I can't see longer file names on my Prusa screen).

Sure, but now they are a small company that has to maintain two separate codebases. Even big companies like Google can't keep their Android and iOS apps at feature parity, so something has to give and it's the early adopters with old hardware that is just not going to get any new features. Or they are going to have twice the software engineering overhead.

I get why you would start from scratch with an M4. I don't get why you would maintain two different codebases commercially, though.

(As for the motion control aspect, at the feedrates of 3D printers, I don't think you get anything from a faster processor. Motion control is not what's limiting print speed or accuracy.)

> Sure, but now they are a small company that has to maintain two separate codebases. Even big companies like Google can't keep their Android and iOS apps at feature parity, so something has to give and it's the early adopters with old hardware that is just not going to get any new features. Or they are going to have twice the software engineering overhead.

I mean sure, it's not going to be a perfectly smooth transition, but I think you're underestimating how bad it was on the Atmega. There is _no_ code space left on those chips, which makes adding features nearly impossible. They'll probably just maintain the old version for as long as they can, while switching new products over to the new one.

The codebase is also probably simpler than you realize. These microcontrollers don't have the code space for programs of any significant size. Porting the peripheral interfaces over to the new controller is not that hard.

> (As for the motion control aspect, at the feedrates of 3D printers, I don't think you get anything from a faster processor. Motion control is not what's limiting print speed or accuracy.)

This is actually a real problem. It's not the basic motion control, but doing things like intelligent look-ahead or vibration compensation.

I think the technology is further ahead than you realize. It's not an Atmega running your microwave we're talking about. Those chips _are_ seriously limited, in material ways, even if you haven't run into it yourself.

I think that they're just using Marlin, a lot of the work is done for them.
> small company

iirc they have well over 200 employees at this point.

Prusa cares about quality. Chinese mostly about price.

For example, Prusa filaments are perfectly rewind, so the possibility of the filament making a knot and stopping the print like has happened to me with other filaments in 14h printing sessions does not exist.

Or chinese aluminium printing beds, with 0.3-0.4 mms differences along the printer, that even with a touch probe you can't print big things over.

Those beds are so cheap, and you could print small pieces with them, but anything serious in size like 18x18 cms will fail. Prusa warrantees it.

Quality control is the great advantage that Prusa has over the Chinese(that love lying). He knows it, and sends you a report of the QA of your specific machine.

So does it feel like this is the first genuinely plug and play 3D printer...? That's always been one of the things that puts me off, I don't want to have to learn so much...
I'd say the MK3S printer is like 75% plug and play. (For reference, I consider current wireless "2d" paper printers to be 100% plug and play now).

You will eventually need to do maintenance on it, you'll eventually have a clog or a broke part or need to do some slightly technical stuff to fix an eventual problem, but most adults capable of building Ikea furniture should be able to follow instructions and do it.

I'm assuming this will be closer to 85% "plug and play". Things like the "one click print", color screen, WiFi and automatic firmware updates are the biggest nice to haves.

But I don't think they've gotten to the point where you'll have reliability similar to a normal "2d" paper printer, so at some point you'll need to take some stuff apart to unclog it. But that's about the extent of the technical needs I'd expect from this printer.

Ultimakers are absolutely plug and play. You get what you pay for.
Maybe, but quality is hard to measure. I just bought a Creality Ender 3 Pro for $180 and the print quality looks as good as anything I've seen from a Prusa or even the Ultimaker at my university. It's got a larger build volume than this mini as well. It doesn't have some of the comfort features, such as auto bed leveling or wifi, but if you really want these you can add them in and still be under the price of this mini, not to mention that the cantilevered design of the mini is almost certainly less stiff than the i3 style on the Ender 3.
> I'm glad that prusa has stayed true to his open hardware pledge all these years, while continuing to push the reprap ideals.

He truly believes it. Not only that, but his left arm has the Open Source Hardware logo tattooed with honeycomb infill :)

I've been there and saw his progress from the beginning. I was at the first MRRF, and he flew in from Prague. Back then, I had my Prusa i2 printer, designed by him to use 8mm threaded rod with a simple 3d prints to make your own printer.

Things have indeed changed since those old days!

The price is going to slay all Chinese crap makers. I always wanted mk3 but never had a big enough reason to buy, now I can justify it. It's the printer I will buy :)
It’s not. I bought an Creality Ender 3 recently for a lot less than that (152 GBP next day in UK) and the thing is perfect. It is also entirely open source.

https://github.com/Creality3DPrinting/Ender-3

Quality is pretty top notch. It worked out of the box flawlessly and with no futzing.

Yeah, except for the things you can't see.

1. They use crappy MOSFETs that are known to fail closed. This means you can get a runaway heat on your hotend. A 40w cartridge can melt the alu heatspreader

2. The beds are anemic for heating. Not enough power

3. Crappy steppers

4. No features for jam detection, autoleveling, skipped step protection, filament runout

5. "Chinese" quality: good luck in getting any sort of tech support. Once they have your money, you're fucked.

I'm fighting right now with Pine64 over defective eMMC modules that ignore the first read, causing initrd to fail to boot. Of course, they were chatty on Twitter prior to purchase, but have ignored every way of contact AFTER purchase. But pretty much every Chinese company is like this.

Note: former EE. I’ve taken it and the provided power supply to bits before I even fired it up.

1. They’re IRLR3103PBF operated within their SOA. They’re fine. Most MOSFETs fail short due to the construction of the MOSFET. I’ve actually got a few scars on my arms from the buggers exploding on me misusing them on purpose as RF PA’s as a ham. I’ve seen them blow up in various bits of expensive US made kit too (tektronix 22xx in particular grr)

2. I’ve had absolutely no problems at all with mine and adhesion.

3. A decent stepper costs as much as a Prusa i3. All the steppers at this price are crap. But they work pretty damn well.

4. These are luxuries really. If it jams the Bowden tube pops out and you clean it up and off you go. I levelled it in 3 mins myself. Skipped step I’m not sure if the scenario. Filament run out doesn’t happen if you pay attention to the Cura filament length and don’t try to wing using up the ass end of a roll.

5. I’m not paying for support. I’ll fix it myself. I’m quite handy with a screwdriver, a compiler and a soldering iron. The thing is just an AVR running open source firmware. Nothing complex.

The main thing is I can get functional chunks of spare parts for this next day via eBay.

As for comparing Chinese support to US support, I’ve had better luck out of the worst Chinese company than Microsoft and Apple.

This sort of attitude ignores the fact that a lot of people would rather spend time designing things and prototyping, rather than fix their printer.

I had the experience of getting and assembling a Prusa MK3 kit for myself, and getting access to a cheap Chinese printer at roughly the same time.

The Prusa cost more than twice as much and I've already made upgrades. Worked correctly right after assembly. I've already gone through several kilos of successful prints. And the frills just make it so much nicer to use: spring steel bed, auto mesh leveling, the Prusa fork of Slic3r just keeps getting better and better.

The Chinese printer required you to attach the gantry to the bed. But after weeks of tweaking. It still doesn't work correctly. It's completed prints. But none of them have been of decent quality. Now, some of the Chinese printers appear to be good. But do yourself a favour and research the specific models if you want to buy one.

Otherwise, if you really care about designing and prototyping, spend the extra cash and spend more time making things. There are a few brands out there. I reckon Prusa has the best kits if you swing that way.

I think I’ve spent less time debugging it and having software issues than my HP 3636 inkjet though. I care about the result more than the fettling and it does me well.
I have an Ender 3 Pro, it's seen little use and I regret the purchase despite enjoying using our office 3D printers (Taz)

It's just too finicky. Too many odd issues with jams, adhesion. I left it sitting for a while and for some reason when I came back to use it I had to play with the belt adjustment. The magnetic bed doesn't align properly so you need to intentionally line it up in a way that doesn't cleanly overlap the metal base.

And I'll admit recently there's a trend of Chinese companies in the space actually working on conscious iterative design based on feedback, especially Creality... but it's still obvious they're just reacting to whatever pops up, instead of trying to get ahead of what people want (which Prusa excels at)

Creality tried tried to fix the fan issue everyone complained about (fan exposed to dust and filament refuse) in the Ender 3... by mounting the board upside down with the fan mounted on the bottom millimeters away from your work surface. Which made any modifications that needed access to the board a massive headache (I actually didn't bother putting back half the screws, since to access them you need to put the entire machine on it's side... )

-

Long story short, when I want to print something, I want to know, this thing will be ready to go. The hard part should be designing it, if I can't rely on the printer to just work™ when the motivation is there, I just don't bother.

And this is someone who likes to tinker, it's just when I want to tinker on X, I don't want tinkering on Y to get in the way.

I think he is referring to a step motor controller as a "stepper". People love the fact that Prusa uses Trinamic drivers instead of no-name drivers.

I personally don't understand why step motor control is something that needs to be outsourced. Just stick an H-bridge between the microcontroller and the motor and improve the control algorithm with every release.

The “no name” drivers are a bit more complicated than an H bridge: https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_d...

The typical H bridge has many failure modes and disadvantages which are handled by the controller ICs. Not to mention a lot less CPU overhead for the AVR running the show.

I've done manual h-bridge style control and it just can't match a proper driver. You're going to get a ton more vibration and less power.

I use Leadshine ones normally. They're big but also very reasonably priced and work very well.

I have a CR-10 and it’s been great. Worked out of the box and never skipped a beat.
> It creates local jobs for people with fair wages, social security and good quality of life, we should strive to have more of our stuff produced in the west.

I don't really agree with that argument from a humanitarian perspective. That would simply further increase the vast economic inequality between the west and the rest. Even with lower wages, people in China are better off with more jobs than fewer. People in the Czech Republic for instance have more safety nets, more alternatives and opportunities.

Let China put it's people to work. They have lots to do.

Making products locally maintains a higher standard of living and can limit dependencies on others.

Not doing that takes a nations to largely service economy status and when that matures the standard of living declines, infrastructure development slows or stops, tax revenue goes down, and demand for new products gets tepid.

In short terms, the boost from cheap stuff is nice. As wages flatten, that cheap stuff becomes not so cheap and improving income more difficult.

Price seems totally reasonable to me. Whenever I research the cheaper printers, I read about all the upgrades people have to implement. This ends up costing more time and $$.
Can’t agree more. I bought a Creality Ender 3, and added since: a new bed plate, a leveling sensor, a raspberry pi to control it

For the future, I know I’ll replace the fans, and probably the main board

That’s without adding my time: updating the firmware (overheating protection seems cool), calibrating and configuration of the various bit (like the probe position relative to the hot end), finding the correct slicer and config for it.

Now it works fine.

Still, it cost me way more than the list price to get to this point. A prusa mini would have been a better investment !

> we should strive to have more of our stuff produced in the west

Why exactly is it preferable to favor "the west" over other places? These types of statements read a lot like "us vs them" to me. What makes "the west" an intrinsically morally better source for products?

As j-pb mentioned in the immediately preceding sentences: "the west" comes with the assumption that people working on the product have reasonably good living and working conditions, protected by law that is most probably not too cheated on through corruption. Whereas for goods produced in "the east", the usual assumption seems to be that it's the opposite, that the workers are most probably being taken advantage of.
The price is great for what it does. I've had a Wanhao for years and love it, but all the features of the new Prusa aren't to be laughed at. I would love automatic bed leveling, because leveling is annoying enough that I would pay to have it done. All the rest is great too, mainly built-in wifi (though I'd probably run Octoprint anyway).

All in all, I consider this a solid contender.

people in Prague deserve jobs more than people elsewhere? Neither Prague nor China have a connection for me so I’ll take the cheapest, please.

I don’t really feel that way but your argument just isn’t sound.

You aren't just providing jobs, you are also providing tax revenues. So I guess if you don't see any issue giving money to the Chinese government, then choose the cheapest.
Should chinese entrepreneurs and workers be penalized for being born and being stuck under the wrong regime?