LUFA Licensing Discussion

One of the great things about LUFA is the community – giving it away for so long as undoubtedly made it as good as it is today, as all those free guinea pigs users helped motivate me to develop it further. Originally licensed under a LGPL license, I then moved to an even more lax MIT license (with attribution), which is where the project stands today.

A few months ago I tested the waters into monetizing my work, by offering companies a chance to opt-out of the attribution clause of the MIT license via a one-time US$1500 payment. While this has been taken up on a handful (singular) of parties, the results of my experiment have not exactly been encouraging for me.

I’ve identified a number of issues:

  1. People seem to have trouble working out what exactly the attribution clause of the license requires them to do – I agree, it is a little less explicit than I would like. My intention was for the user to be legally required to put something like “uses components from the LUFA library, by Dean Camera, <link>” in their product manual and website, but in practice this has resulted in just a simple link back to my LUFA page with no information.
  2. Companies like money. I like money too, but companies aren’t charitable. Unless I force them to, few will fork out the money for a license with few obvious benefits to them.
  3. Unless the company is producing many units or is making a high margin, the current fixed license fee isn’t attractive. A better per-unit block breakdown is required, even though I detest such things.

And so at the risk of becoming hated by the masses everywhere, I’m now getting the feeling that the license of the library core needs to be changed, so that companies are forced into paying a license for my work. I hate rash decisions as much as everyone else, and I really, really don’t want to risk losing all the kind, generous and fascinating users I’ve gained so far, so I’m putting this up for discussion here.

Here’s what I’m thinking of so far. I’d like everyone who uses LUFA, who has thought about using LUFA, or just has something to say to chip in here, so I can get a feel for the public’s reaction to this. Please also mention how you are using LUFA, so I can see how the following changes will impact existing users.

Here are the proposed changes to the Licensing of LUFA:

  • Non-commercial users will be granted a license to use LUFA freely, with attribution, via a Creative Commons BY-NC-SA license. Put simply, this means you can use LUFA all you like, as long as you don’t make money off of it selling devices in any reasonable quantitiy, and give attribution. From a practical standpoint, this is pretty much the current status quo, except it forbids most uses of LUFA commercially outside one-offs or internal evaluation/use. Hopefully this will not alienate the existing user-base, as free projects can continue to exist and be produced using LUFA.
  • Commercial users with less than 10 units produced – this will usually only be due to internal evaluation – will also be able to use LUFA for free, via a license which permits commercial use on this very small scale, but does not permit redistribution under this license.
  • Commercial users with less than 50 units produced will be required to license LUFA commercially, for a cost of US$400. This is a one-time, perpetual license like the current commercial license, and will include two hours of free consultation with myself to get companies off and running with LUFA.
  • Commercial users with less than 150 units produced will also need a license with the same terms, but the cost will increase to US$800. This should remain profitable, while gaining me a little more income at the same time.
  • Commercial users with over 150 units produced will need a US$1500 license, and will get three free hours of consultation – the same as the current license.

Of course, licenses would be upgradable just by paying the difference, so it would be fine to start low and ramp up as your company produces more units. Existing license holders would automatically switch over to the “best” commercial license offered, and all commercial licenses would be valid for any future enhancements of LUFA subject to the terms of the purchased license.

So, that’s what I’m currently leaning towards; the existing hobbyist community – which is very, very important to me – can continue to enjoy LUFA free of charge, so that only commercial users will need to pay anything to use LUFA. Some special projects I make (like the XPLAINBridge) will be exempt from the licensing structure, and free use will be granted of the LUFA core when used inside those projects.

Ok people, voice your thoughts and objections!

 

Comments: 22

Leave a reply »

 
 
 

It might be worth thinking about the compatibility between the GPL and CC BY-NC-SA as I would assume many hobbyist projects will use the GPL as their license.

Furthermore, I don’t know if the CC licenses are adequate for software – CC suggests using the (L)GPL for it (see http://creativecommons.org/software).

 

I’m not sold on the CC license yet – I’ll have to pick the best one for the job (probably still MIT, but with a clause added prohibiting commercial use) – if the new licensing scheme goes ahead.

LGPL isn’t suitable to statically linked libraries like LUFA, as I learned the first time. For static environments, LGPL is identical to the regular GPL.

– Dean

 

I think that you’re asking for reasonable amounts, especially considering how much time you put into LUFA.

 

One more thing: I’d reward companies who are willing to publish the source as such behaviour would have many benefits including the hackability of the gadget, education and so on.

 

As far as I understand it (IANAL), restrictions prohibiting commercial use are GPL-incompatible. For example, I am using LUFA to develop a version of the RepRap firmware (GPL) that will run on an ATUSBKEY board. If LUFA adopted the non-commercial restriction, the result would be illegal to distribute.

 

The “genie’s out of the bottle”, some users will likely stick with the MIT+attribution license and fork the code.

To be honest, that’s what I’d do, if I were building a commercial product with LUFA…

 

Who commercially produces less than 150 units of anything? The license would be more clear (and easier to implement, both for Dean and customers) if there was simply a cutoff at 200 or so units. Below is free, above requires the commercial license purchase.

 

Brian: I competely agree that it’s ridiculous to assume that anyone would produce less than 150 units of anything. The economies of scale would screw the poor bastard anyways.

We’re about to build a gadget that utilize LUFA and open source the firmware. So in this case we don’t have to pay a cent? (I’d donate to Dean anyways once we get profitable.)

 

I understand the desire to make money and support the notion of a split free / commercial license. The way I understand your licensing breakdown now is that it does not allow selling of any number of commercial units which I have some difficulty with. Being able to sell a small number of units (basically your prototype units) is normally part of testing the commercial viability of your product design. This tests the water (customers) for your product and also proves the product technically in the field. Development is an expensive undertaking and many potential projects cannot pay upfront for a commercial license for a product that is exploratory.

For example, I have used LUFA in a product that is essentially a USB to RS485 protocol converter gateway and I have successfully sold exactly 1 unit, with two more prototypes sitting on my shelf.

So – I am more or less supporting what Brain said above. Allow some small scale commercial use to reduce the cost / risk for commercial customers.

I would like to express gratitude and respect for the work you have put into the great work that LUFA is.

 

Guess I will look at the Vinculum chip. Just as unavailable and half the price for the VNC2.

Roger Lewis

 

I do consider LUFA to of commmercial quality and the charges you have in mind are reasonable.

However you are now exposing me to a whole new level of complexity in license, which puts me off you library. More pages of legal blah than other technical documentation ! I don’t need this !

To retrospectively intoduce the new and unique license intoduces new risks for you and me. If we were to enter a commercial license agreement, you will have some new commitments too under contract law.

I think you are too late on LUFA unless you want to starve some innovators and feed some lawyers .

I don’t really have time for this. LUFA is on hold for me until you sort yourself out.

 

I’d suggest also dual licensing under the GPL, this means LUFA will be license compatible with existing GPL projects. It also means commercial companies can use it for free if they give their LUFA modifications, and their own code to the community, which I think can only be a good thing.

 

Woah, calm down – this is just a *discussion*, not an announcement of firm plans to change the license. If I do decide to go with a new license in the future (which will be one or two releases hence) it will be after much feedback from the community, and will NOT be applied retroactively to old versions.

– Dean

 

LOL @ Richard Ibbotson crying foul.

Meanwhile, I’m looking into LUFA for an HID joystick host. I haven’t even started development, but it sure looks like a great start! If I find that your package really hits the spot for my needs and I want to make a bunch of product, I’d have no problem purchasing a license deal or making a proper donation for all the hard work you’ve put in.

-ud

 

I love LUFA and I’m at these days in the situation to begin with production of a small commercial product that will be sold in an unknown number.

Maybe 50, maybe 200, maybe 1000 (THIS would be a dream to achieve).

With the announced model, I would for sure leave LUFA or stay at the old libraries with the old license, because it would kill the half of my win on this project.

And to be honest, it sounds like it is of no interest for you, what was said about the “why use LUFA instead of the AVR-Libraries”

 

Hi Dean,

Firstly, Thanks for making open discussion a part of your decision on this subject.

Secondly, Thanks Again for LUFA!

It’s inevitable that you come to this crossroads.

What you’re considering is really more than just the licensing of LUFA, it’s the business model for the project, and the career course you choose for yourself.

Releasing future versions of LUFA under a proprietary commercial licence, and selling copies of it, as widgets, is one model. This could help you pay your rent/mortgage/kid’s college tuition! And you’ve certainly put the work into the project to justify charging for it.

A few points worth considering might include:

* There will be many/endless considerations to make in crafting the specific terms of your own custom license: How many units? over what time period? Unit’s ordered? Shipped? Paid for? How will you track your customer’s usage?

These details are just a few very simple examples.

These details are also how the legal profession makes it’s living. And one of the beauties, for lawyers, is that no matter what you put in there, it can’t stop a client, or competitor, from suing anyway.

* Most customers of LUFA would almost certainly be small businesses themselves. Most large electronics manufactures will use the semiconductor manufacturer’s library, or write their own.

* I would expect many of the small customer consumers of LUFA to simply fork the code at the point you adopt a commercial license.

* In any given day, in addition to LUFA, any one of us may also use: the GCC compiler, the linux kernel, the firefox browser, Xorg windowing, open office, etc, etc, in our work (commercial usage). Many people put a lot of work into that software too.

* I think this is really the most important point, and it also ties in with your mention of charitability. The open source / free software model isn’t successful because of the charitable nature of the human species. It’s true many contributors to public projects are motivated by the virtue of giving. However the widespread deployment of open/free software is largely due to the utilization, and supporting contribution, by companies.

As you noted earlier, companies don’t seem inclined to pay for stuff when they don’t have to. But many have found it profitable to have engineers making full time contributions to public source projects.

How does this relate to LUFA?

An alternative business model might be to make LUFA a community crafted, as well as community consumed project. Then it benefits from the contributions of users/consumers and takes on more of a life of it’s own. As the primary author, you are then free to design electronic systems, based on LUFA, for clients on a consulting basis.

What I’m trying to describe is basically the cathdral vs. the bazar, i.e. charge for code written for a specific client, rather than trying to “productize” one piece of work.

Your internship will offer you an excellent peak into a corporate environment. Many people thrive as corporate employees, others seek more independence.

After this experience you should be much more prepared to decide how you’ll move forward with LUFA and the rest of your career.

Good Luck…

johnea

 

I love LUFA – and will/did donate $ in order to keep it truly open source 🙂

 

I understand you want to stop the discussion, so feel free to disregard or delete this posting.

The brutal truth is, it is extremely hard to make money from selling software, especially libraries, especially if the source code is freely available, and especially in the embedded market. The open source community has lots of experience with license violation in embedded systems. Up to the point that people are saying that discovering multiple open source license violations per day in embedded products is the norm.

The alternative, already mentioned above, is you sell professional services. Customization, porting, help to get your software running on some hardware. And that doesn’t have to be limited to help people getting LUFA running. You could try to sell yourself as a USB expert, using LUFA as a showcase of what you know and can do.

There is no guarantee that this will work out, but there aren’t too many business models around software. But understanding you have an upcoming internship, not the least because of LUFA, you could consider this as a sign that using LUFA to get a foot in the door does work.

Did you notice that I didn’t mention the LUFA license or licenses at all until now? Because I think they don’t matter much. LUFA is out, you can’t retract the source code with the license you have used until now. The genie is out of the bottle. Use it to make a name for yourself.

I would treat selling LUFA licenses as a secondary issue. Throw in licenses as a bonus if people hire your professional service, as an aid to justify your rates. Show people a business case, that hiring you is cheaper in the end than they having to struggle with getting USB running on their embedded product. Offer to implement changes to LUFA for a fee.

Continue with a simple licensing model for those who just want to license the software. Don’t expect much income from this. But the effort to make such offerings is low, too.

What would happen if you change the license, let’s say dual licenses, the GPL and a commercial license? Some people will just continue to use the old code with the old license. Sadly, many will just get the source code, violate the GPL and use it without paying. Few will buy a commercial license. The difference in income for you compared to the current situation? Likely neglectable, unless you can successfully enforce license violations and get courts to award you compensations and damages. Getting on the litigation bandwagon is, however, a completely different game.

 

OK I feel better now. Since I’m not a C programmer I just need to figure out how to get it to compile 🙂

 

Dean,

Here’s a badly delayed and unstructured comment from someone whose project is, measured by your scale, hyper-successful, with 250 units sold and another 1000 in production.
I use a late-2009 version of LUFA (in fact, I haven’t kept track of the later developments because it just works for me. I also haven’t read anything following up on this post, of which there probably is plenty). Back when my project was in its earliest stage and far from lucrative, I occasionally posted on the mailing list, received quite a bunch of helpful mails from Dean, donated $300 just because I felt like it, acknowledged the use of LUFA on the web and in print documentation, and I think my Mass Storage + Keyboard example even made it into the distribution. Only now, it begins to make sense for me to consider the $1500 license. For the first batch of 250 units, no way. Here’s why:

My concern with your proposal is that the licensing fee doesn’t relate to the actual price of the product. At $80 per device, an additional license fee of $800 for 50 units, $1,500 for 150, doesn’t seem to be in a fair relation to the increase in value. I don’t mean to belittle LUFA, but just because I use the library doesn’t mean my product magically becomes worth $20-30 more per unit to the end user (that’s 30-40% of the total price!). More like $1. That said, for a product that’s priced at $1,000 and uses a significant subset of LUFA’s functionality for which the manufacturer’s library offers no alternative, it could be in the order of $10. Bottom line, license pricing needs to be related to turnover, or it doesn’t make a lot of sense for lower-priced products.

I have never dabbled in free software myself (mostly because I’m always ashamed of the quality of my code) but the logical consequence of giving things away seems to be that people use them for free. Sometimes they show their gratitude in form of a donation or otherwise, but once something is out there, you simply cannot force them to. Whining, in most cases, doesn’t help 🙂 If you like people to acknowledge your work properly, it might, however, help to clarify in a prominent place what you actually mean by that, ideally with examples. I had a notice in my print documentation, you contacted me about the lack of a notice in the web presence, now there is both. By the way, you may also want to update your license text which, to this day, refers to an “above copyright notice” that’s not even actually there.

 

Whoops. I’m only beginning to realize just how badly out of date (and probably also inapropriate in tone) my above post is. Anyway, apologies, and I hope you keep on receiving the recognition for LUFA that you truly deserve.

Cheers!
Matthias

 

No worries Matthias; I realize that the licensing of LUFA is still a serious issue, although the current status-quo (MIT license, with optional Commercial Licences to remove attribution) seems to be working well enough for now. I plan on performing some significant redesigns to the LUFA core in the next few months in light of all I’ve learned over the years and to make LUFA more friendly to other architectures, and at that time I’ll be re-evaluating licensing. I’m not sure if I’ll retain the current scheme, or switch to a new dual GPL/Commercial License scheme with existing licenses grandfathered in. Rest assured that LUFA licensing won’t change overnight, and I have no intentions of making rash decisions that would adversely affect the community without getting feedback from everyone first well in advance.

Cheers!
– Dean

 

Leave a Reply

 
(will not be published)
 
 
Comment
 
 

 

Vital Stats

  • 35 Years Old
  • Australian
  • Lover of embedded systems
  • Firmware engineer
  • Self-Proclaimed Geek

Latest Blog Posts

RSS