Skip to content

Instantly share code, notes, and snippets.

@AmedeeBulle
Created July 1, 2017 13:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AmedeeBulle/548c270ed53605965d720888b3abf6e3 to your computer and use it in GitHub Desktop.
Save AmedeeBulle/548c270ed53605965d720888b3abf6e3 to your computer and use it in GitHub Desktop.
bUltimaker build scripts
#!/bin/bash
#
# Clone of _do_make.bat for linux/osx
#
# Script is generic for all UM firmwares, but needs the 'right' branch of the sources!
#
# My setups
# rm -rf /tmp/x && ./do_make.sh -t UMOP -D DISPLAY_FAN -D ACTION_COMMAND -D FAN_KICKSTART_TIME=300 -D FAN_MIN_PWM=85 -D TWEAK_TEMP -d /tmp/x -y
# rm -rf /tmp/x && ./do_make.sh -t UMO -fgsc -D ULTIMAKER_GT2 -D FAN_KICKSTART_TIME=300 -D FAN_MIN_PWM=25 -D SLOW_PWM_FAN -D TWEAK_TEMP -d /tmp/x -y
# rm -rf /tmp/x && ./do_make.sh -t HBK -fgsc -D ACTION_COMMAND -D ULTIMAKER_GT2 -D FAN_KICKSTART_TIME=300 -D FAN_MIN_PWM=25 -D SLOW_PWM_FAN -D TWEAK_TEMP -d /tmp/x -y
usage() {
cat <<-EOF >&2
Usage: $0 [-y] [-t {UMO|HBK|UMOP}][-s Suffix] [-b Build] [-d Dest ] [-fgsc] [-D Define]...
with
-y : Yes, build firmware! (Default is to print a summary and exit)
-t target : Target firmware, default is UMO
-s Suffix : Suffix used for the firmware name, default derived from target
-b Build : Build name, used in Version String (E.g. 15.01-RC5)
-d Dest : Destination directory for the build (Default is current directory)
-fgsc : Build for the "Reprap Discount Full Graphic Smart Controller"
-D Define : Additional 'DEFINES' passed to Make
Can be used multiple times, quoting required for strings, no spaces allowed
Example: UMO+ with version in firmware
$0 -t UMOP -D "'VERSION_BASE=\"Ultimaker:_14.12\"'"
Use ARDUINO_PATH and ARDUINO_VERSION environment variables to set/override your Arduino location and version
EOF
exit 1
}
# Defaults: we build for UMO, no Suffix in firmware name, no additional defines
Target="UMO"
Suffix=""
Defines=""
MakeParams=""
Build="$(date +%y.%m)-Dev"
DoBuild=""
DestBuild="."
# Arduino defaults
# Override this by setting the respective environment variables
: ${ARDUINO_PATH:="/Applications/Arduino-1.0.6.app/Contents/Resources/Java"}
: ${ARDUINO_VERSION:=106}
: ${MARLIN:="$HOME/BullesCloud/Development/Ultimaker/AmedeeBulle-Marlin"}
PATH="${ARDUINO_PATH}/hardware/tools/avr/bin:${PATH}"
# Defaults for UMO:
HARDWARE_MOTHERBOARD=7
TEMP_SENSOR_1=-1
Version="Ultimaker:_"
# Parse arguments
while [ $# -gt 0 ]
do
case "$1" in
-t)
if [ $# -lt 2 ]
then
usage
else
Target="$2"
case "${Target}" in
UMO)
# Nothing to do, it is our default
;;
HBK)
# Add define and set Suffix
Suffix="HBK"
Defines="${Defines} ULTIMAKER_HBK"
;;
UMOP)
# Set board, sensor and Suffix
Suffix="UMOP"
Version="Ultimaker+:"
HARDWARE_MOTHERBOARD=72
TEMP_SENSOR_1=20
;;
UM2)
# Set board, sensor and Suffix
Suffix="UM2"
Version="Version:_"
HARDWARE_MOTHERBOARD=72
TEMP_SENSOR_1=20
;;
*)
# Invalid
usage
;;
esac
shift; shift
fi
;;
-b)
if [ $# -lt 2 ]
then
usage
else
# Build
Build="$2"
shift; shift
fi
;;
-d)
if [ $# -lt 2 ]
then
usage
else
# Build Dest
DestBuild="$2"
shift; shift
if [ -e "${DestBuild}" -a ! -d "${DestBuild}" ]
then
echo "$0: ${DestBuild} is not a directory" >&2
exit 1
fi
fi
;;
-s)
if [ $# -lt 2 ]
then
usage
else
# Set suffix
Suffix="$2"
shift; shift
fi
;;
-fgsc)
# Add defines and MakeFile parameter
Defines="${Defines} REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER NO_ULTIMAKERCONROLLER"
MakeParams="${MakeParams} U8GLIB=1"
# Add default suffix
Suffix="${Suffix:+${Suffix}_}FGSC"
shift
;;
-D)
if [ $# -lt 2 ]
then
usage
else
# Concatenate defines
Defines="${Defines} $2"
shift; shift
fi
;;
-y)
# Got for it!
DoBuild="Y"
shift
;;
*)
usage
;;
esac
done
Version="${Version}${Build}"
cat <<-EOF
$0: Build summary
Building for : ${Target}
Build version : ${Version}
Build suffix : ${Suffix}
Build directory : ${DestBuild}
Motherboard : ${HARDWARE_MOTHERBOARD}
Temp sensor : ${TEMP_SENSOR_1}
Defines : ${Defines}
Make params : ${MakeParams}
Arduino path : ${ARDUINO_PATH}
Arduino version : ${ARDUINO_VERSION}
EOF
if [ "${DoBuild}" != "Y" ]
then
echo "$0: If you want to proceed with this build, run the same command with the -y paramter..."
exit
fi
# Create Destination dir if it does not exist
if [ ! -e "${DestBuild}" ]
then
mkdir "${DestBuild}" || { echo "$0: cannot create ${DestBuild}" >&2; exit 1; }
fi
BASE_PARAMS="HARDWARE_MOTHERBOARD=${HARDWARE_MOTHERBOARD} ARDUINO_INSTALL_DIR=${ARDUINO_PATH} ARDUINO_VERSION=${ARDUINO_VERSION} ${MakeParams}"
if [ "${Target}" != "UM2" ]
then
# All UMOs
make --no-print-directory \
-C "${MARLIN}/Marlin" \
${BASE_PARAMS} \
BUILD_DIR="${DestBuild}" \
DEFINES="'VERSION_BASE=\"${Version}\"' 'VERSION_PROFILE=\"250000_single\"' BAUDRATE=250000 TEMP_SENSOR_1=0 EXTRUDERS=1 ${Defines}"
echo "Build completed -- firware is: ${DestBuild}/Marlin.hex"
# make ${BASE_PARAMS} BUILD_DIR="${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_250000" \
# DEFINES="'VERSION_BASE=\"${Version}\"' 'VERSION_PROFILE=\"250000_single\"' BAUDRATE=250000 TEMP_SENSOR_1=0 EXTRUDERS=1 ${Defines}"
# make ${BASE_PARAMS} BUILD_DIR="${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_115200" \
# DEFINES="'VERSION_BASE=\"${Version}\"' 'VERSION_PROFILE=\"115200_single\"' BAUDRATE=115200 TEMP_SENSOR_1=0 EXTRUDERS=1 ${Defines}"
# make ${BASE_PARAMS} BUILD_DIR="${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_Dual_250000" \
# DEFINES="'VERSION_BASE=\"${Version}\"' 'VERSION_PROFILE=\"250000_dual\"' BAUDRATE=250000 TEMP_SENSOR_1=${TEMP_SENSOR_1} EXTRUDERS=2 ${Defines}"
# make ${BASE_PARAMS} BUILD_DIR="${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_Dual_115200" \
# DEFINES="'VERSION_BASE=\"${Version}\"' 'VERSION_PROFILE=\"115200_dual\"' BAUDRATE=115200 TEMP_SENSOR_1=${TEMP_SENSOR_1} EXTRUDERS=2 ${Defines}"
# cp "${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_250000/Marlin.hex" "${DestBuild}/MarlinUltimaker${Suffix:+-$Suffix}-250000.hex"
# cp "${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_115200/Marlin.hex" "${DestBuild}/MarlinUltimaker${Suffix:+-$Suffix}-115200.hex"
# cp "${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_Dual_250000/Marlin.hex" "${DestBuild}/MarlinUltimaker${Suffix:+-$Suffix}-250000-dual.hex"
# cp "${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}_Dual_115200/Marlin.hex" "${DestBuild}/MarlinUltimaker${Suffix:+-$Suffix}-115200-dual.hex"
else
# UM2
make ${BASE_PARAMS} BUILD_DIR="${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}" \
DEFINES="'STRING_CONFIG_H_AUTHOR=\"${Version}\"' TEMP_SENSOR_1=0 EXTRUDERS=1 ${Defines}"
make ${BASE_PARAMS} BUILD_DIR="${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}Dual" \
DEFINES="'STRING_CONFIG_H_AUTHOR=\"${Version}\"' TEMP_SENSOR_1=${TEMP_SENSOR_1} EXTRUDERS=2 ${Defines}"
cp "${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}/Marlin.hex" "${DestBuild}/MarlinUltimaker${Suffix:+-$Suffix}.hex"
cp "${DestBuild}/_UltimakerMarlin${Suffix:+_$Suffix}Dual/Marlin.hex" "${DestBuild}/MarlinUltimaker${Suffix:+-$Suffix}-dual.hex"
fi
#!/bin/bash
# Build UMO Plus firware
# Note for the builder:
# Z_MIN_INVERT *true* / false -- Invert endstop logic
# SOFT_ENDSTOPS *undef* -- use software endstops (UMO only)
# Z_HOME_DIR *-1* / 1 -- Home is at Min/Max (-D Z_HOME_DIR=1 for bottom homeing)
# Z_HOME_RETRACT_MM *2* -- Retract after homing
rm -rf /tmp/x && ./do_make.sh -t UMOP \
-D DISPLAY_FAN \
-D ACTION_COMMAND \
-D FAN_KICKSTART_TIME=300 \
-D FAN_MIN_PWM=85 \
-D TWEAK_TEMP \
-D Z_MIN_INVERT=false \
-D SOFT_Z_ALIGN \
-D Z_HOME_RETRACT_MM=20 \
-d /tmp/x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment