55IDF_PATH_DEFAULT=" $HOME /esp/esp-idf"
66MICROPYTHON_PATH=" "
77IDF_PATH=" $IDF_PATH_DEFAULT "
8- BOARD=" "
8+ BOARD=" ESP32_GENERIC_S3 "
99BOARD_VARIANT=" "
10+ CAMERA_MODEL=" "
1011BUILD_DIR=" build-mp_camera"
1112
1213# Parse arguments
1314usage () {
14- echo " Usage: $0 -m <micropython_path> [-i <idf_path>] [-b <board>] [-v <board_variant>]"
15+ echo " Usage: $0 -m <micropython_path> [-i <idf_path>] [-b <board>] [-v <board_variant>] [-c <camera_model>] "
1516 echo " "
1617 echo " Options:"
1718 echo " -m <path> Path to MicroPython directory (required)"
1819 echo " -i <path> Path to ESP-IDF directory (optional, default: $IDF_PATH_DEFAULT )"
19- echo " -b <board> Board name (optional, e.g. ESP32_GENERIC_S3)"
20+ echo " -b <board> Board name (optional, e.g. ESP32_GENERIC_S3, default: $BOARD )"
2021 echo " -v <variant> Board variant (optional, e.g. SPIRAM_OCT)"
22+ echo " -c <model> Camera model (optional, e.g. FREENOVE_ESP32S3_CAM)"
2123 echo " -h Show this help message"
2224 echo " "
2325 echo " Examples:"
2426 echo " $0 -m ~/privat/micropython"
2527 echo " $0 -m ~/privat/micropython -i ~/esp/esp-idf"
2628 echo " $0 -m ~/privat/micropython -b ESP32_GENERIC_S3"
2729 echo " $0 -m ~/privat/micropython -b ESP32_GENERIC_S3 -v SPIRAM_OCT"
30+ echo " $0 -m ~/privat/micropython -b ESP32_GENERIC_S3 -c FREENOVE_ESP32S3_CAM"
2831 exit 1
2932}
3033
3134# Parse command line options
32- while getopts " m:i:b:v:h" opt; do
35+ while getopts " m:i:b:v:c: h" opt; do
3336 case $opt in
3437 m) MICROPYTHON_PATH=" $OPTARG " ;;
3538 i) IDF_PATH=" $OPTARG " ;;
3639 b) BOARD=" $OPTARG " ;;
3740 v) BOARD_VARIANT=" $OPTARG " ;;
41+ c) CAMERA_MODEL=" $OPTARG " ;;
3842 h) usage ;;
3943 * ) usage ;;
4044 esac
@@ -69,18 +73,22 @@ IDF_PATH=$(realpath "$IDF_PATH")
6973MODULE_PATH=$( dirname " $( realpath " $0 " ) " )
7074
7175echo " =========================================="
72- echo " Building MicroPython with IR Learn Module"
76+ echo " Building MicroPython with Camera Module"
7377echo " =========================================="
7478echo " MicroPython path: $MICROPYTHON_PATH "
7579echo " ESP-IDF path: $IDF_PATH "
7680echo " Module path: $MODULE_PATH "
7781if [ -n " $BOARD " ]; then
7882 echo " Board: $BOARD "
83+ BUILD_DIR=" ${BUILD_DIR} -${BOARD} "
7984 if [ -n " $BOARD_VARIANT " ]; then
8085 echo " Board variant: $BOARD_VARIANT "
81- BUILD_DIR=" build- ${BOARD_VARIANT} "
86+ BUILD_DIR=" ${BUILD_DIR} _ ${BOARD_VARIANT} "
8287 fi
8388fi
89+ if [ -n " $CAMERA_MODEL " ]; then
90+ echo " Camera model: $CAMERA_MODEL "
91+ fi
8492echo " Build directory: $BUILD_DIR "
8593echo " =========================================="
8694echo " "
@@ -103,6 +111,10 @@ if [ -n "$BOARD_VARIANT" ]; then
103111 IDF_CMD=" $IDF_CMD -D MICROPY_BOARD_VARIANT=$BOARD_VARIANT "
104112fi
105113
114+ if [ -n " $CAMERA_MODEL " ]; then
115+ IDF_CMD=" $IDF_CMD -D MICROPY_CAMERA_MODEL=$CAMERA_MODEL "
116+ fi
117+
106118IDF_CMD=" $IDF_CMD -D USER_C_MODULES=$MODULE_PATH /micropython.cmake"
107119IDF_CMD=" $IDF_CMD -D EXTRA_COMPONENT_DIRS=$MODULE_PATH "
108120IDF_CMD=" $IDF_CMD build"
@@ -129,4 +141,8 @@ python "$MICROPYTHON_PATH/ports/esp32/makeimg.py" \
129141echo " "
130142echo " Build completed successfully!"
131143echo " Firmware files in: $MICROPYTHON_PATH /ports/esp32/$BUILD_DIR "
132- echo " =========================================="
144+ echo " =========================================="
145+
146+ # Clean up build directory
147+ cd " $MODULE_PATH "
148+ rm -rf build
0 commit comments