Code security / privacy...?

Dear all,

I am new to the forum (and arduino).

I am planning on making a commercial product with it. So I have a few questions in mind...:

Do I need to include text like "powered by Arduino"... etc on the product?
Do I need to share a part of the revenue to arduino?
Is the code safe? Can other developer extract the code?
If the code cannot be extracted, can it be copied?

Something additional: Is patents international or local?

Thanks in advance!!
Newton (from Hong Kong)

hello

You can use Arduino to make a commercial product following some simple rules.

  • if you have made your circuit as a derivative of the Arduino board you must release the design files with a CC-BY-SA license like the original cad files
  • If you build your circuit as a shield that plugs on top of an Arduino board all the circuit is yours and you don't have to release anything
  • The programs written on Arduino are yours. if you have modified the core files or one of the libraries you must make your modifications available to everybody
  • You can call your product in any way you like as long as you don't call it Arduino
  • If in the documentation for your product you want to write "Powered By Arduino" that would be appreciated :slight_smile:
  • There is no revenue sharing for any derivative work (unless it uses the Arduino name see Arduino - Home )

having said this.
The code on the Arduino can be read after it has been programmed.
It will be available only in binary form but can be programmed on another board (i.e. copied)

There is a "fuse" that you can burn that will make the code unreadable but it will also make it hard for you to update your code once it's on the board.

If you patent something you have to do that in every place in the world you want to protect your idea. the more countries the more payments :slight_smile:
Patents reveal your idea to the whole world.. some people don't patent so they don't have to provide any detail about their invention

PS you can't patent Arduino :slight_smile: :slight_smile:

PPS You should email us at team (at) arduino (dot) cc to let us know what you're building. We're always interested in hearing what people are doing with Arduino

thanks very much!

I would like to know more about the "fuse" thing, can you give me some links? can fused programmes be copied? in additional, can I erase the code altogether and burn a new code in when I need to update?

I dont fully understand "you can't patent Arduino", can I patent the algorithms behind my work? or my code?

Newton

can I patent the algorithms behind my work? or my code?

You can't patent algorithms per-say nor can you patent code.
That is according to English law.

However, code is subject to copyright like anything else written.

oh it seems there is a whole lot for me to learn, about these patent vs copyright thing... besides the actual developing

You can't patent algorithms per-say nor can you patent code.

I bet there are ways around that.

Supposedly you can't do that with patents in the USA, either, but anyone who's been following this mess for that past 10+ years knows that's a crock.

:wink:

I would like to know more about the "fuse" thing

Overview: After you have put your program into the chip, there is an additional step that can set certain bits in a certain register to certain states that will not allow the program or data memory to be read. You can erase the entire chip and start over, but your customers (or anyone else, including you) will not be able to read the program from the chip. It's in the hardware.

can fused programmes be copied?

Not if you program the "lock bits" that I referred to above.

can I erase the code altogether and burn a new code

Yes.

can you give me some links?

The data sheet is doc8271 on the Atmel web site:
http://www.atmel.com/dyn/resources/prod_documents/doc8271.pdf The current revision (April, 2010) has 562 pages. "Program and Memory Data Lock Bits" are described in section 27.1

Be sure to read the entire document before asking any more questions. See my Important Footnote.

Bottom line:
Once you have programmed these lock bits, they can not be reset (to an "unprotected" state) without erasing the entire chip. If you set them to protect Program Memory, Program Memory can not be read or programmed further without erasing the entire chip.

Regards,

Dave

Important Footnote:
Just kidding.

thanks for your footnote!!! i scared i did something wrong here!

so I need additional hardware to be able to program that, right?

or are there some hacks like using 2 arduino boards (like burning the bootloader) can get the job done?

if so my project is officially started!!

Newton

did something wrong

In my book, it's always OK to ask. But maybe that's me: I'm funny that way. (See Footnote.)

using 2 arduino boards (like burning the bootloader) can get the job done?

That's certainly OK for starting your project, but I'm not sure that the standard Arduino bootloader or the standard "Arduino-used-as-an-in-system-programmer" sketch can do the fuse thing. (I'm new to Arduino; maybe someone else knows....) You can certainly use an Arduino board to program another Arduino board (assuming that the first one has an Arduino bootloader and an Arduino ISP sketch loaded).

But...

Beware of corrupting the fuse settings or corrupting the Arduino bootloader, since it might be irreversible without a "real" programmer.

additional hardware

Some time before you "go commercial" I think you should figure on investing in a real programmer. There are lots of homebrew designs floating around, and some are apparently highly regarded by some Arduinoworld denizens, but I would recommend that you budget something like 50 US Dollars for a real product.

For example a Genuine Atmel AVR Dragon programmer can be used lots of other Atmel chips, too. I'm working with the XMega family in my so-called spare time. Using the Dragon from Windows AVRStudio makes the fuse stuff "easy," although it's possible to use the Dragon in other ways. For example, the Avrdude programming utility used in the Arduino environment can be (easily) used from a command line in Linux (which is where I do most of my "real" work).

Good Luck!

Regards,

Dave

Footnote:
""Men are born ignorant, not stupid.
They are made stupid by education."
---George Bernad Shaw