I am wondering what it means that arduino is licensed under the GPL
I know its a big topic and I am no expert, just trying to get some info
Let's say that I make a device with a arduino.. let's say for instance that it's just a photocell with a light. When the photocell sends signal to arduino, the light comes on.
If I want to patent my device, do I have to publish the code?
Is the arduino running GPL code or only the code I wrote?
I am confused as to know if I have to publish the code I wrote, or it's ok to not publish the code I wrote?
The information on Wikipedia probably came from the same source. The reality is that code that is provided to program your Arduino comes from many different sources and has a variety of licenses. You would need to check the licenses of the code you're actually using and then determine what is required of you to comply with the licenses. You may discover with some code you find online that the author has not bothered to document a license, which makes it default to "all rights reserved", meaning that you can't use that code at all.
Is it possible to create proprietary software for an Arduino board? Absolutely. An Arduino board is just a microcontroller on a PCB. Thousands of commercial products with proprietary software have been created using these same microcontrollers. The developers of that software were very careful about the licenses of anyone else's code they used in the project. If they wanted to use some code with a license not compatible with the requirements of the project, they had the choice of negotiating a licensing agreement with the author or writing their own replacement for that code.
Before you go too far down this patenting rabbit hole, I would recommend that you do some research on the subject. It's often not worthwhile for someone like you to invest the time and money required to get a patent. Avoid information from people who have a vested interest in selling you patenting services. Keep in mind that your patent only applies in the country where you got it. It gives you no protection against someone in another country using your idea.
Also a patent is of no value whatever unless you can afford the high legal fees that would be required to take a civil action in court against someone who infringes your licence.
And, to qualify for a patent you must disclose all the details of your project in your patent application which everyone can then have easy access to.
And you cannot patent something that is already in the public domain - even if it is not already patented. So your patent cannot cover any part of existing Open Source code - only the extra stuff that you create.
What you need to consider in Open Source licences is any restrictions they place on the use or distribution of the code covered by the licence. In very general terms the purpose of most Open Source licences is to prevent some other person from taking the code out of the public domain.
If you are serious about this you need to get professional legal advice from a lawyer who is familiar with the subject - and I doubt if that will be cheap.