Have been using Bossa app to uploaded complied binaries Bossa download
But it requires that the com ports be set at the lower
baud rate of 1200/9600 to put the chip in to programing mode
Then windows detect it on different port and can use bossa tool to upload binnary
Is their anything that can use to set up com ports like the Arduino ide does
Where it set up the com ports uploads the file and then set com ports back.
This is for Due Boards (or ATSAM3X8EA-AU chips)
Looking for way to do this so people can upload the bin file with less effort and not need to have the Arduino IDE installed
When you want to give an update to your software, and want to release the binary file.
Any then they update the hardware via the bossa app using bin file only
Save them having IDE installed and lot of setup of libraries etc
This is so "anti-Arduino" that I cannot find civil words to use. Arduino is all-about-open-source and hiding the source code is almost a crime against humanity.
If you want to have the source freely available and provide the binary for people to quickly utilize so they do not need to be familiar and proficient with the ArduinoIDE; well, that is what GitHub is all about.
while the Arduino is certainly developed for educational purposes, there not reason not to use it for commercial products and it make sense to protect the intellectual property of those products.
the fact that Arduino is suitable for commercial products shows that it is much more than a toy
Latest version of IDE has an "Export Compiled Binary" not using hex
Bossa seems to be the way done now.
The only issue with the com switching and getting the board to a happy sate for the Bossa app to connect with sam chip. Im sure will find a way not a show stopper yet just little hard for some people.
Have made my own hardware with a ATSAM3X8EA-AU chip base
Much like programing a DUE board
Accept has all the toys most of us want on the bord
Solid state relays (12v,5V and GND switching)
Analogue inputs (5v/12v)
3x can buss lines (Adding 4th soon)
Wireless and Bluetooth options
There is a mountain of Open Source software that is commercial. Arduino core and Arduino basic libraries may be compiled without providing sources; but how many "commercial" closed-source programs actually use 3rd party libraries that are not LGPL? Once compiled, a disassembly would likely give hints; but primarily this is a good-faith - still, lawyers can smell money and have shark sharp teeth.
For example, Adafruit typically uses BSD (like) licensing, so the source is not required to be distributed but the license header of ownership must be distributed as text with the compiled program.
/*!
* @file Adafruit_BME680.h
*
* Adafruit BME680 temperature, humidity, barometric pressure and gas sensor
* driver
*
* This is the documentation for Adafruit's BME680 driver for the
* Arduino platform. It is designed specifically to work with the
* Adafruit BME680 breakout: https://www.adafruit.com/products/3660
*
* These sensors use I2C to communicate, 2 pins (SCL+SDA) are required
* to interface with the breakout.
*
* Adafruit invests time and resources providing this open source code,
* please support Adafruit and open-source hardware by purchasing
* products from Adafruit!
*
* Written by Ladyada for Adafruit Industries.
*
* BSD license, all text here must be included in any redistribution.
*
*/
so yes, using any open source licensed product in a commercial and and not making that source available wouldn't be right. but a higher quality commercial product is certain possible without using Arduino libraries
the Qualcomm products i worked on used Android. The Ethernet Driver i wrote for it became part of Android and open sourced, but the proprietary code was not open source
i don't think it would be difficult to rewrite the Arduino platform code -- everything defined in Android.h -- in a commercial product, specific to that product without compromising the intellectual of property of Arduino.
Arduino boards are essentially evaluation boards for Atmel processors -- they bring out the processor pins out to pins on the board.
you certainly can't be suggesting that any product using an Atmel processors used on Arduino boards infringes on the Arduino copyright.
is there any reason you can't used the Arduino Tool Chain to develop a proprietary product?
Exactly. For example, if you are using digitalWrite(), you are using LGPL code:
To comply with the license, you have to provide linkable object files, not just a binary or a HEX file.
If you don't, you are in violation of the license.
If you don't agree with these conditions, you are free to use a different platform, but if you want to use the Arduino framework, you have to comply.
And if you are using any libraries licensed under the GPL, you not only have to provide linkable object files, but you have to publish the full source code as well (under a compatible license).
There are many reasons to not use Arduino.
Some of the biggest one can be licensing requirements of the open source code used to build the image, particularly if the manufacturer is wanting to not disclose their source code.
But Arduino really isn't suitable for most commercial products.
Well at least not for products that want to protect IP that is in software.
i.e. build a product using Arduino but keep the software source code closed source.
For the most part the ability to use Arduino for closed s/w products is a myth that has been promoted by the Arduino dev team itself for years.
It is impossible (a license violation) to only provide a binary f/w image when using Arduino due to the licensing requirements of the other open source components used and linked in to build the f/w image.
(open source is not the same as freeware)
Even LGPL 2.1 requires that the receiver of the built image must be able to modify the LGPL 2.1 components used in the image if he desires.
i.e. they have the right to modify code in any of the LGPL components in that image.
The end user has the right to ask for all the files necessary to give them the ability to rebuild the image with updated / modified open source components and to update the device with that newly built image.
It is a violation of the LGPL, and GPL if there are GPL components linked in, to only provide a binary image as that precludes the user from being able to modify any of the open source components used within that image.
This is why many companies that build closed source products tend to prefer open source licensed BSD or MIT as they are much more liberal and don't have these requirements.
The problem for Arduino and the IDE the way it is today, is that that there is no way to allow fully conforming to all the LGPL and GPL licensing requirements without shipping all the source code.
i.e. there is no way to provide a pre-compiled .ino object file that can be used with the IDE to re-build the f/w image with all the other needed Arduino LGPL / GPL source modules to build the final f/w image that could be used to replace the image in the device.
If there was a way to provide a precompiled .ino object file that could be used by the IDE to build an image, there are other issues because the .ino file usually includes header files from some Arduino libraries that are licensed LGPL or GPL.
It now becomes impossible to update the object file for potential changes to those library header files.
Also by including a LGPL header file the object created now becomes subject to the LGPL licensing terms and there is now way to rebuild that pre-compiled object without having the actual source code.
For example, supposed a user wants to fix a bug in a library or update the library to a newer version, the pre-compiled object file can't be updated without having the source code to it.
Being able to modify any LGPL component to create and update an image is a licensing requirement for LGPL and there is no way to build an Arduino image without using some amount of LGPL code.
So even if the main sketch code is considered proprietary and closed source, the image itself is still will be always be subject to LGPL 2.1 licensing requirements, and potentially GPL 2.0 or even GPL 3.0 requirements, depending on which libraries where used in the image.
LGPL 2.1 requires more than that.
People always seem to forget about section 6.
This has several options but the intent and requirement is that the user has the right to rebuild the image with modified sources for the LGPL components.
i.e. if I want to change the digitalWrite() code in the image I must be able to do so.
@bperrybap very well covered points.
Found you style clear to follow and good examples used to help explain.
Would you know what rules/laws may be in place for my hardware
Other than the fact I have a ATSAM3X8EA-AU chip (The same one DUE uses)
But it has no form or design from a DUE boards just same chip.
So while Arduino Due uses the ATSAM3X8EA-AU chip,
Is that chip its self got any LGPL that would require I provide all file to make it public ?
Or is that just a chip and no one dictates usages.
I don't know, I"m not familiar with your h/w.
But there can be licensing as well as patent issues for h/w.
I've heard of using LGPL or GPL on hardware but I don't think it is very common - like I can't imagine any real chip maker using it and it never made sense to me.
The GNU licenses are related to copyrights for something that can be copied, you can't easily make a copy of chip like you can of software &firmware.
Microcode, and firmware yes, but the hard wired design of chip simply doesn't work that way.
Often IP for h/w is protected by patents and it can sometimes get really ugly.
There can be licensing of h/w in chips for say things like embedded cores like say an ARM core but that is agreed to up front and the company designing and having the chip made pays the license for that to get access to the IP.
In most cases when you buy a chip, then you can use it as you wish in your own designs, that you can fully own and control, without any royalty issues.
i.e. if a chip infringes on some else's patents, the entity having the chip made pays the royalty (i.e. not the fab house) and anyone who buys the chip is covered by the chip maker for any licensing and/or patents.
One big exception to this was back in the 80s for Token Ring chips.
The chip makers didn't pay IBM a Token ring patent royalty. IBM went after the board makers to pay it and it was % of the selling price for the board. Often taking a large chunk of the profit margin of the board.
IMO, this was wrong since the chip is actually the one that infringed on the claims
i.e. the entire design and point of a token ring chip is to implement the token ring protocols and functions and those functions is what violated IBM's patent. There was no other purpose of the chip. But IBM went after the board makers instead to get a bigger royalty - greedy bastards.
I have never seen this type of pass-through royalty done with patents by others.
IBM was very greedy on this and in the end it was one of the causes for its downfall. https://www.techrepublic.com/article/does-anyone-actually-still-use-token-ring/
In the 90's it gave me great joy to get the USPTO to toss out one of their patents that they attempted to use against my company.
It was a patent for rate negotiation of asymmetric rates for ADSL.
IMO, it didn't pass the obvious test for a patent; even worse IBM stole the ideas for the claims from some of the ADSL forum standards meetings and documents so they didn't actually even invent it.
But finally killed it, I found some prior art for their claims going back to the late 70s for some 1200 baud modems.
So not only did my company not have pay emphasized textbut I got the entire patent tossed out due to prior art so nobody had to pay them anything when implementing ADSL chips.