Migrating IDE 1.8.19 to IDE 2.0.0

Is there an easy way to migrate the IDE customisations (libraries, boards, etc) from the old version to the new?

In the past, for minor updates to the IDE (eg 1.8.18 to 1.8.19) my practice was to simply overwrite the existing install tree with the zip version of the updated IDE. I assume that the 2.0.0 version will be too substantially different to do this(?)...

I suppose the tedious method (install both side by side, compare & manually duplicate) is the way?

Cheers,
Chris.

If you install 2.0, in my experience it knows everything about your 1.8.19 install.

  1. I did not install additional boards but it does know them.
  2. It uses the same directory (and directory structure) as 1.8.19 so it will find all libraries that you have currently installed.

You can install both 1.8.x and 2.0 next to each other.

I'm using Windows; can't vow for other operating systems but I suspect that it will be the same.

PS
Your topic has been moved to the dedicated IDE2.0 section of the forum.

Hi @ChrisTH101. For those that have installed libraries and boards in the standard way (Library Manager, "Add ZIP Library...", Boards Manager), there are only two things that might need to be migrated from Arduino 1.x to 2.x:

"Sketchbook location" preference

Arduino IDE 1.x and 2.x both use the same default sketchbook location, so users who kept the default sketchbook location in Arduino IDE 1.x will not need to do anything, but if you have a custom sketchbook location you will need to also configure the Arduino IDE 2.x sketchbook location preference to the same path if you want the new IDE to have access to the libraries you installed previously.

  1. Start Arduino IDE 1.x.
  2. Select File > Preferences from the Arduino IDE menus.
    The "Preferences" dialog will open.
  3. Take note of the path set in the "Sketchbook location" field.
  4. Start Arduino IDE 2.x.
  5. Select File > Preferences from the Arduino IDE menus.
    The "Preferences" dialog will open.
  6. Click the BROWSE button to the right of the "Sketchbook location" field.
  7. Select the folder of the sketchbook location from the Arduino IDE 1.x "Sketchbook location" preference.
  8. Click the Choose button on the "Select new sketchbook location" dialog.
  9. Click the OK button on the "Preferences" dialog.
  10. Select File > Quit from the Arduino IDE menus.
  11. Start Arduino IDE 2.x.
    (it is currently required to restart the IDE to make it fully recognize the libraries under the sketchbook location after changing the preference)

"Additional Boards Manager URLs" preference

By default, the Arduino IDE Boards Manager offers all the official and partner boards platforms (e.g., "Arduino megaAVR Boards"). It is also possible to install any of the many 3rd party boards platforms (e.g., ESP8266, ESP32) by adding their URL to the Arduino IDE preferences. If you have added any such URLs in the Arduino IDE 1.x preferences, you should migrate those to the Arduino IDE 2.x preferences so that you can get updates from Boards Manager.

  1. Start Arduino IDE 1.x.
  2. Select File > Preferences from the Arduino IDE menus.
    The "Preferences" dialog will open.
  3. Click on the "Additional Boards Manager URLs" field.
  4. Press Ctrl+A to select all the text.
  5. Press Ctrl+C.
    This will copy the selected text to the clipboard.
  6. Start Arduino IDE 2.x.
  7. Select File > Preferences from the Arduino IDE menus.
    The "Preferences" dialog will open.
  8. Click on the "Additional Boards Manager URLs" field.
  9. Press Ctrl+V.
    This will paste the compilation output into the code block.
  10. Click the OK button on the "Preferences" dialog.

The instructions I provided above will be all that is needed for those who customized the IDE in the standard ways. However, it is possible that you have done customizations in a different way, in which case additional migration steps might be needed.

Please provide a detailed description of the customizations you have made so that I can be sure to provide you with the correct migration instructions.

Yes. Arduino IDE 2.x is a complete rewrite of the Arduino IDE. The two installations are fundamentally different.

Even when updating Arduino IDE 1.x or 2.x, I strongly discourage this approach of merging the new installation with the old.

When using Arduino IDE 1.x in a best practices manner, there will be no user files under the installation, which means that you can safely replace (not merge) an old version with another without losing any user data. It is the same with Arduino IDE 2.x. In fact it is even more so because the Arduino IDE 2.x installation does not contain the "built-in" libraries and AVR boards platform that often tempted users to make installations or modification inside the application folder.

It does know them, but don't be led into thinking this means you don't need to migrate your "Additional Boards Manager URLs" preference. The reason you should migrate it is that the URL provides the information about what versions of the boards platform are available. So you will only get updates of your 3rd party platforms if you have its URL in the preferences.

There is a plan to make the IDE communicate this fact to the user, the necessary groundwork for which is tracked here:

But only if you are using the default sketchbook location. I think most people are, so probably most won't need to worry about this.

I was aware of that but thanks for the reminder. I've now done so :wink:

Are you saying that if my sketchbook directory is e.g. D:\\Arduino, it will not pick up libraries in D:\Arduino\libraries?

It will only do that after you open the Arduino IDE 2.x preferences, change the "Sketchbook location" preference to D:\Arduino, and restart the IDE.

A fresh installation of Arduino IDE 2.x will have the "Sketchbook location" preference set to the default:

Windows

%USERPROFILE%\Documents\Arduino\

(e.g., C:\Users\{username}\Documents\Arduino\)

Linux

~/Arduino/

macOS

~/Arduino/

Arduino IDE 1.x and 2.x use completely different preferences stores, so Arduino IDE 2.x doesn't know anything about your Arduino IDE 1.x preferences.

Thanks. That's just logic :wink:

I think users may assume that their IDE 1.x preferences will be used by 2.x, as was the case with any previous IDE update. Fortunately, I think that most of those will also be using the default sketchbook location.

So the bigger concern is about the "Additional Boards Manager URLs " preference. It is not essential that they configure that preference immediately after updating, since they will still be able to use their installed platforms even without it, but this will eventually be problematic as the missed Boards Manager updates result in them using increasingly outdated platform versions. We are already seeing something similar happening with the ESP32 boards platform, where Espressif changed the URL some time ago and the users who still have the old URL are still using a significantly outdated version.

The hope is that the work to make the IDE warn the users about the presence of installed platforms without an associated URL in the preferences can be completed before enough time has passed for the resulting lack of updates to become problematic.

Thanks all for the comments - very useful. Running on Windows BTW, apologies for not clarifying earlier.

At this stage I can't remember how the original IDE was installed. I'm pretty certain that it was simply the zip archive since it's installed under my USER\Documents structure with the sketches similarly in a folder under [...]\Documents - this at least can be customised in IDE 2.0 so all good.

I think I'll do a side-by-side install and compare/update the new IDE with the old (disk space is cheap).

Does the new IDE have the facility to check for (& install) updates?

Cheers,
Chris.

You are welcome. Please let us know if you have any problems or questions during the migration.

Yes. On startup It will check for newer versions of any of the following things and notify you with an installation offer if one is available:

  • Newer version of the Arduino IDE
  • Newer version of any installed library that is available from Library Manager
  • Newer version of any installed boards platform that is available from Boards Manager

So I went ahead and (side-by-side) installed the new IDE and it seems to have picked up all the libs and boards automagically :slight_smile: - very painless!

I'm away from my usual dev location atm so I'll have to wait to confirm that compiles/uploads etc are working.

I thought I read in the docs that IDE supersedes the Arduino Create Agent (I have one IoT Cloud project that I was using that for) so is it safe to uninstall that too?

The "Remote Sketchbook" feature of Arduino IDE 2.x allows you to pull sketches from your Arduino Cloud account, edit those sketches in the IDE, upload those sketches to Arduino boards, and push any changes back to the cloud.

When used in this way, it does completely supersede Arduino Create Agent. However, if you still want to upload sketches from the Arduino IoT Cloud or Arduino Web Editor web pages then you do need Arduino Create Agent. You will also need it in order to create new Arduino IoT Cloud "Devices".

Arduino Create Agent is the interface between the Arduino Cloud websites and the Arduino board hardware. You can do any purely software operation (e.g., edit sketches, things, dashboards) on the Arduino Cloud websites without having Arduino Create Agent installed.

You can learn more about the Arduino IDE 2.x "Remote Sketchbook" feature here:

That sounds what I'm looking for - I've already sync'ed the remote sketchbook so if I can compile and upload that locally on the PC and still have it connect to the IoT cloud dashboard (your description certainly suggests that it possible) then I'm satisfied.

Thanks for all the useful advice!

You are welcome. I'm glad if I was able to be of assistance.

Regards,
Per

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.