automate/020_arduino.sh

148 lines
5.6 KiB
Bash
Executable File

#!/usr/bin/env bash
ARDUINO_VERSION=1.8.13
#ARDUINO_VERSION=nightly
#ARDUINO_HOME=~/
ARDUINO_HOME=/opt
ARDUINO_DIR=${ARDUINO_HOME}/arduino-${ARDUINO_VERSION}/
ARDUINO_TOOLS_DIR=${ARDUINO_DIR}
ADD_URLS=
mkdir -p "${ARDUINO_TOOLS_DIR}"
sudo apt install -y gcc-arm-none-eabi openocd libarchive-tools
cd /var/tmp || exit
#Install arduino IDE
wget -c https://downloads.arduino.cc/arduino-${ARDUINO_VERSION}-linux64.tar.xz && \
cd ${ARDUINO_HOME} && \
tar xf /var/tmp/arduino-${ARDUINO_VERSION}-linux64.tar.xz
usermod -a -G dialout "${USER}" && \
apt install -y git python3-serial
#https://raw.githubusercontent.com/espressif/arduino-esp32/master/package/package_esp32_index.template.json
#http://arduino.esp8266.com/stable/package_esp8266com_index.json
#http://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
#https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json
#https://micooke.github.io/package_nRF5_smartwatches_index.json
# http://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls
# Install ESP32 core
# See: http://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md
ADD_URLS="${ADD_URLS},https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json"
#ADD_URLS="${ADD_URLS}, https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json"
${ARDUINO_DIR}/arduino \
--pref boardsmanager.additional.urls=${ADD_URLS} \
--save-prefs
# arduino [--install-boards package name:platform architecture[:version]]
${ARDUINO_DIR}/arduino --install-boards esp32:esp32
## ESP32-core from git 369MB Choose this or the above otherwise you will get two menus
#mkdir -p ${ARDUINO_DIR}/hardware/espressif && \
# cd ${ARDUINO_DIR}/hardware/espressif && \
# git clone http://github.com/espressif/arduino-esp32.git esp32 && \
# cd esp32 && \
# git submodule update --init --recursive && \
# cd tools/ && \
# python3 get.py
# Install ESP8266
cd /var/tmp || exit
ADD_URLS="${ADD_URLS},http://arduino.esp8266.com/stable/package_esp8266com_index.json"
echo ${ADD_URLS}
${ARDUINO_DIR}/arduino \
--pref boardsmanager.additional.urls=${ADD_URLS} \
--save-prefs
# arduino [--install-boards package name:platform architecture[:version]]
${ARDUINO_DIR}/arduino --install-boards esp8266:esp8266
# Install stm32 bluepill
# http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/arduino-compatibility.html
# --pref boardsmanager.additional.urls="http://dan.drown.org/stm32duino/package_STM32duino_index.json" \
#${ARDUINO_DIR}/arduino --install-boards stm32duino:STM32F1
ADD_URLS="${ADD_URLS},http://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"
echo ${ADD_URLS}
${ARDUINO_DIR}/arduino \
--pref boardsmanager.additional.urls=${ADD_URLS} \
--save-prefs
## arduino [--install-boards package name:platform architecture[:version]]
${ARDUINO_DIR}/arduino --install-boards STM32:stm32
# Install NRF5x sandeepmistry http://github.com/sandeepmistry/arduino-nRF5
#name "BBC micro:bit"
#name "Bluz DK"
#name "Generic nRF51822"
#name "Generic nRF52823"
#name "OSHChip"
#name "ng-beacon"
#name "nRF51 Dongle"
#name "nRF51822 Development Kit"
#name "nRF52 DK"
#name "RedBear BLE Nano 2"
#name "RedBear Blend 2"
#name "RedBearLab BLE Nano"
#name "RedBearLab nRF51822"
#name "Waveshare BLE400"
ADD_URLS="${ADD_URLS},https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json"
echo ${ADD_URLS}
${ARDUINO_DIR}/arduino \
--pref boardsmanager.additional.urls=${ADD_URLS} \
--save-prefs
# arduino [--install-boards package name:platform architecture[:version]]
${ARDUINO_DIR}/arduino --install-boards sandeepmistry:nRF5
NRF_HOME=${ARDUINO_TOOLS_DIR}/nRF5FlashSoftDevice/tool/
mkdir -p "${NRF_HOME}" && wget -c --directory-prefix "${NRF_HOME}" http://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/nRF5FlashSoftDevice.jar
# nRF5 watches http://github.com/micooke/arduino-nRF5-smartwatches
# Smartwatch variants for sandeepmistry's Nordic Semiconductor nRF5 core
#name "IDO003"
#name "ID100HR"
#name "ID107HR"
#name "ID107HR Plus"
ADD_URLS="${ADD_URLS},https://micooke.github.io/package_nRF5_smartwatches_index.json"
${ARDUINO_DIR}/arduino \
--pref boardsmanager.additional.urls=${ADD_URLS} \
--save-prefs
## arduino [--install-boards package name:platform architecture[:version]]
${ARDUINO_DIR}/arduino --install-boards micooke:nRF5
## Install Readbear NRF5x
#cd /var/tmp || exit
#${ARDUINO_DIR}/arduino \
# --pref="boardsmanager.additional.urls=https://redbearlab.github.io/arduino/package_redbearlab_index.json"\
# --save-prefs
#
#wget -c https://raw.githubusercontent.com/RedBearLab/nRF51822-Arduino/S130/98-daplink.rules
#cp 98-daplink.rules /etc/udev/rules.d/
#
#sudo udevadm control --reload-rules
#
## Fix the upload problem on Linux 64bit system
#
#sudo apt install -y lsb-core
#
#sudo apt install -y libudev1:i386
#
#sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
# Guru meditation decode - get a more meaningful explanation of the stack traces you get on ESP8266/ESP32.
wget -qO - http://github.com/me-no-dev/EspExceptionDecoder/releases/download/1.1.0/EspExceptionDecoder-1.1.0.zip | bsdtar -C "${ARDUINO_TOOLS_DIR}" -xvf-
# Other libraries direct from github
git clone http://github.com/adafruit/Touch-Screen-Library ~/Arduino/libraries/TouchScreen
# https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/sensor-fusion-algorithmsahrs
git clone http://github.com/PaulStoffregen/MahonyAHRS ~/Arduino/libraries/MahonyAHRS
git clone http://github.com/PaulStoffregen/MadgwickAHRS ~/Arduino/libraries/MadgwickAHRS