4. Install toolchain

For installing necessary tools that aid in running our main firmware and also to some degree help configure the system a bit

Clone the project repository and navigate to it

$ cd $HOME
$ git clone git@github.com:devATdbsutdio/watch_firmware_uploader.git

If you look into it:

$ cd clock_uploader_machine && ls -l
# you will see 
total 32
-rw-r--r--   1 user  group    97  README.md
drwxr-xr-x   5 user  group   160  bashBased
-rwxr-xr-x   1 user  group  16665 installer.sh
-rw-r--r--   1 user  group  1016  installer_settings.yaml
-rw-r--r--   1 user  group  1082  programmer_settings.yaml
drwxr-xr-x  16 user  group   512  pythonBased
-rw-r--r--@  1 user  group  1050  test_programmer_settings.yaml

We are interested in these 3 files:

# setting file for tools installer
installer_settings.yaml
# settings file for programmer script
programmer_settings.yaml
# tool-chain installer script
installer.sh

Installer settings:

yq e installer_settings.yaml # ** yq yaml parse must be installed for next steps as well.

Here you can edit to your needs.

BINARY:
    # arduino-cli binary download link
    LINK: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_ARMv7.tar.gz
    # base dir where /bin/arduino-cli willbe installed
    BASE: /home/pi/test
    CORES: # links for board cores you want to install 
        LINK: # these will be appended in arduino-cli's config file
            - http://drazzy.com/package_drazzy.com_index.json
            - https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
        CORE_NAMES: # names of cores you want to install 
            - megaTinyCore:megaavr # Note I have used full FQBN here
LIBS: # 3rd-party libraries you want to install
    - TinyMegaI2C
    - RV8803Tiny

Let's go through it step by step to understand how the installer mechanism works what the heck is it's settings file.

Last updated