From b663abf1600230f96303232c0b8d68740b1d5da9 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 12 Feb 2021 20:12:37 +0100 Subject: [PATCH 01/19] Add MK404 support Indentations --- MK404-build.sh | 135 ++++++ PF-build.sh | 1128 +++++++++++++++++++++++++----------------------- 2 files changed, 718 insertions(+), 545 deletions(-) create mode 100755 MK404-build.sh diff --git a/MK404-build.sh b/MK404-build.sh new file mode 100755 index 00000000..7a9cde51 --- /dev/null +++ b/MK404-build.sh @@ -0,0 +1,135 @@ +#!/bin/bash +# This bash script is used to compile automatically the MK404 simulator +# +# Supported OS: Linux64 bit +# +# Linux: +# Linux Ubuntu +# 1. Follow these instructions +# 2. Open Ubuntu bash and get latest updates with 'sudo apt-get update' +# 3. Install latest updates with 'sudo apt-get upgrade' +# 4. +# +# Version: 0.1-Build_1 +# Change log: +# 11 Feb 2021, 3d-gussner, Inital +# 11 Feb 2021, 3d-gussner, Optional flags to check for updates + + +while getopts c:u:?h flag + do + case "${flag}" in + c) check_flag=${OPTARG};; + u) update_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; + esac + done +echo "$check_flag" +echo "$update_flag" + + +#### Start check if OSTYPE is supported +OS_FOUND=$( command -v uname) + +case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in + linux*) + TARGET_OS="linux" + ;; + *) + TARGET_OS='unknown' + ;; +esac +# Linux +if [ $TARGET_OS == "linux" ]; then + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" + Processor="64" + #elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then + # echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" + # Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi +else + echo "$(tput setaf 1)This script doesn't support your Operating system!" + echo "Please use Linux 64-bit" + echo "Read the notes of build.sh$(tput sgr0)" + exit 1 +fi +sleep 2 +#### End check if OSTYPE is supported + +#### Check MK404 dependencies +packages=( +"libelf-dev" +"gcc-7" +"gcc-avr" +"libglew-dev" +"freeglut3-dev" +"libsdl-sound1.2-dev" +"libpng-dev" +"cmake" +"zip" +"wget" +"git" +"build-essential" +"lcov" +"mtools" +) + +for check_package in ${packages[@]}; do + if dpkg-query -W -f'${db:Status-Abbrev}\n' $check_package 2>/dev/null \ + | grep -q '^.i $'; then + echo "$(tput setaf 2)$check_package: Installed$(tput sgr0)" + else + echo "$(tput setaf 1)$check_package: Not installed use $(tput setaf 3)'sudo apt install $check_package'$(tput setaf 1) to install missing package$(tput sgr0)" + not_installed=1; + fi +done + +if [ "$not_installed" = "1" ]; then + exit 4 +fi +#### End Check MK404 dependencies + +#### Set build environment +SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" +MK404_URL="https://github.com/vintagepc/MK404.git" +MK404_PATH="$SCRIPT_PATH/../MK404" +MK404_BUILD_PATH="$MK404_PATH/build" + + +# List few useful data +echo +echo "Script path :" $SCRIPT_PATH +echo "OS :" $OS +echo "OS type :" $TARGET_OS +echo "" +echo "MK404 path :" $MK404_PATH + +if [ ! -d $MK404_PATH ]; then + git clone $MK404_URL $MK404_PATH +fi + + cd $MK404_PATH + git submodule init + git submodule update + + +mkdir -p $MK404_BUILD_PATH +if [ ! -f "$MK404_BUILD_PATH/Makefile" ]; then + cmake -B $MK404_BUILD_PATH +fi + +cd $MK404_BUILD_PATH +if [ ! -f "$MK404_BUILD_PATH/MK404" ]; then + make +fi + +if [ "$check_flag" == "1" ]; then + current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") + echo "Current version: $current_version" +fi \ No newline at end of file diff --git a/PF-build.sh b/PF-build.sh index 5b0979e2..57c49c69 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -91,7 +91,7 @@ # 13 Mar 2019, 3d-gussner, MKbel updated the Linux build environment to version 1.0.2 with an Fix maximum firmware flash size. # So did I # 11 Jul 2019, deliopoulos,Updated to v1.0.6 as Prusa needs a new board definition for Firmware 3.8.x86_64 -# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part +# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part # --> less download volume needed and saves some time # # 13 Jul 2019, deliopoulos,Splitting of Arduino IDE and Prusa parts also for Linux64 @@ -136,6 +136,8 @@ # 08 Jan 2021, 3d-gussner, Comment out 'sudo' auto installation # Add '-?' '-h' help option # 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options +# 12 Feb 2021, 3d-gussner, Add MK404-build.sh +# 13 Feb 2021, 3d-gussner, Indentations #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -157,35 +159,35 @@ case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in esac # Windows if [ $TARGET_OS == "windows" ]; then - if [ $(uname -m) == "x86_64" ]; then - echo "$(tput setaf 2)Windows 64-bit found$(tput sgr0)" - Processor="64" - elif [ $(uname -m) == "i386" ]; then - echo "$(tput setaf 2)Windows 32-bit found$(tput sgr0)" - Processor="32" - else - echo "$(tput setaf 1)Unsupported OS: Windows $(uname -m)" - echo "Please refer to the notes of build.sh$(tput sgr0)" - exit 1 - fi + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Windows 64-bit found$(tput sgr0)" + Processor="64" + elif [ $(uname -m) == "i386" ]; then + echo "$(tput setaf 2)Windows 32-bit found$(tput sgr0)" + Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Windows $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi # Linux elif [ $TARGET_OS == "linux" ]; then - if [ $(uname -m) == "x86_64" ]; then - echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" - Processor="64" - elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then - echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" - Processor="32" - else - echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" - echo "Please refer to the notes of build.sh$(tput sgr0)" - exit 1 - fi + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" + Processor="64" + elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then + echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" + Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi else - echo "$(tput setaf 1)This script doesn't support your Operating system!" - echo "Please use Linux 64-bit or Windows 10 64-bit with Linux subsystem / git-bash" - echo "Read the notes of build.sh$(tput sgr0)" - exit 1 + echo "$(tput setaf 1)This script doesn't support your Operating system!" + echo "Please use Linux 64-bit or Windows 10 64-bit with Linux subsystem / git-bash" + echo "Read the notes of build.sh$(tput sgr0)" + exit 1 fi sleep 2 #### End check if OSTYPE is supported @@ -193,52 +195,52 @@ sleep 2 #### Prepare bash environment and check if wget, zip and other needed things are available # Check wget if ! type wget > /dev/null; then - echo "$(tput setaf 1)Missing 'wget' which is important to run this script" - echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" - exit 2 + echo "$(tput setaf 1)Missing 'wget' which is important to run this script" + echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" + exit 2 fi # Check for zip if ! type zip > /dev/null; then - if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'zip' which is important to run this script" - echo "Download and install 7z-zip from its official website https://www.7-zip.org/" - echo "By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10 as my case." - echo "Run git Bash under Administrator privilege and" - echo "navigate to the directory /c/Program Files/Git/mingw64/bin," - echo "you can run the command $(tput setaf 2)ln -s /c/Program Files/7-Zip/7z.exe zip.exe$(tput sgr0)" - exit 3 - elif [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'zip' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" - #sudo apt-get update && apt-get install zip - exit 3 - fi + if [ $TARGET_OS == "windows" ]; then + echo "$(tput setaf 1)Missing 'zip' which is important to run this script" + echo "Download and install 7z-zip from its official website https://www.7-zip.org/" + echo "By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10 as my case." + echo "Run git Bash under Administrator privilege and" + echo "navigate to the directory /c/Program Files/Git/mingw64/bin," + echo "you can run the command $(tput setaf 2)ln -s /c/Program Files/7-Zip/7z.exe zip.exe$(tput sgr0)" + exit 3 + elif [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'zip' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" + #sudo apt-get update && apt-get install zip + exit 3 + fi fi # Check python ... needed during language build if ! type python > /dev/null; then - if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'python3' which is important to run this script" - exit 4 - elif [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'python' which is important to run this script" - echo "As Python 2.x will not be maintained from 2020 please," - echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." - echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" - echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" - #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python - exit 4 - fi + if [ $TARGET_OS == "windows" ]; then + echo "$(tput setaf 1)Missing 'python3' which is important to run this script" + exit 4 + elif [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'python' which is important to run this script" + echo "As Python 2.x will not be maintained from 2020 please," + echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." + echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" + echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" + #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python + exit 4 + fi fi # Check gawk ... needed during language build if ! type gawk > /dev/null; then - if [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." - #sudo apt-get update && apt-get install gawk - exit 4 - fi + if [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." + #sudo apt-get update && apt-get install gawk + exit 4 + fi fi #### End prepare bash / Linux environment @@ -287,157 +289,157 @@ BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )" # Check if PF-build-env- exists and downloads + creates it if not # The build environment is based on the supported Arduino IDE portable version with some changes if [ ! -d "../PF-build-env-$BUILD_ENV" ]; then - echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" - mkdir ../PF-build-env-$BUILD_ENV - sleep 5 + echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" + mkdir ../PF-build-env-$BUILD_ENV + sleep 5 fi # Download and extract supported Arduino IDE depending on OS # Windows if [ $TARGET_OS == "windows" ]; then - if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then - echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then + echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Linux if [ $TARGET_OS == "linux" ]; then # 32 or 64 bit version - if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then - echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" - sleep 2 - tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then + echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" + sleep 2 + tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Make Arduino IDE portable if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging fi # Change Arduino IDE preferences if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt ]; then - echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" - sleep 2 - echo "update.check" - sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "board" - sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "editor.linenumbers" - sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "boardsmanager.additional.urls" - echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" + echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" + sleep 2 + echo "update.check" + sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "board" + sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "editor.linenumbers" + sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "boardsmanager.additional.urls" + echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" fi # Download and extract Prusa Firmware related parts # Download and extract PrusaResearchRambo board if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then - echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" - sleep 2 - wget $BOARD_FILE_URL || exit 9 + echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" + sleep 2 + wget $BOARD_FILE_URL || exit 9 fi if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" - sleep 2 - tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr - fi - - mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION - echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" + sleep 2 + tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr + fi + + mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION + echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr 0)" -fi + echo "$(tput sgr 0)" +fi # Download and extract Prusa Firmware specific library files if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then - echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" - sleep 2 - wget $PF_BUILD_FILE_URL || exit 11 - echo "$(tput sgr 0)" + echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" + sleep 2 + wget $PF_BUILD_FILE_URL || exit 11 + echo "$(tput sgr 0)" fi if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then - echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" - sleep 2 - unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 - echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" + echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" + sleep 2 + unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 + echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" fi # Check if User updated Arduino IDE 1.8.5 boardsmanager and tools if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then - echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" - echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" - sleep 2 -fi + echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" + echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" + sleep 2 +fi if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then - echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" - sleep 2 - echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" - sleep 2 - cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn - echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" -fi + echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" + sleep 2 + echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" + sleep 2 + cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn + echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" +fi if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then - echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" - echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" - echo "Script will not continue until this have been fixed $(tput setaf 2)" - sleep 2 - echo "$(tput sgr0)" - exit 13 + echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" + echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" + echo "Script will not continue until this have been fixed $(tput setaf 2)" + sleep 2 + echo "$(tput sgr0)" + exit 13 fi @@ -449,24 +451,26 @@ cd $SCRIPT_PATH # Check if git is available if type git > /dev/null; then - git_available="1" + git_available="1" fi -while getopts v:l:d:b:o:c:p:n:?h flag - do - case "${flag}" in - v) variant_flag=${OPTARG};; - l) language_flag=${OPTARG};; - d) devel_flag=${OPTARG};; - b) build_flag=${OPTARG};; - o) output_flag=${OPTARG};; - c) clean_flag=${OPTARG};; - p) prusa_flag=${OPTARG};; - n) new_build_flag=${OPTARG};; - ?) help_flag=1;; - h) help_flag=1;; - esac - done +while getopts v:l:d:b:o:c:p:n:m:g:?h flag + do + case "${flag}" in + v) variant_flag=${OPTARG};; + l) language_flag=${OPTARG};; + d) devel_flag=${OPTARG};; + b) build_flag=${OPTARG};; + o) output_flag=${OPTARG};; + c) clean_flag=${OPTARG};; + p) prusa_flag=${OPTARG};; + n) new_build_flag=${OPTARG};; + m) mk404_flag=${OPTARG};; + g) grafics_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; + esac + done #echo "variant_flag: $variant_flag"; #echo "language_flag: $language_flag"; #echo "devel_flag: $devel_flag"; @@ -492,11 +496,13 @@ echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force echo "$(tput setaf 2)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" +echo "$(tput setaf 2)-m$(tput sgr0) Start MK404 sim '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2" +echo "$(tput setaf 2)-g$(tput sgr0) Start MK404 grafics '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy" echo "$(tput setaf 2)-?$(tput sgr0) Help" echo "$(tput setaf 2)-h$(tput sgr0) Help" echo echo "Brief USAGE:" -echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n]" +echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n] [-m]" echo echo "Example:" echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" @@ -514,48 +520,48 @@ fi # # '-v' argument defines which variant of the Prusa Firmware will be compiled if [ -z "$variant_flag" ] ; then - # Select which variant of the Prusa Firmware will be compiled, like - PS3="Select a variant: " - while IFS= read -r -d $'\0' f; do - options[i++]="$f" - done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - select opt in "${options[@]}" "All" "Quit"; do - case $opt in - *.h) - VARIANT=$(basename "$opt" ".h") - VARIANTS[i++]="$opt" - break - ;; - "All") - VARIANT="All" - VARIANTS=${options[*]} - break - ;; - "Quit") - echo "You chose to stop" - exit 20 - ;; - *) - echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" - ;; - esac - done + # Select which variant of the Prusa Firmware will be compiled, like + PS3="Select a variant: " + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + select opt in "${options[@]}" "All" "Quit"; do + case $opt in + *.h) + VARIANT=$(basename "$opt" ".h") + VARIANTS[i++]="$opt" + break + ;; + "All") + VARIANT="All" + VARIANTS=${options[*]} + break + ;; + "Quit") + echo "You chose to stop" + exit 20 + ;; + *) + echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" + ;; + esac + done else - if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then - VARIANTS=$variant_flag - elif [ "$variant_flag" == "All" ] ; then - while IFS= read -r -d $'\0' f; do - options[i++]="$f" - done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - VARIANT="All" - VARIANTS=${options[*]} - else - echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" - echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" - ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename - echo "$(tput sgr0)" - exit 21 - fi + if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then + VARIANTS=$variant_flag + elif [ "$variant_flag" == "All" ] ; then + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + VARIANT="All" + VARIANTS=${options[*]} + else + echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" + echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" + ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename + echo "$(tput sgr0)" + exit 21 + fi fi #'-l' argument defines if it is an English only version. Known values EN_ONLY / ALL @@ -563,86 +569,86 @@ fi MULTI_LANGUAGE_CHECK=$(grep --max-count=1 "^#define LANG_MODE *" $SCRIPT_PATH/Firmware/config.h|sed -e's/ */ /g'|cut -d ' ' -f3) if [ -z "$language_flag" ] ; then - PS3="Select a language: " - echo - echo "Which lang-build do you want?" - select yn in "Multi languages" "English only"; do - case $yn in - "Multi languages") - LANGUAGES="ALL" - break - ;; - "English only") - LANGUAGES="EN_ONLY" - break - ;; - *) - echo "$(tput setaf 1)This is not a valid language$(tput sgr0)" - ;; - esac - done + PS3="Select a language: " + echo + echo "Which lang-build do you want?" + select yn in "Multi languages" "English only"; do + case $yn in + "Multi languages") + LANGUAGES="ALL" + break + ;; + "English only") + LANGUAGES="EN_ONLY" + break + ;; + *) + echo "$(tput setaf 1)This is not a valid language$(tput sgr0)" + ;; + esac + done else - if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then - LANGUAGES=$language_flag - else - echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" - exit 22 - fi + if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then + LANGUAGES=$language_flag + else + echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" + exit 22 + fi fi #Check if DEV_STATUS is selected via argument '-d' if [ ! -z "$devel_flag" ] ; then - if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then - DEV_STATUS_SELECTED=$devel_flag - else - echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" - exit 23 - fi + if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then + DEV_STATUS_SELECTED=$devel_flag + else + echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" + exit 23 + fi fi #Check if Build is selected via argument '-b' if [ ! -z "$build_flag" ] ; then - if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then - echo "Build changed to $build_flag" - BUILD=$(git rev-list --count HEAD) - elif [[ $build_flag =~ ^[0-9]+$ ]] ; then - BUILD=$build_flag - else - echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" - exit 24 + if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then + echo "Build changed to $build_flag" + BUILD=$(git rev-list --count HEAD) + elif [[ $build_flag =~ ^[0-9]+$ ]] ; then + BUILD=$build_flag + else + echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" + exit 24 - fi - echo "New Build number is: $BUILD" + fi + echo "New Build number is: $BUILD" fi # check if script has been started with arguments if [[ "$#" -eq "0" || "$output_flag" == 1 ]] ; then - OUTPUT=1 + OUTPUT=1 else - OUTPUT=0 + OUTPUT=0 fi #echo "Output is:" $OUTPUT #Check git branch has changed if [ ! -z "git_available" ]; then - BRANCH="" - CLEAN_PF_FW_BUILD=0 + BRANCH="" + CLEAN_PF_FW_BUILD=0 else - BRANCH=$(git branch --show-current) - echo "Current branch is:" $BRANCH - if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then - echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch - echo "created PF-build.branch file" - else - PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") - echo "Previous branch was:" $PRE_BRANCH - if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then - CLEAN_PF_FW_BUILD=1 - echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch - fi - fi + BRANCH=$(git branch --show-current) + echo "Current branch is:" $BRANCH + if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + echo "created PF-build.branch file" + else + PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") + echo "Previous branch was:" $PRE_BRANCH + if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then + CLEAN_PF_FW_BUILD=1 + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + fi + fi fi #Set BUILD_ENV_PATH @@ -662,292 +668,324 @@ BUILD_PATH="$( pwd -P )" #Check git branch has changed if [ "$CLEAN_PF_FW_BUILD" == "1" ]; then - read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" - rm -r * + read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" + rm -r * else - echo "Nothing to clean up" + echo "Nothing to clean up" fi for v in ${VARIANTS[*]} do - VARIANT=$(basename "$v" ".h") - # Find firmware version in Configuration.h file and use it to generate the hex filename - FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') - if [ -z "$BUILD" ] ; then - # Find build version in Configuration.h file and use it to generate the hex filename - BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - else - # Find and replace build version in Configuration.h file - BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - echo "Original build number: $BUILD_ORG" - sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h - fi - # Check if the motherboard is an EINSY and if so only one hex file will generated - MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) - # Check development status - DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) - if [ -z "$DEV_STATUS_SELECTED" ] ; then - if [[ "$DEV_CHECK" == *"RC"* ]] ; then - DEV_STATUS="RC" - elif [[ "$DEV_CHECK" == "ALPHA" ]]; then - DEV_STATUS="ALPHA" - elif [[ "$DEV_CHECK" == "BETA" ]]; then - DEV_STATUS="BETA" - elif [[ "$DEV_CHECK" == "DEVEL" ]]; then - DEV_STATUS="DEVEL" - elif [[ "$DEV_CHECK" == "DEBUG" ]]; then - DEV_STATUS="DEBUG" - else - DEV_STATUS="UNKNOWN" - echo - echo "$(tput setaf 5)DEV_STATUS is UNKNOWN. Do you wish to set DEV_STATUS to GOLD?$(tput sgr0)" - PS3="Select YES only if source code is tested and trusted: " - select yn in "Yes" "No"; do - case $yn in - Yes) - DEV_STATUS="GOLD" - DEV_STATUS_SELECTED="GOLD" - break - ;; - No) - DEV_STATUS="UNKNOWN" - DEV_STATUS_SELECTED="UNKNOWN" - break - ;; - *) - echo "$(tput setaf 1)This is not a valid DEV_STATUS$(tput sgr0)" - ;; - esac - done - fi - else - DEV_STATUS=$DEV_STATUS_SELECTED - fi - #Prepare hex files folders - if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then - mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 - fi - OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" - - #Check if exactly the same hexfile already exists - if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - fi - if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename - echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - fi - - #List some useful data - echo "$(tput setaf 2)$(tput setab 7) " - echo "Variant :" $VARIANT - echo "Firmware :" $FW - echo "Build # :" $BUILD - echo "Dev Check :" $DEV_CHECK - echo "DEV Status :" $DEV_STATUS - echo "Motherboard:" $MOTHERBOARD - echo "Languages :" $LANGUAGES - echo "Hex-file Folder:" $OUTPUT_FOLDER - echo "$(tput sgr0)" + VARIANT=$(basename "$v" ".h") + PRINTER=$(grep --max-count=1 "\bPRINTER_TYPE\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3 | cut -d '_' -f2) + # Find firmware version in Configuration.h file and use it to generate the hex filename + FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') + if [ -z "$BUILD" ] ; then + # Find build version in Configuration.h file and use it to generate the hex filename + BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + else + # Find and replace build version in Configuration.h file + BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + echo "Original build number: $BUILD_ORG" + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h + fi + # Check if the motherboard is an EINSY and if so only one hex file will generated + MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) + # Check development status + DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) + if [ -z "$DEV_STATUS_SELECTED" ] ; then + if [[ "$DEV_CHECK" == *"RC"* ]] ; then + DEV_STATUS="RC" + elif [[ "$DEV_CHECK" == "ALPHA" ]]; then + DEV_STATUS="ALPHA" + elif [[ "$DEV_CHECK" == "BETA" ]]; then + DEV_STATUS="BETA" + elif [[ "$DEV_CHECK" == "DEVEL" ]]; then + DEV_STATUS="DEVEL" + elif [[ "$DEV_CHECK" == "DEBUG" ]]; then + DEV_STATUS="DEBUG" + else + DEV_STATUS="UNKNOWN" + echo + echo "$(tput setaf 5)DEV_STATUS is UNKNOWN. Do you wish to set DEV_STATUS to GOLD?$(tput sgr0)" + PS3="Select YES only if source code is tested and trusted: " + select yn in "Yes" "No"; do + case $yn in + Yes) + DEV_STATUS="GOLD" + DEV_STATUS_SELECTED="GOLD" + break + ;; + No) + DEV_STATUS="UNKNOWN" + DEV_STATUS_SELECTED="UNKNOWN" + break + ;; + *) + echo "$(tput setaf 1)This is not a valid DEV_STATUS$(tput sgr0)" + ;; + esac + done + fi + else + DEV_STATUS=$DEV_STATUS_SELECTED + fi + #Prepare hex files folders + if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 + fi + OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" + + #Check if exactly the same hexfile already exists + if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + fi + if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename + echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + fi + + #List some useful data + echo "$(tput setaf 2)$(tput setab 7) " + echo "Printer :" $PRINTER + echo "Variant :" $VARIANT + echo "Firmware :" $FW + echo "Build # :" $BUILD + echo "Dev Check :" $DEV_CHECK + echo "DEV Status :" $DEV_STATUS + echo "Motherboard:" $MOTHERBOARD + echo "Languages :" $LANGUAGES + echo "Hex-file Folder:" $OUTPUT_FOLDER + echo "$(tput sgr0)" - #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h - if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 - else - echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 - fi + #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h + if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + else + echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + fi - #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint - sed -i -- "s/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/g" $SCRIPT_PATH/Firmware/Configuration.h + #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint + sed -i -- "s/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/g" $SCRIPT_PATH/Firmware/Configuration.h - # set FW_REPOSITORY - sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h + # set FW_REPOSITORY + sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h - #Prepare English only or multi-language version to be build - if [ $LANGUAGES == "EN_ONLY" ]; then - echo " " - echo "English only language firmware will be built" - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h - echo " " - else - echo " " - echo "Multi-language firmware will be built" - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h - echo " " - fi - - #Check if compiler flags are set to Prusa specific needs for the rambo board. -# if [ $TARGET_OS == "windows" ]; then -# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" -# fi - - #### End of Prepare building - - #### Start building - - export ARDUINO=$BUILD_ENV_PATH - #echo $BUILD_ENV_PATH - #export BUILDER=$ARDUINO/arduino-builder + #Prepare English only or multi-language version to be build + if [ $LANGUAGES == "EN_ONLY" ]; then + echo " " + echo "English only language firmware will be built" + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h + echo " " + else + echo " " + echo "Multi-language firmware will be built" + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h + echo " " + fi + + #Check if compiler flags are set to Prusa specific needs for the rambo board. +# if [ $TARGET_OS == "windows" ]; then +# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" +# fi + + #### End of Prepare building + + #### Start building + + export ARDUINO=$BUILD_ENV_PATH + #echo $BUILD_ENV_PATH + #export BUILDER=$ARDUINO/arduino-builder - echo - #read -t 5 -p "Press Enter..." - echo + echo + #read -t 5 -p "Press Enter..." + echo - echo "Start to build Prusa Firmware ..." - echo "Using variant $VARIANT$(tput setaf 3)" - if [ $OUTPUT == "1" ] ; then - sleep 2 - fi + echo "Start to build Prusa Firmware ..." + echo "Using variant $VARIANT$(tput setaf 3)" + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 - fi + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 36 + fi - #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 - echo "$(tput sgr 0)" + #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 + echo "$(tput sgr 0)" - if [ $LANGUAGES == "ALL" ]; then - echo "$(tput setaf 2)" + if [ $LANGUAGES == "ALL" ]; then + echo "$(tput setaf 2)" - echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK - echo "$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - sleep 2 - fi - cd $SCRIPT_PATH/lang - echo "$(tput setaf 3)" - ./config.sh || exit 31 - echo "$(tput sgr 0)" - # Check if previous languages and firmware build exist and if so clean them up - if [ -f "lang_en.tmp" ]; then - echo "" - echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - echo "$(tput setaf 3)" - ./lang-clean.sh - echo "$(tput sgr 0)" - fi - if [ -f "progmem.out" ]; then - echo "" - echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - echo "$(tput setaf 3)" - ./fw-clean.sh - echo "$(tput sgr 0)" - fi - # build languages - echo "$(tput setaf 3)" - ./lang-build.sh || exit 32 - # Combine compiled firmware with languages - ./fw-build.sh || exit 33 - cp not_tran.txt not_tran_$VARIANT.txt - cp not_used.txt not_used_$VARIANT.txt - echo "$(tput sgr 0)" - # Check if the motherboard is an EINSY and if so only one hex file will generated - MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) - # If the motherboard is an EINSY just copy one hexfile - if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then - echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" - cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex - else - echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" - cp -f firmware_cz.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-cz.hex - cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-de.hex - cp -f firmware_es.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-es.hex - cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex - cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex - cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex - if [ $TARGET_OS == "windows" ]; then - zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - elif [ $TARGET_OS == "linux" ]; then - zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - fi - fi - # Cleanup after build - if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then - echo "$(tput setaf 3)" - ./fw-clean.sh || exit 34 - ./lang-clean.sh || exit 35 - echo "$(tput sgr 0)" - fi - else - echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" - cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 34 - fi + echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK + echo "$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi + cd $SCRIPT_PATH/lang + echo "$(tput setaf 3)" + ./config.sh || exit 31 + echo "$(tput sgr 0)" + # Check if previous languages and firmware build exist and if so clean them up + if [ -f "lang_en.tmp" ]; then + echo "" + echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + echo "$(tput setaf 3)" + ./lang-clean.sh + echo "$(tput sgr 0)" + fi + if [ -f "progmem.out" ]; then + echo "" + echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + echo "$(tput setaf 3)" + ./fw-clean.sh + echo "$(tput sgr 0)" + fi + # build languages + echo "$(tput setaf 3)" + ./lang-build.sh || exit 32 + # Combine compiled firmware with languages + ./fw-build.sh || exit 33 + cp not_tran.txt not_tran_$VARIANT.txt + cp not_used.txt not_used_$VARIANT.txt + echo "$(tput sgr 0)" + # Check if the motherboard is an EINSY and if so only one hex file will generated + MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) + # If the motherboard is an EINSY just copy one hexfile + if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then + echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" + cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex + else + echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" + cp -f firmware_cz.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-cz.hex + cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-de.hex + cp -f firmware_es.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-es.hex + cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex + cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex + cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex + if [ $TARGET_OS == "windows" ]; then + zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + elif [ $TARGET_OS == "linux" ]; then + if [ ! -z "$mk404_flag" ]; then + cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex + fi + zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + fi + fi + # Cleanup after build + if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then + echo "$(tput setaf 3)" + ./fw-clean.sh || exit 34 + ./lang-clean.sh || exit 35 + echo "$(tput sgr 0)" + fi + else + echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" + cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 34 + fi - # Cleanup Firmware - if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then - rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 - fi - if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/*RAMBo10a*.txt - fi - if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt - fi - if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/not_tran.txt - fi - if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/not_used.txt - fi + # Cleanup Firmware + if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then + rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 + fi + if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*RAMBo10a*.txt + fi + if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_tran.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_used.txt + fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 - fi + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 36 + fi - # Restore files to previous state - sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h - sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h - if [ ! -z "$BUILD_ORG" ] ; then - sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h - fi - echo $MULTI_LANGUAGE_CHECK - #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - if [ $OUTPUT == "1" ] ; then - sleep 5 - fi + # Restore files to previous state + sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h + sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h + if [ ! -z "$BUILD_ORG" ] ; then + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h + fi + echo $MULTI_LANGUAGE_CHECK + #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h + if [ $OUTPUT == "1" ] ; then + sleep 5 + fi done # Switch to hex path and list build files cd $SCRIPT_PATH -cd .. echo "$(tput setaf 2) " echo " " echo "Build done, please use Slic3rPE > 1.41.0 to upload the firmware" echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $(tput sgr 0)" #### End building +ls +#### Run MK404 sim +if [ ! -z "$mk404_flag" ]; then +./MK404-build.sh + +if [ "$mk404_flag" == "2" ]; then + PRINTER="${PRINTER}MMU2" +fi + +if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then + PRINTER="${PRINTER}_mR13" +fi + +if [ ! -z "$grafics_flag" ]; then + options="--colour-extrusion --extrusion Quad_HR -g " + if [ "$grafics_flag" == "1" ]; then + options="${options}lite" + else + options="${options}fancy" + fi + +fi +echo "Printer: $PRINTER" +echo "Options: $options" +cd ../MK404/build + +./MK404 Prusa_$PRINTER -s --terminal $options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +fi From fb98cb2ff9ffb622ecca6c6511a869d86b1dcc81 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 13 Feb 2021 10:05:07 +0100 Subject: [PATCH 02/19] Add force recompile Added SD card builds --- MK404-build.sh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index 7a9cde51..e17a8239 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -16,11 +16,12 @@ # 11 Feb 2021, 3d-gussner, Optional flags to check for updates -while getopts c:u:?h flag +while getopts c:u:f:?h flag do case "${flag}" in c) check_flag=${OPTARG};; u) update_flag=${OPTARG};; + f) force_flag=${OPTARG};; ?) help_flag=1;; h) help_flag=1;; esac @@ -98,7 +99,9 @@ fi #### Set build environment SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" MK404_URL="https://github.com/vintagepc/MK404.git" -MK404_PATH="$SCRIPT_PATH/../MK404" +MK404_owner="vintagepc" +MK404_project="MK404" +MK404_PATH="$SCRIPT_PATH/../MK404/master" MK404_BUILD_PATH="$MK404_PATH/build" @@ -111,6 +114,9 @@ echo "" echo "MK404 path :" $MK404_PATH if [ ! -d $MK404_PATH ]; then + #release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest) + #release_tag=$(basename $release_url) + #git clone -b $release_tag -- https://github.com/$MK404_owner/$MK404_project.git $MK404_PATH git clone $MK404_URL $MK404_PATH fi @@ -120,15 +126,22 @@ fi mkdir -p $MK404_BUILD_PATH -if [ ! -f "$MK404_BUILD_PATH/Makefile" ]; then - cmake -B $MK404_BUILD_PATH +if [[ ! -f "$MK404_BUILD_PATH/Makefile" || "$force_flag" == "1" ]]; then + cmake -B$MK404_BUILD_PATH -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" fi cd $MK404_BUILD_PATH -if [ ! -f "$MK404_BUILD_PATH/MK404" ]; then +if [[ ! -f "$MK404_BUILD_PATH/MK404" || "$force_flag" == "1" ]]; then make fi +if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; then + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3S_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25_13_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin +fi + if [ "$check_flag" == "1" ]; then current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") echo "Current version: $current_version" From f37aedd5ddbebd6bdeb5a29bb848b05fafa7c13a Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 13 Feb 2021 10:35:34 +0100 Subject: [PATCH 03/19] Add copy of MK3 and MK3S `lang.bin` files to MK404 `*_xflash.bin` Minor changes: - Indentations - Documentation --- MK404-build.sh | 18 ++++++++++++------ PF-build.sh | 48 ++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 50 insertions(+), 16 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index e17a8239..aaddeae1 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -10,11 +10,12 @@ # 3. Install latest updates with 'sudo apt-get upgrade' # 4. # -# Version: 0.1-Build_1 +# Version: 0.1-Build_3 # Change log: # 11 Feb 2021, 3d-gussner, Inital # 11 Feb 2021, 3d-gussner, Optional flags to check for updates - +# 12 Feb 2021, 3d-gussner, Update cmake +# 13 Feb 2021, 3d-gussner, Auto build SD cards while getopts c:u:f:?h flag do @@ -113,6 +114,7 @@ echo "OS type :" $TARGET_OS echo "" echo "MK404 path :" $MK404_PATH +# Clone MK404 if needed if [ ! -d $MK404_PATH ]; then #release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest) #release_tag=$(basename $release_url) @@ -120,21 +122,24 @@ if [ ! -d $MK404_PATH ]; then git clone $MK404_URL $MK404_PATH fi - cd $MK404_PATH - git submodule init - git submodule update - +# Init and update submodules +cd $MK404_PATH +git submodule init +git submodule update +# Prepare MK404 mkdir -p $MK404_BUILD_PATH if [[ ! -f "$MK404_BUILD_PATH/Makefile" || "$force_flag" == "1" ]]; then cmake -B$MK404_BUILD_PATH -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" fi +# Make MK404 cd $MK404_BUILD_PATH if [[ ! -f "$MK404_BUILD_PATH/MK404" || "$force_flag" == "1" ]]; then make fi +# Make SDcards if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; then cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3S_SDcard.bin cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin @@ -142,6 +147,7 @@ if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin fi +# Check for updates ... WIP if [ "$check_flag" == "1" ]; then current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") echo "Current version: $current_version" diff --git a/PF-build.sh b/PF-build.sh index 57c49c69..556c4d5d 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_36 +# Version: 1.1.0-Build_39 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -138,6 +138,7 @@ # 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options # 12 Feb 2021, 3d-gussner, Add MK404-build.sh # 13 Feb 2021, 3d-gussner, Indentations +# 13 Feb 2021, 3d-gussner, MK404 improvements like "flash" MK3, MK3S languages files to MK404 xflash. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -882,6 +883,11 @@ do # If the motherboard is an EINSY just copy one hexfile if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" + # Make a copy of "lang.bin" for MK404 MK3 and MK3S + if [ ! -z "$mk404_flag" ]; then + cp -f lang.bin $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin + fi + # End of "lang.bin" for MK3 and MK3S copy cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex else echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" @@ -895,9 +901,11 @@ do zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex elif [ $TARGET_OS == "linux" ]; then + # Make a copy for MK404 sim of MK2, MK2.5, MK2.5S firmware if [ ! -z "$mk404_flag" ]; then cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex fi + # End of MK2, MK2.5, MK2.5S firmware copy zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex fi fi @@ -961,31 +969,51 @@ echo " " echo "Build done, please use Slic3rPE > 1.41.0 to upload the firmware" echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $(tput sgr 0)" #### End building -ls -#### Run MK404 sim + + +#### MK404 Simulator + +# Check/compile MK404 sim if [ ! -z "$mk404_flag" ]; then ./MK404-build.sh +# Check if MMU2 is selected if [ "$mk404_flag" == "2" ]; then PRINTER="${PRINTER}MMU2" fi +# For Prusa MK2, MK2.5 and MK2.5S if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then PRINTER="${PRINTER}_mR13" fi +# Run MK404 with grafics if [ ! -z "$grafics_flag" ]; then - options="--colour-extrusion --extrusion Quad_HR -g " + MK404_options="--colour-extrusion --extrusion Quad_HR -g " if [ "$grafics_flag" == "1" ]; then - options="${options}lite" + options="${MK404_options}lite" else - options="${options}fancy" + options="${MK404_options}fancy" fi fi -echo "Printer: $PRINTER" -echo "Options: $options" -cd ../MK404/build -./MK404 Prusa_$PRINTER -s --terminal $options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +# Output some useful data +echo "Printer: $PRINTER" +echo "Options: $MK404_options" + +# Change to MK404 build folder +cd ../MK404/master/build + +# Copy language bin file for MK3 and MK3S to xflash +if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then +echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" + dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin + dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc fi + +# Start MK404 +# default with serial output and terminal to manipulate it via terminal +./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +fi +#### End of MK404 Simulator \ No newline at end of file From 3ad669889e628f1b789d39ab40fc33713d461116 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 14 Feb 2021 00:18:24 +0100 Subject: [PATCH 04/19] Fix few issues Create MMU2 SDcards MMU2 only for MK3/S --- MK404-build.sh | 8 +++++--- PF-build.sh | 20 +++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index aaddeae1..8ed1e6b9 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -98,17 +98,17 @@ fi #### End Check MK404 dependencies #### Set build environment -SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" +MK404_SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" MK404_URL="https://github.com/vintagepc/MK404.git" MK404_owner="vintagepc" MK404_project="MK404" -MK404_PATH="$SCRIPT_PATH/../MK404/master" +MK404_PATH="$MK404_SCRIPT_PATH/../MK404/master" MK404_BUILD_PATH="$MK404_PATH/build" # List few useful data echo -echo "Script path :" $SCRIPT_PATH +echo "Script path :" $MK404_SCRIPT_PATH echo "OS :" $OS echo "OS type :" $TARGET_OS echo "" @@ -145,6 +145,8 @@ if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25_13_SDcard.bin cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3SMMU2_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3MMU2_SDcard.bin fi # Check for updates ... WIP diff --git a/PF-build.sh b/PF-build.sh index 556c4d5d..f139de8d 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -467,7 +467,7 @@ while getopts v:l:d:b:o:c:p:n:m:g:?h flag p) prusa_flag=${OPTARG};; n) new_build_flag=${OPTARG};; m) mk404_flag=${OPTARG};; - g) grafics_flag=${OPTARG};; + g) graphics_flag=${OPTARG};; ?) help_flag=1;; h) help_flag=1;; esac @@ -977,23 +977,21 @@ echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $( if [ ! -z "$mk404_flag" ]; then ./MK404-build.sh -# Check if MMU2 is selected -if [ "$mk404_flag" == "2" ]; then +# For Prusa MK2, MK2.5/S +if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then + PRINTER="${PRINTER}_mR13" +elif [ "$mk404_flag" == "2" ]; then # Check if MMU2 is selected only for MK3/S PRINTER="${PRINTER}MMU2" fi -# For Prusa MK2, MK2.5 and MK2.5S -if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then - PRINTER="${PRINTER}_mR13" -fi # Run MK404 with grafics -if [ ! -z "$grafics_flag" ]; then +if [ ! -z "$graphics_flag" ]; then MK404_options="--colour-extrusion --extrusion Quad_HR -g " - if [ "$grafics_flag" == "1" ]; then - options="${MK404_options}lite" + if [ "$graphics_flag" == "1" ]; then + MK404_options="${MK404_options}lite" else - options="${MK404_options}fancy" + MK404_options="${MK404_options}fancy" fi fi From de337476cdd02b559983a2b3d60e966b3b80b121 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 12 Feb 2021 20:12:37 +0100 Subject: [PATCH 05/19] Add MK404 support Indentations --- MK404-build.sh | 135 ++++++ PF-build.sh | 1128 +++++++++++++++++++++++++----------------------- 2 files changed, 718 insertions(+), 545 deletions(-) create mode 100755 MK404-build.sh diff --git a/MK404-build.sh b/MK404-build.sh new file mode 100755 index 00000000..7a9cde51 --- /dev/null +++ b/MK404-build.sh @@ -0,0 +1,135 @@ +#!/bin/bash +# This bash script is used to compile automatically the MK404 simulator +# +# Supported OS: Linux64 bit +# +# Linux: +# Linux Ubuntu +# 1. Follow these instructions +# 2. Open Ubuntu bash and get latest updates with 'sudo apt-get update' +# 3. Install latest updates with 'sudo apt-get upgrade' +# 4. +# +# Version: 0.1-Build_1 +# Change log: +# 11 Feb 2021, 3d-gussner, Inital +# 11 Feb 2021, 3d-gussner, Optional flags to check for updates + + +while getopts c:u:?h flag + do + case "${flag}" in + c) check_flag=${OPTARG};; + u) update_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; + esac + done +echo "$check_flag" +echo "$update_flag" + + +#### Start check if OSTYPE is supported +OS_FOUND=$( command -v uname) + +case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in + linux*) + TARGET_OS="linux" + ;; + *) + TARGET_OS='unknown' + ;; +esac +# Linux +if [ $TARGET_OS == "linux" ]; then + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" + Processor="64" + #elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then + # echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" + # Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi +else + echo "$(tput setaf 1)This script doesn't support your Operating system!" + echo "Please use Linux 64-bit" + echo "Read the notes of build.sh$(tput sgr0)" + exit 1 +fi +sleep 2 +#### End check if OSTYPE is supported + +#### Check MK404 dependencies +packages=( +"libelf-dev" +"gcc-7" +"gcc-avr" +"libglew-dev" +"freeglut3-dev" +"libsdl-sound1.2-dev" +"libpng-dev" +"cmake" +"zip" +"wget" +"git" +"build-essential" +"lcov" +"mtools" +) + +for check_package in ${packages[@]}; do + if dpkg-query -W -f'${db:Status-Abbrev}\n' $check_package 2>/dev/null \ + | grep -q '^.i $'; then + echo "$(tput setaf 2)$check_package: Installed$(tput sgr0)" + else + echo "$(tput setaf 1)$check_package: Not installed use $(tput setaf 3)'sudo apt install $check_package'$(tput setaf 1) to install missing package$(tput sgr0)" + not_installed=1; + fi +done + +if [ "$not_installed" = "1" ]; then + exit 4 +fi +#### End Check MK404 dependencies + +#### Set build environment +SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" +MK404_URL="https://github.com/vintagepc/MK404.git" +MK404_PATH="$SCRIPT_PATH/../MK404" +MK404_BUILD_PATH="$MK404_PATH/build" + + +# List few useful data +echo +echo "Script path :" $SCRIPT_PATH +echo "OS :" $OS +echo "OS type :" $TARGET_OS +echo "" +echo "MK404 path :" $MK404_PATH + +if [ ! -d $MK404_PATH ]; then + git clone $MK404_URL $MK404_PATH +fi + + cd $MK404_PATH + git submodule init + git submodule update + + +mkdir -p $MK404_BUILD_PATH +if [ ! -f "$MK404_BUILD_PATH/Makefile" ]; then + cmake -B $MK404_BUILD_PATH +fi + +cd $MK404_BUILD_PATH +if [ ! -f "$MK404_BUILD_PATH/MK404" ]; then + make +fi + +if [ "$check_flag" == "1" ]; then + current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") + echo "Current version: $current_version" +fi \ No newline at end of file diff --git a/PF-build.sh b/PF-build.sh index 5b0979e2..57c49c69 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -91,7 +91,7 @@ # 13 Mar 2019, 3d-gussner, MKbel updated the Linux build environment to version 1.0.2 with an Fix maximum firmware flash size. # So did I # 11 Jul 2019, deliopoulos,Updated to v1.0.6 as Prusa needs a new board definition for Firmware 3.8.x86_64 -# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part +# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part # --> less download volume needed and saves some time # # 13 Jul 2019, deliopoulos,Splitting of Arduino IDE and Prusa parts also for Linux64 @@ -136,6 +136,8 @@ # 08 Jan 2021, 3d-gussner, Comment out 'sudo' auto installation # Add '-?' '-h' help option # 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options +# 12 Feb 2021, 3d-gussner, Add MK404-build.sh +# 13 Feb 2021, 3d-gussner, Indentations #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -157,35 +159,35 @@ case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in esac # Windows if [ $TARGET_OS == "windows" ]; then - if [ $(uname -m) == "x86_64" ]; then - echo "$(tput setaf 2)Windows 64-bit found$(tput sgr0)" - Processor="64" - elif [ $(uname -m) == "i386" ]; then - echo "$(tput setaf 2)Windows 32-bit found$(tput sgr0)" - Processor="32" - else - echo "$(tput setaf 1)Unsupported OS: Windows $(uname -m)" - echo "Please refer to the notes of build.sh$(tput sgr0)" - exit 1 - fi + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Windows 64-bit found$(tput sgr0)" + Processor="64" + elif [ $(uname -m) == "i386" ]; then + echo "$(tput setaf 2)Windows 32-bit found$(tput sgr0)" + Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Windows $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi # Linux elif [ $TARGET_OS == "linux" ]; then - if [ $(uname -m) == "x86_64" ]; then - echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" - Processor="64" - elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then - echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" - Processor="32" - else - echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" - echo "Please refer to the notes of build.sh$(tput sgr0)" - exit 1 - fi + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" + Processor="64" + elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then + echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" + Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi else - echo "$(tput setaf 1)This script doesn't support your Operating system!" - echo "Please use Linux 64-bit or Windows 10 64-bit with Linux subsystem / git-bash" - echo "Read the notes of build.sh$(tput sgr0)" - exit 1 + echo "$(tput setaf 1)This script doesn't support your Operating system!" + echo "Please use Linux 64-bit or Windows 10 64-bit with Linux subsystem / git-bash" + echo "Read the notes of build.sh$(tput sgr0)" + exit 1 fi sleep 2 #### End check if OSTYPE is supported @@ -193,52 +195,52 @@ sleep 2 #### Prepare bash environment and check if wget, zip and other needed things are available # Check wget if ! type wget > /dev/null; then - echo "$(tput setaf 1)Missing 'wget' which is important to run this script" - echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" - exit 2 + echo "$(tput setaf 1)Missing 'wget' which is important to run this script" + echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" + exit 2 fi # Check for zip if ! type zip > /dev/null; then - if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'zip' which is important to run this script" - echo "Download and install 7z-zip from its official website https://www.7-zip.org/" - echo "By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10 as my case." - echo "Run git Bash under Administrator privilege and" - echo "navigate to the directory /c/Program Files/Git/mingw64/bin," - echo "you can run the command $(tput setaf 2)ln -s /c/Program Files/7-Zip/7z.exe zip.exe$(tput sgr0)" - exit 3 - elif [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'zip' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" - #sudo apt-get update && apt-get install zip - exit 3 - fi + if [ $TARGET_OS == "windows" ]; then + echo "$(tput setaf 1)Missing 'zip' which is important to run this script" + echo "Download and install 7z-zip from its official website https://www.7-zip.org/" + echo "By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10 as my case." + echo "Run git Bash under Administrator privilege and" + echo "navigate to the directory /c/Program Files/Git/mingw64/bin," + echo "you can run the command $(tput setaf 2)ln -s /c/Program Files/7-Zip/7z.exe zip.exe$(tput sgr0)" + exit 3 + elif [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'zip' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" + #sudo apt-get update && apt-get install zip + exit 3 + fi fi # Check python ... needed during language build if ! type python > /dev/null; then - if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'python3' which is important to run this script" - exit 4 - elif [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'python' which is important to run this script" - echo "As Python 2.x will not be maintained from 2020 please," - echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." - echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" - echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" - #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python - exit 4 - fi + if [ $TARGET_OS == "windows" ]; then + echo "$(tput setaf 1)Missing 'python3' which is important to run this script" + exit 4 + elif [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'python' which is important to run this script" + echo "As Python 2.x will not be maintained from 2020 please," + echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." + echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" + echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" + #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python + exit 4 + fi fi # Check gawk ... needed during language build if ! type gawk > /dev/null; then - if [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." - #sudo apt-get update && apt-get install gawk - exit 4 - fi + if [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." + #sudo apt-get update && apt-get install gawk + exit 4 + fi fi #### End prepare bash / Linux environment @@ -287,157 +289,157 @@ BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )" # Check if PF-build-env- exists and downloads + creates it if not # The build environment is based on the supported Arduino IDE portable version with some changes if [ ! -d "../PF-build-env-$BUILD_ENV" ]; then - echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" - mkdir ../PF-build-env-$BUILD_ENV - sleep 5 + echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" + mkdir ../PF-build-env-$BUILD_ENV + sleep 5 fi # Download and extract supported Arduino IDE depending on OS # Windows if [ $TARGET_OS == "windows" ]; then - if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then - echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then + echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Linux if [ $TARGET_OS == "linux" ]; then # 32 or 64 bit version - if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then - echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" - sleep 2 - tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then + echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" + sleep 2 + tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Make Arduino IDE portable if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging fi # Change Arduino IDE preferences if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt ]; then - echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" - sleep 2 - echo "update.check" - sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "board" - sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "editor.linenumbers" - sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "boardsmanager.additional.urls" - echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" + echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" + sleep 2 + echo "update.check" + sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "board" + sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "editor.linenumbers" + sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "boardsmanager.additional.urls" + echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" fi # Download and extract Prusa Firmware related parts # Download and extract PrusaResearchRambo board if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then - echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" - sleep 2 - wget $BOARD_FILE_URL || exit 9 + echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" + sleep 2 + wget $BOARD_FILE_URL || exit 9 fi if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" - sleep 2 - tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr - fi - - mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION - echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" + sleep 2 + tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr + fi + + mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION + echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr 0)" -fi + echo "$(tput sgr 0)" +fi # Download and extract Prusa Firmware specific library files if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then - echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" - sleep 2 - wget $PF_BUILD_FILE_URL || exit 11 - echo "$(tput sgr 0)" + echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" + sleep 2 + wget $PF_BUILD_FILE_URL || exit 11 + echo "$(tput sgr 0)" fi if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then - echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" - sleep 2 - unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 - echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" + echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" + sleep 2 + unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 + echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" fi # Check if User updated Arduino IDE 1.8.5 boardsmanager and tools if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then - echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" - echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" - sleep 2 -fi + echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" + echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" + sleep 2 +fi if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then - echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" - sleep 2 - echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" - sleep 2 - cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn - echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" -fi + echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" + sleep 2 + echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" + sleep 2 + cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn + echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" +fi if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then - echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" - echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" - echo "Script will not continue until this have been fixed $(tput setaf 2)" - sleep 2 - echo "$(tput sgr0)" - exit 13 + echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" + echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" + echo "Script will not continue until this have been fixed $(tput setaf 2)" + sleep 2 + echo "$(tput sgr0)" + exit 13 fi @@ -449,24 +451,26 @@ cd $SCRIPT_PATH # Check if git is available if type git > /dev/null; then - git_available="1" + git_available="1" fi -while getopts v:l:d:b:o:c:p:n:?h flag - do - case "${flag}" in - v) variant_flag=${OPTARG};; - l) language_flag=${OPTARG};; - d) devel_flag=${OPTARG};; - b) build_flag=${OPTARG};; - o) output_flag=${OPTARG};; - c) clean_flag=${OPTARG};; - p) prusa_flag=${OPTARG};; - n) new_build_flag=${OPTARG};; - ?) help_flag=1;; - h) help_flag=1;; - esac - done +while getopts v:l:d:b:o:c:p:n:m:g:?h flag + do + case "${flag}" in + v) variant_flag=${OPTARG};; + l) language_flag=${OPTARG};; + d) devel_flag=${OPTARG};; + b) build_flag=${OPTARG};; + o) output_flag=${OPTARG};; + c) clean_flag=${OPTARG};; + p) prusa_flag=${OPTARG};; + n) new_build_flag=${OPTARG};; + m) mk404_flag=${OPTARG};; + g) grafics_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; + esac + done #echo "variant_flag: $variant_flag"; #echo "language_flag: $language_flag"; #echo "devel_flag: $devel_flag"; @@ -492,11 +496,13 @@ echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force echo "$(tput setaf 2)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" +echo "$(tput setaf 2)-m$(tput sgr0) Start MK404 sim '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2" +echo "$(tput setaf 2)-g$(tput sgr0) Start MK404 grafics '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy" echo "$(tput setaf 2)-?$(tput sgr0) Help" echo "$(tput setaf 2)-h$(tput sgr0) Help" echo echo "Brief USAGE:" -echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n]" +echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n] [-m]" echo echo "Example:" echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" @@ -514,48 +520,48 @@ fi # # '-v' argument defines which variant of the Prusa Firmware will be compiled if [ -z "$variant_flag" ] ; then - # Select which variant of the Prusa Firmware will be compiled, like - PS3="Select a variant: " - while IFS= read -r -d $'\0' f; do - options[i++]="$f" - done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - select opt in "${options[@]}" "All" "Quit"; do - case $opt in - *.h) - VARIANT=$(basename "$opt" ".h") - VARIANTS[i++]="$opt" - break - ;; - "All") - VARIANT="All" - VARIANTS=${options[*]} - break - ;; - "Quit") - echo "You chose to stop" - exit 20 - ;; - *) - echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" - ;; - esac - done + # Select which variant of the Prusa Firmware will be compiled, like + PS3="Select a variant: " + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + select opt in "${options[@]}" "All" "Quit"; do + case $opt in + *.h) + VARIANT=$(basename "$opt" ".h") + VARIANTS[i++]="$opt" + break + ;; + "All") + VARIANT="All" + VARIANTS=${options[*]} + break + ;; + "Quit") + echo "You chose to stop" + exit 20 + ;; + *) + echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" + ;; + esac + done else - if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then - VARIANTS=$variant_flag - elif [ "$variant_flag" == "All" ] ; then - while IFS= read -r -d $'\0' f; do - options[i++]="$f" - done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - VARIANT="All" - VARIANTS=${options[*]} - else - echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" - echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" - ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename - echo "$(tput sgr0)" - exit 21 - fi + if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then + VARIANTS=$variant_flag + elif [ "$variant_flag" == "All" ] ; then + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + VARIANT="All" + VARIANTS=${options[*]} + else + echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" + echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" + ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename + echo "$(tput sgr0)" + exit 21 + fi fi #'-l' argument defines if it is an English only version. Known values EN_ONLY / ALL @@ -563,86 +569,86 @@ fi MULTI_LANGUAGE_CHECK=$(grep --max-count=1 "^#define LANG_MODE *" $SCRIPT_PATH/Firmware/config.h|sed -e's/ */ /g'|cut -d ' ' -f3) if [ -z "$language_flag" ] ; then - PS3="Select a language: " - echo - echo "Which lang-build do you want?" - select yn in "Multi languages" "English only"; do - case $yn in - "Multi languages") - LANGUAGES="ALL" - break - ;; - "English only") - LANGUAGES="EN_ONLY" - break - ;; - *) - echo "$(tput setaf 1)This is not a valid language$(tput sgr0)" - ;; - esac - done + PS3="Select a language: " + echo + echo "Which lang-build do you want?" + select yn in "Multi languages" "English only"; do + case $yn in + "Multi languages") + LANGUAGES="ALL" + break + ;; + "English only") + LANGUAGES="EN_ONLY" + break + ;; + *) + echo "$(tput setaf 1)This is not a valid language$(tput sgr0)" + ;; + esac + done else - if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then - LANGUAGES=$language_flag - else - echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" - exit 22 - fi + if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then + LANGUAGES=$language_flag + else + echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" + exit 22 + fi fi #Check if DEV_STATUS is selected via argument '-d' if [ ! -z "$devel_flag" ] ; then - if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then - DEV_STATUS_SELECTED=$devel_flag - else - echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" - exit 23 - fi + if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then + DEV_STATUS_SELECTED=$devel_flag + else + echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" + exit 23 + fi fi #Check if Build is selected via argument '-b' if [ ! -z "$build_flag" ] ; then - if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then - echo "Build changed to $build_flag" - BUILD=$(git rev-list --count HEAD) - elif [[ $build_flag =~ ^[0-9]+$ ]] ; then - BUILD=$build_flag - else - echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" - exit 24 + if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then + echo "Build changed to $build_flag" + BUILD=$(git rev-list --count HEAD) + elif [[ $build_flag =~ ^[0-9]+$ ]] ; then + BUILD=$build_flag + else + echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" + exit 24 - fi - echo "New Build number is: $BUILD" + fi + echo "New Build number is: $BUILD" fi # check if script has been started with arguments if [[ "$#" -eq "0" || "$output_flag" == 1 ]] ; then - OUTPUT=1 + OUTPUT=1 else - OUTPUT=0 + OUTPUT=0 fi #echo "Output is:" $OUTPUT #Check git branch has changed if [ ! -z "git_available" ]; then - BRANCH="" - CLEAN_PF_FW_BUILD=0 + BRANCH="" + CLEAN_PF_FW_BUILD=0 else - BRANCH=$(git branch --show-current) - echo "Current branch is:" $BRANCH - if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then - echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch - echo "created PF-build.branch file" - else - PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") - echo "Previous branch was:" $PRE_BRANCH - if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then - CLEAN_PF_FW_BUILD=1 - echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch - fi - fi + BRANCH=$(git branch --show-current) + echo "Current branch is:" $BRANCH + if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + echo "created PF-build.branch file" + else + PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") + echo "Previous branch was:" $PRE_BRANCH + if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then + CLEAN_PF_FW_BUILD=1 + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + fi + fi fi #Set BUILD_ENV_PATH @@ -662,292 +668,324 @@ BUILD_PATH="$( pwd -P )" #Check git branch has changed if [ "$CLEAN_PF_FW_BUILD" == "1" ]; then - read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" - rm -r * + read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" + rm -r * else - echo "Nothing to clean up" + echo "Nothing to clean up" fi for v in ${VARIANTS[*]} do - VARIANT=$(basename "$v" ".h") - # Find firmware version in Configuration.h file and use it to generate the hex filename - FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') - if [ -z "$BUILD" ] ; then - # Find build version in Configuration.h file and use it to generate the hex filename - BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - else - # Find and replace build version in Configuration.h file - BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - echo "Original build number: $BUILD_ORG" - sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h - fi - # Check if the motherboard is an EINSY and if so only one hex file will generated - MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) - # Check development status - DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) - if [ -z "$DEV_STATUS_SELECTED" ] ; then - if [[ "$DEV_CHECK" == *"RC"* ]] ; then - DEV_STATUS="RC" - elif [[ "$DEV_CHECK" == "ALPHA" ]]; then - DEV_STATUS="ALPHA" - elif [[ "$DEV_CHECK" == "BETA" ]]; then - DEV_STATUS="BETA" - elif [[ "$DEV_CHECK" == "DEVEL" ]]; then - DEV_STATUS="DEVEL" - elif [[ "$DEV_CHECK" == "DEBUG" ]]; then - DEV_STATUS="DEBUG" - else - DEV_STATUS="UNKNOWN" - echo - echo "$(tput setaf 5)DEV_STATUS is UNKNOWN. Do you wish to set DEV_STATUS to GOLD?$(tput sgr0)" - PS3="Select YES only if source code is tested and trusted: " - select yn in "Yes" "No"; do - case $yn in - Yes) - DEV_STATUS="GOLD" - DEV_STATUS_SELECTED="GOLD" - break - ;; - No) - DEV_STATUS="UNKNOWN" - DEV_STATUS_SELECTED="UNKNOWN" - break - ;; - *) - echo "$(tput setaf 1)This is not a valid DEV_STATUS$(tput sgr0)" - ;; - esac - done - fi - else - DEV_STATUS=$DEV_STATUS_SELECTED - fi - #Prepare hex files folders - if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then - mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 - fi - OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" - - #Check if exactly the same hexfile already exists - if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - fi - if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename - echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - fi - - #List some useful data - echo "$(tput setaf 2)$(tput setab 7) " - echo "Variant :" $VARIANT - echo "Firmware :" $FW - echo "Build # :" $BUILD - echo "Dev Check :" $DEV_CHECK - echo "DEV Status :" $DEV_STATUS - echo "Motherboard:" $MOTHERBOARD - echo "Languages :" $LANGUAGES - echo "Hex-file Folder:" $OUTPUT_FOLDER - echo "$(tput sgr0)" + VARIANT=$(basename "$v" ".h") + PRINTER=$(grep --max-count=1 "\bPRINTER_TYPE\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3 | cut -d '_' -f2) + # Find firmware version in Configuration.h file and use it to generate the hex filename + FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') + if [ -z "$BUILD" ] ; then + # Find build version in Configuration.h file and use it to generate the hex filename + BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + else + # Find and replace build version in Configuration.h file + BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + echo "Original build number: $BUILD_ORG" + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h + fi + # Check if the motherboard is an EINSY and if so only one hex file will generated + MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) + # Check development status + DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) + if [ -z "$DEV_STATUS_SELECTED" ] ; then + if [[ "$DEV_CHECK" == *"RC"* ]] ; then + DEV_STATUS="RC" + elif [[ "$DEV_CHECK" == "ALPHA" ]]; then + DEV_STATUS="ALPHA" + elif [[ "$DEV_CHECK" == "BETA" ]]; then + DEV_STATUS="BETA" + elif [[ "$DEV_CHECK" == "DEVEL" ]]; then + DEV_STATUS="DEVEL" + elif [[ "$DEV_CHECK" == "DEBUG" ]]; then + DEV_STATUS="DEBUG" + else + DEV_STATUS="UNKNOWN" + echo + echo "$(tput setaf 5)DEV_STATUS is UNKNOWN. Do you wish to set DEV_STATUS to GOLD?$(tput sgr0)" + PS3="Select YES only if source code is tested and trusted: " + select yn in "Yes" "No"; do + case $yn in + Yes) + DEV_STATUS="GOLD" + DEV_STATUS_SELECTED="GOLD" + break + ;; + No) + DEV_STATUS="UNKNOWN" + DEV_STATUS_SELECTED="UNKNOWN" + break + ;; + *) + echo "$(tput setaf 1)This is not a valid DEV_STATUS$(tput sgr0)" + ;; + esac + done + fi + else + DEV_STATUS=$DEV_STATUS_SELECTED + fi + #Prepare hex files folders + if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 + fi + OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" + + #Check if exactly the same hexfile already exists + if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + fi + if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename + echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + fi + + #List some useful data + echo "$(tput setaf 2)$(tput setab 7) " + echo "Printer :" $PRINTER + echo "Variant :" $VARIANT + echo "Firmware :" $FW + echo "Build # :" $BUILD + echo "Dev Check :" $DEV_CHECK + echo "DEV Status :" $DEV_STATUS + echo "Motherboard:" $MOTHERBOARD + echo "Languages :" $LANGUAGES + echo "Hex-file Folder:" $OUTPUT_FOLDER + echo "$(tput sgr0)" - #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h - if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 - else - echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 - fi + #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h + if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + else + echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + fi - #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint - sed -i -- "s/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/g" $SCRIPT_PATH/Firmware/Configuration.h + #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint + sed -i -- "s/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/g" $SCRIPT_PATH/Firmware/Configuration.h - # set FW_REPOSITORY - sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h + # set FW_REPOSITORY + sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h - #Prepare English only or multi-language version to be build - if [ $LANGUAGES == "EN_ONLY" ]; then - echo " " - echo "English only language firmware will be built" - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h - echo " " - else - echo " " - echo "Multi-language firmware will be built" - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h - echo " " - fi - - #Check if compiler flags are set to Prusa specific needs for the rambo board. -# if [ $TARGET_OS == "windows" ]; then -# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" -# fi - - #### End of Prepare building - - #### Start building - - export ARDUINO=$BUILD_ENV_PATH - #echo $BUILD_ENV_PATH - #export BUILDER=$ARDUINO/arduino-builder + #Prepare English only or multi-language version to be build + if [ $LANGUAGES == "EN_ONLY" ]; then + echo " " + echo "English only language firmware will be built" + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h + echo " " + else + echo " " + echo "Multi-language firmware will be built" + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h + echo " " + fi + + #Check if compiler flags are set to Prusa specific needs for the rambo board. +# if [ $TARGET_OS == "windows" ]; then +# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" +# fi + + #### End of Prepare building + + #### Start building + + export ARDUINO=$BUILD_ENV_PATH + #echo $BUILD_ENV_PATH + #export BUILDER=$ARDUINO/arduino-builder - echo - #read -t 5 -p "Press Enter..." - echo + echo + #read -t 5 -p "Press Enter..." + echo - echo "Start to build Prusa Firmware ..." - echo "Using variant $VARIANT$(tput setaf 3)" - if [ $OUTPUT == "1" ] ; then - sleep 2 - fi + echo "Start to build Prusa Firmware ..." + echo "Using variant $VARIANT$(tput setaf 3)" + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 - fi + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 36 + fi - #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 - echo "$(tput sgr 0)" + #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 + echo "$(tput sgr 0)" - if [ $LANGUAGES == "ALL" ]; then - echo "$(tput setaf 2)" + if [ $LANGUAGES == "ALL" ]; then + echo "$(tput setaf 2)" - echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK - echo "$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - sleep 2 - fi - cd $SCRIPT_PATH/lang - echo "$(tput setaf 3)" - ./config.sh || exit 31 - echo "$(tput sgr 0)" - # Check if previous languages and firmware build exist and if so clean them up - if [ -f "lang_en.tmp" ]; then - echo "" - echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - echo "$(tput setaf 3)" - ./lang-clean.sh - echo "$(tput sgr 0)" - fi - if [ -f "progmem.out" ]; then - echo "" - echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - echo "$(tput setaf 3)" - ./fw-clean.sh - echo "$(tput sgr 0)" - fi - # build languages - echo "$(tput setaf 3)" - ./lang-build.sh || exit 32 - # Combine compiled firmware with languages - ./fw-build.sh || exit 33 - cp not_tran.txt not_tran_$VARIANT.txt - cp not_used.txt not_used_$VARIANT.txt - echo "$(tput sgr 0)" - # Check if the motherboard is an EINSY and if so only one hex file will generated - MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) - # If the motherboard is an EINSY just copy one hexfile - if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then - echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" - cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex - else - echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" - cp -f firmware_cz.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-cz.hex - cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-de.hex - cp -f firmware_es.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-es.hex - cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex - cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex - cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex - if [ $TARGET_OS == "windows" ]; then - zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - elif [ $TARGET_OS == "linux" ]; then - zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - fi - fi - # Cleanup after build - if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then - echo "$(tput setaf 3)" - ./fw-clean.sh || exit 34 - ./lang-clean.sh || exit 35 - echo "$(tput sgr 0)" - fi - else - echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" - cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 34 - fi + echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK + echo "$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi + cd $SCRIPT_PATH/lang + echo "$(tput setaf 3)" + ./config.sh || exit 31 + echo "$(tput sgr 0)" + # Check if previous languages and firmware build exist and if so clean them up + if [ -f "lang_en.tmp" ]; then + echo "" + echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + echo "$(tput setaf 3)" + ./lang-clean.sh + echo "$(tput sgr 0)" + fi + if [ -f "progmem.out" ]; then + echo "" + echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + echo "$(tput setaf 3)" + ./fw-clean.sh + echo "$(tput sgr 0)" + fi + # build languages + echo "$(tput setaf 3)" + ./lang-build.sh || exit 32 + # Combine compiled firmware with languages + ./fw-build.sh || exit 33 + cp not_tran.txt not_tran_$VARIANT.txt + cp not_used.txt not_used_$VARIANT.txt + echo "$(tput sgr 0)" + # Check if the motherboard is an EINSY and if so only one hex file will generated + MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) + # If the motherboard is an EINSY just copy one hexfile + if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then + echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" + cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex + else + echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" + cp -f firmware_cz.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-cz.hex + cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-de.hex + cp -f firmware_es.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-es.hex + cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex + cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex + cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex + if [ $TARGET_OS == "windows" ]; then + zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + elif [ $TARGET_OS == "linux" ]; then + if [ ! -z "$mk404_flag" ]; then + cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex + fi + zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + fi + fi + # Cleanup after build + if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then + echo "$(tput setaf 3)" + ./fw-clean.sh || exit 34 + ./lang-clean.sh || exit 35 + echo "$(tput sgr 0)" + fi + else + echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" + cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 34 + fi - # Cleanup Firmware - if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then - rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 - fi - if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/*RAMBo10a*.txt - fi - if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt - fi - if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/not_tran.txt - fi - if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/not_used.txt - fi + # Cleanup Firmware + if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then + rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 + fi + if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*RAMBo10a*.txt + fi + if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_tran.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_used.txt + fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 - fi + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 36 + fi - # Restore files to previous state - sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h - sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h - if [ ! -z "$BUILD_ORG" ] ; then - sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h - fi - echo $MULTI_LANGUAGE_CHECK - #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - if [ $OUTPUT == "1" ] ; then - sleep 5 - fi + # Restore files to previous state + sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h + sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h + if [ ! -z "$BUILD_ORG" ] ; then + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h + fi + echo $MULTI_LANGUAGE_CHECK + #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h + if [ $OUTPUT == "1" ] ; then + sleep 5 + fi done # Switch to hex path and list build files cd $SCRIPT_PATH -cd .. echo "$(tput setaf 2) " echo " " echo "Build done, please use Slic3rPE > 1.41.0 to upload the firmware" echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $(tput sgr 0)" #### End building +ls +#### Run MK404 sim +if [ ! -z "$mk404_flag" ]; then +./MK404-build.sh + +if [ "$mk404_flag" == "2" ]; then + PRINTER="${PRINTER}MMU2" +fi + +if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then + PRINTER="${PRINTER}_mR13" +fi + +if [ ! -z "$grafics_flag" ]; then + options="--colour-extrusion --extrusion Quad_HR -g " + if [ "$grafics_flag" == "1" ]; then + options="${options}lite" + else + options="${options}fancy" + fi + +fi +echo "Printer: $PRINTER" +echo "Options: $options" +cd ../MK404/build + +./MK404 Prusa_$PRINTER -s --terminal $options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +fi From be9f8e51577713bc9ae511ee3b0b081795882a7c Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 13 Feb 2021 10:05:07 +0100 Subject: [PATCH 06/19] Add force recompile Added SD card builds --- MK404-build.sh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index 7a9cde51..e17a8239 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -16,11 +16,12 @@ # 11 Feb 2021, 3d-gussner, Optional flags to check for updates -while getopts c:u:?h flag +while getopts c:u:f:?h flag do case "${flag}" in c) check_flag=${OPTARG};; u) update_flag=${OPTARG};; + f) force_flag=${OPTARG};; ?) help_flag=1;; h) help_flag=1;; esac @@ -98,7 +99,9 @@ fi #### Set build environment SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" MK404_URL="https://github.com/vintagepc/MK404.git" -MK404_PATH="$SCRIPT_PATH/../MK404" +MK404_owner="vintagepc" +MK404_project="MK404" +MK404_PATH="$SCRIPT_PATH/../MK404/master" MK404_BUILD_PATH="$MK404_PATH/build" @@ -111,6 +114,9 @@ echo "" echo "MK404 path :" $MK404_PATH if [ ! -d $MK404_PATH ]; then + #release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest) + #release_tag=$(basename $release_url) + #git clone -b $release_tag -- https://github.com/$MK404_owner/$MK404_project.git $MK404_PATH git clone $MK404_URL $MK404_PATH fi @@ -120,15 +126,22 @@ fi mkdir -p $MK404_BUILD_PATH -if [ ! -f "$MK404_BUILD_PATH/Makefile" ]; then - cmake -B $MK404_BUILD_PATH +if [[ ! -f "$MK404_BUILD_PATH/Makefile" || "$force_flag" == "1" ]]; then + cmake -B$MK404_BUILD_PATH -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" fi cd $MK404_BUILD_PATH -if [ ! -f "$MK404_BUILD_PATH/MK404" ]; then +if [[ ! -f "$MK404_BUILD_PATH/MK404" || "$force_flag" == "1" ]]; then make fi +if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; then + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3S_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25_13_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin +fi + if [ "$check_flag" == "1" ]; then current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") echo "Current version: $current_version" From bf331988662e8e07d8fa6622133ba19e001e45a7 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 13 Feb 2021 10:35:34 +0100 Subject: [PATCH 07/19] Add copy of MK3 and MK3S `lang.bin` files to MK404 `*_xflash.bin` Minor changes: - Indentations - Documentation --- MK404-build.sh | 18 ++++++++++++------ PF-build.sh | 48 ++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 50 insertions(+), 16 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index e17a8239..aaddeae1 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -10,11 +10,12 @@ # 3. Install latest updates with 'sudo apt-get upgrade' # 4. # -# Version: 0.1-Build_1 +# Version: 0.1-Build_3 # Change log: # 11 Feb 2021, 3d-gussner, Inital # 11 Feb 2021, 3d-gussner, Optional flags to check for updates - +# 12 Feb 2021, 3d-gussner, Update cmake +# 13 Feb 2021, 3d-gussner, Auto build SD cards while getopts c:u:f:?h flag do @@ -113,6 +114,7 @@ echo "OS type :" $TARGET_OS echo "" echo "MK404 path :" $MK404_PATH +# Clone MK404 if needed if [ ! -d $MK404_PATH ]; then #release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest) #release_tag=$(basename $release_url) @@ -120,21 +122,24 @@ if [ ! -d $MK404_PATH ]; then git clone $MK404_URL $MK404_PATH fi - cd $MK404_PATH - git submodule init - git submodule update - +# Init and update submodules +cd $MK404_PATH +git submodule init +git submodule update +# Prepare MK404 mkdir -p $MK404_BUILD_PATH if [[ ! -f "$MK404_BUILD_PATH/Makefile" || "$force_flag" == "1" ]]; then cmake -B$MK404_BUILD_PATH -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" fi +# Make MK404 cd $MK404_BUILD_PATH if [[ ! -f "$MK404_BUILD_PATH/MK404" || "$force_flag" == "1" ]]; then make fi +# Make SDcards if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; then cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3S_SDcard.bin cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin @@ -142,6 +147,7 @@ if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin fi +# Check for updates ... WIP if [ "$check_flag" == "1" ]; then current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") echo "Current version: $current_version" diff --git a/PF-build.sh b/PF-build.sh index 57c49c69..556c4d5d 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.0.6-Build_36 +# Version: 1.1.0-Build_39 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -138,6 +138,7 @@ # 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options # 12 Feb 2021, 3d-gussner, Add MK404-build.sh # 13 Feb 2021, 3d-gussner, Indentations +# 13 Feb 2021, 3d-gussner, MK404 improvements like "flash" MK3, MK3S languages files to MK404 xflash. #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -882,6 +883,11 @@ do # If the motherboard is an EINSY just copy one hexfile if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" + # Make a copy of "lang.bin" for MK404 MK3 and MK3S + if [ ! -z "$mk404_flag" ]; then + cp -f lang.bin $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin + fi + # End of "lang.bin" for MK3 and MK3S copy cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex else echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" @@ -895,9 +901,11 @@ do zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex elif [ $TARGET_OS == "linux" ]; then + # Make a copy for MK404 sim of MK2, MK2.5, MK2.5S firmware if [ ! -z "$mk404_flag" ]; then cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex fi + # End of MK2, MK2.5, MK2.5S firmware copy zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex fi fi @@ -961,31 +969,51 @@ echo " " echo "Build done, please use Slic3rPE > 1.41.0 to upload the firmware" echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $(tput sgr 0)" #### End building -ls -#### Run MK404 sim + + +#### MK404 Simulator + +# Check/compile MK404 sim if [ ! -z "$mk404_flag" ]; then ./MK404-build.sh +# Check if MMU2 is selected if [ "$mk404_flag" == "2" ]; then PRINTER="${PRINTER}MMU2" fi +# For Prusa MK2, MK2.5 and MK2.5S if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then PRINTER="${PRINTER}_mR13" fi +# Run MK404 with grafics if [ ! -z "$grafics_flag" ]; then - options="--colour-extrusion --extrusion Quad_HR -g " + MK404_options="--colour-extrusion --extrusion Quad_HR -g " if [ "$grafics_flag" == "1" ]; then - options="${options}lite" + options="${MK404_options}lite" else - options="${options}fancy" + options="${MK404_options}fancy" fi fi -echo "Printer: $PRINTER" -echo "Options: $options" -cd ../MK404/build -./MK404 Prusa_$PRINTER -s --terminal $options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +# Output some useful data +echo "Printer: $PRINTER" +echo "Options: $MK404_options" + +# Change to MK404 build folder +cd ../MK404/master/build + +# Copy language bin file for MK3 and MK3S to xflash +if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then +echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" + dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin + dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc fi + +# Start MK404 +# default with serial output and terminal to manipulate it via terminal +./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +fi +#### End of MK404 Simulator \ No newline at end of file From 1550e707be5ea5e47adcf47cf8c210890f88f7c9 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 14 Feb 2021 00:18:24 +0100 Subject: [PATCH 08/19] Fix few issues Create MMU2 SDcards MMU2 only for MK3/S --- MK404-build.sh | 8 +++++--- PF-build.sh | 20 +++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index aaddeae1..8ed1e6b9 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -98,17 +98,17 @@ fi #### End Check MK404 dependencies #### Set build environment -SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" +MK404_SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" MK404_URL="https://github.com/vintagepc/MK404.git" MK404_owner="vintagepc" MK404_project="MK404" -MK404_PATH="$SCRIPT_PATH/../MK404/master" +MK404_PATH="$MK404_SCRIPT_PATH/../MK404/master" MK404_BUILD_PATH="$MK404_PATH/build" # List few useful data echo -echo "Script path :" $SCRIPT_PATH +echo "Script path :" $MK404_SCRIPT_PATH echo "OS :" $OS echo "OS type :" $TARGET_OS echo "" @@ -145,6 +145,8 @@ if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3_SDcard.bin cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25_13_SDcard.bin cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK25S_13_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3SMMU2_SDcard.bin + cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3MMU2_SDcard.bin fi # Check for updates ... WIP diff --git a/PF-build.sh b/PF-build.sh index 556c4d5d..f139de8d 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -467,7 +467,7 @@ while getopts v:l:d:b:o:c:p:n:m:g:?h flag p) prusa_flag=${OPTARG};; n) new_build_flag=${OPTARG};; m) mk404_flag=${OPTARG};; - g) grafics_flag=${OPTARG};; + g) graphics_flag=${OPTARG};; ?) help_flag=1;; h) help_flag=1;; esac @@ -977,23 +977,21 @@ echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $( if [ ! -z "$mk404_flag" ]; then ./MK404-build.sh -# Check if MMU2 is selected -if [ "$mk404_flag" == "2" ]; then +# For Prusa MK2, MK2.5/S +if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then + PRINTER="${PRINTER}_mR13" +elif [ "$mk404_flag" == "2" ]; then # Check if MMU2 is selected only for MK3/S PRINTER="${PRINTER}MMU2" fi -# For Prusa MK2, MK2.5 and MK2.5S -if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then - PRINTER="${PRINTER}_mR13" -fi # Run MK404 with grafics -if [ ! -z "$grafics_flag" ]; then +if [ ! -z "$graphics_flag" ]; then MK404_options="--colour-extrusion --extrusion Quad_HR -g " - if [ "$grafics_flag" == "1" ]; then - options="${MK404_options}lite" + if [ "$graphics_flag" == "1" ]; then + MK404_options="${MK404_options}lite" else - options="${MK404_options}fancy" + MK404_options="${MK404_options}fancy" fi fi From 4e6fd2a92d81c694bc2cec8bfa0dc69df92e4b79 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 17 Mar 2021 18:42:39 +0100 Subject: [PATCH 09/19] fix merge issue 2 --- lang/po/new/cs.po | 1850 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1850 insertions(+) diff --git a/lang/po/new/cs.po b/lang/po/new/cs.po index 51d01b06..40a9bca8 100644 --- a/lang/po/new/cs.po +++ b/lang/po/new/cs.po @@ -1,3 +1,1852 @@ +<<<<<<< HEAD +# Translation of Prusa-Firmware into Czech. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Project-Id-Version: Prusa-Firmware\n" +"POT-Creation-Date: Wed May 13 17:41:02 CEST 2020\n" +"PO-Revision-Date: Wed May 13 17:41:02 CEST 2020\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.7\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +# +#: +msgid "[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset" +msgstr "[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset" + +# MSG_03_OR_OLDER c=18 +#: messages.c:144 +msgid " 0.3 or older" +msgstr " 0.3 nebo starsi" + +# MSG_04_OR_NEWER c=18 +#: messages.c:143 +msgid " 0.4 or newer" +msgstr " 0.4 nebo novejsi" + +# MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14 +#: messages.c:36 +msgid " of 4" +msgstr " z 4" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14 +#: messages.c:56 +msgid " of 9" +msgstr " z 9" + +# MSG_MEASURED_OFFSET +#: ultralcd.cpp:3064 +msgid "[0;0] point offset" +msgstr "[0;0] odsazeni bodu" + +# MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4 +#: +msgid "Crash detection can\x0abe turned on only in\x0aNormal mode" +msgstr "Crash detekce muze\x0abyt zapnuta pouze v\x0aNormal modu" + +# MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4 +#: +msgid "WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode" +msgstr "POZOR:\x0aCrash detekce\x0adeaktivovana ve\x0aStealth modu" + +# +#: ultralcd.cpp:2460 +msgid ">Cancel" +msgstr ">Zrusit" + +# MSG_BABYSTEPPING_Z c=15 +#: ultralcd.cpp:3184 +msgid "Adjusting Z:" +msgstr "Doladeni Z:" + +# MSG_SELFTEST_CHECK_ALLCORRECT c=20 +#: ultralcd.cpp:8677 +msgid "All correct " +msgstr "Vse OK " + +# MSG_WIZARD_DONE c=20 r=8 +#: messages.c:99 +msgid "All is done. Happy printing!" +msgstr "Vse je hotovo." + +# +#: ultralcd.cpp:1956 +msgid "Ambient" +msgstr "Okoli" + +# MSG_AUTO c=6 +#: messages.c:140 +msgid "Auto" +msgstr "" + +# MSG_PRESS c=20 r=2 +#: ultralcd.cpp:2609 +msgid "and press the knob" +msgstr "a stisknete tlacitko" + +# MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2 +#: ultralcd.cpp:3506 +msgid "Are left and right Z~carriages all up?" +msgstr "Dojely oba Z voziky k~hornimu dorazu?" + +# MSG_AUTO_DEPLETE c=17 r=1 +#: messages.c:108 +msgid "SpoolJoin" +msgstr "" + +# MSG_AUTO_HOME +#: messages.c:11 +msgid "Auto home" +msgstr "" + +# MSG_AUTOLOAD_FILAMENT c=18 +#: ultralcd.cpp:6961 +msgid "AutoLoad filament" +msgstr "AutoZavedeni fil." + +# MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4 +#: ultralcd.cpp:4445 +msgid "Autoloading filament available only when filament sensor is turned on..." +msgstr "Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..." + +# MSG_AUTOLOADING_ENABLED c=20 r=4 +#: ultralcd.cpp:2804 +msgid "Autoloading filament is active, just press the knob and insert filament..." +msgstr "Automaticke zavadeni filamentu aktivni, stisknete tlacitko a vlozte filament..." + +# MSG_SELFTEST_AXIS_LENGTH +#: ultralcd.cpp:8325 +msgid "Axis length" +msgstr "Delka osy" + +# MSG_SELFTEST_AXIS +#: ultralcd.cpp:8327 +msgid "Axis" +msgstr "Osa" + +# MSG_SELFTEST_BEDHEATER +#: ultralcd.cpp:8269 +msgid "Bed / Heater" +msgstr "Podlozka / Topeni" + +# MSG_BED_DONE +#: messages.c:15 +msgid "Bed done" +msgstr "Bed OK." + +# MSG_BED_HEATING +#: messages.c:16 +msgid "Bed Heating" +msgstr "Zahrivani bedu" + +# MSG_BED_CORRECTION_MENU +#: ultralcd.cpp:5861 +msgid "Bed level correct" +msgstr "Korekce podlozky" + +# MSG_BELTTEST c=17 +#: ultralcd.cpp:5841 +msgid "Belt test " +msgstr "Test remenu " + +# MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=5 +#: messages.c:17 +msgid "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset." +msgstr "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset." + +# MSG_BRIGHT c=6 +#: messages.c:138 +msgid "Bright" +msgstr "Jasny" + +# MSG_BRIGHTNESS c=18 +#: messages.c:134 +msgid "Brightness" +msgstr "Podsviceni" + +# MSG_BED +#: messages.c:14 +msgid "Bed" +msgstr "Podlozka" + +# MSG_MENU_BELT_STATUS c=18 +#: ultralcd.cpp:2009 +msgid "Belt status" +msgstr "Stav remenu" + +# MSG_RECOVER_PRINT c=20 r=2 +#: messages.c:67 +msgid "Blackout occurred. Recover print?" +msgstr "Detekovan vypadek proudu.Obnovit tisk?" + +# +#: ultralcd.cpp:8679 +msgid "Calibrating home" +msgstr "Kalibruji vychozi poz." + +# MSG_CALIBRATE_BED +#: ultralcd.cpp:5850 +msgid "Calibrate XYZ" +msgstr "Kalibrace XYZ" + +# MSG_HOMEYZ +#: messages.c:44 +msgid "Calibrate Z" +msgstr "Kalibrovat Z" + +# MSG_CALIBRATE_PINDA c=17 r=1 +#: ultralcd.cpp:4637 +msgid "Calibrate" +msgstr "Zkalibrovat" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8 +#: ultralcd.cpp:3469 +msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." +msgstr "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem." + +# MSG_CALIBRATE_Z_AUTO c=20 r=2 +#: messages.c:19 +msgid "Calibrating Z" +msgstr "Kalibruji Z" + +# MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8 +#: ultralcd.cpp:3469 +msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done." +msgstr "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem." + +# MSG_HOMEYZ_DONE +#: ultralcd.cpp:865 +msgid "Calibration done" +msgstr "Kalibrace OK" + +# MSG_MENU_CALIBRATION +#: messages.c:57 +msgid "Calibration" +msgstr "Kalibrace" + +# +#: ultralcd.cpp:4815 +msgid "Cancel" +msgstr "Zrusit" + +# MSG_SD_REMOVED +#: ultralcd.cpp:9090 +msgid "Card removed" +msgstr "Karta vyjmuta" + +# MSG_NOT_COLOR +#: ultralcd.cpp:2709 +msgid "Color not correct" +msgstr "Barva neni cista" + +# MSG_COOLDOWN +#: messages.c:22 +msgid "Cooldown" +msgstr "Zchladit" + +# +#: ultralcd.cpp:4570 +msgid "Copy selected language?" +msgstr "Kopirovat vybrany jazyk?" + +# MSG_CRASHDETECT c=13 +#: messages.c:24 +msgid "Crash det." +msgstr "" + +# +#: ultralcd.cpp:4950 +msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu." +msgstr "Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu" + +# MSG_CRASH_DETECTED c=20 r=1 +#: messages.c:23 +msgid "Crash detected." +msgstr "Detekovan naraz." + +# +#: Marlin_main.cpp:607 +msgid "Crash detected. Resume print?" +msgstr "Detekovan naraz. Obnovit tisk?" + +# +#: ultralcd.cpp:1785 +msgid "Crash" +msgstr "Naraz" + +# MSG_CURRENT c=19 r=1 +#: ultralcd.cpp:6002 +msgid "Current" +msgstr "Pouze aktualni" + +# MSG_DATE c=17 r=1 +#: ultralcd.cpp:2163 +msgid "Date:" +msgstr "Datum:" + +# MSG_DISABLE_STEPPERS +#: ultralcd.cpp:5743 +msgid "Disable steppers" +msgstr "Vypnout motory" + +# MSG_BABYSTEP_Z_NOT_SET c=20 r=12 +#: messages.c:13 +msgid "Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration." +msgstr "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy." + +# MSG_FS_CONTINUE c=5 +#: messages.c:132 +msgid "Cont." +msgstr "Pokr." + +# MSG_WIZARD_REPEAT_V2_CAL c=20 r=7 +#: ultralcd.cpp:5125 +msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?" +msgstr "Chcete opakovat posledni krok a pozmenit vzdalenost mezi tryskou a podlozkou?" + +# MSG_EXTRUDER_CORRECTION c=13 +#: ultralcd.cpp:5194 +msgid "E-correct:" +msgstr "Korekce E:" + +# MSG_EJECT_FILAMENT c=17 r=1 +#: messages.c:49 +msgid "Eject filament" +msgstr "Vysunout filament" + +# MSG_EJECTING_FILAMENT c=20 r=1 +#: mmu.cpp:1416 +msgid "Ejecting filament" +msgstr "Vysouvam filament" + +# MSG_SELFTEST_ENDSTOP_NOTHIT c=20 +#: ultralcd.cpp:8293 +msgid "Endstop not hit" +msgstr "Kon. spinac nesepnut" + +# MSG_SELFTEST_ENDSTOP +#: ultralcd.cpp:8287 +msgid "Endstop" +msgstr "Koncovy spinac" + +# MSG_SELFTEST_ENDSTOPS +#: ultralcd.cpp:8275 +msgid "Endstops" +msgstr "Konc. spinace" + +# MSG_STACK_ERROR c=20 r=4 +#: ultralcd.cpp:6998 +msgid "Error - static memory has been overwritten" +msgstr "Chyba - Doslo k prepisu staticke pameti!" + +# MSG_CUT_FILAMENT c=16 +#: messages.c:50 +msgid "Cut filament" +msgstr "Ustrihnout" + +# MSG_CUTTER c=9 +#: messages.c:109 +msgid "Cutter" +msgstr "Strihani" + +# c=18 +#: mmu.cpp:1388 +msgid "Cutting filament" +msgstr "Strihani filamentu" + +# MSG_FSENS_NOT_RESPONDING c=20 r=4 +#: ultralcd.cpp:4458 +msgid "ERROR: Filament sensor is not responding, please check connection." +msgstr "CHYBA: Filament senzor nereaguje, zkontrolujte prosim zapojeni." + +# MSG_DIM c=6 +#: messages.c:139 +msgid "Dim" +msgstr "Temny" + +# MSG_ERROR +#: messages.c:25 +msgid "ERROR:" +msgstr "CHYBA:" + +# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18 +#: ultralcd.cpp:8686 +msgid "Extruder fan:" +msgstr "Levy vent.:" + +# MSG_INFO_EXTRUDER c=18 +#: ultralcd.cpp:2211 +msgid "Extruder info" +msgstr "" + +# MSG_MOVE_E +#: messages.c:26 +msgid "Extruder" +msgstr "" + +# +#: ultralcd.cpp:6985 +msgid "Fail stats MMU" +msgstr "Selhani MMU" + +# MSG_FSENSOR_AUTOLOAD c=13 +#: messages.c:40 +msgid "F. autoload" +msgstr "F. autozav." + +# +#: ultralcd.cpp:6982 +msgid "Fail stats" +msgstr "Selhani" + +# MSG_FAN_SPEED c=14 +#: messages.c:28 +msgid "Fan speed" +msgstr "Rychlost vent." + +# MSG_SELFTEST_FAN c=20 +#: messages.c:74 +msgid "Fan test" +msgstr "Test ventilatoru" + +# MSG_FANS_CHECK +#: ultralcd.cpp:5751 +msgid "Fans check" +msgstr "Kontr. vent." + +# MSG_FSENSOR +#: messages.c:41 +msgid "Fil. sensor" +msgstr "Fil. senzor" + +# c=14 +#: ultralcd.cpp:1784 +msgid "Filam. runouts" +msgstr "Vypadky filam." + +# MSG_FILAMENT_CLEAN c=20 r=2 +#: messages.c:29 +msgid "Filament extruding & with correct color?" +msgstr "Filament vytlacen a spravne barvy?" + +# MSG_NOT_LOADED c=19 +#: ultralcd.cpp:2705 +msgid "Filament not loaded" +msgstr "Filament nezaveden" + +# MSG_FILAMENT_SENSOR c=20 +#: messages.c:80 +msgid "Filament sensor" +msgstr "Senzor filamentu" + +# MSG_FILAMENT_USED c=19 +#: ultralcd.cpp:2869 +msgid "Filament used" +msgstr "Spotrebovano filam." + +# MSG_PRINT_TIME c=19 r=1 +#: ultralcd.cpp:2870 +msgid "Print time" +msgstr "Cas tisku" + +# MSG_FS_ACTION c=10 +#: messages.c:131 +msgid "FS Action" +msgstr "FS reakce" + +# c=18 +#: Marlin_main.cpp:9512 +msgid "FS v0.4 or newer" +msgstr "FS v0.4 a novejsi" + +# MSG_FILE_INCOMPLETE c=20 r=3 +#: ultralcd.cpp:8814 +msgid "File incomplete. Continue anyway?" +msgstr "Soubor nekompletni. Pokracovat?" + +# MSG_FINISHING_MOVEMENTS c=20 +#: messages.c:37 +msgid "Finishing movements" +msgstr "Dokoncovani pohybu" + +# MSG_V2_CALIBRATION c=18 +#: messages.c:103 +msgid "First layer cal." +msgstr "Kal. prvni vrstvy" + +# MSG_WIZARD_SELFTEST c=20 r=8 +#: ultralcd.cpp:5046 +msgid "First, I will run the selftest to check most common assembly problems." +msgstr "Nejdriv pomoci selftestu zkontoluji nejcastejsi chyby vznikajici pri sestaveni tiskarny." + +# +#: mmu.cpp:727 +msgid "Fix the issue and then press button on MMU unit." +msgstr "Opravte chybu a pote stisknete tlacitko na jednotce MMU." + +# MSG_FLOW +#: ultralcd.cpp:7125 +msgid "Flow" +msgstr "Prutok" + +# MSG_PRUSA3D_FORUM +#: ultralcd.cpp:2156 +msgid "forum.prusa3d.com" +msgstr "" + +# MSG_SELFTEST_COOLING_FAN c=20 +#: messages.c:71 +msgid "Front print fan?" +msgstr "Predni tiskovy vent?" + +# MSG_BED_CORRECTION_FRONT c=14 r=1 +#: ultralcd.cpp:3266 +msgid "Front side[um]" +msgstr "Vpredu [um]" + +# MSG_SELFTEST_FANS +#: ultralcd.cpp:8333 +msgid "Front/left fans" +msgstr "Predni/levy vent." + +# MSG_SELFTEST_HEATERTHERMISTOR +#: ultralcd.cpp:8263 +msgid "Heater/Thermistor" +msgstr "Topeni/Termistor" + +# MSG_BED_HEATING_SAFETY_DISABLED +#: Marlin_main.cpp:9440 +msgid "Heating disabled by safety timer." +msgstr "Zahrivani preruseno bezpecnostnim casovacem." + +# MSG_HEATING_COMPLETE c=20 +#: messages.c:43 +msgid "Heating done." +msgstr "Zahrivani OK." + +# MSG_HEATING +#: messages.c:42 +msgid "Heating" +msgstr "Zahrivani" + +# MSG_WIZARD_WELCOME c=20 r=7 +#: ultralcd.cpp:5025 +msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?" +msgstr "Dobry den, jsem vase tiskarna Original Prusa i3. Chcete abych Vas provedla kalibracnim procesem?" + +# MSG_PRUSA3D_HOWTO +#: ultralcd.cpp:2157 +msgid "howto.prusa3d.com" +msgstr "" + +# MSG_FILAMENTCHANGE +#: messages.c:34 +msgid "Change filament" +msgstr "Vymenit filament" + +# MSG_CHANGE_SUCCESS +#: ultralcd.cpp:2620 +msgid "Change success!" +msgstr "Zmena uspesna!" + +# MSG_CORRECTLY c=20 +#: ultralcd.cpp:2697 +msgid "Changed correctly?" +msgstr "Vymena ok?" + +# MSG_SELFTEST_CHECK_BED c=20 +#: messages.c:77 +msgid "Checking bed " +msgstr "Kontrola podlozky" + +# MSG_SELFTEST_CHECK_ENDSTOPS c=20 +#: ultralcd.cpp:8668 +msgid "Checking endstops" +msgstr "Kontrola endstopu" + +# MSG_SELFTEST_CHECK_HOTEND c=20 +#: ultralcd.cpp:8674 +msgid "Checking hotend " +msgstr "Kontrola hotend " + +# MSG_SELFTEST_CHECK_FSENSOR c=20 +#: messages.c:78 +msgid "Checking sensors " +msgstr "Kontrola senzoru" + +# MSG_SELFTEST_CHECK_X c=20 +#: ultralcd.cpp:7482 +msgid "Checking X axis " +msgstr "Kontrola osy X" + +# MSG_SELFTEST_CHECK_Y c=20 +#: ultralcd.cpp:7491 +msgid "Checking Y axis " +msgstr "Kontrola osy Y" + +# MSG_SELFTEST_CHECK_Z c=20 +#: ultralcd.cpp:8671 +msgid "Checking Z axis " +msgstr "Kontrola osy Z" + +# MSG_CHOOSE_EXTRUDER c=20 r=1 +#: messages.c:45 +msgid "Choose extruder:" +msgstr "Vyberte extruder:" + +# MSG_CHOOSE_FILAMENT c=20 r=1 +#: messages.c:46 +msgid "Choose filament:" +msgstr "Vyber filament:" + +# MSG_FILAMENT c=17 r=1 +#: messages.c:27 +msgid "Filament" +msgstr "" + +# MSG_WIZARD_XYZ_CAL c=20 r=8 +#: ultralcd.cpp:5055 +msgid "I will run xyz calibration now. It will take approx. 12 mins." +msgstr "Nyni provedu xyz kalibraci. Zabere to priblizne 12 min." + +# MSG_WIZARD_Z_CAL c=20 r=8 +#: ultralcd.cpp:5063 +msgid "I will run z calibration now." +msgstr "Nyni provedu z kalibraci." + +# MSG_WATCH +#: messages.c:97 +msgid "Info screen" +msgstr "Informace" + +# MSG_INSERT_FILAMENT c=20 +#: ultralcd.cpp:2605 +msgid "Insert filament" +msgstr "Vlozte filament" + +# MSG_WIZARD_FILAMENT_LOADED c=20 r=2 +#: ultralcd.cpp:4835 +msgid "Is filament loaded?" +msgstr "Je filament zaveden?" + +# MSG_STEEL_SHEET_CHECK c=20 r=2 +#: messages.c:90 +msgid "Is steel sheet on heatbed?" +msgstr "Je tiskovy plat na podlozce?" + +# +#: ultralcd.cpp:1727 +msgid "Last print failures" +msgstr "Selhani posl. tisku" + +# +#: ultralcd.cpp:5133 +msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." +msgstr "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy" + +# +#: ultralcd.cpp:1704 +msgid "Last print" +msgstr "Posledni tisk" + +# MSG_SELFTEST_EXTRUDER_FAN c=20 +#: messages.c:72 +msgid "Left hotend fan?" +msgstr "Levy vent na trysce?" + +# +#: ultralcd.cpp:2993 +msgid "Left" +msgstr "Vlevo" + +# MSG_BED_CORRECTION_LEFT c=14 r=1 +#: ultralcd.cpp:3264 +msgid "Left side [um]" +msgstr "Vlevo [um]" + +# +#: ultralcd.cpp:5766 +msgid "Lin. correction" +msgstr "Korekce lin." + +# MSG_BABYSTEP_Z +#: messages.c:12 +msgid "Live adjust Z" +msgstr "Doladeni osy Z" + +# c=20 r=6 +#: ultralcd.cpp:7527 +msgid "Insert the filament (do not load it) into the extruder and then press the knob." +msgstr "Vlozte filament (nezavadejte) do extruderu a stisknete tlacitko" + +# MSG_LOAD_FILAMENT c=17 +#: messages.c:47 +msgid "Load filament" +msgstr "Zavest filament" + +# MSG_LOADING_COLOR +#: ultralcd.cpp:2645 +msgid "Loading color" +msgstr "Cisteni barvy" + +# MSG_LOADING_FILAMENT c=20 +#: messages.c:48 +msgid "Loading filament" +msgstr "Zavadeni filamentu" + +# MSG_LOOSE_PULLEY c=20 r=1 +#: ultralcd.cpp:8317 +msgid "Loose pulley" +msgstr "Uvolnena remenicka" + +# +#: ultralcd.cpp:6944 +msgid "Load to nozzle" +msgstr "Zavest do trysky" + +# MSG_M117_V2_CALIBRATION c=25 +#: messages.c:51 +msgid "M117 First layer cal." +msgstr "M117 Kal. prvni vrstvy" + +# MSG_MAIN +#: messages.c:52 +msgid "Main" +msgstr "Hlavni nabidka" + +# MSG_BL_HIGH c=12 +#: messages.c:135 +msgid "Level Bright" +msgstr "" + +# MSG_BL_LOW c=12 +#: messages.c:136 +msgid "Level Dimmed" +msgstr "" + +# MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60 +#: messages.c:55 +msgid "Measuring reference height of calibration point" +msgstr "Merim referencni vysku kalibracniho bodu" + +# MSG_MESH_BED_LEVELING +#: ultralcd.cpp:5856 +msgid "Mesh Bed Leveling" +msgstr "" + +# MSG_MMU_OK_RESUMING_POSITION c=20 r=4 +#: mmu.cpp:765 +msgid "MMU OK. Resuming position..." +msgstr "MMU OK. Pokracuji v tisku..." + +# MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4 +#: mmu.cpp:758 +msgid "MMU OK. Resuming temperature..." +msgstr "MMU OK. Pokracuji v nahrivani..." + +# +#: ultralcd.cpp:3034 +msgid "Measured skew" +msgstr "Merene zkoseni" + +# +#: ultralcd.cpp:1728 +msgid "MMU fails" +msgstr "Selhani MMU" + +# +#: mmu.cpp:1588 +msgid "MMU load failed " +msgstr "Zavedeni MMU selhalo" + +# +#: ultralcd.cpp:1729 +msgid "MMU load fails" +msgstr "MMU selhani zavadeni" + +# MSG_MMU_OK_RESUMING c=20 r=4 +#: mmu.cpp:776 +msgid "MMU OK. Resuming..." +msgstr "MMU OK. Pokracuji..." + +# MSG_MODE +#: messages.c:84 +msgid "Mode" +msgstr "Mod" + +# c=20 r=3 +#: Marlin_main.cpp:879 +msgid "MK3 firmware detected on MK3S printer" +msgstr "" + +# MSG_NORMAL +#: messages.c:88 +msgid "Normal" +msgstr "" + +# MSG_SILENT +#: messages.c:87 +msgid "Silent" +msgstr "Tichy" + +# +#: mmu.cpp:722 +msgid "MMU needs user attention." +msgstr "MMU potrebuje zasah uzivatele." + +# +#: ultralcd.cpp:1755 +msgid "MMU power fails" +msgstr "MMU vypadky proudu" + +# MSG_STEALTH +#: messages.c:89 +msgid "Stealth" +msgstr "Tichy" + +# MSG_AUTO_POWER +#: messages.c:86 +msgid "Auto power" +msgstr "Automaticky" + +# MSG_HIGH_POWER +#: messages.c:85 +msgid "High power" +msgstr "Vys. vykon" + +# +#: ultralcd.cpp:2186 +msgid "MMU2 connected" +msgstr "MMU2 pripojeno" + +# MSG_SELFTEST_MOTOR +#: messages.c:79 +msgid "Motor" +msgstr "" + +# MSG_MOVE_AXIS +#: ultralcd.cpp:5741 +msgid "Move axis" +msgstr "Posunout osu" + +# MSG_MOVE_X +#: ultralcd.cpp:4361 +msgid "Move X" +msgstr "Posunout X" + +# MSG_MOVE_Y +#: ultralcd.cpp:4362 +msgid "Move Y" +msgstr "Posunout Y" + +# MSG_MOVE_Z +#: ultralcd.cpp:4363 +msgid "Move Z" +msgstr "Posunout Z" + +# MSG_NO_MOVE +#: Marlin_main.cpp:5541 +msgid "No move." +msgstr "Bez pohybu." + +# MSG_NO_CARD +#: ultralcd.cpp:6911 +msgid "No SD card" +msgstr "Zadna SD karta" + +# MSG_NA +#: messages.c:107 +msgid "N/A" +msgstr "" + +# MSG_NO +#: messages.c:58 +msgid "No" +msgstr "Ne" + +# MSG_SELFTEST_NOTCONNECTED +#: ultralcd.cpp:8265 +msgid "Not connected" +msgstr "Nezapojeno " + +# +#: util.cpp:293 +msgid "New firmware version available:" +msgstr "Vysla nova verze firmware:" + +# MSG_SELFTEST_FAN_NO c=19 +#: messages.c:75 +msgid "Not spinning" +msgstr "Netoci se" + +# MSG_WIZARD_V2_CAL c=20 r=8 +#: ultralcd.cpp:4946 +msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface." +msgstr "Nyni zkalibruji vzdalenost mezi koncem trysky a povrchem podlozky." + +# MSG_WIZARD_WILL_PREHEAT c=20 r=4 +#: ultralcd.cpp:5071 +msgid "Now I will preheat nozzle for PLA." +msgstr "Nyni predehreji trysku pro PLA." + +# MSG_NOZZLE +#: messages.c:59 +msgid "Nozzle" +msgstr "Tryska" + +# MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 +#: Marlin_main.cpp:1518 +msgid "Old settings found. Default PID, Esteps etc. will be set." +msgstr "Neplatne hodnoty nastaveni. Bude pouzito vychozi PID, Esteps atd." + +# +#: ultralcd.cpp:5062 +msgid "Now remove the test print from steel sheet." +msgstr "Nyni odstrante testovaci vytisk z tiskoveho platu." + +# +#: ultralcd.cpp:1654 +msgid "Nozzle FAN" +msgstr "Vent. trysky" + +# MSG_PAUSE_PRINT +#: ultralcd.cpp:6875 +msgid "Pause print" +msgstr "Pozastavit tisk" + +# MSG_PID_RUNNING c=20 r=1 +#: ultralcd.cpp:1539 +msgid "PID cal. " +msgstr "PID kal. " + +# MSG_PID_FINISHED c=20 r=1 +#: ultralcd.cpp:1545 +msgid "PID cal. finished" +msgstr "PID kal. ukoncena" + +# MSG_PID_EXTRUDER c=17 r=1 +#: ultralcd.cpp:5862 +msgid "PID calibration" +msgstr "PID kalibrace" + +# MSG_PINDA_PREHEAT c=20 r=1 +#: ultralcd.cpp:896 +msgid "PINDA Heating" +msgstr "Nahrivani PINDA" + +# MSG_PAPER c=20 r=10 +#: messages.c:60 +msgid "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately." +msgstr "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, okamzite vypnete tiskarnu." + +# MSG_WIZARD_CLEAN_HEATBED c=20 r=8 +#: ultralcd.cpp:5128 +msgid "Please clean heatbed and then press the knob." +msgstr "Prosim ocistete podlozku a stisknete tlacitko." + +# MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8 +#: messages.c:21 +msgid "Please clean the nozzle for calibration. Click when done." +msgstr "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem." + +# MSG_SELFTEST_PLEASECHECK +#: ultralcd.cpp:8257 +msgid "Please check :" +msgstr "Zkontrolujte :" + +# MSG_WIZARD_CALIBRATION_FAILED c=20 r=8 +#: messages.c:98 +msgid "Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer." +msgstr "Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny." + +# MSG_CHECK_IDLER c=20 r=4 +#: Marlin_main.cpp:3138 +msgid "Please open idler and remove filament manually." +msgstr "Prosim otevrete idler a manualne odstrante filament." + +# MSG_PLACE_STEEL_SHEET c=20 r=4 +#: messages.c:61 +msgid "Please place steel sheet on heatbed." +msgstr "Umistete prosim tiskovy plat na podlozku" + +# MSG_PRESS_TO_UNLOAD c=20 r=4 +#: messages.c:64 +msgid "Please press the knob to unload filament" +msgstr "Pro vysunuti filamentu stisknete prosim tlacitko" + +# MSG_PULL_OUT_FILAMENT c=20 r=4 +#: messages.c:66 +msgid "Please pull out filament immediately" +msgstr "Prosim vyjmete urychlene filament" + +# MSG_EJECT_REMOVE c=20 r=4 +#: mmu.cpp:1422 +msgid "Please remove filament and then press the knob." +msgstr "Prosim vyjmete filament a pote stisknete tlacitko." + +# MSG_REMOVE_STEEL_SHEET c=20 r=4 +#: messages.c:70 +msgid "Please remove steel sheet from heatbed." +msgstr "Odstrante prosim tiskovy plat z podlozky." + +# MSG_RUN_XYZ c=20 r=4 +#: Marlin_main.cpp:4583 +msgid "Please run XYZ calibration first." +msgstr "Nejprve spustte kalibraci XYZ." + +# MSG_UPDATE_MMU2_FW c=20 r=4 +#: mmu.cpp:1341 +msgid "Please update firmware in your MMU2. Waiting for reset." +msgstr "Prosim aktualizujte firmware ve vasi MMU2 jednotce. Cekam na reset." + +# MSG_PLEASE_WAIT c=20 +#: messages.c:62 +msgid "Please wait" +msgstr "Prosim cekejte" + +# +#: ultralcd.cpp:5061 +msgid "Please remove shipping helpers first." +msgstr "Nejprve prosim sundejte transportni soucastky." + +# MSG_PREHEAT_NOZZLE c=20 +#: messages.c:63 +msgid "Preheat the nozzle!" +msgstr "Predehrejte trysku!" + +# MSG_PREHEAT +#: ultralcd.cpp:6853 +msgid "Preheat" +msgstr "Predehrev" + +# MSG_WIZARD_HEATING c=20 r=3 +#: messages.c:100 +msgid "Preheating nozzle. Please wait." +msgstr "Predehrev trysky. Prosim cekejte." + +# c=14 +#: ultralcd.cpp:1959 +msgid "PINDA" +msgstr "" + +# +#: util.cpp:297 +msgid "Please upgrade." +msgstr "Prosim aktualizujte." + +# MSG_PRESS_TO_PREHEAT c=20 r=4 +#: Marlin_main.cpp:11526 +msgid "Press knob to preheat nozzle and continue." +msgstr "Pro nahrati trysky a pokracovani stisknete tlacitko." + +# MSG_FS_PAUSE c=5 +#: fsensor.cpp:710 +msgid "Pause" +msgstr "" + +# +#: ultralcd.cpp:1783 +msgid "Power failures" +msgstr "Vypadky proudu" + +# MSG_PRINT_ABORTED c=20 +#: messages.c:65 +msgid "Print aborted" +msgstr "Tisk prerusen" + +# c=20 +#: ultralcd.cpp:2442 +msgid "Preheating to load" +msgstr "Predehrev k zavedeni" + +# c=20 +#: ultralcd.cpp:2446 +msgid "Preheating to unload" +msgstr "Predehrev k vyjmuti" + +# MSG_SELFTEST_PRINT_FAN_SPEED c=18 +#: ultralcd.cpp:8689 +msgid "Print fan:" +msgstr "Tiskovy vent.:" + +# MSG_CARD_MENU +#: messages.c:20 +msgid "Print from SD" +msgstr "Tisk z SD" + +# +#: ultralcd.cpp:2289 +msgid "Press the knob" +msgstr "Stisknete hl. tlacitko" + +# MSG_PRINT_PAUSED c=20 r=1 +#: ultralcd.cpp:1118 +msgid "Print paused" +msgstr "Tisk pozastaven" + +# +#: mmu.cpp:726 +msgid "Press the knob to resume nozzle temperature." +msgstr "Pro pokracovani nahrivani trysky stisknete tlacitko." + +# MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8 +#: messages.c:38 +msgid "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace." + +# +#: ultralcd.cpp:1655 +msgid "Print FAN" +msgstr "Tiskovy vent." + +# +#: ultralcd.cpp:4926 +msgid "Please insert filament into the extruder, then press the knob to load it." +msgstr "Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni" + +# +#: ultralcd.cpp:4921 +msgid "Please insert filament into the first tube of the MMU, then press the knob to load it." +msgstr "Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni" + +# +#: ultralcd.cpp:4843 +msgid "Please load filament first." +msgstr "Prosim nejdriv zavedte filament" + +# MSG_PRUSA3D +#: ultralcd.cpp:2155 +msgid "prusa3d.com" +msgstr "" + +# MSG_BED_CORRECTION_REAR c=14 r=1 +#: ultralcd.cpp:3267 +msgid "Rear side [um]" +msgstr "Vzadu [um]" + +# c=20 r=4 +#: ultralcd.cpp:7549 +msgid "Please unload the filament first, then repeat this action." +msgstr "Prosim vyjmete filament a zopakujte tuto akci" + +# MSG_RECOVERING_PRINT c=20 +#: Marlin_main.cpp:10883 +msgid "Recovering print " +msgstr "Obnovovani tisku " + +# MSG_REMOVE_OLD_FILAMENT c=20 r=5 +#: mmu.cpp:833 +msgid "Remove old filament and press the knob to start loading new filament." +msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." + +# c=20 +#: +msgid "Prusa i3 MK3S OK." +msgstr "" + +# MSG_CALIBRATE_BED_RESET +#: ultralcd.cpp:5867 +msgid "Reset XYZ calibr." +msgstr "Reset XYZ kalibr." + +# MSG_BED_CORRECTION_RESET +#: ultralcd.cpp:3268 +msgid "Reset" +msgstr "" + +# MSG_RESUME_PRINT +#: ultralcd.cpp:6861 +msgid "Resume print" +msgstr "Pokracovat" + +# MSG_RESUMING_PRINT c=20 +#: messages.c:69 +msgid "Resuming print" +msgstr "Obnoveni tisku" + +# MSG_BED_CORRECTION_RIGHT c=14 r=1 +#: ultralcd.cpp:3265 +msgid "Right side[um]" +msgstr "Vpravo [um]" + +# MSG_RPI_PORT +#: messages.c:123 +msgid "RPi port" +msgstr "" + +# MSG_WIZARD_RERUN c=20 r=7 +#: ultralcd.cpp:4864 +msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?" +msgstr "Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?" + +# MSG_SD_CARD +#: messages.c:118 +msgid "SD card" +msgstr "" + +# MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY +#: messages.c:119 +msgid "FlashAir" +msgstr "" + +# +#: ultralcd.cpp:2994 +msgid "Right" +msgstr "Vpravo" + +# MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 c=60 +#: messages.c:35 +msgid "Searching bed calibration point" +msgstr "Hledam kalibracni bod podlozky" + +# MSG_LANGUAGE_SELECT +#: ultralcd.cpp:5779 +msgid "Select language" +msgstr "Vyber jazyka" + +# MSG_SELFTEST_OK +#: ultralcd.cpp:7812 +msgid "Self test OK" +msgstr "" + +# MSG_SELFTEST_START c=20 +#: ultralcd.cpp:7582 +msgid "Self test start " +msgstr "Self test start " + +# MSG_SELFTEST +#: ultralcd.cpp:5843 +msgid "Selftest " +msgstr "Selftest " + +# MSG_SELFTEST_ERROR +#: ultralcd.cpp:8255 +msgid "Selftest error !" +msgstr "Chyba Selftestu!" + +# MSG_SELFTEST_FAILED c=20 +#: messages.c:73 +msgid "Selftest failed " +msgstr "Selftest selhal " + +# MSG_FORCE_SELFTEST c=20 r=8 +#: Marlin_main.cpp:1550 +msgid "Selftest will be run to calibrate accurate sensorless rehoming." +msgstr "Pro kalibraci presneho rehomovani bude nyni spusten selftest." + +# +#: ultralcd.cpp:5102 +msgid "Select nozzle preheat temperature which matches your material." +msgstr "Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu." + +# MSG_SET_TEMPERATURE c=19 r=1 +#: ultralcd.cpp:3286 +msgid "Set temperature:" +msgstr "Nastavte teplotu:" + +# c=20 +#: +msgid "Prusa i3 MK2.5 OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK2.5S OK." +msgstr "" + +# c=20 +#: +msgid "Prusa i3 MK3 OK." +msgstr "" + +# MSG_SETTINGS +#: messages.c:82 +msgid "Settings" +msgstr "Nastaveni" + +# MSG_SHOW_END_STOPS c=18 +#: ultralcd.cpp:5864 +msgid "Show end stops" +msgstr "Stav konc. spin." + +# +#: ultralcd.cpp:4008 +msgid "Sensor state" +msgstr "Stav senzoru" + +# MSG_FILE_CNT c=20 r=6 +#: cardreader.cpp:738 +msgid "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." +msgstr "Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100." + +# MSG_SORT +#: messages.c:120 +msgid "Sort" +msgstr "Trideni" + +# MSG_NONE +#: messages.c:110 +msgid "None" +msgstr "Zadne" + +# MSG_SORT_TIME +#: messages.c:121 +msgid "Time" +msgstr "Cas" + +# +#: ultralcd.cpp:3037 +msgid "Severe skew:" +msgstr "Tezke zkoseni:" + +# MSG_SORT_ALPHA +#: messages.c:122 +msgid "Alphabet" +msgstr "Abeceda" + +# MSG_SORTING c=20 r=1 +#: cardreader.cpp:745 +msgid "Sorting files" +msgstr "Trideni souboru" + +# MSG_SOUND_LOUD +#: messages.c:125 +msgid "Loud" +msgstr "Hlasity" + +# +#: ultralcd.cpp:3036 +msgid "Slight skew:" +msgstr "Lehke zkoseni:" + +# MSG_SOUND +#: messages.c:124 +msgid "Sound" +msgstr "Zvuk" + +# c=7 +#: ultralcd.cpp:1822 +msgid "Runouts" +msgstr "" + +# +#: Marlin_main.cpp:5101 +msgid "Some problem encountered, Z-leveling enforced ..." +msgstr "Vyskytl se problem, srovnavam osu Z ..." + +# MSG_SOUND_ONCE +#: messages.c:126 +msgid "Once" +msgstr "Jednou" + +# MSG_SPEED +#: ultralcd.cpp:7119 +msgid "Speed" +msgstr "Rychlost" + +# MSG_SELFTEST_FAN_YES c=19 +#: messages.c:76 +msgid "Spinning" +msgstr "Toci se" + +# MSG_TEMP_CAL_WARNING c=20 r=4 +#: Marlin_main.cpp:4596 +msgid "Stable ambient temperature 21-26C is needed a rigid stand is required." +msgstr "Je vyzadovana stabilni pokojova teplota 21-26C a pevna podlozka." + +# MSG_STATISTICS +#: ultralcd.cpp:6978 +msgid "Statistics " +msgstr "Statistika " + +# MSG_STOP_PRINT +#: messages.c:91 +msgid "Stop print" +msgstr "Zastavit tisk" + +# MSG_STOPPED +#: messages.c:92 +msgid "STOPPED. " +msgstr "ZASTAVENO." + +# MSG_SUPPORT +#: ultralcd.cpp:6987 +msgid "Support" +msgstr "Podpora" + +# MSG_SELFTEST_SWAPPED +#: ultralcd.cpp:8335 +msgid "Swapped" +msgstr "Prohozene" + +# +#: ultralcd.cpp:4814 +msgid "Select filament:" +msgstr "Zvolte filament:" + +# MSG_TEMP_CALIBRATION c=14 +#: messages.c:93 +msgid "Temp. cal." +msgstr "Tepl. kal." + +# +#: ultralcd.cpp:4955 +msgid "Select temperature which matches your material." +msgstr "Zvolte teplotu, ktera odpovida vasemu materialu." + +# MSG_CALIBRATION_PINDA_MENU c=17 r=1 +#: ultralcd.cpp:5873 +msgid "Temp. calibration" +msgstr "Teplot. kalibrace" + +# MSG_TEMP_CAL_FAILED c=20 r=8 +#: ultralcd.cpp:3933 +msgid "Temperature calibration failed" +msgstr "Teplotni kalibrace selhala" + +# MSG_TEMP_CALIBRATION_DONE c=20 r=12 +#: messages.c:94 +msgid "Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal." +msgstr "Teplotni kalibrace dokoncena a je nyni aktivni. Teplotni kalibraci je mozno deaktivovat v menu Nastaveni->Tepl. kal." + +# c=20 r=3 +#: ultralcd.cpp:7554 +msgid "Sensor verified, remove the filament now." +msgstr "Senzor overen, vyjmete filament." + +# MSG_TEMPERATURE +#: ultralcd.cpp:5739 +msgid "Temperature" +msgstr "Teplota" + +# MSG_MENU_TEMPERATURES c=15 r=1 +#: ultralcd.cpp:2218 +msgid "Temperatures" +msgstr "Teploty" + +# MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9 +#: messages.c:39 +msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow." +msgstr "Je potreba kalibrovat osu Z. Prosim postupujte dle prirucky, kapitola Zaciname, sekce Postup kalibrace." + +# +#: ultralcd.cpp:2891 +msgid "Total filament" +msgstr "Filament celkem" + +# +#: ultralcd.cpp:2892 +msgid "Total print time" +msgstr "Celkovy cas tisku" + +# MSG_TUNE +#: ultralcd.cpp:6850 +msgid "Tune" +msgstr "Ladit" + +# +#: +msgid "Unload" +msgstr "Vysunout" + +# +#: ultralcd.cpp:1752 +msgid "Total failures" +msgstr "Celkem selhani" + +# +#: ultralcd.cpp:2296 +msgid "to load filament" +msgstr "k zavedeni filamentu" + +# +#: ultralcd.cpp:2300 +msgid "to unload filament" +msgstr "k vyjmuti filamentu" + +# MSG_UNLOAD_FILAMENT c=17 +#: messages.c:95 +msgid "Unload filament" +msgstr "Vyjmout filament" + +# MSG_UNLOADING_FILAMENT c=20 r=1 +#: messages.c:96 +msgid "Unloading filament" +msgstr "Vysouvam filament" + +# +#: ultralcd.cpp:1705 +msgid "Total" +msgstr "Celkem" + +# MSG_USED c=19 r=1 +#: ultralcd.cpp:6001 +msgid "Used during print" +msgstr "Pouzite behem tisku" + +# MSG_MENU_VOLTAGES c=15 r=1 +#: ultralcd.cpp:2221 +msgid "Voltages" +msgstr "Napeti" + +# +#: ultralcd.cpp:2194 +msgid "unknown" +msgstr "neznamy" + +# MSG_USERWAIT +#: Marlin_main.cpp:5511 +msgid "Wait for user..." +msgstr "Ceka se na uzivatele..." + +# MSG_WAITING_TEMP c=20 r=3 +#: ultralcd.cpp:3434 +msgid "Waiting for nozzle and bed cooling" +msgstr "Cekani na zchladnuti trysky a podlozky." + +# MSG_WAITING_TEMP_PINDA c=20 r=3 +#: ultralcd.cpp:3395 +msgid "Waiting for PINDA probe cooling" +msgstr "Cekani na zchladnuti PINDA" + +# +#: +msgid "Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube." +msgstr "Pouzijte vyjmout pro odstraneni filamentu 1 pokud presahuje z PTFE trubicky za tiskarnou. Pouzijte vysunout, pokud neni videt." + +# MSG_CHANGED_BOTH c=20 r=4 +#: Marlin_main.cpp:1510 +msgid "Warning: both printer type and motherboard type changed." +msgstr "Varovani: doslo ke zmene typu tiskarny a motherboardu." + +# MSG_CHANGED_MOTHERBOARD c=20 r=4 +#: Marlin_main.cpp:1502 +msgid "Warning: motherboard type changed." +msgstr "Varovani: doslo ke zmene typu motherboardu." + +# MSG_CHANGED_PRINTER c=20 r=4 +#: Marlin_main.cpp:1506 +msgid "Warning: printer type changed." +msgstr "Varovani: doslo ke zmene typu tiskarny." + +# MSG_UNLOAD_SUCCESSFUL c=20 r=2 +#: Marlin_main.cpp:3128 +msgid "Was filament unload successful?" +msgstr "Bylo vysunuti filamentu uspesne?" + +# MSG_SELFTEST_WIRINGERROR +#: messages.c:81 +msgid "Wiring error" +msgstr "Chyba zapojeni" + +# MSG_WIZARD c=17 r=1 +#: ultralcd.cpp:5834 +msgid "Wizard" +msgstr "Pruvodce" + +# MSG_XYZ_DETAILS c=18 +#: ultralcd.cpp:2210 +msgid "XYZ cal. details" +msgstr "Detaily XYZ kal." + +# MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED c=20 r=8 +#: messages.c:18 +msgid "XYZ calibration failed. Please consult the manual." +msgstr "Kalibrace XYZ selhala. Nahlednete do manualu." + +# MSG_YES +#: messages.c:102 +msgid "Yes" +msgstr "Ano" + +# MSG_WIZARD_QUIT c=20 r=8 +#: messages.c:101 +msgid "You can always resume the Wizard from Calibration -> Wizard." +msgstr "Pruvodce muzete kdykoliv znovu spustit z menu Kalibrace -> Pruvodce" + +# MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8 +#: ultralcd.cpp:3904 +msgid "XYZ calibration all right. Skew will be corrected automatically." +msgstr "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku." + +# MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8 +#: ultralcd.cpp:3901 +msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!" +msgstr "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!" + +# MSG_TIMEOUT c=12 +#: messages.c:137 +msgid "Timeout" +msgstr "" + +# MSG_X_CORRECTION c=13 +#: ultralcd.cpp:5190 +msgid "X-correct:" +msgstr "Korekce X:" + +# MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8 +#: ultralcd.cpp:3898 +msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!" +msgstr "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!" + +# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8 +#: ultralcd.cpp:3882 +msgid "XYZ calibration compromised. Front calibration points not reachable." +msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu." + +# MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 +#: ultralcd.cpp:3885 +msgid "XYZ calibration compromised. Right front calibration point not reachable." +msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." + +# MSG_LOAD_ALL c=17 +#: ultralcd.cpp:6261 +msgid "Load all" +msgstr "Zavest vse" + +# +#: ultralcd.cpp:3864 +msgid "XYZ calibration failed. Bed calibration point was not found." +msgstr "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen." + +# +#: ultralcd.cpp:3870 +msgid "XYZ calibration failed. Front calibration points not reachable." +msgstr "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu." + +# +#: ultralcd.cpp:3873 +msgid "XYZ calibration failed. Right front calibration point not reachable." +msgstr "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu." + +# +#: ultralcd.cpp:2991 +msgid "Y distance from min" +msgstr "Y vzdalenost od min" + +# +#: ultralcd.cpp:4958 +msgid "The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)." +msgstr "Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)." + +# c=20 r=5 +#: ultralcd.cpp:7558 +msgid "Verification failed, remove the filament and try again." +msgstr "Overeni selhalo, vyjmete filament a zkuste znovu." + +# MSG_Y_CORRECTION c=13 +#: ultralcd.cpp:5191 +msgid "Y-correct:" +msgstr "Korekce Y:" + +# MSG_OFF +#: messages.c:105 +msgid "Off" +msgstr "Vyp" + +# MSG_ON +#: messages.c:106 +msgid "On" +msgstr "Zap" + +# +#: messages.c:53 +msgid "Back" +msgstr "Zpet" + +# +#: ultralcd.cpp:5724 +msgid "Checks" +msgstr "Kontrola" + +# +#: ultralcd.cpp:8349 +msgid "False triggering" +msgstr "Falesne spusteni" + +# +#: ultralcd.cpp:4013 +msgid "FINDA:" +msgstr "" + +# MSG_FIRMWARE +#: language.h:23 +msgid "Firmware" +msgstr "" + +# MSG_STRICT +#: messages.c:112 +msgid "Strict" +msgstr "Prisne" + +# MSG_WARN +#: messages.c:111 +msgid "Warn" +msgstr "Varovat" + +# +#: messages.c:83 +msgid "HW Setup" +msgstr "HW nastaveni" + +# +#: ultralcd.cpp:4017 +msgid "IR:" +msgstr "" + +# MSG_MAGNETS_COMP +#: messages.c:130 +msgid "Magnets comp." +msgstr "Komp. magnetu" + +# MSG_MESH +#: messages.c:128 +msgid "Mesh" +msgstr "" + +# +#: ultralcd.cpp:5763 +msgid "Mesh bed leveling" +msgstr "Mesh Bed Leveling" + +# +#: Marlin_main.cpp:872 +msgid "MK3S firmware detected on MK3 printer" +msgstr "MK3S firmware detekovan na tiskarne MK3" + +# MSG_MMU_MODE +#: messages.c:117 +msgid "MMU Mode" +msgstr "MMU mod" + +# +#: ultralcd.cpp:4494 +msgid "Mode change in progress ..." +msgstr "Probiha zmena modu..." + +# MSG_MODEL +#: messages.c:113 +msgid "Model" +msgstr "" + +# MSG_NOZZLE_DIAMETER +#: messages.c:116 +msgid "Nozzle d." +msgstr "Tryska" + +# +#: util.cpp:514 +msgid "G-code sliced for a different level. Continue?" +msgstr "" + +# +#: util.cpp:520 +msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled." +msgstr "" + +# +#: util.cpp:431 +msgid "G-code sliced for a different printer type. Continue?" +msgstr "G-code je pripraven pro jiny typ tiskarny. Pokracovat?" + +# +#: util.cpp:437 +msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." +msgstr "G-code je pripraven pro jiny typ tiskarny. Prosim preslicujte model znovu. Tisk zrusen." + +# +#: util.cpp:481 +msgid "G-code sliced for a newer firmware. Continue?" +msgstr "G-code je pripraven pro novejsi firmware. Pokracovat?" + +# +#: util.cpp:487 +msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled." +msgstr "G-code je pripraven pro novejsi firmware. Prosim aktualizujte firmware. Tisk zrusen." + +# +#: ultralcd.cpp:4009 +msgid "PINDA:" +msgstr "" + +# c=20 +#: ultralcd.cpp:2452 +msgid "Preheating to cut" +msgstr "Predehrev ke strihu" + +# c=20 +#: ultralcd.cpp:2449 +msgid "Preheating to eject" +msgstr "Predehrev k vysunuti" + +# +#: util.cpp:394 +msgid "Printer nozzle diameter differs from the G-code. Continue?" +msgstr "Prumer trysky tiskarny se lisi od G-code. Pokracovat?" + +# +#: util.cpp:401 +msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled." +msgstr "Prumer trysky tiskarny se lisi od G-code. Prosim zkontrolujte nastaveni. Tisk zrusen." + +# c=20 +#: ultralcd.cpp:8355 +msgid "%s level expected" +msgstr "" + +# +#: ultralcd.cpp:6814 +msgid "Rename" +msgstr "Prejmenovat" + +# +#: ultralcd.cpp:6807 +msgid "Select" +msgstr "Vybrat" + +# +#: ultralcd.cpp:2212 +msgid "Sensor info" +msgstr "Senzor info" + +# MSG_SHEET c=10 +#: messages.c:54 +msgid "Sheet" +msgstr "Plat" + +# MSG_SOUND_BLIND +#: messages.c:127 +msgid "Assist" +msgstr "Asist." + +# c=18 +#: ultralcd.cpp:5722 +msgid "Steel sheets" +msgstr "Tiskove platy" + +# MSG_Z_CORRECTION c=13 +#: ultralcd.cpp:5192 +msgid "Z-correct:" +msgstr "Korekce Z:" + +# MSG_Z_PROBE_NR +#: messages.c:129 +msgid "Z-probe nr." +msgstr "Pocet mereni Z" + +# +#: ultralcd.cpp:7145 +msgid "Z-probe nr. [5]" +msgstr "Pocet mereni Z [5]" + +======= # Translation of Prusa-Firmware into Czech. # msgid "" @@ -1850,3 +3699,4 @@ msgstr "Korekce Z:" msgid "Z-probe nr." msgstr "Pocet mereni Z" +>>>>>>> upstream/MK3 From f8bec339e22ddeca94907e440e87b43958267a63 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 18 Apr 2021 20:28:08 +0200 Subject: [PATCH 10/19] Hack to get more flash and ram for MK404 debug --- PF-build.sh | 268 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 196 insertions(+), 72 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index c51b1fd4..d065d691 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -244,17 +244,121 @@ fi #### End prepare bash / Linux environment +# Check for options/flags +while getopts v:l:d:b:f:x:r:o:c:p:n:?h flag + do + case "${flag}" in + v) variant_flag=${OPTARG};; + l) language_flag=${OPTARG};; + d) devel_flag=${OPTARG};; + b) build_flag=${OPTARG};; + f) board_flash_flag=${OPTARG};; + x) board_mem_flag=${OPTARG};; + o) output_flag=${OPTARG};; + c) clean_flag=${OPTARG};; + p) prusa_flag=${OPTARG};; + n) new_build_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; + esac + done +#echo "variant_flag: $variant_flag"; +#echo "language_flag: $language_flag"; +#echo "devel_flag: $devel_flag"; +#echo "build_flag: $build_flag"; +#echo "output_flag: $output_flag"; +#echo "board_mem_flag: $board_mem_flag"; +#echo "board_flash_flag: $board_flash_flag"; +#echo "help_flag: $help_flag" +#echo "clean_flag: $clean_flag" +#echo "prusa_flag: $prusa_flag" +#echo "new_build_flag: $new_build_flag" + +# +# '?' 'h' argument usage and help +if [ "$help_flag" == "1" ] ; then +echo "***************************************" +echo "* PF-build.sh Version: 1.0.6-Build_33 *" +echo "***************************************" +echo "Arguments:" +echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name" +echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only" +echo "$(tput setaf 2)-d$(tput sgr0) Devel build '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" +echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" +echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force or '$(tput setaf 2)0$(tput sgr0)' block output and delays" +echo "$(tput setaf 2)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" +echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" +echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" +echo "$(tput setaf 2)-?$(tput sgr0) Help" +echo "$(tput setaf 2)-h$(tput sgr0) Help" +echo +echo "Brief USAGE:" +echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n]" +echo +echo "Example:" +echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" +echo " Will build all variants as multi language and final GOLD version" +echo +echo " $(tput setaf 2) ./PF-build.sh -v 1_75mm_MK3S-EINSy10a-E3Dv6full.h -b Auto -l ALL -d GOLD -o 1 -c 1 -p 1 -n 1$(tput sgr0)" +echo " Will build MK3S multi language final GOLD firmware " +echo " with current commit count number and output extra information," +echo " not delete lang build temporary files, keep Configuration_prusa.h and build with new fresh build folder." +echo +exit 6 + +fi +#Check if Build is selected with argument '-f' +if [ ! -z "$board_flash_flag" ] ; then + if [ "$board_flash_flag" == "256" ] ; then + BOARD_FLASH="0x3FFFF" + BOARD_maximum_size="253952" + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [ "$board_flash_flag" == "384" ] ; then + BOARD_FLASH="0x5FFFF" + BOARD_maximum_size="385024" + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [ "$board_flash_flag" == "512" ] ; then + BOARD_FLASH="0x7FFFF" + BOARD_maximum_size="516096" + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [ "$board_flash_flag" == "1024" ] ; then + BOARD_FLASH="0xFFFFF" + BOARD_maximum_size="1040384" + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [[ "$board_flash_flag" == "32M" || "$board_flash_flag" == "32768" ]] ; then + BOARD_FLASH="0x1FFFFFF" + BOARD_maximum_size="33546240" + echo "Board flash size : 32 Mb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + else + echo "Unsupported board flash size chosen. Only '256', '384', '512', '1024' and '32M' are allowed." + exit 7 + fi +fi + +#Check if Build is selected with argument '-x' +if [ ! -z "$board_mem_flag" ] ; then + if [ "$board_mem_flag" == "8" ] ; then + BOARD_MEM="0x21FF" + echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)" + elif [ "$board_mem_flag" == "64" ] ; then + BOARD_MEM="0xFFFF" + echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)" + else + echo "Unsupported board mem size chosen. Only '8', '64' are allowed." + exit 8 + fi +fi #### Set build environment -ARDUINO_ENV="1.8.5" +ARDUINO_ENV="1.8.13" BUILD_ENV="1.0.6" BOARD="prusa_einsy_rambo" BOARD_PACKAGE_NAME="PrusaResearch" BOARD_VERSION="1.0.3" -#BOARD_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/Prusa_Merge_v1.0.3/IDE_Board_Manager/package_prusa3d_index.json" +#BOARD_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json" BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json" BOARD_FILENAME="prusa3dboards" -#BOARD_FILE_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/Prusa_Merge_v1.0.3/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2" +#BOARD_FILE_URL="https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2" BOARD_FILE_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/prusa3dboards-1.0.3.tar.bz2" #PF_BUILD_FILE_URL="https://github.com/3d-gussner/PF-build-env-1/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" PF_BUILD_FILE_URL="https://github.com/prusa3d/PF-build-env/releases/download/$BUILD_ENV-WinLin/PF-build-env-WinLin-$BUILD_ENV.zip" @@ -270,6 +374,12 @@ echo "" echo "Arduino IDE :" $ARDUINO_ENV echo "Build env :" $BUILD_ENV echo "Board :" $BOARD +if [ ! -z "$BOARD_FLASH" ] ; then + echo "Board flash :" $BOARD_FLASH +fi +if [ ! -z "$BOARD_MEM" ] ; then + echo "Board mem :" $BOARD_MEM +fi echo "Package name:" $BOARD_PACKAGE_NAME echo "Board v. :" $BOARD_VERSION echo "Specific Lib:" $LIB @@ -279,10 +389,10 @@ echo "" #Check if build exists and creates it if not if [ ! -d "../PF-build-dl" ]; then - mkdir ../PF-build-dl || exit 6 + mkdir ../PF-build-dl || exit 9 fi -cd ../PF-build-dl || exit 7 +cd ../PF-build-dl || exit 10 BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )" # Check if PF-build-env- exists and downloads + creates it if not @@ -299,13 +409,13 @@ if [ $TARGET_OS == "windows" ]; then if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" sleep 2 - wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 8 + wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 11 echo "$(tput sgr 0)" fi if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" sleep 2 - unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 8 + unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 11 mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" @@ -317,13 +427,13 @@ if [ $TARGET_OS == "linux" ]; then if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" sleep 2 - wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8 + wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 11 echo "$(tput sgr 0)" fi if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" sleep 2 - tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 + tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 11 mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" @@ -406,7 +516,7 @@ fi if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" sleep 2 - wget $PF_BUILD_FILE_URL || exit 11 + wget $PF_BUILD_FILE_URL || exit 12 echo "$(tput sgr 0)" fi if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then @@ -453,65 +563,6 @@ if type git > /dev/null; then git_available="1" fi -while getopts v:l:d:b:o:c:p:n:?h flag - do - case "${flag}" in - v) variant_flag=${OPTARG};; - l) language_flag=${OPTARG};; - d) devel_flag=${OPTARG};; - b) build_flag=${OPTARG};; - o) output_flag=${OPTARG};; - c) clean_flag=${OPTARG};; - p) prusa_flag=${OPTARG};; - n) new_build_flag=${OPTARG};; - ?) help_flag=1;; - h) help_flag=1;; - esac - done -#echo "variant_flag: $variant_flag"; -#echo "language_flag: $language_flag"; -#echo "devel_flag: $devel_flag"; -#echo "build_flag: $build_flag"; -#echo "output_flag: $output_flag"; -#echo "help_flag: $help_flag" -#echo "clean_flag: $clean_flag" -#echo "prusa_flag: $prusa_flag" -#echo "new_build_flag: $new_build_flag" - -# -# '?' 'h' argument usage and help -if [ "$help_flag" == "1" ] ; then -echo "***************************************" -echo "* PF-build.sh Version: 1.0.6-Build_33 *" -echo "***************************************" -echo "Arguments:" -echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name" -echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only" -echo "$(tput setaf 2)-d$(tput sgr0) Devel build '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" -echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" -echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force or '$(tput setaf 2)0$(tput sgr0)' block output and delays" -echo "$(tput setaf 2)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" -echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" -echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" -echo "$(tput setaf 2)-?$(tput sgr0) Help" -echo "$(tput setaf 2)-h$(tput sgr0) Help" -echo -echo "Brief USAGE:" -echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n]" -echo -echo "Example:" -echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" -echo " Will build all variants as multi language and final GOLD version" -echo -echo " $(tput setaf 2) ./PF-build.sh -v 1_75mm_MK3S-EINSy10a-E3Dv6full.h -b Auto -l ALL -d GOLD -o 1 -c 1 -p 1 -n 1$(tput sgr0)" -echo " Will build MK3S multi language final GOLD firmware " -echo " with current commit count number and output extra information," -echo " not delete lang build temporary files, keep Configuration_prusa.h and build with new fresh build folder." -echo -exit 14 - -fi - # # '-v' argument defines which variant of the Prusa Firmware will be compiled if [ -z "$variant_flag" ] ; then @@ -710,7 +761,7 @@ do DEV_STATUS_SELECTED="GOLD" break ;; - No) + No) DEV_STATUS="UNKNOWN" DEV_STATUS_SELECTED="UNKNOWN" break @@ -729,6 +780,12 @@ do mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 fi OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" + if [ "$BOARD" != "prusa_einsy_rambo" ]; then + if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD" ]; then + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD || exit 28 + fi + OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$BOARD" + fi #Check if exactly the same hexfile already exists if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then @@ -763,6 +820,8 @@ do echo "Dev Check :" $DEV_CHECK echo "DEV Status :" $DEV_STATUS echo "Motherboard:" $MOTHERBOARD + echo "Board flash:" $BOARD_FLASH + echo "Board mem :" $BOARD_MEM echo "Languages :" $LANGUAGES echo "Hex-file Folder:" $OUTPUT_FOLDER echo "$(tput sgr0)" @@ -796,7 +855,72 @@ do sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h echo " " fi - + + # Prepare Board mem and flash modifications + ## Check board mem size + CURRENT_BOARD_MEM=$(grep "#define RAMEND" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h | sed -e's/.* //g'|cut -d ' ' -f3|tr -d $'\n') + if [ $CURRENT_BOARD_MEM != "0x21FF" ] ; then + echo "Board mem has been already modified or not reset" + echo "Current:" $CURRENT_BOARD_MEM + PS3="Select Yes if you want to reset it." + select yn in "Yes" "No"; do + case $yn in + Yes) + echo "Resetting board mem size" + sed -i -- "s/^#define RAMEND .*$/#define RAMEND 0x21FF/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h + break + ;; + *) + echo "Continuing with modified mem size" + break + ;; + esac + done + fi + ## Modify board mem size + if [[ ! -z $BOARD_MEM && "$BOARD_MEM" != "0x21FF" ]] ; then + echo "Modifying board memory size (hex):" + echo "Old:" $CURRENT_BOARD_MEM + echo "New:" $BOARD_MEM + read -t 5 -p "To cancel press CRTL+C" + sed -i -- "s/^#define RAMEND 0x21FF/#define RAMEND ${BOARD_MEM}/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h + fi + + ## Check board flash size + CURRENT_BOARD_FLASH=$(grep "#define FLASHEND" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h | sed -e's/.* //g'|cut -d ' ' -f3|tr -d $'\n') + CURRENT_BOARD_maximum_size=$(grep "prusa_einsy_rambo.upload.maximum_size" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt |cut -d '=' -f2|tr -d $'\n') + if [[ $CURRENT_BOARD_FLASH != "0x3FFFF" || $CURRENT_BOARD_maximum_size != "253952" ]] ; then + echo "Board flash has been already modified or not reset" + echo "Current flash size:" $CURRENT_BOARD_FLASH + echo "Current max. size:" $CURRENT_BOARD_maximum_size + PS3="Select Yes if you want to reset it." + select yn in "Yes" "No"; do + case $yn in + Yes) + echo "Resetting board flash size" + sed -i -- "s/^#define FLASHEND .*$/#define FLASHEND 0x3FFFF/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h + sed -i -- "s/^prusa_einsy_rambo.upload.maximum_size.*/prusa_einsy_rambo.upload.maximum_size=253952/g" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt + break + ;; + *) + echo "Continuing with modified flash size" + break + ;; + esac + done + fi + ## Modify boad flash size + if [[ ! -z $BOARD_FLASH && "$BOARD_FLASH" != "0x3FFFF" ]] ; then + echo "Modifying board flash size (hex):" + echo "Old flash size:" $CURRENT_BOARD_FLASH + echo "New flash size:" $BOARD_FLASH + echo "Old max. size:" $CURRENT_BOARD_maximum_size + echo "New max. size:" $BOARD_maximum_size + read -t 5 -p "To cancel press CRTL+C" + sed -i -- "s/^#define FLASHEND .*/#define FLASHEND ${BOARD_FLASH}/g" $BUILD_ENV_PATH/hardware/tools/avr/avr/include/avr/iom2560.h + sed -i -- "s/^prusa_einsy_rambo.upload.maximum_size.*/prusa_einsy_rambo.upload.maximum_size=${BOARD_maximum_size}/g" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt + fi + #Check if compiler flags are set to Prusa specific needs for the rambo board. # if [ $TARGET_OS == "windows" ]; then # RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" @@ -825,7 +949,7 @@ do rm -r -f $BUILD_PATH/* || exit 36 fi - #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 + $BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 echo "$(tput sgr 0)" From 1a5898c673c3806d3953f1a1210cc938f6cc9628 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Fri, 23 Apr 2021 20:09:20 +0200 Subject: [PATCH 11/19] Improve MK404-build.sh check, update --- MK404-build.sh | 87 ++++++++++++++++++++++++++++++++++++++++++++------ PF-build.sh | 18 +++++------ 2 files changed, 86 insertions(+), 19 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index 8ed1e6b9..9c7a14ba 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -17,23 +17,27 @@ # 12 Feb 2021, 3d-gussner, Update cmake # 13 Feb 2021, 3d-gussner, Auto build SD cards -while getopts c:u:f:?h flag +while getopts c:u:f:m:g:?h flag do case "${flag}" in c) check_flag=${OPTARG};; u) update_flag=${OPTARG};; f) force_flag=${OPTARG};; + m) mk404_flag=${OPTARG};; + g) graphics_flag=${OPTARG};; ?) help_flag=1;; h) help_flag=1;; esac done echo "$check_flag" echo "$update_flag" +echo "$force_flag" +echo "$mk404_flag" +echo "$graphics_flag" #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) - case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in linux*) TARGET_OS="linux" @@ -122,14 +126,82 @@ if [ ! -d $MK404_PATH ]; then git clone $MK404_URL $MK404_PATH fi -# Init and update submodules + + + +# cd $MK404_PATH -git submodule init -git submodule update + +# Check for updates ... WIP + +# Check MK404 +if [ "$force_flag" == "1" ]; then + check_flag=1 + update_flag=1 +fi +if [ "$update_flag" == "1" ]; then + check_flag=1 +fi +if [ "$check_flag" == "1" ]; then + if [ -d $MK404_BUILD_PATH ]; then + cd $MK404_BUILD_PATH + MK404_current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") + cd $MK404_PATH + else + echo "Cannot check current version as it has not been build." + fi +# Get local Commit_Hash + MK404_local_GIT_COMMIT_HASH=$(git log --pretty=format:"%H" -1) +# Get local Commit_Number + MK404_local_GIT_COMMIT_NUMBER=$(git rev-list HEAD --count) +# Get remote Commit_Hash + MK404_remote_GIT_COMMIT_HASH=$(git ls-remote --heads $(git config --get remote.origin.url) | grep "refs/heads/master" | cut -f 1) +# Get remote Commit_Number + MK404_remote_GIT_COMMIT_NUMBER=$(git rev-list origin/master --count) +# Output + echo "Current version : $MK404_current_version" + echo "" + echo "Current local hash : $MK404_local_GIT_COMMIT_HASH" + echo "Current local commit nr : $MK404_local_GIT_COMMIT_NUMBER" + if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then + echo "$(tput setaf 1)" + else + echo "$(tput sgr 0)" + fi + echo "Current remote hash : $MK404_remote_GIT_COMMIT_HASH" + echo "Current remote commit nr: $MK404_remote_GIT_COMMIT_NUMBER" + echo "$(tput sgr 0)" + +# Check for updates + if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then + echo "$(tput setaf 2)Update is availible.$(tput sgr 0)" + read -t 10 -n 1 -p "$(tput setaf 3)Update now Y/n$(tput sgr 0)" update_answer + if [ "$update_answer" == "Y" ]; then + update_flag=1 + fi + echo "" + fi +fi +# Check for updates +if [ "$update_flag" == "1" ]; then + if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then + echo "" + git fetch --all + read -t 10 -p "$(tput setaf 2)Updating MK404 !$(tput sgr 0)" + echo "" + git reset --hard origin/master + read -t 10 -p "$(tput setaf 2)Compiling MK404 !$(tput sgr 0)" + echo "" + force_flag=1 + fi +fi # Prepare MK404 mkdir -p $MK404_BUILD_PATH if [[ ! -f "$MK404_BUILD_PATH/Makefile" || "$force_flag" == "1" ]]; then +# Init and update submodules + git submodule init + git submodule update cmake -B$MK404_BUILD_PATH -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" fi @@ -149,8 +221,3 @@ if [[ ! -f "$MK404_BUILD_PATH/Prusa_MK3S_SDcard.bin" || "$force_flag" == "1" ]]; cmake --build $MK404_BUILD_PATH --config Release --target Prusa_MK3MMU2_SDcard.bin fi -# Check for updates ... WIP -if [ "$check_flag" == "1" ]; then - current_version=$( command ./MK404 --version | grep "MK404" | cut -f 4 -d " ") - echo "Current version: $current_version" -fi \ No newline at end of file diff --git a/PF-build.sh b/PF-build.sh index 4a6d243f..f461bfc1 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -886,9 +886,9 @@ do if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" # Make a copy of "lang.bin" for MK404 MK3 and MK3S - #if [ ! -z "$mk404_flag" ]; then - #cp -f lang.bin $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin - #fi + if [ ! -z "$mk404_flag" ]; then + cp -f lang.bin $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin + fi # End of "lang.bin" for MK3 and MK3S copy cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex else @@ -977,7 +977,7 @@ echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $( # Check/compile MK404 sim if [ ! -z "$mk404_flag" ]; then - ./MK404-build.sh + ./MK404-build.sh -c1 # For Prusa MK2, MK2.5/S if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then @@ -1009,11 +1009,11 @@ if [ ! -z "$mk404_flag" ]; then cd ../MK404/master/build # Copy language bin file for MK3 and MK3S to xflash - #if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then - #echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" - #dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin - #dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc - #fi + if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then + echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" + dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin + dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc + fi # Start MK404 # default with serial output and terminal to manipulate it via terminal From 2ad0514d7cb59608147dee2305ffa696af7cb32f Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 29 Apr 2021 19:15:32 +0200 Subject: [PATCH 12/19] Save changes --- PF-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PF-build.sh b/PF-build.sh index f461bfc1..b96fb46b 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -504,7 +504,7 @@ if [ "$help_flag" == "1" ] ; then echo "$(tput setaf 2)-h$(tput sgr0) Help" echo echo "Brief USAGE:" - echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n] [-m]" + echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n] [-m] [-g]" echo echo "Example:" echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" From 6ba8999607b8ed979ebd0f930e445bdec604168e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 29 Apr 2021 19:23:52 +0200 Subject: [PATCH 13/19] Indentations --- PF-build.sh | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index b96fb46b..de10ea4b 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -237,12 +237,12 @@ fi # Check gawk ... needed during language build if ! type gawk > /dev/null; then - if [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." - #sudo apt-get update && apt-get install gawk - exit 5 - fi + if [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." + #sudo apt-get update && apt-get install gawk + exit 5 + fi fi #### End prepare bash / Linux environment @@ -299,20 +299,20 @@ fi # Download and extract supported Arduino IDE depending on OS # Windows if [ $TARGET_OS == "windows" ]; then - if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then - echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 8 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 8 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then + echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 8 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 8 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Linux if [ $TARGET_OS == "linux" ]; then From 2195116bebdddedbe07c6552726dcf83dd9ce63d Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sat, 1 May 2021 01:30:03 +0200 Subject: [PATCH 14/19] Add EN_ONLY support for MK404 --- PF-build.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PF-build.sh b/PF-build.sh index de10ea4b..1db0bc04 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -1015,8 +1015,15 @@ if [ ! -z "$mk404_flag" ]; then dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc fi +#Decide which hex file to use EN_ONLY or Multi language +if [ "$LANGUAGES" == "ALL" ]; then + MK404_firmware_file=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex +else + MK404_firmware_file=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex +fi + # Start MK404 # default with serial output and terminal to manipulate it via terminal - ./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex + ./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $MK404_firmware_file fi #### End of MK404 Simulator From d8dd8e49e5639e4bae782f35e9545a83fe12b4a9 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 3 May 2021 07:00:15 +0200 Subject: [PATCH 15/19] Comment out "manual" xflash update as MK404 can do it now directly from the hex file. --- PF-build.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 1db0bc04..579b03f2 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -1009,11 +1009,11 @@ if [ ! -z "$mk404_flag" ]; then cd ../MK404/master/build # Copy language bin file for MK3 and MK3S to xflash - if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then - echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" - dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin - dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc - fi +# if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then +# echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" +# dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin +# dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc +# fi #Decide which hex file to use EN_ONLY or Multi language if [ "$LANGUAGES" == "ALL" ]; then From 41d7eaa94b8339af6f45753bfc96810d8b7a8097 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 3 May 2021 08:24:02 +0200 Subject: [PATCH 16/19] Update documentation --- PF-build.sh | 139 ++++++++++++++++++++++++++++------------------------ 1 file changed, 75 insertions(+), 64 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 579b03f2..a219b851 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 1.1.0-Build_39 +# Version: 1.2.0-Build_47 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -140,6 +140,13 @@ # 13 Feb 2021, 3d-gussner, Indentations # 13 Feb 2021, 3d-gussner, MK404 improvements like "flash" MK3, MK3S languages files to MK404 xflash. # 27 Feb 2021, 3d-gussner, Add './lang-community.sh' and update exits +# 03 May 2021, 3d-gussner, Update exit numbers +# 01-14 prepare build env +# 21-32 prepare compiling +# 41-47 compiling +# 51-54 cleanup +# 61-62 MK404 +# 03 May 2021, 3d-gussner, Update documentation and change version to v1.2.0 #### Start check if OSTYPE is supported OS_FOUND=$( command -v uname) @@ -308,7 +315,7 @@ if [ $TARGET_OS == "windows" ]; then if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" sleep 2 - unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 8 + unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 9 mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" @@ -326,7 +333,7 @@ if [ $TARGET_OS == "linux" ]; then if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" sleep 2 - tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8 + tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 9 mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" @@ -380,12 +387,12 @@ fi if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" sleep 2 - wget $BOARD_FILE_URL || exit 9 + wget $BOARD_FILE_URL || exit 10 fi if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" sleep 2 - tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 + tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 11 if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME fi @@ -409,13 +416,13 @@ fi if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" sleep 2 - wget $PF_BUILD_FILE_URL || exit 11 + wget $PF_BUILD_FILE_URL || exit 12 echo "$(tput sgr 0)" fi if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" sleep 2 - unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 + unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 13 echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt echo "$(tput sgr0)" fi @@ -441,7 +448,7 @@ if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Proc echo "Script will not continue until this have been fixed $(tput setaf 2)" sleep 2 echo "$(tput sgr0)" - exit 13 + exit 14 fi @@ -456,21 +463,21 @@ if type git > /dev/null; then git_available="1" fi -while getopts v:l:d:b:o:c:p:n:m:g:?h flag +while getopts b:c:d:g:l:m:n:o:p:v:?h flag do case "${flag}" in - v) variant_flag=${OPTARG};; - l) language_flag=${OPTARG};; - d) devel_flag=${OPTARG};; b) build_flag=${OPTARG};; - o) output_flag=${OPTARG};; c) clean_flag=${OPTARG};; - p) prusa_flag=${OPTARG};; - n) new_build_flag=${OPTARG};; - m) mk404_flag=${OPTARG};; + d) devel_flag=${OPTARG};; g) graphics_flag=${OPTARG};; - ?) help_flag=1;; h) help_flag=1;; + l) language_flag=${OPTARG};; + m) mk404_flag=${OPTARG};; + n) new_build_flag=${OPTARG};; + o) output_flag=${OPTARG};; + p) prusa_flag=${OPTARG};; + v) variant_flag=${OPTARG};; + ?) help_flag=1;; esac done #echo "variant_flag: $variant_flag"; @@ -490,21 +497,21 @@ if [ "$help_flag" == "1" ] ; then echo "* PF-build.sh Version: 1.0.6-Build_33 *" echo "***************************************" echo "Arguments:" - echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name" - echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only" - echo "$(tput setaf 2)-d$(tput sgr0) Devel build '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" - echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force or '$(tput setaf 2)0$(tput sgr0)' block output and delays" - echo "$(tput setaf 2)-c$(tput sgr0) Do not clean up lang build'$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" - echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" - echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" - echo "$(tput setaf 2)-m$(tput sgr0) Start MK404 sim '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2" + echo "$(tput setaf 2)-c$(tput sgr0) Do not clean up lang build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" + echo "$(tput setaf 2)-d$(tput sgr0) Devel build '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" echo "$(tput setaf 2)-g$(tput sgr0) Start MK404 grafics '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy" + echo "$(tput setaf 2)-l$(tput sgr0) Languages '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only" + echo "$(tput setaf 2)-m$(tput sgr0) Start MK404 sim '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2" + echo "$(tput setaf 2)-n$(tput sgr0) New fresh build '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" + echo "$(tput setaf 2)-o$(tput sgr0) Output '$(tput setaf 2)1$(tput sgr0)' force or '$(tput setaf 2)0$(tput sgr0)' block output and delays" + echo "$(tput setaf 2)-p$(tput sgr0) Keep Configuration_prusa.h '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' yes" + echo "$(tput setaf 2)-v$(tput sgr0) Variant '$(tput setaf 2)All$(tput sgr0)' or variant file name" echo "$(tput setaf 2)-?$(tput sgr0) Help" echo "$(tput setaf 2)-h$(tput sgr0) Help" echo echo "Brief USAGE:" - echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-v] [-l] [-d] [-b] [-o] [-c] [-p] [-n] [-m] [-g]" + echo " $(tput setaf 2)./PF-build.sh$(tput sgr0) [-b] [-c] [-d] [-g] [-h] [-l] [-m] [-n] [-o] [-p] [-v] [-?]" echo echo "Example:" echo " $(tput setaf 2)./PF-build.sh -v All -l ALL -d GOLD$(tput sgr0)" @@ -515,7 +522,7 @@ if [ "$help_flag" == "1" ] ; then echo " with current commit count number and output extra information," echo " not delete lang build temporary files, keep Configuration_prusa.h and build with new fresh build folder." echo - exit 14 + exit 21 fi # @@ -540,7 +547,7 @@ if [ -z "$variant_flag" ] ; then ;; "Quit") echo "You chose to stop" - exit 20 + exit 22 ;; *) echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" @@ -561,7 +568,7 @@ else echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename echo "$(tput sgr0)" - exit 21 + exit 23 fi fi @@ -594,7 +601,7 @@ else else echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" - exit 22 + exit 24 fi fi #Check if DEV_STATUS is selected via argument '-d' @@ -604,7 +611,7 @@ if [ ! -z "$devel_flag" ] ; then else echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" - exit 23 + exit 25 fi fi @@ -618,7 +625,7 @@ if [ ! -z "$build_flag" ] ; then else echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" - exit 24 + exit 26 fi echo "New Build number is: $BUILD" @@ -653,18 +660,18 @@ else fi #Set BUILD_ENV_PATH -cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 25 +cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 27 BUILD_ENV_PATH="$( pwd -P )" cd ../.. #Checkif BUILD_PATH exists and if not creates it if [ ! -d "Prusa-Firmware-build" ]; then - mkdir Prusa-Firmware-build || exit 26 + mkdir Prusa-Firmware-build || exit 28 fi #Set the BUILD_PATH for Arduino IDE -cd Prusa-Firmware-build || exit 27 +cd Prusa-Firmware-build || exit 29 BUILD_PATH="$( pwd -P )" #Check git branch has changed @@ -733,7 +740,7 @@ do fi #Prepare hex files folders if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then - mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 30 fi OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" @@ -777,13 +784,13 @@ do #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 31 else echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" if [ $OUTPUT == "1" ] ; then read -t 10 -p "Press Enter to continue..." fi - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 31 fi #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint @@ -809,11 +816,16 @@ do #if [ $TARGET_OS == "windows" ]; then #RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" #fi - + + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 54 + fi + #### End of Prepare building - + #### Start building - + export ARDUINO=$BUILD_ENV_PATH #echo $BUILD_ENV_PATH #export BUILDER=$ARDUINO/arduino-builder @@ -828,13 +840,8 @@ do sleep 2 fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 - fi - - #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 + #$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 41 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 42 echo "$(tput sgr 0)" if [ $LANGUAGES == "ALL" ]; then @@ -847,7 +854,7 @@ do fi cd $SCRIPT_PATH/lang echo "$(tput setaf 3)" - ./config.sh || exit 31 + ./config.sh || exit 43 echo "$(tput sgr 0)" # Check if previous languages and firmware build exist and if so clean them up if [ -f "lang_en.tmp" ]; then @@ -872,11 +879,11 @@ do fi # build languages echo "$(tput setaf 3)" - ./lang-build.sh || exit 32 + ./lang-build.sh || exit 44 # build community languages - ./lang-community.sh || exit 33 + ./lang-community.sh || exit 45 # Combine compiled firmware with languages - ./fw-build.sh || exit 33 + ./fw-build.sh || exit 46 cp not_tran.txt not_tran_$VARIANT.txt cp not_used.txt not_used_$VARIANT.txt echo "$(tput sgr 0)" @@ -911,26 +918,30 @@ do zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex fi fi - # Cleanup after build - if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then - echo "$(tput setaf 3)" - ./fw-clean.sh || exit 34 - ./lang-clean.sh || exit 35 - echo "$(tput sgr 0)" - fi + + # Cleanup after build + if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then + echo "$(tput setaf 3)" + ./fw-clean.sh || exit 51 + ./lang-clean.sh || exit 52 + echo "$(tput sgr 0)" + fi + else echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" - cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 34 + cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 47 fi # Cleanup Firmware if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then - rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36 + rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 53 fi + # Delete dupblicates if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 then rm $SCRIPT_PATH/lang/*RAMBo10a*.txt fi + # MK2 not supported in this branch if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 then rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt @@ -946,7 +957,7 @@ do #New fresh PF-Firmware-build if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 + rm -r -f $BUILD_PATH/* || exit 54 fi # Restore files to previous state @@ -977,7 +988,7 @@ echo "more information how to flash firmware https://www.prusa3d.com/drivers/ $( # Check/compile MK404 sim if [ ! -z "$mk404_flag" ]; then - ./MK404-build.sh -c1 + ./MK404-build.sh -c1 || exit 61 # For Prusa MK2, MK2.5/S if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then @@ -1024,6 +1035,6 @@ fi # Start MK404 # default with serial output and terminal to manipulate it via terminal - ./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $MK404_firmware_file + ./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $MK404_firmware_file || exit 62 fi #### End of MK404 Simulator From 16359780f9842e3112bdabd0a740b98949818f25 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 3 May 2021 14:11:03 +0200 Subject: [PATCH 17/19] Add MK404 'atmega404' and 'atmega404_no_bootloder' option --- PF-build.sh | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index a219b851..11d6c092 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -494,7 +494,7 @@ while getopts b:c:d:g:l:m:n:o:p:v:?h flag # '?' 'h' argument usage and help if [ "$help_flag" == "1" ] ; then echo "***************************************" - echo "* PF-build.sh Version: 1.0.6-Build_33 *" + echo "* PF-build.sh Version: 1.2.0-Build_47 *" echo "***************************************" echo "Arguments:" echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" @@ -608,6 +608,8 @@ fi if [ ! -z "$devel_flag" ] ; then if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then DEV_STATUS_SELECTED=$devel_flag + elif [[ "$devel_flag" == "atmega404" || "$devel_flag" == "atmega404_no_bootloader" ]] ; then + MK404_DEBUG=$devel_flag else echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" @@ -685,7 +687,7 @@ fi for v in ${VARIANTS[*]} do VARIANT=$(basename "$v" ".h") - PRINTER=$(grep --max-count=1 "\bPRINTER_TYPE\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3 | cut -d '_' -f2) + MK404_PRINTER=$(grep --max-count=1 "\bPRINTER_TYPE\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3 | cut -d '_' -f2) # Find firmware version in Configuration.h file and use it to generate the hex filename FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') if [ -z "$BUILD" ] ; then @@ -992,10 +994,10 @@ if [ ! -z "$mk404_flag" ]; then # For Prusa MK2, MK2.5/S if [ "$MOTHERBOARD" == "BOARD_RAMBO_MINI_1_3" ]; then - PRINTER="${PRINTER}_mR13" + MK404_PRINTER="${MK404_PRINTER}_mR13" else if [[ "$mk404_flag" == "2" || "$mk404_flag" == "MMU2" || "$mk404_flag" == "MMU2S" ]]; then # Check if MMU2 is selected only for MK3/S - PRINTER="${PRINTER}MMU2" + MK404_PRINTER="${MK404_PRINTER}MMU2" fi fi @@ -1012,8 +1014,19 @@ if [ ! -z "$mk404_flag" ]; then fi fi +# Run MK404 with 'debugcore' and/or 'bootloader_file' + if [ ! -z "$MK404_DEBUG" ]; then + if [ "$MK404_DEBUG" == "atmega404" ]; then + MK404_options="${MK404_options} --debugcore" + elif [ "$MK404_DEBUG" == "atmega404_no_bootloader" ]; then + MK404_options="${MK404_options} --debugcore --bootloader_file no" + else + echo "$(tput setaf 1)Unsupported MK404 debug option $MK404_options$(tput sgr 0)" + fi + fi + # Output some useful data - echo "Printer: $PRINTER" + echo "Printer: $MK404_PRINTER" echo "Options: $MK404_options" # Change to MK404 build folder @@ -1021,9 +1034,9 @@ if [ ! -z "$mk404_flag" ]; then # Copy language bin file for MK3 and MK3S to xflash # if [ -f $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin ]; then -# echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${PRINTER}_xflash.bin'" -# dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${PRINTER}_xflash.bin -# dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${PRINTER}_xflash.bin conv=notrunc +# echo "Copy 'FW$FW-Build$BUILD-$VARIANT-lang.bin' to 'Prusa_${MK404_PRINTER}_xflash.bin'" +# dd if=/dev/zero bs=1 count=262145 | tr "\000" "\377" >Prusa_${MK404_PRINTER}_xflash.bin +# dd if=$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-lang.bin of=Prusa_${MK404_PRINTER}_xflash.bin conv=notrunc # fi #Decide which hex file to use EN_ONLY or Multi language @@ -1035,6 +1048,6 @@ fi # Start MK404 # default with serial output and terminal to manipulate it via terminal - ./MK404 Prusa_$PRINTER -s --terminal $MK404_options -f $MK404_firmware_file || exit 62 + ./MK404 Prusa_$MK404_PRINTER -s --terminal $MK404_options -f $MK404_firmware_file || exit 62 fi #### End of MK404 Simulator From a5ba31b247f52d52b05ded4600e3ad6392622111 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 3 May 2021 14:14:47 +0200 Subject: [PATCH 18/19] Indentations --- PF-build.sh | 1136 +++++++++++++++++++++++++-------------------------- 1 file changed, 568 insertions(+), 568 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index d065d691..7fdaf811 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -91,7 +91,7 @@ # 13 Mar 2019, 3d-gussner, MKbel updated the Linux build environment to version 1.0.2 with an Fix maximum firmware flash size. # So did I # 11 Jul 2019, deliopoulos,Updated to v1.0.6 as Prusa needs a new board definition for Firmware 3.8.x86_64 -# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part +# - Split the Download of Windows Arduino IDE 1.8.5 and Prusa specific part # --> less download volume needed and saves some time # # 13 Jul 2019, deliopoulos,Splitting of Arduino IDE and Prusa parts also for Linux64 @@ -158,35 +158,35 @@ case $( "${OS_FOUND}" | tr '[:upper:]' '[:lower:]') in esac # Windows if [ $TARGET_OS == "windows" ]; then - if [ $(uname -m) == "x86_64" ]; then - echo "$(tput setaf 2)Windows 64-bit found$(tput sgr0)" - Processor="64" - elif [ $(uname -m) == "i386" ]; then - echo "$(tput setaf 2)Windows 32-bit found$(tput sgr0)" - Processor="32" - else - echo "$(tput setaf 1)Unsupported OS: Windows $(uname -m)" - echo "Please refer to the notes of build.sh$(tput sgr0)" - exit 1 - fi + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Windows 64-bit found$(tput sgr0)" + Processor="64" + elif [ $(uname -m) == "i386" ]; then + echo "$(tput setaf 2)Windows 32-bit found$(tput sgr0)" + Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Windows $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi # Linux elif [ $TARGET_OS == "linux" ]; then - if [ $(uname -m) == "x86_64" ]; then - echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" - Processor="64" - elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then - echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" - Processor="32" - else - echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" - echo "Please refer to the notes of build.sh$(tput sgr0)" - exit 1 - fi + if [ $(uname -m) == "x86_64" ]; then + echo "$(tput setaf 2)Linux 64-bit found$(tput sgr0)" + Processor="64" + elif [[ $(uname -m) == "i386" || $(uname -m) == "i686" ]]; then + echo "$(tput setaf 2)Linux 32-bit found$(tput sgr0)" + Processor="32" + else + echo "$(tput setaf 1)Unsupported OS: Linux $(uname -m)" + echo "Please refer to the notes of build.sh$(tput sgr0)" + exit 1 + fi else - echo "$(tput setaf 1)This script doesn't support your Operating system!" - echo "Please use Linux 64-bit or Windows 10 64-bit with Linux subsystem / git-bash" - echo "Read the notes of build.sh$(tput sgr0)" - exit 1 + echo "$(tput setaf 1)This script doesn't support your Operating system!" + echo "Please use Linux 64-bit or Windows 10 64-bit with Linux subsystem / git-bash" + echo "Read the notes of build.sh$(tput sgr0)" + exit 1 fi sleep 2 #### End check if OSTYPE is supported @@ -194,74 +194,74 @@ sleep 2 #### Prepare bash environment and check if wget, zip and other needed things are available # Check wget if ! type wget > /dev/null; then - echo "$(tput setaf 1)Missing 'wget' which is important to run this script" - echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" - exit 2 + echo "$(tput setaf 1)Missing 'wget' which is important to run this script" + echo "Please follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058 to install wget$(tput sgr0)" + exit 2 fi # Check for zip if ! type zip > /dev/null; then - if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'zip' which is important to run this script" - echo "Download and install 7z-zip from its official website https://www.7-zip.org/" - echo "By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10 as my case." - echo "Run git Bash under Administrator privilege and" - echo "navigate to the directory /c/Program Files/Git/mingw64/bin," - echo "you can run the command $(tput setaf 2)ln -s /c/Program Files/7-Zip/7z.exe zip.exe$(tput sgr0)" - exit 3 - elif [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'zip' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" - #sudo apt-get update && apt-get install zip - exit 3 - fi + if [ $TARGET_OS == "windows" ]; then + echo "$(tput setaf 1)Missing 'zip' which is important to run this script" + echo "Download and install 7z-zip from its official website https://www.7-zip.org/" + echo "By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10 as my case." + echo "Run git Bash under Administrator privilege and" + echo "navigate to the directory /c/Program Files/Git/mingw64/bin," + echo "you can run the command $(tput setaf 2)ln -s /c/Program Files/7-Zip/7z.exe zip.exe$(tput sgr0)" + exit 3 + elif [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'zip' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install zip'$(tput sgr0)" + #sudo apt-get update && apt-get install zip + exit 3 + fi fi # Check python ... needed during language build if ! type python > /dev/null; then - if [ $TARGET_OS == "windows" ]; then - echo "$(tput setaf 1)Missing 'python3' which is important to run this script" - exit 4 - elif [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'python' which is important to run this script" - echo "As Python 2.x will not be maintained from 2020 please," - echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." - echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" - echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" - #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python - exit 4 - fi + if [ $TARGET_OS == "windows" ]; then + echo "$(tput setaf 1)Missing 'python3' which is important to run this script" + exit 4 + elif [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'python' which is important to run this script" + echo "As Python 2.x will not be maintained from 2020 please," + echo "install it with the command $(tput setaf 2)'sudo apt-get install python3'." + echo "Check which version of Python3 has been installed using 'ls /usr/bin/python3*'" + echo "Use 'sudo ln -sf /usr/bin/python3.x /usr/bin/python' (where 'x' is your version number) to make it default.$(tput sgr0)" + #sudo apt-get update && apt-get install python3 && ln -sf /usr/bin/python3 /usr/bin/python + exit 4 + fi fi # Check gawk ... needed during language build if ! type gawk > /dev/null; then - if [ $TARGET_OS == "linux" ]; then - echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" - echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." - #sudo apt-get update && apt-get install gawk - exit 5 - fi + if [ $TARGET_OS == "linux" ]; then + echo "$(tput setaf 1)Missing 'gawk' which is important to run this script" + echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'." + #sudo apt-get update && apt-get install gawk + exit 5 + fi fi #### End prepare bash / Linux environment # Check for options/flags while getopts v:l:d:b:f:x:r:o:c:p:n:?h flag - do - case "${flag}" in - v) variant_flag=${OPTARG};; - l) language_flag=${OPTARG};; - d) devel_flag=${OPTARG};; - b) build_flag=${OPTARG};; + do + case "${flag}" in + v) variant_flag=${OPTARG};; + l) language_flag=${OPTARG};; + d) devel_flag=${OPTARG};; + b) build_flag=${OPTARG};; f) board_flash_flag=${OPTARG};; x) board_mem_flag=${OPTARG};; - o) output_flag=${OPTARG};; - c) clean_flag=${OPTARG};; - p) prusa_flag=${OPTARG};; - n) new_build_flag=${OPTARG};; - ?) help_flag=1;; - h) help_flag=1;; - esac - done + o) output_flag=${OPTARG};; + c) clean_flag=${OPTARG};; + p) prusa_flag=${OPTARG};; + n) new_build_flag=${OPTARG};; + ?) help_flag=1;; + h) help_flag=1;; + esac + done #echo "variant_flag: $variant_flag"; #echo "language_flag: $language_flag"; #echo "devel_flag: $devel_flag"; @@ -309,44 +309,44 @@ exit 6 fi #Check if Build is selected with argument '-f' if [ ! -z "$board_flash_flag" ] ; then - if [ "$board_flash_flag" == "256" ] ; then + if [ "$board_flash_flag" == "256" ] ; then BOARD_FLASH="0x3FFFF" BOARD_maximum_size="253952" - echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" - elif [ "$board_flash_flag" == "384" ] ; then + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [ "$board_flash_flag" == "384" ] ; then BOARD_FLASH="0x5FFFF" BOARD_maximum_size="385024" - echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" - elif [ "$board_flash_flag" == "512" ] ; then + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [ "$board_flash_flag" == "512" ] ; then BOARD_FLASH="0x7FFFF" BOARD_maximum_size="516096" - echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" - elif [ "$board_flash_flag" == "1024" ] ; then + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [ "$board_flash_flag" == "1024" ] ; then BOARD_FLASH="0xFFFFF" BOARD_maximum_size="1040384" - echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" - elif [[ "$board_flash_flag" == "32M" || "$board_flash_flag" == "32768" ]] ; then + echo "Board flash size : $board_flash_flag Kb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + elif [[ "$board_flash_flag" == "32M" || "$board_flash_flag" == "32768" ]] ; then BOARD_FLASH="0x1FFFFFF" BOARD_maximum_size="33546240" - echo "Board flash size : 32 Mb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" - else - echo "Unsupported board flash size chosen. Only '256', '384', '512', '1024' and '32M' are allowed." - exit 7 - fi + echo "Board flash size : 32 Mb, $BOARD_maximum_size bytes, $BOARD_FLASH (hex)" + else + echo "Unsupported board flash size chosen. Only '256', '384', '512', '1024' and '32M' are allowed." + exit 7 + fi fi #Check if Build is selected with argument '-x' if [ ! -z "$board_mem_flag" ] ; then - if [ "$board_mem_flag" == "8" ] ; then + if [ "$board_mem_flag" == "8" ] ; then BOARD_MEM="0x21FF" - echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)" + echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)" elif [ "$board_mem_flag" == "64" ] ; then BOARD_MEM="0xFFFF" - echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)" - else - echo "Unsupported board mem size chosen. Only '8', '64' are allowed." - exit 8 - fi + echo "Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)" + else + echo "Unsupported board mem size chosen. Only '8', '64' are allowed." + exit 8 + fi fi #### Set build environment @@ -398,157 +398,157 @@ BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )" # Check if PF-build-env- exists and downloads + creates it if not # The build environment is based on the supported Arduino IDE portable version with some changes if [ ! -d "../PF-build-env-$BUILD_ENV" ]; then - echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" - mkdir ../PF-build-env-$BUILD_ENV - sleep 5 + echo "$(tput setaf 6)PF-build-env-$BUILD_ENV is missing ... creating it now for you$(tput sgr 0)" + mkdir ../PF-build-env-$BUILD_ENV + sleep 5 fi # Download and extract supported Arduino IDE depending on OS # Windows if [ $TARGET_OS == "windows" ]; then - if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then - echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 11 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" - sleep 2 - unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 11 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then + echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 11 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)" + sleep 2 + unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 11 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Linux if [ $TARGET_OS == "linux" ]; then # 32 or 64 bit version - if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then - echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" - sleep 2 - wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 11 - echo "$(tput sgr 0)" - fi - if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" - sleep 2 - tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 11 - mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor - echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" - fi + if [ ! -f "arduino-$ARDUINO_ENV-linux$Processor.tar.xz" ]; then + echo "$(tput setaf 6)Downloading Linux $Processor Arduino IDE portable...$(tput setaf 2)" + sleep 2 + wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 11 + echo "$(tput sgr 0)" + fi + if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then + echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)" + sleep 2 + tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 11 + mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor + echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" + fi fi # Make Arduino IDE portable if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries fi if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging/ ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging fi # Change Arduino IDE preferences if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt ]; then - echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" - sleep 2 - echo "update.check" - sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "board" - sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "editor.linenumbers" - sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "boardsmanager.additional.urls" - echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt - echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" + echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)" + sleep 2 + echo "update.check" + sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "board" + sed -i "s/board = uno/board = $BOARD/g" ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "editor.linenumbers" + sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "boardsmanager.additional.urls" + echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt + echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" fi # Download and extract Prusa Firmware related parts # Download and extract PrusaResearchRambo board if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then - echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" - sleep 2 - wget $BOARD_FILE_URL || exit 9 + echo "$(tput setaf 6)Downloading Prusa Research AVR MK3 RAMBo EINSy build environment...$(tput setaf 2)" + sleep 2 + wget $BOARD_FILE_URL || exit 9 fi if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then - echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" - sleep 2 - tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware - fi - if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then - mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr - fi - - mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION - echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)" + sleep 2 + tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10 + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware + fi + if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then + mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr + fi + + mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION + echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr 0)" -fi + echo "$(tput sgr 0)" +fi # Download and extract Prusa Firmware specific library files if [ ! -f "PF-build-env-WinLin-$BUILD_ENV.zip" ]; then - echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" - sleep 2 - wget $PF_BUILD_FILE_URL || exit 12 - echo "$(tput sgr 0)" + echo "$(tput setaf 6)Downloading Prusa Firmware build environment...$(tput setaf 2)" + sleep 2 + wget $PF_BUILD_FILE_URL || exit 12 + echo "$(tput sgr 0)" fi if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then - echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" - sleep 2 - unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 - echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" + echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)" + sleep 2 + unzip -o PF-build-env-WinLin-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12 + echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" fi # Check if User updated Arduino IDE 1.8.5 boardsmanager and tools if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then - echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" - echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" - sleep 2 -fi + echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$" + echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)" + sleep 2 +fi if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then - echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" - sleep 2 - echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" - sleep 2 - cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn - echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt - echo "$(tput sgr0)" -fi + echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)" + sleep 2 + echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)" + sleep 2 + cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn + echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt + echo "$(tput sgr0)" +fi if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then - echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" - echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" - echo "Script will not continue until this have been fixed $(tput setaf 2)" - sleep 2 - echo "$(tput sgr0)" - exit 13 + echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!" + echo "Delete ../PF-build-env-$BUILD_ENV and start the script again" + echo "Script will not continue until this have been fixed $(tput setaf 2)" + sleep 2 + echo "$(tput sgr0)" + exit 13 fi @@ -560,54 +560,54 @@ cd $SCRIPT_PATH # Check if git is available if type git > /dev/null; then - git_available="1" + git_available="1" fi # # '-v' argument defines which variant of the Prusa Firmware will be compiled if [ -z "$variant_flag" ] ; then - # Select which variant of the Prusa Firmware will be compiled, like - PS3="Select a variant: " - while IFS= read -r -d $'\0' f; do - options[i++]="$f" - done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - select opt in "${options[@]}" "All" "Quit"; do - case $opt in - *.h) - VARIANT=$(basename "$opt" ".h") - VARIANTS[i++]="$opt" - break - ;; - "All") - VARIANT="All" - VARIANTS=${options[*]} - break - ;; - "Quit") - echo "You chose to stop" - exit 20 - ;; - *) - echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" - ;; - esac - done + # Select which variant of the Prusa Firmware will be compiled, like + PS3="Select a variant: " + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + select opt in "${options[@]}" "All" "Quit"; do + case $opt in + *.h) + VARIANT=$(basename "$opt" ".h") + VARIANTS[i++]="$opt" + break + ;; + "All") + VARIANT="All" + VARIANTS=${options[*]} + break + ;; + "Quit") + echo "You chose to stop" + exit 20 + ;; + *) + echo "$(tput setaf 1)This is not a valid variant$(tput sgr0)" + ;; + esac + done else - if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then - VARIANTS=$variant_flag - elif [ "$variant_flag" == "All" ] ; then - while IFS= read -r -d $'\0' f; do - options[i++]="$f" - done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - VARIANT="All" - VARIANTS=${options[*]} - else - echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" - echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" - ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename - echo "$(tput sgr0)" - exit 21 - fi + if [ -f "$SCRIPT_PATH/Firmware/variants/$variant_flag" ] ; then + VARIANTS=$variant_flag + elif [ "$variant_flag" == "All" ] ; then + while IFS= read -r -d $'\0' f; do + options[i++]="$f" + done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) + VARIANT="All" + VARIANTS=${options[*]} + else + echo "$(tput setaf 1)Argument $variant_flag could not be found in Firmware/variants please choose a valid one.$(tput sgr0)" + echo "Only $(tput setaf 2)'All'$(tput sgr0) and file names below are allowed as variant '-v' argument.$(tput setaf 2)" + ls -1 $SCRIPT_PATH/Firmware/variants/*.h | xargs -n1 basename + echo "$(tput sgr0)" + exit 21 + fi fi #'-l' argument defines if it is an English only version. Known values EN_ONLY / ALL @@ -615,86 +615,86 @@ fi MULTI_LANGUAGE_CHECK=$(grep --max-count=1 "^#define LANG_MODE *" $SCRIPT_PATH/Firmware/config.h|sed -e's/ */ /g'|cut -d ' ' -f3) if [ -z "$language_flag" ] ; then - PS3="Select a language: " - echo - echo "Which lang-build do you want?" - select yn in "Multi languages" "English only"; do - case $yn in - "Multi languages") - LANGUAGES="ALL" - break - ;; - "English only") - LANGUAGES="EN_ONLY" - break - ;; - *) - echo "$(tput setaf 1)This is not a valid language$(tput sgr0)" - ;; - esac - done + PS3="Select a language: " + echo + echo "Which lang-build do you want?" + select yn in "Multi languages" "English only"; do + case $yn in + "Multi languages") + LANGUAGES="ALL" + break + ;; + "English only") + LANGUAGES="EN_ONLY" + break + ;; + *) + echo "$(tput setaf 1)This is not a valid language$(tput sgr0)" + ;; + esac + done else - if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then - LANGUAGES=$language_flag - else - echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" - exit 22 - fi + if [[ "$language_flag" == "ALL" || "$language_flag" == "EN_ONLY" ]] ; then + LANGUAGES=$language_flag + else + echo "$(tput setaf 1)Language argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'ALL'$(tput sgr0) or $(tput setaf 2)'EN_ONLY'$(tput sgr0) are allowed as language '-l' argument!" + exit 22 + fi fi #Check if DEV_STATUS is selected via argument '-d' if [ ! -z "$devel_flag" ] ; then - if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then - DEV_STATUS_SELECTED=$devel_flag - else - echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" - exit 23 - fi + if [[ "$devel_flag" == "GOLD" || "$devel_flag" == "RC" || "$devel_flag" == "BETA" || "$devel_flag" == "ALPHA" || "$devel_flag" == "DEVEL" || "$devel_flag" == "DEBUG" || "$devel_flag" == "UNKNOWN" ]] ; then + DEV_STATUS_SELECTED=$devel_flag + else + echo "$(tput setaf 1)Development argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'GOLD', 'RC', 'BETA', 'ALPHA', 'DEVEL', 'DEBUG' or 'UNKNOWN' $(tput sgr0) are allowed as devel '-d' argument!$(tput sgr0)" + exit 23 + fi fi #Check if Build is selected via argument '-b' if [ ! -z "$build_flag" ] ; then - if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then - echo "Build changed to $build_flag" - BUILD=$(git rev-list --count HEAD) - elif [[ $build_flag =~ ^[0-9]+$ ]] ; then - BUILD=$build_flag - else - echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" - echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" - exit 24 + if [[ "$build_flag" == "Auto" && "$git_available" == "1" ]] ; then + echo "Build changed to $build_flag" + BUILD=$(git rev-list --count HEAD) + elif [[ $build_flag =~ ^[0-9]+$ ]] ; then + BUILD=$build_flag + else + echo "$(tput setaf 1)Build number argument is wrong!$(tput sgr0)" + echo "Only $(tput setaf 2)'Auto' (git needed) or numbers $(tput sgr0) are allowed as build '-b' argument!$(tput sgr0)" + exit 24 - fi - echo "New Build number is: $BUILD" + fi + echo "New Build number is: $BUILD" fi # check if script has been started with arguments if [[ "$#" -eq "0" || "$output_flag" == 1 ]] ; then - OUTPUT=1 + OUTPUT=1 else - OUTPUT=0 + OUTPUT=0 fi #echo "Output is:" $OUTPUT #Check git branch has changed if [ ! -z "git_available" ]; then - BRANCH="" - CLEAN_PF_FW_BUILD=0 + BRANCH="" + CLEAN_PF_FW_BUILD=0 else - BRANCH=$(git branch --show-current) - echo "Current branch is:" $BRANCH - if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then - echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch - echo "created PF-build.branch file" - else - PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") - echo "Previous branch was:" $PRE_BRANCH - if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then - CLEAN_PF_FW_BUILD=1 - echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch - fi - fi + BRANCH=$(git branch --show-current) + echo "Current branch is:" $BRANCH + if [ ! -f "$SCRIPT_PATH/../PF-build.branch" ]; then + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + echo "created PF-build.branch file" + else + PRE_BRANCH=$(cat "$SCRIPT_PATH/../PF-build.branch") + echo "Previous branch was:" $PRE_BRANCH + if [ ! "$BRANCH" == "$PRE_BRANCH" ] ; then + CLEAN_PF_FW_BUILD=1 + echo "$BRANCH" >| $SCRIPT_PATH/../PF-build.branch + fi + fi fi #Set BUILD_ENV_PATH @@ -714,147 +714,147 @@ BUILD_PATH="$( pwd -P )" #Check git branch has changed if [ "$CLEAN_PF_FW_BUILD" == "1" ]; then - read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" - rm -r * + read -t 10 -p "Branch changed, cleaning Prusa-Firmware-build folder" + rm -r * else - echo "Nothing to clean up" + echo "Nothing to clean up" fi for v in ${VARIANTS[*]} do - VARIANT=$(basename "$v" ".h") - # Find firmware version in Configuration.h file and use it to generate the hex filename - FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') - if [ -z "$BUILD" ] ; then - # Find build version in Configuration.h file and use it to generate the hex filename - BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - else - # Find and replace build version in Configuration.h file - BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) - echo "Original build number: $BUILD_ORG" - sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h - fi - # Check if the motherboard is an EINSY and if so only one hex file will generated - MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) - # Check development status - DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) - if [ -z "$DEV_STATUS_SELECTED" ] ; then - if [[ "$DEV_CHECK" == *"RC"* ]] ; then - DEV_STATUS="RC" - elif [[ "$DEV_CHECK" == "ALPHA" ]]; then - DEV_STATUS="ALPHA" - elif [[ "$DEV_CHECK" == "BETA" ]]; then - DEV_STATUS="BETA" - elif [[ "$DEV_CHECK" == "DEVEL" ]]; then - DEV_STATUS="DEVEL" - elif [[ "$DEV_CHECK" == "DEBUG" ]]; then - DEV_STATUS="DEBUG" - else - DEV_STATUS="UNKNOWN" - echo - echo "$(tput setaf 5)DEV_STATUS is UNKNOWN. Do you wish to set DEV_STATUS to GOLD?$(tput sgr0)" - PS3="Select YES only if source code is tested and trusted: " - select yn in "Yes" "No"; do - case $yn in - Yes) - DEV_STATUS="GOLD" - DEV_STATUS_SELECTED="GOLD" - break - ;; - No) - DEV_STATUS="UNKNOWN" - DEV_STATUS_SELECTED="UNKNOWN" - break - ;; - *) - echo "$(tput setaf 1)This is not a valid DEV_STATUS$(tput sgr0)" - ;; - esac - done - fi - else - DEV_STATUS=$DEV_STATUS_SELECTED - fi - #Prepare hex files folders - if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then - mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 - fi - OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" + VARIANT=$(basename "$v" ".h") + # Find firmware version in Configuration.h file and use it to generate the hex filename + FW=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g') + if [ -z "$BUILD" ] ; then + # Find build version in Configuration.h file and use it to generate the hex filename + BUILD=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + else + # Find and replace build version in Configuration.h file + BUILD_ORG=$(grep --max-count=1 "\bFW_COMMIT_NR\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d ' ' -f3) + echo "Original build number: $BUILD_ORG" + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD/g" $SCRIPT_PATH/Firmware/Configuration.h + fi + # Check if the motherboard is an EINSY and if so only one hex file will generated + MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) + # Check development status + DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2) + if [ -z "$DEV_STATUS_SELECTED" ] ; then + if [[ "$DEV_CHECK" == *"RC"* ]] ; then + DEV_STATUS="RC" + elif [[ "$DEV_CHECK" == "ALPHA" ]]; then + DEV_STATUS="ALPHA" + elif [[ "$DEV_CHECK" == "BETA" ]]; then + DEV_STATUS="BETA" + elif [[ "$DEV_CHECK" == "DEVEL" ]]; then + DEV_STATUS="DEVEL" + elif [[ "$DEV_CHECK" == "DEBUG" ]]; then + DEV_STATUS="DEBUG" + else + DEV_STATUS="UNKNOWN" + echo + echo "$(tput setaf 5)DEV_STATUS is UNKNOWN. Do you wish to set DEV_STATUS to GOLD?$(tput sgr0)" + PS3="Select YES only if source code is tested and trusted: " + select yn in "Yes" "No"; do + case $yn in + Yes) + DEV_STATUS="GOLD" + DEV_STATUS_SELECTED="GOLD" + break + ;; + No) + DEV_STATUS="UNKNOWN" + DEV_STATUS_SELECTED="UNKNOWN" + break + ;; + *) + echo "$(tput setaf 1)This is not a valid DEV_STATUS$(tput sgr0)" + ;; + esac + done + fi + else + DEV_STATUS=$DEV_STATUS_SELECTED + fi + #Prepare hex files folders + if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" ]; then + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD || exit 28 + fi + OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$MOTHERBOARD" if [ "$BOARD" != "prusa_einsy_rambo" ]; then - if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD" ]; then - mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD || exit 28 - fi + if [ ! -d "$SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD" ]; then + mkdir -p $SCRIPT_PATH/../PF-build-hex/FW$FW-Build$BUILD/$BOARD || exit 28 + fi OUTPUT_FOLDER="PF-build-hex/FW$FW-Build$BUILD/$BOARD" fi - - #Check if exactly the same hexfile already exists - if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename - echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - fi - if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then - echo "" - ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename - echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - fi - - #List some useful data - echo "$(tput setaf 2)$(tput setab 7) " - echo "Variant :" $VARIANT - echo "Firmware :" $FW - echo "Build # :" $BUILD - echo "Dev Check :" $DEV_CHECK - echo "DEV Status :" $DEV_STATUS - echo "Motherboard:" $MOTHERBOARD + + #Check if exactly the same hexfile already exists + if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex" && "$LANGUAGES" == "ALL" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex | xargs -n1 basename + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + elif [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex" && "$LANGUAGES" == "EN_ONLY" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex | xargs -n1 basename + echo "$(tput setaf 6)This hex file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + fi + if [[ -f "$SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip" && "$LANGUAGES" == "ALL" ]]; then + echo "" + ls -1 $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip | xargs -n1 basename + echo "$(tput setaf 6)This zip file to be compiled already exists! To cancel this process press CRTL+C and rename existing hex file.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + fi + + #List some useful data + echo "$(tput setaf 2)$(tput setab 7) " + echo "Variant :" $VARIANT + echo "Firmware :" $FW + echo "Build # :" $BUILD + echo "Dev Check :" $DEV_CHECK + echo "DEV Status :" $DEV_STATUS + echo "Motherboard:" $MOTHERBOARD echo "Board flash:" $BOARD_FLASH echo "Board mem :" $BOARD_MEM - echo "Languages :" $LANGUAGES - echo "Hex-file Folder:" $OUTPUT_FOLDER - echo "$(tput sgr0)" + echo "Languages :" $LANGUAGES + echo "Hex-file Folder:" $OUTPUT_FOLDER + echo "$(tput sgr0)" - #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h - if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 - else - echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 - fi + #Prepare Firmware to be compiled by copying variant as Configuration_prusa.h + if [ ! -f "$SCRIPT_PATH/Firmware/Configuration_prusa.h" ]; then + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + else + echo "$(tput setaf 6)Configuration_prusa.h already exist it will be overwritten in 10 seconds by the chosen variant.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + cp -f $SCRIPT_PATH/Firmware/variants/$VARIANT.h $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 29 + fi - #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint - sed -i -- "s/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/g" $SCRIPT_PATH/Firmware/Configuration.h + #Prepare Configuration.h to use the correct FW_DEV_VERSION to prevent LCD messages when connecting with OctoPrint + sed -i -- "s/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/g" $SCRIPT_PATH/Firmware/Configuration.h - # set FW_REPOSITORY - sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h + # set FW_REPOSITORY + sed -i -- 's/#define FW_REPOSITORY "Unknown"/#define FW_REPOSITORY "Prusa3d"/g' $SCRIPT_PATH/Firmware/Configuration.h - #Prepare English only or multi-language version to be build - if [ $LANGUAGES == "EN_ONLY" ]; then - echo " " - echo "English only language firmware will be built" - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h - echo " " - else - echo " " - echo "Multi-language firmware will be built" - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h - echo " " - fi + #Prepare English only or multi-language version to be build + if [ $LANGUAGES == "EN_ONLY" ]; then + echo " " + echo "English only language firmware will be built" + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE 0/g" $SCRIPT_PATH/Firmware/config.h + echo " " + else + echo " " + echo "Multi-language firmware will be built" + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE 1/g" $SCRIPT_PATH/Firmware/config.h + echo " " + fi # Prepare Board mem and flash modifications ## Check board mem size @@ -921,154 +921,154 @@ do sed -i -- "s/^prusa_einsy_rambo.upload.maximum_size.*/prusa_einsy_rambo.upload.maximum_size=${BOARD_maximum_size}/g" $BUILD_ENV_PATH/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION/boards.txt fi - #Check if compiler flags are set to Prusa specific needs for the rambo board. -# if [ $TARGET_OS == "windows" ]; then -# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" -# fi - - #### End of Prepare building - - #### Start building - - export ARDUINO=$BUILD_ENV_PATH - #echo $BUILD_ENV_PATH - #export BUILDER=$ARDUINO/arduino-builder + #Check if compiler flags are set to Prusa specific needs for the rambo board. +# if [ $TARGET_OS == "windows" ]; then +# RAMBO_PLATFORM_FILE="PrusaResearchRambo/avr/platform.txt" +# fi + + #### End of Prepare building + + #### Start building + + export ARDUINO=$BUILD_ENV_PATH + #echo $BUILD_ENV_PATH + #export BUILDER=$ARDUINO/arduino-builder - echo - #read -t 5 -p "Press Enter..." - echo + echo + #read -t 5 -p "Press Enter..." + echo - echo "Start to build Prusa Firmware ..." - echo "Using variant $VARIANT$(tput setaf 3)" - if [ $OUTPUT == "1" ] ; then - sleep 2 - fi + echo "Start to build Prusa Firmware ..." + echo "Using variant $VARIANT$(tput setaf 3)" + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 36 - fi + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 36 + fi - $BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 - $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 - echo "$(tput sgr 0)" + $BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 + $BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30 + echo "$(tput sgr 0)" - if [ $LANGUAGES == "ALL" ]; then - echo "$(tput setaf 2)" + if [ $LANGUAGES == "ALL" ]; then + echo "$(tput setaf 2)" - echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK - echo "$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - sleep 2 - fi - cd $SCRIPT_PATH/lang - echo "$(tput setaf 3)" - ./config.sh || exit 31 - echo "$(tput sgr 0)" - # Check if previous languages and firmware build exist and if so clean them up - if [ -f "lang_en.tmp" ]; then - echo "" - echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - echo "$(tput setaf 3)" - ./lang-clean.sh - echo "$(tput sgr 0)" - fi - if [ -f "progmem.out" ]; then - echo "" - echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" - if [ $OUTPUT == "1" ] ; then - read -t 10 -p "Press Enter to continue..." - fi - echo "$(tput setaf 3)" - ./fw-clean.sh - echo "$(tput sgr 0)" - fi - # build languages - echo "$(tput setaf 3)" - ./lang-build.sh || exit 32 - #Community language support - ./lang-community.sh || exit 33 - # Combine compiled firmware with languages - ./fw-build.sh || exit 34 - cp not_tran.txt not_tran_$VARIANT.txt - cp not_used.txt not_used_$VARIANT.txt - echo "$(tput sgr 0)" - # Check if the motherboard is an EINSY and if so only one hex file will generated - MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) - # If the motherboard is an EINSY just copy one hexfile - if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then - echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" - cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex - else - echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" - cp -f firmware_cz.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-cz.hex - cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-de.hex - cp -f firmware_es.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-es.hex - cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex - cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex - cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex - cp -f firmware_nl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-nl.hex - if [ $TARGET_OS == "windows" ]; then - zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - elif [ $TARGET_OS == "linux" ]; then - zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex - fi - fi - # Cleanup after build - if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then - echo "$(tput setaf 3)" - ./fw-clean.sh || exit 35 - ./lang-clean.sh || exit 36 - echo "$(tput sgr 0)" - fi - else - echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" - cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 37 - fi + echo "Building multi language firmware" $MULTI_LANGUAGE_CHECK + echo "$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + sleep 2 + fi + cd $SCRIPT_PATH/lang + echo "$(tput setaf 3)" + ./config.sh || exit 31 + echo "$(tput sgr 0)" + # Check if previous languages and firmware build exist and if so clean them up + if [ -f "lang_en.tmp" ]; then + echo "" + echo "$(tput setaf 6)Previous lang build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + echo "$(tput setaf 3)" + ./lang-clean.sh + echo "$(tput sgr 0)" + fi + if [ -f "progmem.out" ]; then + echo "" + echo "$(tput setaf 6)Previous firmware build files already exist these will be cleaned up in 10 seconds.$(tput sgr 0)" + if [ $OUTPUT == "1" ] ; then + read -t 10 -p "Press Enter to continue..." + fi + echo "$(tput setaf 3)" + ./fw-clean.sh + echo "$(tput sgr 0)" + fi + # build languages + echo "$(tput setaf 3)" + ./lang-build.sh || exit 32 + #Community language support + ./lang-community.sh || exit 33 + # Combine compiled firmware with languages + ./fw-build.sh || exit 34 + cp not_tran.txt not_tran_$VARIANT.txt + cp not_used.txt not_used_$VARIANT.txt + echo "$(tput sgr 0)" + # Check if the motherboard is an EINSY and if so only one hex file will generated + MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3) + # If the motherboard is an EINSY just copy one hexfile + if [ "$MOTHERBOARD" = "BOARD_EINSY_1_0a" ]; then + echo "$(tput setaf 2)Copying multi language firmware for MK3/Einsy board to PF-build-hex folder$(tput sgr 0)" + cp -f firmware.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.hex + else + echo "$(tput setaf 2)Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$(tput sgr 0)" + cp -f firmware_cz.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-cz.hex + cp -f firmware_de.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-de.hex + cp -f firmware_es.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-es.hex + cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex + cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex + cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex + cp -f firmware_nl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-nl.hex + if [ $TARGET_OS == "windows" ]; then + zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + elif [ $TARGET_OS == "linux" ]; then + zip -m -j ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip ../../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex + fi + fi + # Cleanup after build + if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then + echo "$(tput setaf 3)" + ./fw-clean.sh || exit 35 + ./lang-clean.sh || exit 36 + echo "$(tput sgr 0)" + fi + else + echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)" + cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 37 + fi - # Cleanup Firmware - if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then - rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 38 - fi - if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/*RAMBo10a*.txt - fi - if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt - fi - if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/not_tran.txt - fi - if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 - then - rm $SCRIPT_PATH/lang/not_used.txt - fi + # Cleanup Firmware + if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then + rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 38 + fi + if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*RAMBo10a*.txt + fi + if find $SCRIPT_PATH/lang/ -name '*MK2-RAMBo13a*' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/*MK2-RAMBo13a*.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_tran.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_tran.txt + fi + if find $SCRIPT_PATH/lang/ -name 'not_used.txt' -printf 1 -quit | grep -q 1 + then + rm $SCRIPT_PATH/lang/not_used.txt + fi - #New fresh PF-Firmware-build - if [ "$new_build_flag" == "1" ]; then - rm -r -f $BUILD_PATH/* || exit 39 - fi + #New fresh PF-Firmware-build + if [ "$new_build_flag" == "1" ]; then + rm -r -f $BUILD_PATH/* || exit 39 + fi - # Restore files to previous state - sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h - sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h - if [ ! -z "$BUILD_ORG" ] ; then - sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h - fi - echo $MULTI_LANGUAGE_CHECK - #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h - sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h - if [ $OUTPUT == "1" ] ; then - sleep 5 - fi + # Restore files to previous state + sed -i -- "s/^#define FW_DEV_VERSION FW_VERSION_$DEV_STATUS/#define FW_DEV_VERSION FW_VERSION_UNKNOWN/g" $SCRIPT_PATH/Firmware/Configuration.h + sed -i -- 's/^#define FW_REPOSITORY "Prusa3d"/#define FW_REPOSITORY "Unknown"/g' $SCRIPT_PATH/Firmware/Configuration.h + if [ ! -z "$BUILD_ORG" ] ; then + sed -i -- "s/^#define FW_COMMIT_NR.*/#define FW_COMMIT_NR $BUILD_ORG/g" $SCRIPT_PATH/Firmware/Configuration.h + fi + echo $MULTI_LANGUAGE_CHECK + #sed -i -- "s/^#define LANG_MODE * /#define LANG_MODE $MULTI_LANGUAGE_CHECK/g" $SCRIPT_PATH/Firmware/config.h + sed -i -- "s/^#define LANG_MODE *1/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h + sed -i -- "s/^#define LANG_MODE *0/#define LANG_MODE ${MULTI_LANGUAGE_CHECK}/g" $SCRIPT_PATH/Firmware/config.h + if [ $OUTPUT == "1" ] ; then + sleep 5 + fi done # Switch to hex path and list build files From e765c300b0e1e54716e4e10a347502118d16f265 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Wed, 5 May 2021 20:05:35 +0200 Subject: [PATCH 19/19] Update MK404 part to '--bootloader-file ""' Some cosmetics --- PF-build.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PF-build.sh b/PF-build.sh index 7da9b51b..7224924e 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -894,7 +894,7 @@ do if [ $CURRENT_BOARD_MEM != "0x21FF" ] ; then echo "Board mem has been already modified or not reset" echo "Current:" $CURRENT_BOARD_MEM - PS3="Select Yes if you want to reset it." + PS3="Select $(tput setaf 2)Yes$(tput sgr 0) if you want to reset it." select yn in "Yes" "No"; do case $yn in Yes) @@ -926,7 +926,7 @@ do echo "Board flash has been already modified or not reset" echo "Current flash size:" $CURRENT_BOARD_FLASH echo "Current max. size:" $CURRENT_BOARD_maximum_size - PS3="Select $(tput setaf 3)Yes$(tput sgr 0) if you want to reset it." + PS3="Select $(tput setaf 2)Yes$(tput sgr 0) if you want to reset it." select yn in "Yes" "No"; do case $yn in Yes) @@ -1143,12 +1143,12 @@ if [ ! -z "$mk404_flag" ]; then fi fi -# Run MK404 with 'debugcore' and/or 'bootloader_file' +# Run MK404 with 'debugcore' and/or 'bootloader-file' echo "MK404_DEBUG --$MK404_DEBUG--" if [ "$MK404_DEBUG" == "atmega404" ]; then MK404_options="--debugcore" elif [ "$MK404_DEBUG" == "atmega404_no_bootloader" ]; then - MK404_options="--debugcore --bootloader-file no" + MK404_options='--debugcore --bootloader-file ""' fi # Run MK404 with grafics