Hello!
I would like to be able to develop for two different esp32 dev boards.
Each dev board needs it's own library versions, chip, board support.
I'm trying to install two instance of Arduino IDE 2.3.6 - thinking each will use it's own folder, and will point to a different sketch folder, where I can place it's own libraries.
so I downloaded the 2.3.6 zip file and extracted to two folders. I have two executables of the IDE... However - both instances are using the same resource (registry?) to store the sketch folder, last opened files, etc - so if I change the sketch folder (in preferences) in one instance and open the other instance - it's changed too!
Is there a way to make this work with two instances of 2.3.6?
Thanks
The better way would be to adopt the "older" sketch to be able to work with the latest library version also.
If you can't update your older sketch, copy the needed old library versions to the local old sketch folder and ensure that you include the local library version.
But on long term, I suggest you take the effort to update your "old" sketch.
I don't believe this will be ever solved. They locked the discussions on Github about portable mode years ago, so apart from this forum, there is no place to ask for this regression to become fixed.
I can try that.
I hit this when working with different dev boards, usually it's the lcd/graphics library that require certain version of board/lvgl/gfx support and they are not updating their code, and I don't have time to dive into each compilation failure.
For example - using the lilygo T-display-s3 for one project, and ESP32-C6-LCD-1.47 for another - each use their own (multiple) library versions
There should be a way to keep an old project with it's own libraries without them flipping to new on you - maybe different library location is the key, but can you control where the library is installed if you're installing it from the UI? I don't think I have seen an option.
@xfpd changing the Arduino IDE executable file name didn't help , if that's what you meant.
Sketch names are different , sketch folder are different, and IDE folders are different.
Perhaps I am misunderstanding, but simply run two instances of the IDE (I am a Mac user, so I'm not familiar with the Windows approach) and in each instance, use the drop-down board selector to select your board. Now each copy of the IDE 'sees' only that board's resources. Just name the two sketches differently, such as including the board name.
That will not work. The IDE uses e.g. the sketchbook directory which will be shared between two instances. If you want to / have to use different versions of a 3rd party library you can only do so by changing the sketchbook directory and that is shared. There are other directories that are shared as well.
OP's best chance is to use a portable installation of IDE 1.x if a true independence of instances is needed.
It is not clear to me if he wanted serial or concurrent access to the two variants. I think mine works for serial but not conc current, the portable works for both.
Also PlatformIO and VS should handle what he wants.
Is it not possible to use ONLY the IDE2 Editor with a portable core/library set up?
[edit] Can you make a minimum test configuration for anyone to test? I can compile two different sketches using two different libraries with expected results (two different Arduinos doing two different things). Perhaps I am far off the subject.
The only other possibility I can think of, since the libraries and board packages are stored in the user folder, is to create and use a separate user account for project needing the older versions of libraries. Its not a particularly convenient solution but it would allow for two (or more) different setups.
(There is also a way to specify a custom user directory for an Electron app, but as yet I can't see how to do that with the IDE. It requires an edit to the main.js file in the root of the application but the IDE deson't seem to have one. Its also inconvenient unless you can specify a different main.js file to use on startup, which I am not sure one can do.)
The only other option, which I think has already been suggested is to move the older/alternate library folder into the project directory and include it with:
The cores don't have to be separate unless you e.g. want to have a setup for e.g. ESP32 2.x and ESP32 3.x. And to my knowledge you can not separate the sketchbook/libraries as they are configured in a configuration file (arduino-cli.yaml) which is shared by all instances.
T-display-S3 readme is instructing to install all libraries from their repository directly, and use a certain esp32 release.
ESP32-C6-LCD-1.47 has their own requirements on lvgl and another library - if updated to latest it breaks.
I believe that could work - problem is, for example the T-display-s3 has many libraries it overrides (about 20) there is some interdependence between them, could be a mess to change.
It would be nice (and reasonable, IMHO) if every install directory of the IDE would use just what's under that directory and not share info, or at least have a mode to do that, like there used to be as I hear
Yes, if it was just one or two then it might work, but multiple dependencies would get messy I guess.
Vscode with PlatformIO might have been an option if not for the fact that you need ESP32 support and Espressif pulled the plug on supporting PlatformIO. There is an community fork of PlatformIO called Pioarduino which might be a possible alternative.