PlatformIO Community

Find the mbed version which was used before a backup?

I reformatted my computer and lost which version of mbed I was using in one of my projects. Now things are not working as I am on a newer version of mbed. Understandable, but how can I find the version of mbed through the backup I made on an external HD? Is there a particular file in the mbed installation folder that would specify this? I can’t find it!

What exactly did you backup? The compiled firmware? Or the PlatformIO folder?

The mbed-os source files are kept in C:\Users\<user>\.platformio\packages\framework-mbed. Depending on if you have other versions installed there might also be a @<version> suffix.

Of course, you can also tell PIO in the platformio.ini to use a previous version of the Platform or platform package to build something. Refer https://docs.platformio.org/en/latest/projectconf/section_env_platform.html#platform and your specific platform,e.g. ststm32 releases at https://github.com/platformio/platform-ststm32/releases.

thanks yeah I am telling platformio.ini to use a previous version of mbed, but I am certain this is not the exact version I was using before I reformatted. So I am trying to find that out through a macOS Time Machine backup. There is no suffix on the folder name.

This is the file structure of the package. Any idea where to find the version in all this? :sweat_smile:

$ .platformio/packages/framework-mbed/

.astyleignore           .travis.yml             TEST_APPS/              events/                 requirements.txt
.astylerc               CONTRIBUTING.md         UNITTESTS/              features/               rtos/
.coveragerc             DOXYGEN_FRONTPAGE.md    cmsis/                  hal/                    targets/
.gitattributes          Jenkinsfile             components/             logo.png                tools/
.github/                LICENSE-apache-2.0.txt  docs/                   mbed.h                  
.gitignore              LICENSE.md              doxyfile_options        package.json            
.piopm                  README.md               doxygen_options.json    platform/               
.pylintrc               TESTS/                  drivers/                platformio/    

Open the package.json and look at the version. The format is <PIO major package version>.<mbed os version number>.<date in yy mm dd>. E.g. 4.50802.200120 would mean major revision 4 of this package, mbed 5.8.2, 2020 Jan 20.

Also it’s contained in a header file in source code format in mbed_version.h.

E.g.

ahh perfect! The package.json seems to have what I am looking for.

{
  "description": "mbed Framework",
  "name": "framework-mbed",
  "url": "http://mbed.org",
  "version": "5.51401.191023"
}

Now I should be able to just plop that into platformio.ini like so?

platform_packages =
    framework-mbed @ 5.51401.191023

Yeah that should work and download https://bintray.com/platformio/tool-packages/download_file?file_path=f80c987-framework-mbed-5.51401.200110.tar.gz and use it.

1 Like

omg it worked :drooling_face: thanks for your help!

1 Like

The package major version != PIO Core version. We just increment it if there are significant changes in a project structure.

1 Like

Was corrected (: -----

1 Like