Tim,
The real issue for you if you decide to sell this as a closed source product will be the s/w licensing.
If you are using Arduino libraries, it will be impossible to comply with the licensing terms of the Arduino libraries,
if you don't want to fully disclose all the source code
The issue is not with the gnu tools and gcc avr compiler s/w libraries that come with the IDE
but rather that Arduino libraries.
Different arduino libaries have different licensing terms.
The license might be GPL, LGPL, BSD, MIT, or even freeware.
The bulk of libraries that come with the IDE are LGPL 2.1+
a few are GPL 3.0
Remember that the "free" in GPL/LGPL open source is about freedom and user rights.
If you use a GPL 3.0 library then all the code must conform to GPL 3.0 and you must
open source all the code - That is "price" for using a GPL 3.0 piece of s/w.
GPL 3.0 is a "You can use this code, if you share your code with everyone else" license.
Also, if you use GPL 3.0 you wave your patent rights that might be related to your code.
Many people mistakenly believe that LGPL 2.1+ can be freely used in a closed source project/product
very similar to an MIT, BSD or even a freeware license.
This is not the case. While LGPL 2.1 source modules can be used in closed source projects/products,
in order to fully comply with the GNU LGPL 2.1+ license, there are some things you must do.
This is the "price" you pay for using LGPL 2.1 licensed s/w.
The biggest thing you must do is that you must provide a means for the user to
rebuild the s/w image so that he can modify/update/maintain the image he received.
LGPL 2.1 is a "You are allowed to use it in a closed source project, but you must provide a means for users
to update any of the LGPL 2.1 source components used" license.
In other words, the high level goal of both LGPL and GPL is to always allow the user access to and the
ability to modify LGPL and GPL modules even once they are linked into a larger work.
In other words, even with LGPL, you can never lock out and users ability to modify the open source portions
of the code, even if it is used as component of larger closed source project/product.
The LGPL 2.1 license is quite clear that if you use it in a closed source project/product you must
provide all the pre-compiled objects and build scripts so that an end user can rebuild the image
with updated versions of the open source modules.
For example, if you ship an image in your AVR, and there were an update/bug-fix to the digitalWrite() code,
the user has to have the ability to re-create your the image using the updated code.
The Arduino guys very much dance around this issue.
Here is a excerpt from their FAQ page: http://arduino.cc/en/Main/FAQ
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.
The problem with this, is that section 6(a) of the LGPL 2.1 requires more than that:
Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library.
In the case of shipping a product with a firmware image that uses Arduino code,
that would fall under the the executable work, portion above,
which still requires that the user have the ability to modify the open source components and create
a modified executable (firmware image) with the modified library.
Where this gets very sticky and impossible to comply, is that currently the wimpy Ardiuino IDE build system
has no way to build/re-build an image using pre-compiled images.
Because of this, it is impossible to comply with the LGPL 2.1 licensing terms when trying to create
a closed source Arduino project/product that uses the Arduino IDE since the user has no way
of modifying/updating the code of any of the LGPL 2.1 modules used and then re-creating a new firmware image as is
required by 6(a) of the 2.1 LGPL
So in the ultimate irony, the Arduino platform and core libraries used LGPL 2.1 licenses but there is no way
to comply with it for closed source Arduino projects/products so they might as well have used GPL licensing
which would have made it more obvious that you can't create closed source projects.
--- bill