2 Versions of Arduino IDE (Portable) On The Same Computer

Hi all

I have a Windows 10 computer.

I extracted the file arduino-1.0.3-windows.zip on it,
it is Arduno IDE v1.0.3, Portable Version - no installer.

It works very well.

I would now like to extract the file arduino-1.8.9-windows.zip,
into a different separate folder of course.

My question:

Can I have 2 portable versions of Arduino IDE on the same computer?
(v1.0.3 and v1.8.9)

I don't need to run them both simultaneously,
but I would like to be able to run one version, then close it and run the other version,
and be able to switch like that freely..

I am aware that both of these ZIP files are portable,
yet I ask this question because I know that on the first run of the Arduino IDE, it captures the relevant File Extensions (e.g. .ino) and associates them with its executable..

So what will happen, every time I run one version, it will take over the .ino file extension?

Any other problems/issues that I should be aware of?

Thank you

card5:
Can I have 2 portable versionf of Arduino IDE on the same computer?
(v1.0.3 and v1.8.9)

Yes. I have 26 versions of the Arduino IDE installed on my computer right now.

card5:
I know that on the first run of the Arduino IDE, it captures the relevant File Extensions (e.g. .ino) and associates them with its executable.

So what will happen, every time I run one version, it will take over the .ino file extension?

Wrong. That happens when you run the installer. Neither of the installations will be associated with the .ino extension.

card5:
Any other problems/issues that I should be aware of?

Note that the "Windows ZIP file for non admin install" is not portable by default. If you want to to be portable, you need to follow these instructions:
https://www.arduino.cc/en/Guide/PortableIDE
Those don't apply to the ancient Arduino IDE 1.0.3. It is not possible to run that version of the Arduino IDE in portable mode. You can still happily run the "Windows ZIP file for non admin install" versions of both 1.0.3 and 1.8.9 on the same machine though, even if neither is in portable mode.

pert:
Yes. I have 26 versions of the Arduino IDE installed on my computer right now.

Terrific, so 2 should be ok :slight_smile:

pert:
Wrong. That happens when you run the installer. Neither of the installations will be associated with the .ino extension.

Hmm, I remembered something else,
so I decided to check it.

I have a VM that I never ran/installed Arduino IDE on.

I loaded the VM, and copied an .ino file into it.
I verified that it had no association/icon whatsovever on that VM, and indeed that was so.

I then copied arduino-1.0.3-windows.zip into the VM,
and extracted it.

I ran it once, and closed it.

After that, I can now click on the .ino file that I copied into the VM earlier, and Arduino IDE opens it.
Also this extension now has an icon associated with it..

So Arduino IDE, which came in a ZIP file and not an installer, did take over the relevant File Extensions..
(maybe the behavior is different in new versions?
but that's how it is in v1.0.3 at least, for sure)

BTW,
I also checked File -> Preferences:

There is a setting for it, and it is On by default..
So on the first run it's going to capture them..

The behavior is different in more recent versions?

pert:
Note that the "Windows ZIP file for non admin install" is not portable by default.
...
You can still happily run the "Windows ZIP file for non admin install" versions of both 1.0.3 and 1.8.9 on the same machine though, even if neither is in portable mode.

Great

I haven't used Arduino IDE 1.0.3 in years so I don't know how that worked with file associations. I have .ino files associated with a text editor on my computer. I install a new "Windows ZIP file for non admin install" version of the Arduino IDE maybe once a week on my computer and it has never once taken over the association. The oldest IDE version I have installed on my computer is 1.0.5. It does have that "Automatically associate .ino files with Arduino" option in preferences. The second oldest version I have installed is 1.6.0. It has the option in Preferences, but it's disabled so you can't turn it on. In the modern IDE versions, that option was removed from Preferences and you can only associate .ino files by running the installer (which the "Windows ZIP file for non admin install" version doesn't have).

pert:
The oldest IDE version I have installed on my computer is 1.0.5. It does have that "Automatically associate .ino files with Arduino" option in preferences.
The second oldest version I have installed is 1.6.0. It has the option in Preferences, but it's disabled so you can't turn it on.

In the modern IDE versions, that option was removed from Preferences and you can only associate .ino files by running the installer (which the "Windows ZIP file for non admin install" version doesn't have).

I see, so that explains, the behavior changed..

OK so my old version does capture it, yet the new one won't.

OK great.

BTW, since you are one of the developers, may I please suggest a small thing?

The reason I use such an old version of the IDE, is because it's light, and it loads fast,
because it includes support mainly only for the old ATmega###/#### boards.

Since up until now I only used Arduino Nano, Pro Mini, and Mega 2560,
then v1.0.3 had everything I need.

I do install now the newest available version, because I want to be able to use ESP8266 Core for Arduino IDE..

So my suggestion is this:

As the IDE progressed, it got support for more and more boards.
Yet many of us, do not use all of them, and in many cases just a small subset of them..

For me it may be Nano, ProMini, Mega2560 (and now ESP8266),
for someone else it may be something else..

So the suggestion is to create in the Preferences a list with checkboxes of all Arduino boards,
and the user can remove the check marks from boards that he doesn't currently use.

Doing so, will prevent the IDE from loading the relevant data for those boards into RAM, every time we load the IDE.

This should make the IDE feel much lighter..

And in the future, one can always revisit that Preferences page, and change/add marks for boards that he now needs to use..

What do you think?

That feature has already been requested:

In that issue thread, I do describe how you can do this, though it's not possible to do so via the Arduino IDE's GUI as you want:

There is a new feature which will somewhat address this issue. It is the addition of a "recently used boards section, which is always at the top of the Tools > Board menu. This is already available in the beta build of the Arduino IDE:

card5:
Doing so, will prevent the IDE from loading the relevant data for those boards into RAM, every time we load the IDE.

Sorry, but it won't work like that. It's not scanning boards, it's scanning hardware packages. If you don't need any of the boards of a package, then you simply don't install it (or remove it), if you need even one board of the package, then you need the whole package. There is practically no extra overhead for the package having 10 boards vs 1 board.

The benefit of doing this is merely not having to scroll through tons of boards you'll never use in the Tools > Board menu.

In fact, the modern IDE is actually more lightweight than the older IDE versions in this respect because it only bundles Arduino AVR Boards. Older IDE versions bundled Arduino AVR Boards as well as Arduino SAM Boards (for the Arduino Due). 1.0.3 was before the Due came out so it also has only Arduino AVR Boards bundled.

pert:
If you don't need any of the boards of a package, then you simply don't install it (or remove it), if you need even one board of the package, then you need the whole package.

You say
>then you simply don't install it
but what happens with people who extract a ZIP, and not use the installer?
Do they also have some way to choose?

(If not, then maybe it means that with the new version, I should use the installer instead of just extracting a ZIP)

pert:
In fact, the modern IDE is actually more lightweight than the older IDE versions in this respect because it only bundles Arduino AVR Boards. Older IDE versions bundled Arduino AVR Boards as well as Arduino SAM Boards (for the Arduino Due). 1.0.3 was before the Due came out so it also has only Arduino AVR Boards bundled.

Hmm, nice to know.

And yes, the version that I tried after v1.0.3 was v1.0.6 I think,
I did not like how slow it loaded, so I went back to v1.0.3, and stayed with it for years since as mentioned, I am only using AVRs.

OK would be interesting to see the change in speed,
will try it now, thank you very much

card5:
but what happens with people who extract a ZIP, and not use the installer?

I'm talking about additional hardware packages (e.g., ESP8266 core for Arduino). Those aren't installed with the Arduino IDE, no matter which version you use. They are installed separately. If you aren't going to use an ESP8266 board, then you don't install the ESP8266 core for Arduino. If you installed ESP8266 Core for Arduino and then decided not to use it anymore, you uninstall it.

The only hardware package that is installed with the modern Arduino IDE (or your ancient 1.0.3) is Arduino AVR Boards (Uno, Mega, Leonardo, etc.). The reason for that is those are the most common boards for beginners and Arduino wants to make it as easy as possible for beginners to get started. Since you're using Nano, Pro Mini, and Mega, you should not mind that Arduino AVR Boards is bundled, since you need it anyway.

pert:
I'm talking about additional hardware packages (e.g., ESP8266 core for Arduino).

pert:
The only hardware package that is installed with the modern Arduino IDE (or your ancient 1.0.3) is Arduino AVR Boards (Uno, Mega, Leonardo, etc.).

Oh..
That's great to hear.

pert:
The reason for that is those are the most common boards for beginners and Arduino wants to make it as easy as possible for beginners to get started. Since you're using Nano, Pro Mini, and Mega, you should not mind that Arduino AVR Boards is bundled, since you need it anyway.

Right, those are the classic ones which are still highly used..

OK, that's great to hear.

Thank you for all this.