Open Source And Giving Back

3D printing YouTuber [Thomas Sanladerer] made a fairly contentious claim in a video about the state of open source hardware and software: namely that it’s not viable “anymore”. You can watch his video for more nuance, but the basic claim is that there are so many firms who are reaping the benefits of open designs and code that the people who are actually doing the work can’t afford to make a living anymore.

[Thomas] then goes on to mention a few companies that are patenting their 3DP innovations, and presumably doing well by it, and he then claims that patenting is probably the right way forward from a business standpoint.

The irony that he says this with a Voron 3D printer sitting behind him was not lost on us. The Voron is, after all, a very successful open-source 3D printer design. It’s just rock solid, has lots of innovative touches, and an extensive bill of materials. They don’t sell anything, but instead rely on donations from their large community to keep afloat and keep designing.

At the same time, a whole bunch of companies are offering Voron kits – all of the parts that you’d have to source yourself otherwise. While not mass-market, these kit sales presumably also help keep some of the 3D printer enthusiast stores that sell them afloat. Which is all to say: the Voron community is thriving, and a number of folks are earning their livings off of it. And it’s completely open.

When [Thomas] complains that some players in the 3DP business landscape aren’t giving back to the open-source community effort, he’s actually calling out a few large-scale Chinese manufacturers making mass-market machines. These companies aren’t interested in pushing the state of the art forward anyway, rather just selling what they’ve got. And sure, there are a million Creality Enders for every Voron 2 out there. And yes, they reap the benefits of open designs and code. But they’re competing in an entirely different market from the real innovators, and I’m not sure that’s a bad thing.

Let us know what you think. (And if you’re reading this in the newsletter format, head on over to Hackaday on Saturday morning to leave us your comments.)

41 thoughts on “Open Source And Giving Back

    1. I think the point is whether they’re giving back to the open source community in any significant way, not whether they’re using it.

      The farmer milks the cow, but also feeds it. A lot of the larger companies are simply milking, and expecting the cow to get fed somehow.

        1. Agreed, it is a great analogy. And if you actually manage to enforce the licenses and get them to contribute as they should then the open source cow has the bloodsucking leechers removed and a nice pile of feed.

          1. Kind of sounds like that old anti-copying/anti-piracy analogy of “you wouldn’t download a car”…

            In fact the “milking the cow and not feeding it” analogy does seem to match the situation of music (and other) piracy.

            Just saying….

          2. > does seem to match the situation of music (and other) piracy.
            Perhaps, though in the case of OpenSource stuff it is cost free to use – you are not being told you must pay a stupidly high price (of which virtually none gets to the content creator) the way it was when music and video piracy flourished.

            Piracy always was a crime, but then so is abusing the monopoly you happen to hold – two wrongs perhaps don’t make a right, but they at least muddy the waters about morally justified. Where putting in what is almost no effort at all to follow the FOSS licences on the stuff you never had to pay for in first place really has no moral mirky-ness.

        1. “Marlin is distributed under the GPL license which requires that organizations and individuals share their source code if they distribute the firmware in binary form, including firmware that comes pre-installed on the mainboard.”
          “For sales or distribution, the entire source code needs to be made available to end users, including any code changes and additions […].” (Wikipedia)

          No source code, no (free) use for distribution.

      1. You’re assuming that sales have zero value in their own right. Having a design be readily available at a low price allows people who wouldn’t otherwise be able to operate one gain access. It’s as silly as complaining about the reverse; an open source designer not manufacturing their design at a low price.

    2. No. This Github is a joke. It has four years old source code for six outdated printers.

      For the vast majority of printers Creality never published the source code. They are notorious for that. In legal terms they violate the Open Source license and make money by selling stolen Marlin firmware. (I bet they do the same with Klipper on their Sonic Pad.)
      No way to whitewash it.

      What would any commercial company (like Microsoft) do with a company selling illegal copies of their software?

      1. Well think about it, Microsoft has a team of lawyers at the ready. People that put code out for open source use doesn’t have a single lawyer on retainer let alone able to afford one to fight something in the courts that could last a couple of years. Also you can put copyrights, patents or whatever on something but China will still copy it. Look at the guy who invented the selfie stick. Factories in China copied it and even went as far to copy the box. He got a lawyer and the courts here couldn’t do anything about it.

        1. – The Patent system is a Royal stangle-hold on humanity.
          – I don’t see anyone paying the Chinese for the invention of paper, gunpowder, printing and the compass.
          – Commons licencing is closer to to volunteerism than the serfdom patents present but if is not ideal.
          The crux of law is “do no harm.” What harm is being demonstrated here?
          I recommend ditching the legal attitudes in favour of seeking harmony.

          1. Patents last for 20 years. After that, it’s public domain.

            How old is paper, gunpowder?

            It’s a system that benefits the creator with a temporary monopoly. After 20 years expire, the invention is free for everyone to use, reuse.

          1. As a solution it would be easier, agreed.
            Then one of 2 things or both would probably happen.
            1. The Manufacturer would change the name on the box and on the invoice (similar to what happened with baofeng radios that cannot be imported in certain countries, under that name.)
            2. The manufacturer would release the source code. Probably nothing proprietary on it anyway, so the reason why they not doing it is probably because their target audience has no clue and they are lazy to do it for no reason.

            In the perfect world the responsible consumer would do all the checking and choose a seller that is a “nice guy (or person should anyone insist)”.

          2. (‘Reply’ button is missing under KMLM’s post, so doing it here.)

            Number 1 would cause some costs for the manufacturers. Creality is a known brand name so this would not go unnoticed. Maybe later they come up with their own firmware that is not a renamed Marlin. All not worth the trouble and the bad publicity.

            I have seen Marlin source code from Creality and Anycubic. Meh. What the community is after are the parameters of a new printer/mainboard so you can easily upgrade to an up-to-date Marlin with important features enabled. (Without reverse engineering.)

            But the most important part is the source code for their proprietary displays. You cannot even upgrade Marlin on today’s printers with touch screen because the screen is a computer that gives commands to a modified Marlin. Modifications not published. Plus whatever new feature your updated Marlin will offer you cannot access it from the screen.

            But this is not likely to happen. I guess Creality is also not owning the source code for their displays.

      2. Is there definitely any source code worth publishing?

        I mean, they are just cartesian printers. A collection of some steppers, a heater or two and a thermistor or two. I guess if they are setting options in header files before compiling then technically they are modifying the source code and so should be publishing that but… it’s really just a simple configuration step. It’s basically follow the directions to let Marlin know what features are installed and what pin does what. Or do they even compile that in anymore vs having a config file on an SD card? I’m behind myself, still on Marlin 1.

        What feature if any is Creality or 99% of of other companies actually adding to the stock, open source firmware that we need the source to?

  1. Unfortunately, the hobbyist 3d printing community at large seems to have a number of fundamental misunderstandings of what constitutes “open source” and how the licenses actually work.

    Slic3r/PrusaSlicer is licensed under AGPL, which is incompatible with virtually every other open source license (GPLv3 being the exception, and that only works one way). The project has numerous dependencies, many of which are *not* GPLv3.

    Extending to hardware, very few if any of the major open source printer designs have moved beyond GPL, which is not really appropriate especially now that decent open hardware licenses exist (CERN OHL v2 is an excellent example). Since software licenses such as GPL really only apply to copyrighted works, hardware projects exposed to all kinds of patent problems. The language that extends to linked libraries and executables in GPL does not extend to physical hardware designs. On the other hand, OHL v2 has a notion of “components”, allowing different parts (including ones that are not open source) to fit together through a set of interface specifications. CERN details how to develop a truly open design so that it can be fully reproduced.

    These misunderstandings go even deeper, though. Often people think that STL files count as source code, and that as long as those are uploaded that the design can be considered “open”. But there’s a problem with this: nobody sits at their desk and types triangle vertices into a text editor in order to design 3d models. Various (usually closed source) CAD suites are used to generate these files. Releasing only STLs under GPL is like writing a piece of software, releasing the binary, and then saying that only the binary is under GPL. This is particularly problematic from companies like Prusa who make claims about their printers being “fully open source”, in spite of the fact that a number of components are either unreleased or only released in STL form.

    The “correct” approach for open hardware would be to release the original CAD and design specifications. This doesn’t necessarily imply that every aspect of the design has to be open sourced, but the interfaces to any closed components need to be documented. E3D serves as an excellent example of this. Their Revo ecosystem is proprietary. Other companies cannot legally make Revo heater cores or nozzles. However, they have left the cold side (heatsink and cooler) open. They have published sufficient information to make a fully custom heatsink that supports the Revo heater cores and nozzles, plus the electrical and thermal characteristics. This allows anyone to design a custom toolhead that uses Revo components, and demonstrates how a company can allow and even encourage open source development without risking their bottom line any more than designs that is fully patented (such as those made by Slice Engineering).

    Ok, I feel like I wrote an article in response to to this article. Suffice it to say I believe this is an area that needs to see more discussion.

    1. Nothing wrong with a well thought out and worded response, even if it is long. And personally I don’t think you could be more concise without losing details.

      p.s you also are along similar lines to my thinking – though I have less issue with STL being considered ‘open source’ – its an easy to work on and universal format. A real engineering drawing and the project files from whichever CAD platform created it is obviously preferable if you have compatible software. But you can always work with the STL.

  2. It has always been fine to make money from open-source the GPL allows it. At the other end of the spectrum you have wordpress plugins developer who dont understand their plugins is a GPL derivative works and it’s completely fine to distribute their commercial plugins. Also if you truly want to be a free license you use MIT or BSD because they aren’t viral to everything they touch like the GPL/AGPL.

  3. I am not getting “the people who are actually doing the work can’t afford to make a living anymore”
    I make a living, and I work on Open Source. I just do them at different times of the day.

    I have always thought that folk making money from writing FOSS code are a small minority. Am I wrong in that?

    1. Sorry to say that, but you are T.Rex. Now, the new breed try to milk big corpo for support or new seed money for minimal effort. Basicaly outsourcing with open-source badge.

  4. As a downloader, you’re either a contributor or a parasite. Not per transaction, but overall. Sure there are those who can’t code, (and many who shouldn’t) but there are many other ways to give back – documentation, thoughtful bug reports, support on forums, and even financially. “Free” as in free to make a difference. Pick a place that matters to you, and pitch in.

    1. This attitude is the problem with the OS movement. Legally the stuff is open, but the community isn’t, and the attitudes are often belligerent and hostile. I’ve had bug reports and fixes refused because I didn’t fork the repository and send a pull request, just sent a clear email with a POC and fix. (I didn’t use git at the time and had no idea how to do so).

      1. In their defense, there is a well established git work flow that you are not familiar with, so you push the burden of manual adjustment onto the FOSS maintainers, who as a rule are overworked. It is unfortunate but understandable that they brush you off.

        I totally understand your dilemma as i was in the same situation, but i resolved to adapt to the modern age.

        1. There are a few reasons why we prefer a pull request:
          1) The fix gets credited properly to the chap who found the fix.
          2) It will get pre-checked by the CI system, so we can be more confident that the new code compiles cleanly on the whole range of supported platforms.
          3) It’s easier, with no ambiguity about what the chap with the fix really intended.

        2. If a maintainer receives a code fix as an email and doesn’t want to do the work themselves of merging it and that maintainer is an unpaid volunteer it makes sense to me that they are not obliged to. But rather than brush it off or reply back with something nasty why not just copy-paste it to Bugzilla or whatever the project uses, code and all and let whoever cares about that feature/issue enough pick it up and enter it properly?

  5. Paraphrasing RMS because I don’t have the exact quote on hand: Software should be free, support should cost. Theoretically the creator can provide the best support, and the community should prefer ti work with them, but if someone else wants to compete for the support that’s fine.

    I would argue that on the open-source hardware front, design is software but selling a preconstructed unit is support. Of course the vendor may not be able to provide ongoing support if that’s the limit of their knowledge, in which case the designer may have another opportunity to sell services.

    Note that I’m still not convinced that open-source can, in fact, reliably be anything more than a labor of love, a leap of faith, and a chance to build your resume so you can sell your services to non-OS customers. If it can, setting the right licensing terms and being willing/able to act to enforce them is critical.

  6. i finally put my finger on why this article gave me deja vu…it’s because i read it before about some different 3d printer manufacturer. it is always the 3d printer manufacturers that are whining, “i said the word ‘open source’, why am i struggling to stay afloat in a vast ecosystem instead of instantly winning?”

    there’s something special about the relationship between 3d printers and open source. it seems like it’s related to the fact that 3d printers spawned such a huge variety of independent vendors, kickstarters that did or did not become going concerns. ideas that got copied and then monetized and then copied again and monetized better. companies that came and went in the blink of an eye.

    it also seems like it’s cultural. i tried to figure out how to contribute to Marlin firmware. i found that everyone had forked the firmware, hacked it viciously to get it to work on their specific printer, and then abandoned it. and there was a central Marlin group (github) that was ostensibly trying to be a generic origin for all the forks. i decided to lurk its mailing list to try to understand how to be productive (instead of charging in, like i used to). and over several months i witnessed a few sincere attempts to improve different aspects of it, but nothing resembling another programmer trying to clean up the big mess. i decided if i contributed, i would want to overrule everyone, and that wouldn’t be good community, especially since truly i was going to refactor it until it was clean enough to be easily adapted to match my printer, and then walk away from it and insist to everyone else that now that it’s factored properly, it will be easy to adapt to your printer too.

    so you’ve got people making a buck, people whining that they aren’t making a buck, and a true charlie foxtrot of forked hacks.

    i love it. there’s no shortage of diversity and you really can chose from a wide variety of starting points and then successfully hack it until your printer works and then upload it to github and abandon it and use your printer for a decade while leaving bread crumbs for the next joe. fantastic. they can whine if they want to i guess.

    there’s no fundamental flaw with open source here. you’re not guaranteed to profit. and the share-alike clause was never very strong and has never been stronger, imo.

    1. I’m still trying to understand this concept of having to “hack” Marlin firmware to get a particular printer to work. Are people or companies adding support for different stepper drivers or something?

      I’ve installed Marlin on a scratch built printer. I have also ripped the control board out of a proprietary printer, replaced it with one off of Amazon and installed Marlin on that. Marlin is already made to be flexible. I mean other than maybe a custom pins.h I just don’t get what there is to hack.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.