surfknasen:
How would that work? I want someone without the code to be able to update it.
I assume you mean "... without the source code to be able to update it."?
It sounds like you may be wanting to create a product using Arduino that is closed source.
If that is the case, read on.
If not you can stop right here.
--- bill
Can it be done. Yes.
But you won't be able to use the IDE as it is geared to using source code for open source projects.
If this is really a question about how to handle closed source projects and device updating, then there are some things that will need to be understood and resolved before the specific update mechanism needs to be worked out.
The rest of this response is about using closed source with Arduino.
When trying to use closed source with Arduino, you can rapidly run into s/w licensing issues that will likely prevent you from either using Arduino libraries, or from keeping your source code closed.
Licenses like BSD licenses are basically "freeware" and you can use them pretty much anyway you want; however, many other licenses are not so liberal such as LGPL or GPL.
While LGPL is compatible with closed source projects, some libraries are GPL which does not allow their use in closed source projects.
If you are using any GPL licensed libraries, particularly GPL 3.0 licensed code, you cannot distribute your device without also making all the source code in the project (which includes any/all of your sketch code) available.
If not using any GPL code but you are using LGPL code, the LGPL licensing does allow use in closed source projects; however, with Arduino it is nearly impossible to comply with the LGPL licensing rules.
The LGPL licensing rules mandate that a user be able to rebuild the executable image with updated LGPL code.
i.e. if the user wants/needs to update an Arduino LGPL library or a gcc library (all of which are LGPL) that is in your f/w image, the user must have a way to do this.
This means that you must provide all the files needed to allow this to happen.
Typically that is all the source code for the open source LGPL modules, and then the .o files for the closed source modules.
In "normal" projects, that would also include the makefiles needed to rebuild the image.
A makefile based system could fulfil the needed GPL requirement as it could use the pre-compiled objects.
However, with Arduino, the included Arduino IDE is typically used to build the executable image and the IDE does not provide a way to build an image with pre-compiled components.
So under the LGPL licensing requirements, I see no way to comply with the terms for use in a closed source project unless the image is built using some sort of method that does not use the IDE, like using make with a makefile.
--- bill