Skip to content

Add support for Intel Galileo and Intel Edison #157

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ivankravets opened this issue Apr 6, 2015 · 16 comments
Closed

Add support for Intel Galileo and Intel Edison #157

ivankravets opened this issue Apr 6, 2015 · 16 comments

Comments

@ivankravets
Copy link
Member

@w4ilun
Copy link

w4ilun commented Feb 25, 2016

Any updates on this? Would be great to use platformIO to develop on the Intel Edison/Galileo with C/C++

@D3f0
Copy link

D3f0 commented Feb 25, 2016

@ivankravets How can we help?

@ivankravets
Copy link
Member Author

@D3f0 the interesting question... The best "helper" in this situation is Intel. We will try to contact with them.

P.S: Do you have any contacts with Intel Corp.?

@D3f0
Copy link

D3f0 commented Feb 25, 2016

Unfortunately I don't have any contacts. They have their own solution for IoT, which I personally don't like very much. I don't know if they would be interested, though we can try contacting them anyway.

I've found in their forums that sketches can be compiled with:

[bin]/i586-poky-linux-uclibc-g++ -m32 -march=i586 --sysroot=[tools]/i586-poky-linux-uclibc -Os -Wl,--gc-sections -march=i586 -o [tmp]/sketch_feb23a.cpp.elf [tmp]\sketch_feb23a.cpp.o [tmp]/core.a -L[tmp] -lm -lpthread

This compilations should not be hard to Scon-ify. Previously we should be able to download the compilers, .h files and stuff, I'll take a look at what URL Arduino IDE is calling to get the support files.

@w4ilun
Copy link

w4ilun commented Feb 25, 2016

What would be needed to get the ball rolling? I can reach out to see what can be supported

@ivankravets
Copy link
Member Author

Dear @w4ilun,

We have 2 issues related to Intel hardware. In the other words, we don't have support for the Intel hardware :(

Please ask someone from @intel to contact [email protected] and I'm ready to discuss implementation process.


Regards, Ivan Kravets

  • CTO, Founder, Ph.D, Researcher and Software Architect at PlatformIO.Org

@D3f0
Copy link

D3f0 commented Feb 27, 2016

I've taken a look at what the Arduino IDE downloads from:
http://downloads.arduino.cc/packages/package_index.json

Apparently the Intel related parts come from this part of the file

{
      "email": "[email protected]",
      "maintainer": "Intel",
      "websiteURL": "http://maker.intel.com/",
      "name": "Intel",
      "platforms": [
        {
          "name": "Intel i586 Boards",
          "version": "1.6.2+1.0",
          "category": "Arduino Certified",
          "architecture": "i586",
          "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz",
          "archiveFileName": "corelibs-galileo-1.6.2.tar.gz",
          "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a",
          "size": "272961",
          "boards": [
            {
              "name": "Galileo"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "Intel",
              "name": "i586-poky-linux-uclibc",
              "version": "1.6.2+1.0"
            },
            {
              "packager": "Intel",
              "name": "sketchUploader",
              "version": "1.6.2+1.0"
            }
          ]
        },
        {
          "name": "Intel i686 Boards",
          "version": "1.6.2+1.0",
          "category": "Arduino Certified",
          "architecture": "i686",
          "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz",
          "archiveFileName": "corelibs-edison-1.6.2.tar.gz",
          "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8",
          "size": "271420",
          "boards": [
            {
              "name": "Edison"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "Intel",
              "name": "core2-32-poky-linux",
              "version": "1.6.2+1.0"
            },
            {
              "packager": "Intel",
              "name": "sketchUploader",
              "version": "1.6.2+1.0"
            }
          ]
        },
        {
          "name": "Intel i586 Boards",
          "version": "1.6.7+1.0",
          "category": "Arduino Certified",
          "architecture": "i586",
          "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz",
          "archiveFileName": "corelibs-galileo-1.6.7.tar.gz",
          "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028",
          "size": "273392",
          "boards": [
            {
              "name": "Galileo"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "Intel",
              "name": "i586-poky-linux-uclibc",
              "version": "1.6.2+1.0"
            },
            {
              "packager": "Intel",
              "name": "sketchUploader",
              "version": "1.6.2+1.0"
            }
          ]
        },
        {
          "name": "Intel i686 Boards",
          "version": "1.6.7+1.0",
          "category": "Arduino Certified",
          "architecture": "i686",
          "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz",
          "archiveFileName": "corelibs-edison-1.6.7.tar.gz",
          "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1",
          "size": "272002",
          "boards": [
            {
              "name": "Edison"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "Intel",
              "name": "core2-32-poky-linux",
              "version": "1.6.2+1.0"
            },
            {
              "packager": "Intel",
              "name": "sketchUploader",
              "version": "1.6.2+1.0"
            }
          ]
        },
        {
          "name": "Intel Curie Boards",
          "version": "1.0.4",
          "category": "Arduino Certified",
          "architecture": "arc32",
          "url": "https://github.com/01org/corelibs-arduino101/archive/1.6.4+1.59.zip",
          "archiveFileName": "arduino101-1.0.4.zip",
          "checksum": "SHA-256:af0a3f4dac320892de6f7c93429a70bf9a5d9ecf742047e3365f8132dc2b2faa",
          "size": 807984,
          "boards": [
            {
              "name": "Arduino 101"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "Intel",
              "version": "1.6.4+1.0",
              "name": "arc-elf32"
            },
            {
              "packager": "Intel",
              "version": "1.6.4+1.14",
              "name": "sketchUploader"
            }
          ]
        }
      ],
      "tools": [
        {
          "name": "i586-poky-linux-uclibc",
          "version": "1.6.2+1.0",
          "systems": [
            {
              "size": "30587705",
              "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c",
              "host": "i386-apple-darwin11",
              "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2",
              "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2"
            },
            {
              "size": "45948648",
              "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56",
              "host": "i686-mingw32",
              "archiveFileName": "galileo-toolchain-20150323-windows.zip",
              "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip"
            },
            {
              "size": "56227185",
              "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72",
              "host": "x86_64-linux-gnu",
              "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2",
              "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2"
            },
            {
              "size": "55098166",
              "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03",
              "host": "i686-linux-gnu",
              "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2",
              "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2"
            }
          ]
        },
        {
          "name": "core2-32-poky-linux",
          "version": "1.6.2+1.0",
          "systems": [
            {
              "size": "42720934",
              "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d",
              "host": "i386-apple-darwin11",
              "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2",
              "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2"
            },
            {
              "size": "56683094",
              "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5",
              "host": "i686-mingw32",
              "archiveFileName": "edison-toolchain-20150323-windows.zip",
              "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip"
            },
            {
              "size": "78998436",
              "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193",
              "host": "x86_64-linux-gnu",
              "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2",
              "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2"
            },
            {
              "size": "76488215",
              "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7",
              "host": "i686-linux-gnu",
              "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2",
              "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2"
            }
          ]
        },
        {
          "name": "arc-elf32",
          "version": "1.6.4+1.0",
          "systems": [
            {
              "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip",
              "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435",
              "host": "i686-mingw32",
              "archiveFileName": "arc-toolchain-windows-arcem.zip",
              "size": 218816528
            },
            {
              "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2",
              "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1",
              "host": "i386-apple-darwin11",
              "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2",
              "size": 78371400
            },
            {
              "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2",
              "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663",
              "host": "i686-linux-gnu",
              "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2",
              "size": 182899676
            },
            {
              "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2",
              "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8",
              "host": "x86_64-linux-gnu",
              "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2",
              "size": 177840353
            }
          ]
        },
        {
          "name": "sketchUploader",
          "version": "1.6.2+1.0",
          "systems": [
            {
              "size": "61789",
              "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad",
              "host": "i386-apple-darwin11",
              "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz",
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz"
            },
            {
              "size": "2534586",
              "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5",
              "host": "i686-mingw32",
              "archiveFileName": "intel-arduino-tools-20150316-windows.zip",
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip"
            },
            {
              "size": "178239",
              "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca",
              "host": "x86_64-linux-gnu",
              "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz",
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz"
            },
            {
              "size": "187995",
              "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c",
              "host": "i686-linux-gnu",
              "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz",
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz"
            }
          ]
        },
        {
          "version": "1.6.4+1.14",
          "name": "sketchUploader",
          "systems": [
            {
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip",
              "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb",
              "host": "i686-mingw32",
              "archiveFileName": "1.6.4+1.14-windows.zip",
              "size": 8239124
            },
            {
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz",
              "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61",
              "host": "i386-apple-darwin11",
              "archiveFileName": "1.6.4+1.14-osx.tar.gz",
              "size": 324645
            },
            {
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz",
              "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b",
              "host": "i686-linux-gnu",
              "archiveFileName": "1.6.4+1.14-linux32.tar.gz",
              "size": 224137
            },
            {
              "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz",
              "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038",
              "host": "x86_64-linux-gnu",
              "archiveFileName": "1.6.4+1.14-linux64.tar.gz",
              "size": 216542
            }
          ]
        }
      ]
    },

Most contributors at 01org work at Intel. Actually @w4ilun is one of them :) Maybe they're interested in helping out here.
@ivankravets maybe we can start downloading the tools and then figure out how to build stuff with them using SCons.
I'll take a look at Creating a Platform guide to start downloading the tools.

@ivankravets
Copy link
Member Author

Guys, you are right. You can implement this within own development platform using http://docs.platformio.org/en/latest/platforms/creating_platform.html. I propose to make separate repo for that and develop within it. I'm and @valeros will look on it and help you if need.

As for packages. For the beginning, just copy them to ~/.platformio/packages with the valid structure (take a look at the existing packages) and add them manually to ~/.platformio/appstate.json. For examle:

{
   ....
    "installed_packages": {
        "toochain-arcelf32": {
            "version": 1, 
            "time": 1451151351
        }, 
       ...
   }
}

If you need any help don't hesitate to contact us.

@ivankravets
Copy link
Member Author

Also, I want to notice that process with adding new development platform will be significantly simplified in PlatformIO 3.0. See #479

If this issue is not critical, I propose to wait when I'll implement #479

@D3f0
Copy link

D3f0 commented Mar 7, 2016

@ivankravets @valeros Should I fork platformIO and put some subfolder in platformio/boards/intel.json?

@ivankravets
Copy link
Member Author

@D3f0 please develop into the home directory as described in http://docs.platformio.org/en/latest/platforms/creating_platform.html

Then share here 3 files:

  • intel.json
  • platform-builder.py
  • platform.py

We are going to start working on PlatformIO 3.0 where will not be this info like, boards, platform scripts, etc inside PlatformIO Core. See #479

@ivankravets ivankravets modified the milestone: 2.9.0 Mar 19, 2016
@ivankravets ivankravets modified the milestones: 2.10.0, 3.0.0 Apr 9, 2016
@ivankravets ivankravets modified the milestones: 3.0.0, 2.10.0 Apr 9, 2016
@ivankravets ivankravets modified the milestones: 3.0.0, 2.9.0 Apr 26, 2016
@ivanpajon
Copy link

Please add support for Intel Galileo and Edison, I tried to create a custom board with the tutorial but I didn't understand it and I have no idea. Thanks.

@ngmacha
Copy link

ngmacha commented Feb 23, 2018

+1 for adding support for Intel Galileo and Edison boards!

@JelleRoets
Copy link

Recently I created a tutorial to build, compile and debug c/cpp projects for the Intel Edison platform, using VSCode instead of Intel's System Studio (since the latter is not working for me)

Actually I created a generic makefile that compiles the c/cpp project in a docker container, so this approach is completely platform and IDE independent, this means you can use any editor you like: Sublime, Vim, Atom, VScode, etc...

You can find this makefile, including an example Hello World project here: https://github.com/JelleRoets/cross-compile-edison

Hopefully this can help. Someone familiar with creating Platformio board definitions can maybe use this tutorial to integrate Intel Edison and Galileo into Platformio.

@Cabalist
Copy link

Cabalist commented May 4, 2018

These were discontinued about a year ago. see here: https://hackaday.com/2017/06/19/intel-discontinues-joule-galileo-and-edison-product-lines/

I think this issue should be closed. :/

@ivankravets
Copy link
Member Author

It makes sense

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants