I'm working on a project that I want to make available to users which I plan to update it's functionality through coding in the future. I want the users to be able to upload a firmware to the device using USB rather than upload the code using the Arduino IDE. Is there a way to make a firmware installer that will update the codes inside the devices?
Sorry if this has already been discussed but I haven't found the right answer yet. Any help would be greatly appreciated. Thank you!
You´d need something like a Batch-File to control the avrdude executable with all it´s dependencies (which must be somewhere as well).
Then some setup files for the Arduino and avrdude, to have the right connection, baud, µC Version, size, etc..
Maybe installed COM-Port driver for none official Arduinos?!
With this, you can upload a precompiled sketch, if the user has selected the right COM-Port.
This seems quite complicated to me and I´m not sure, if you´d be allowed to include those things like the avrdude into your update project.
Have you considered using an ESP8622 or ESP32, which has OTA Update capabilities. You could use a Webpage on it with an upload button. Or an executable, which submits the file via http(s) post from a computer.
What I want o achieve is to make a simple installer executable which the user can simply open, plug in the device using USB and hit update firmware button to install the new code in the device. Is there a solution out there that does this or a step by step guide I could follow?
That´s exactly the same approach, which I explained. Only using an Executable instead of a Batch-File.
You won´t have the right driver, if you use a CH340.
You will need the avrdude.exe
You will need at least one config-file and parameter to remotecontrol the avrdude.
But you can find the COM-Port yourself and hide the commandline, with an executable.
How to upload a sketch without Arduino IDE can be seen here: