Still no upload without recompile

Still no upload without recompile. That is odd how one of most important features is still missing after years of development and major versions. Yes there is arguments why that feature is needless. But most of them are just bs. But there is also lot of reasons why that feature is useful. Now when they also drop support for visual studio code it is even more important that they start listen users and do that damn button.

1 Like

Hi @tapsa.

Most important to you. Not important at all to 99.99% of the other users. Do you frequently find the need to upload when you haven't made any changes to the sketch since the last time you compiled? I don't.

If you need this feature so much, just use the other development tool provided by Arduino: Arduino CLI:

https://arduino.github.io/arduino-cli/

The arduino-cli upload command does not trigger a compile, but instead uploads whatever binary is present from the last time the sketch was compiled, just as you hope for.

You seem to misunderstand the nature of the "Arduino" VS Code Extension. Despite the "Arduino" in the extension name, the Arduino company had absolutely nothing to do with the creation, maintenance, or decision to retire that extension. It was something Microsoft created and killed purely on their own initiative.

You can export a compiled binary, and upload that as many times as you want.

That is a misleading statement. If you want to save the output of the compiler, you can upload it as often as you wish. There is an excellent case for that where you have a n=bunch of boards running the same code, that is why it is there.
For most users however, that is not what we are doing so a fresh compile is the safest approach before upload.

Arduino IDE is a tool for developing sketches. It is not intended to be a tool for flashing many boards with the same binary. If you are doing that, you should use another tool. It will be most efficient to use the uploader tool (e.g., AVRDUDE uploader tool) directly, or for a bit more convenience, use Arduino CLI.

yes I can also use nano to edit code and compile it from command line. There is many things what I can do but whole point of IDE is make things easy so quite null argument.

I did not say even many boards... example yesterday I use half day to debug flashing issues at new board. Each compile run took 5 minutes (yes it is not small). I end to do it via cli. Another hand then I had problem that I need each time close debuger port, do flash, open debuger port to see whats going on. Totally unnecessary step just because lack of simple feature. And when I teach new people to use arduino that feature is one of most commonly asked questions that why it is not possible. Another hand it works good example what kind damage developer stubborn attitude do for product. So kinda it (and this forum) serve one educational purpose. It suits well for that educational purpose because it repeat it self in forums and each time it got same empty "use cli" responses without even seeing variety of usecases. So I need thank you of that.

No it's nit a Null argument. You want it solved in a particular manner, but the solution does exist. The uploading tool is separate from the compiler and you can use it as such. Just a bit of creativity is all that is required.

Either you are debugging flashing issues, which have nothing to do with the code it self, or you are dealing with coding issues. If the code takes that long to compile anyway, there are also other issues that cause that. The ESP cores compile big parts and save them as cache so the next compile is quicker.

Well yes there i agree, the feature should be easy enough to add, still doing what i suggested should be easy enough to execute. Simply ticking the verbose output during upload box, will give you all the info you need to create you own command line batch.

I seriously doubt that though. It really is a feature that is hardly required for code development, and as i stated before, if it is needed to develop other parts, it can be done without a big code.

First of all, if it doesn't suit your purpose, yes you should find another way of doing it. There is nothing wrong with saying that for a product that is provided free of charge. Secondly, it is the attitude you have that is getting in your way. If you try and do something, and can not find an easy way, you can blame others for this, but instead you could seek help from people who want to do something similar (or have done) and connect with them. Debugging will always be kind of tedious and can be frustrating.

But yes i do agree that it would be a rather simple function to add, which i have not missed in the current IDE, but that is a different matter. I don't think there is enough request, but adding it should be so simple that not much request should be required.

To what you base that there is not much request. Old threads about this feature had collected about 60k views. If no one care and want it why those threads are so popular and why it pops up again and again? My theory is that quite many try google it and land to those threads.

Personally I would rather have more basic problems with the IDE fixed when the ability to upload without compiling already exists

I would also appreciate it a lot if I could just upload an already compiled sketch with a single button from Arduino IDE. Uploading sometimes fails for various reasons (like forgetting to press a board upload button, bad USB cable, ...). Then you have to wait while everything gets compiled again ...

1 Like

It is not just arguments about it being needless. If not done right, such a feature could cause great harm. Imagine how confusing it would be for us to support people who are reporting that their program is not behaving as expected when they don't tell us that they are clicking the "upload without compiling" button instead of the "compile and upload" button, and thus are uploading some outdated version of the program.

I base it on the fact that the Arduino team does not find it important enough to implement. They tend to make those decisions based on the amount of request received.

Well this is less of an argument in my opinion. If it is just an option in the same menu as 'upload using programmer' i don't see what could go wrong that often. So as an argument not to implement something like that it fails in my opinion. If added i actually doubt most users would even find it without looking for it specifically. For me personally, not a priority, but no harm in adding and probably not a lot of work to do so.

Obviously my laptop is quite a bit quicker than yours.
Also for the cores i use that are slower, a re-compile tends to take a lot less time than a new compile.

I'd still prefer a button rather than buying a faster computer :confused:

If that were the case then the Serial monitor would have been in a floating window a long time ago.

There have been a number of cases (not that many though) on the forum where the user clciked the debug button instead of the upload button and could not figure out what is wrong.

1 Like

It has previously been suggested that the ability to have a button to upload without recompilation be made an option in the IDE preferences and that it would be off by default. This would reduce the chance of it being clicked by newcomers

That would be an option. Personally I would just place it in the sketch menu; that's also where the export compiled binary is located. I just hope that I don't wake up sleeping dogs and somebody starts asking about the lack of a button for that :rofl:

I will be happy if the option requested here is never implemented and I will also be happy if it one day will show.

Lastly, I think that one can add its own script (no idea how, not of interest to me at the moment) to the IDE to give that functionality.

The problem I see with the proposed preference approach is that it makes it very easy for the user to forget they set that preference. I also think it will be quite inconvenient for the users since typically you would not want to put the IDE persistently into the "upload without compile" state, but rather only trigger one periodically on demand.

I think a better solution would be to add a command palette command for triggering a single "upload without compile". This is much quicker to access than a setting (and can even be assigned a keyboard shortcut by the user), and doesn't put the IDE into a persistent problematic state.

It would be interesting to see whether you could accomplish this by configuring the platform so that when you select a specific programmer from the Tools > Programmer menu, then perform a "Burn Bootloader", it flashes the sketch binary instead of a bootloader binary.