56
56
# Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE
57
57
# it will use the default Arduino IDE folders and so can corrupt the build environment.
58
58
#
59
- # Version: 2.0.2-Build_74
59
+ # Version: 2.0.2-Build_69
60
60
# Change log:
61
61
# 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt'
62
62
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
177
177
# Fix DEV_STATUS to set correctly on RC/BETA/ALPHA/DEVEL
178
178
# Fix atmegaMK404 Board mem and flash modifications
179
179
# Limit atmegaMK404 boards mem to 8,16,32
180
- # 20 Jun 2022, 3d-gussner, Change to Ardunio_boards v1.0.5-1
181
- # 20 Jun 2022, wavexx , New PO-based language translation support
182
- # 20 Jun 2022, 3d-gussner, fix Mk2.5/S zip after change PO-based language translation support
180
+ # 20 Jun 2022, 3d-gussner, Change to Ardunio_boards v 1.0.5-1
181
+
183
182
184
183
SCRIPT_PATH=" $( cd " $( dirname " $0 " ) " ; pwd -P ) "
185
184
export SRCDIR=$SCRIPT_PATH
@@ -236,7 +235,7 @@ while getopts b:c:d:g:h:i:j:l:m:n:o:p:v:x:y:?h flag
236
235
# '?' 'h' argument usage and help
237
236
if [ " $help_flag " == " 1" ] ; then
238
237
echo " ***************************************"
239
- echo " * PF-build.sh Version: 2.0.2-Build_74 *"
238
+ echo " * PF-build.sh Version: 2.0.2-Build_69 *"
240
239
echo " ***************************************"
241
240
echo " Arguments:"
242
241
echo " $( tput setaf 2) -b$( tput sgr0) Build/commit number"
@@ -262,15 +261,15 @@ echo " -b : '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number"
262
261
echo " -c : '$( tput setaf 2) 0$( tput sgr0) ' clean up, '$( tput setaf 2) 1$( tput sgr0) ' keep"
263
262
echo " -d : '$( 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) '"
264
263
echo " -g : '$( tput setaf 2) 0$( tput sgr0) ' no '$( tput setaf 2) 1$( tput sgr0) ' lite '$( tput setaf 2) 2$( tput sgr0) ' fancy '$( tput setaf 2) 3$( tput sgr0) ' lite with Quad_HR '$( tput setaf 2) 4$( tput sgr0) ' fancy with Quad_HR"
265
- echo " -i : '$( tput setaf 2) 1.8.5$( tput sgr0) ', '$( tput setaf 2) 1.8.19$( tput sgr0) '"
264
+ echo " -i : '$( tput setaf 2) 1.8.5$( tput sgr0) ', '$( tput setaf 2) 1.8.13 $( tput sgr0 ) ', ' $( tput setaf 2 ) 1.8. 19$( tput sgr0) '"
266
265
echo " -j : '$( tput setaf 2) 0$( tput sgr0) ' no, '$( tput setaf 2) 1$( tput sgr0) ' yes"
267
266
echo " -l : '$( tput setaf 2) ALL$( tput sgr0) ' for multi language or '$( tput setaf 2) EN_ONLY$( tput sgr0) ' for English only"
268
267
echo " -m : '$( tput setaf 2) 0$( tput sgr0) ' no, '$( tput setaf 2) 1$( tput sgr0) ' yes '$( tput setaf 2) 2$( tput sgr0) ' with MMU2"
269
268
echo " -n : '$( tput setaf 2) 0$( tput sgr0) ' no, '$( tput setaf 2) 1$( tput sgr0) ' yes"
270
269
echo " -o : '$( tput setaf 2) 1$( tput sgr0) ' force or '$( tput setaf 2) 0$( tput sgr0) ' block output and delays"
271
270
echo " -p : '$( tput setaf 2) 0$( tput sgr0) ' no, '$( tput setaf 2) 1$( tput sgr0) ' yes"
272
271
echo " -v : '$( tput setaf 2) All$( tput sgr0) ' or variant file name"
273
- echo " -x : '$( tput setaf 2) 8$( tput sgr0) ',' $( tput setaf 2 ) 16 $( tput sgr0 ) 'or' $( tput setaf 2) 32 $( tput sgr0) ' Kb."
272
+ echo " -x : '$( tput setaf 2) 8$( tput sgr0) ' or ' $( tput setaf 2) 64 $( tput sgr0) ' Kb."
274
273
echo " -y : '$( tput setaf 2) 256$( tput sgr0) ','$( tput setaf 2) 384$( tput sgr0) ','$( tput setaf 2) 512$( tput sgr0) ','$( tput setaf 2) 1024$( tput sgr0) ''$( tput setaf 2) 32M$( tput sgr0) '"
275
274
echo
276
275
echo " Example:"
@@ -346,21 +345,25 @@ if [ ! -z "$board_mem_flag" ] ; then
346
345
BOARD_MEM=" 0x7DFF"
347
346
echo " Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)"
348
347
OUTPUT_FILENAME_SUFFIX=" ${OUTPUT_FILENAME_SUFFIX} _RAM-$board_mem_flag "
348
+ elif [ " $board_mem_flag " == " 64" ] ; then
349
+ BOARD_MEM=" 0xFFFF"
350
+ echo " Board mem size : $board_mem_flag Kb, $BOARD_MEM (hex)"
351
+ OUTPUT_FILENAME_SUFFIX=" ${OUTPUT_FILENAME_SUFFIX} _RAM-$board_mem_flag "
349
352
else
350
- echo " Unsupported board mem size chosen. Only '8', '16' and '32 ' are allowed."
353
+ echo " Unsupported board mem size chosen. Only '8', '64 ' are allowed."
351
354
failures 5
352
355
fi
353
356
fi
354
357
355
358
# Start: Check if Arduino IDE version is correct
356
359
if [ ! -z " $IDE_flag " ]; then
357
- if [[ " $IDE_flag " == " 1.8.5" || " $IDE_flag " == " 1.8.19" ]]; then
360
+ if [[ " $IDE_flag " == " 1.8.5" || " $IDE_flag " == " 1.8.13 " || " $IDE_flag " == " 1.8. 19" ]]; then
358
361
ARDUINO_ENV=" ${IDE_flag} "
359
362
else
360
- ARDUINO_ENV=" 1.8.19 "
363
+ ARDUINO_ENV=" 1.8.5 "
361
364
fi
362
365
else
363
- ARDUINO_ENV=" 1.8.19 "
366
+ ARDUINO_ENV=" 1.8.5 "
364
367
fi
365
368
# End: Check if Arduino IDE version is correct
366
369
543
546
# ### Start: Set build environment
544
547
set_build_env_variables ()
545
548
{
546
- BUILD_ENV=" 1.0.7 "
549
+ BUILD_ENV=" 1.0.6 "
547
550
BOARD=" prusa_einsy_rambo"
548
551
BOARD_PACKAGE_NAME=" PrusaResearch"
549
552
if [ " $ARDUINO_ENV " == " 1.8.19" ]; then
@@ -1019,15 +1022,12 @@ prepare_code_for_compiling()
1019
1022
MOTHERBOARD=$( grep --max-count=1 " \bMOTHERBOARD\b" $SCRIPT_PATH /Firmware/variants/$VARIANT .h | sed -e' s/ */ /g' | cut -d ' ' -f3)
1020
1023
# Check development status
1021
1024
FW_FLAV=$( grep --max-count=1 " //#define FW_FLAVOR\b" $SCRIPT_PATH /Firmware/Configuration.h| cut -d ' ' -f1)
1022
- # echo "FLAV:$FW_FLAV"
1023
1025
if [[ " $FW_FLAV " != " //#define" ]] ; then
1024
1026
FW_FLAVOR=$( grep --max-count=1 " \bFW_FLAVOR\b" $SCRIPT_PATH /Firmware/Configuration.h| sed -e' s/ */ /g' | cut -d ' ' -f3)
1025
- # echo "FLAVOR:$FW_FLAVOR"
1026
1027
FW_FLAVERSION=$( grep --max-count=1 " \bFW_FLAVERSION\b" $SCRIPT_PATH /Firmware/Configuration.h| sed -e' s/ */ /g' | cut -d ' ' -f3)
1027
1028
if [[ " $FW_FLAVOR " != " //#define FW_FLAVOR" ]] ; then
1028
1029
FW=" $FW -$FW_FLAVOR "
1029
1030
DEV_CHECK=" $FW_FLAVOR "
1030
- # echo "DEV:$DEV_CHECK"
1031
1031
if [ ! -z " $FW_FLAVERSION " ] ; then
1032
1032
FW=" $FW$FW_FLAVERSION "
1033
1033
fi
@@ -1193,28 +1193,24 @@ prepare_variant_for_compiling()
1193
1193
compile_en_firmware ()
1194
1194
{
1195
1195
# # Check board mem size
1196
- CURRENT_BOARD_MEM=$( grep " #define RAMEND" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h | sed -e' s/.* //g' | cut -d ' ' -f2 | tr -d ' \t\n\r ' )
1196
+ 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 ' )
1197
1197
if [ $CURRENT_BOARD_MEM != " 0x21FF" ] ; then
1198
- echo " $( tput setaf 1 ) Board mem has been modified or not reset$( tput sgr 0 ) "
1198
+ echo " Board mem has been already modified or not reset"
1199
1199
echo " Current:" $CURRENT_BOARD_MEM
1200
1200
PS3=" Select $( tput setaf 2) Yes$( tput sgr 0) if you want to reset it."
1201
1201
select yn in " Yes" " No" ; do
1202
1202
case $yn in
1203
1203
Yes)
1204
1204
echo " Resetting board mem size"
1205
1205
sed -i -- " s/^#define RAMEND .*$/#define RAMEND 0x21FF/g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1206
- BOARD_MEM_MODIFIED=0
1207
1206
break
1208
1207
;;
1209
1208
* )
1210
1209
echo " Continuing with modified mem size"
1211
- BOARD_MEM_MODIFIED=1
1212
1210
break
1213
1211
;;
1214
1212
esac
1215
1213
done
1216
- else
1217
- BOARD_MEM_MODIFIED=0
1218
1214
fi
1219
1215
# # Modify board mem size
1220
1216
if [[ ! -z $BOARD_MEM && " $BOARD_MEM " != " 0x21FF" ]] ; then
@@ -1224,14 +1220,13 @@ compile_en_firmware()
1224
1220
read -t 5 -p " To cancel press $( tput setaf 1) CRTL+C$( tput sgr 0) "
1225
1221
echo " "
1226
1222
sed -i -- " s/^#define RAMEND 0x21FF/#define RAMEND ${BOARD_MEM} /g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1227
- BOARD_MEM_MODIFIED=1
1228
1223
fi
1229
1224
1230
1225
# # Check board flash size
1231
- CURRENT_BOARD_FLASH=$( grep " #define FLASHEND" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h | sed -e' s/.* //g' | cut -d ' ' -f2 | tr -d ' \t\n\r ' )
1232
- 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 ' \t\n\r ' )
1226
+ 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 ' )
1227
+ 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 ' )
1233
1228
if [[ $CURRENT_BOARD_FLASH != " 0x3FFFF" || $CURRENT_BOARD_maximum_size != " 253952" ]] ; then
1234
- echo " $( tput setaf 1 ) Board flash has been modified or not reset$( tput sgr 0 ) "
1229
+ echo " Board flash has been already modified or not reset"
1235
1230
echo " Current flash size:" $CURRENT_BOARD_FLASH
1236
1231
echo " Current max. size:" $CURRENT_BOARD_maximum_size
1237
1232
PS3=" Select $( tput setaf 2) Yes$( tput sgr 0) if you want to reset it."
@@ -1241,30 +1236,25 @@ compile_en_firmware()
1241
1236
echo " $( tput setaf 1) Resetting board flash size$( tput sgr 0) "
1242
1237
sed -i -- " s/^#define FLASHEND .*$/#define FLASHEND 0x3FFFF/g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1243
1238
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
1244
- BOARD_FLASH_MODIFIED=0
1245
1239
break
1246
1240
;;
1247
1241
* )
1248
1242
echo " $( tput setaf 3) Continuing with modified flash size$( tput sgr 0) "
1249
- BOARD_FLASH_MODIFIED=1
1250
1243
break
1251
1244
;;
1252
1245
esac
1253
1246
done
1254
- else
1255
- BOARD_FLASH_MODIFIED=1
1256
1247
fi
1257
1248
# # Modify boad flash size
1258
1249
if [[ ! -z $BOARD_FLASH && " $BOARD_FLASH " != " 0x3FFFF" ]] ; then
1259
- echo " $( tput setaf 3 ) Modifying board flash size (hex):$( tput sgr 0 ) "
1250
+ echo " Modifying board flash size (hex):"
1260
1251
echo " Old flash size:" $CURRENT_BOARD_FLASH
1261
1252
echo " New flash size:" $BOARD_FLASH
1262
1253
echo " Old max. size:" $CURRENT_BOARD_maximum_size
1263
1254
echo " New max. size:" $BOARD_maximum_size
1264
1255
read -t 5 -p " To cancel press $( tput setaf 1) CRTL+C$( tput sgr 0) "
1265
1256
sed -i -- " s/^#define FLASHEND .*/#define FLASHEND ${BOARD_FLASH} /g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1266
1257
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
1267
- BOARD_FLASH_MODIFIED=1
1268
1258
fi
1269
1259
1270
1260
# Check if compiler flags are set to Prusa specific needs for the rambo board.
@@ -1347,18 +1337,23 @@ create_multi_firmware()
1347
1337
cp -f $BUILD_PATH /Firmware.ino.elf $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME .elf
1348
1338
else
1349
1339
# Search for created firmware languages
1350
- langs=$( find Firmware-intl-en_ * .hex | cut -d " _" -f2 | cut -d " ." -f1)
1340
+ langs=$( find firmware_ * .hex | cut -d " _" -f2 | cut -d " ." -f1)
1351
1341
# Copy found firmware_*.hex files
1352
1342
for la in $langs ; do
1353
- cp -f Firmware-intl-en_ $la .hex $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME -$la .hex
1343
+ cp -f firmware_ $la .hex $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME -$la .hex
1354
1344
done
1355
1345
cp -f $BUILD_PATH /Firmware.ino.elf $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME .elf
1356
1346
echo " $( tput setaf 2) Zip multi language firmware for MK2.5/miniRAMbo board to PF-build-hex folder$( tput sgr 0) "
1357
1347
if [ $TARGET_OS == " windows" ]; then
1358
1348
zip a $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME .zip $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME -?? .hex
1359
1349
# rm $SCRIPT_PATH/../$OUTPUT_FOLDER/$OUTPUT_FILENAME-??.hex
1360
1350
elif [ $TARGET_OS == " linux" ]; then
1361
- zip -j ../../$OUTPUT_FOLDER /$OUTPUT_FILENAME .zip ../../$OUTPUT_FOLDER /$OUTPUT_FILENAME -?? .hex
1351
+ # Make a copy for MK404 sim of MK2, MK2.5, MK2.5S firmware
1352
+ if [ ! -z " $mk404_flag " ]; then
1353
+ cp -f firmware_de.hex $SCRIPT_PATH /../$OUTPUT_FOLDER /$OUTPUT_FILENAME .hex
1354
+ fi
1355
+ # End of MK2, MK2.5, MK2.5S firmware copy
1356
+ zip -j ../../$OUTPUT_FOLDER /$OUTPUT_FILENAME .zip ../../$OUTPUT_FOLDER /$OUTPUT_FILENAME -?? .hex
1362
1357
fi
1363
1358
fi
1364
1359
@@ -1439,15 +1434,9 @@ cleanup_firmware()
1439
1434
fi
1440
1435
1441
1436
# Restore build env files to previous state
1442
- if [ $BOARD_MEM_MODIFIED == " 1" ]; then
1443
- sed -i -- " s/^#define FLASHEND .*$/#define FLASHEND 0x3FFFF/g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1444
- echo " $( tput setaf 2) Restored Board Mem$( tput sgr 0) "
1445
- fi
1446
- if [ $BOARD_FLASH_MODIFIED == " 1" ]; then
1447
- 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
1448
- sed -i -- " s/^#define RAMEND.*/#define RAMEND 0x21FF/g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1449
- echo " $( tput setaf 2) Restored Board Flash$( tput sgr 0) "
1450
- fi
1437
+ sed -i -- " s/^#define FLASHEND .*$/#define FLASHEND 0x3FFFF/g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1438
+ 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
1439
+ sed -i -- " s/^#define RAMEND.*/#define RAMEND 0x21FF/g" $BUILD_ENV_PATH /hardware/tools/avr/avr/include/avr/iom2560.h
1451
1440
1452
1441
}
1453
1442
# ### End: Prepare code for compiling
0 commit comments