Skip to content

Using external cores with the 1.6.7 architecture

Fotis Papadopoulos edited this page Aug 12, 2016 · 4 revisions

After introducing the 1.6.7 version of the compiler, we can no longer change the include paths used during the compilation because the Arduino-builder uses predefined include paths and tools for each architecture and each variant.
In order for the Arduino-builder to access any core files other than the default ones, the extra files need to be placed in the v167/hardware directory.
At the time of writing this document, three external cores have been used with the 1.6.7 compiler, each of which has to be added in a specific directory. Below you can see the desired structure as it's used in the development version of the compiler, used for compiling chibitronics, microchip chipKit and esp8266 projects. The structure is created in such a way that the fqbn's used in the 1.6.7 codebender compiler are the same as the ones used in the Arduino IDE.

/path/to/arduino-core-files/v167/hardware$ tree -L 4 chibitronics/
chibitronics/
└── hardware
    └── esplanade
        └── 1.6.0
            ├── boards.txt
            ├── cores
            ├── platform.txt
            ├── programmers.txt
            └── variants

5 directories, 3 files
/path/to/arduino-core-files/v167/hardware$ tree -L 2 chipKIT
chipKIT
└── pic32
    ├── boards.txt
    ├── bootloaders.txt
    ├── compiler
    ├── cores
    ├── libraries
    ├── platformManual.txt
    ├── platforms.txt
    ├── platform.txt
    ├── platformURL.txt
    ├── tools
    ├── unsupported_boards.txt
    └── variants

6 directories, 7 files
/path/to/arduino-core-files/v167/hardware$ tree -L 2 esp8266/
esp8266/
└── esp8266
    ├── boards.txt
    ├── bootloaders
    ├── cores
    ├── doc
    ├── ISSUE_TEMPLATE.md
    ├── libraries
    ├── LICENSE
    ├── package
    ├── platform.txt
    ├── programmers.txt
    ├── README.md
    ├── tests
    ├── tools
    └── variants

9 directories, 6 files

Follow the steps below in order to end up with this structure.

chibitronics

The core just needs to be cloned in the /v167/hardware directory.

$ cd /path/to/arduino-core-files/v167/hardware
$ git clone https://github.com/xobs/arduino-esplanade.git chibitronics

The fqbn used for the chibitronics esplanade board is chibitronics:esplanade:code.

microchip chipKit

For the chipKit core, the respective Github release has been used, but a couple hacks are also necessary in order to use the core. The compiler binary used for chipKit projects is a 32-bit binary file and some extra libraries need to be added to the system in order for the compiler to be executed. Furthermore, a config property is missing from the chipKit board definition and had to be manually added.

$ cd /path/to/arduino-core-files/v167/hardware
$ wget -q  https://chipkit.s3.amazonaws.com/chipkit-core/builds/linux64/chipkit-core-linux64.16778040.master-v1.2.0-4-g3088e62.zip
$ unzip -qq chipkit-core-linux64.16778040.master-v1.2.0-4-g3088e62.zip  && rm chipkit-core-linux64.16778040.master-v1.2.0-4-g3088e62.zip
$ mv chipkit-core chipKIT
# 32-bit binaries compatibility on 64-bit archs
$ sudo apt-get update && sudo apt-get -y install lib32z1 lib32ncurses5 lib32bz2-1.0

The open the chipKIT/pic32/platform.txt. In the ## Save hex section add the following recipe.output.tmp_file={build.project_name}.hex

esp8266

In order to use the esp8266 core, the core files and compilation tools need to be downloaded separately. Also, the boards.txt section referring to the Huzzah Feather needs to be modified. For the record, we are going to use the git version installation, and we will be using version 2.3.0 of the esp8266 core.

$ cd /path/to/arduino-core-files/v167/hardware
$ mkdir esp8266
$ cd esp8266/
$ git clone https://github.com/esp8266/Arduino.git esp8266
$ cd esp8266/
# list available tags
$ git tag -l
$ git checkout tags/2.3.0
# Download binary tools (python 2.7 needed)
$ cd tools/
$ python get.py

In order to get the Huzzah Feather running, open the boards.txt file found in the esp8266 directory and add the following in the huzzah.build section: huzzah.build.flash_ld=eagle.flash.4m.ld

Enjoy!

Clone this wiki locally