Bootloader for commercial Product


Which bootloader is preferred for a commercial product based on AVR (328 or higher)?

Regards, Maverick

Describe "commercial product". If you want to sell an end product which doesn't need to be reprogrammed by customers and is sold "as is", you need no bootloader at all.

I don't have got special example now. It was more a general question.

You can see Projects on Kickstarter where People using Software based on the Arduino. I'm shure Chinese resellers using some "bootloader" in their products too.

Many of this products are as cheap I'm sure they don't pay Licence fees to anybody.

Whats about optiboot? It's free to implement it in commercial Products?

Regards, Maverick

It is free to implement in open source products. My understanding is if you use an open source product inside of your product, your product needs to be open source. That means you publish the source code for other parts of your product, for example publish the Eagle design of your board and publish the sketches or other software included in your product, so others can reproduce the whole thing.

You can see how SparkFun does this, they designed the Pro Mini and Pro Micro Arduino boards and started manufacturing them. They sell them on their web site and they publish the schematic and other design files and make them available right there on the same page where you click to buy. Chinese manufacturers then copy the whole thing, including the bootloader. Sometimes they make improvements to the design. For example there is an "Enhancement Pro Mini 3.3V/5V" which is appearing on eBay. Technically, the Chinese maker is supposed to publish their schematic. And the designers of the various Nano CH340G boards are supposed to publish those schematics. It is possible they are doing that, and the designs are posted somewhere on some Chinese web site.

Whats about optiboot? It's free to implement it in commercial Products?

Optiboot is GPL'ed by the original author, and GPL is a bit inapplicable to deeply embedded systems (but I don't think you can change a license unless you can get the original author to agree, and the original author of Optiboot has disappeared.)

It is my intent and understanding (as the current maintainer of Optiboot) that Optiboot is like the linux kernel; completely distinct from the application, and "not connected" in any way that would cause the Optiboot license to apply to a product that uses proprietary application code but uses optiboot for booting. If you modify optiboot itself, you're obligated to at least provide the modified version as open source, but that shouldn't apply if you are just using it. (Intent should be everything. I don't think that Gnu has ever hit on a company in contradiction to the intentions of the code author. I certainly hope not!)

Note that much of the Arduino code is also licensed under GPL and/or LGPL (inappropriately, IMO.) Arduino has stated that Arduino applications using the core need not be open source ( ) (Note the "linking" requirement, though, which essentially prohibits the sort of code protection that is typical for an embedded microcontroller product.) Some of the third-party libraries have more restrictive (and apparently intentionally viral) licenses. If you have a big commercial project that you want to keep proprietary, you may want to consult a lawyer. (Because the whole OSSW movement is really about keeping lawyers employed, at $200+/h. It's OK; companies that want to sell proprietary SW are evil anyway! Serves them right! Grr.)