54 lines
1.7 KiB
Bash
Executable File
54 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
BOARD_DIR="$(cd "${ROOT_DIR}/.." && pwd)"
|
|
DEMO_BASE="${BOARD_DIR}/official-demo/examples/Arduino-v3.3.5"
|
|
MODE="${1:-widgets}"
|
|
PORT="${PORT:-/dev/ttyACM0}"
|
|
FQBN="${FQBN:-esp32:esp32:esp32s3:USBMode=hwcdc,CDCOnBoot=cdc,UploadSpeed=921600,CPUFreq=240,FlashMode=dio,FlashSize=16M,PartitionScheme=app3M_fat9M_16MB,PSRAM=opi}"
|
|
BUILD_DIR="${BUILD_DIR:-${ROOT_DIR}/.arduino-build/build-${MODE}}"
|
|
OUT_DIR="${OUT_DIR:-${ROOT_DIR}/.arduino-build/out-${MODE}}"
|
|
|
|
case "${MODE}" in
|
|
hello) SKETCH_DIR="${DEMO_BASE}/examples/01_HelloWorld" ;;
|
|
widgets) SKETCH_DIR="${DEMO_BASE}/examples/05_LVGL_Widgets" ;;
|
|
audio) SKETCH_DIR="${DEMO_BASE}/examples/07_ES8311" ;;
|
|
simple) SKETCH_DIR="${ROOT_DIR}/simple_av_test" ;;
|
|
argon2) SKETCH_DIR="${ROOT_DIR}/argon2_sd_test" ;;
|
|
subserver-ui) SKETCH_DIR="${ROOT_DIR}/shine_subserver_ui" ;;
|
|
*)
|
|
echo "Unknown mode: ${MODE}" >&2
|
|
echo "Use one of: hello, widgets, audio, simple, argon2, subserver-ui" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
echo "== Mode: ${MODE}"
|
|
echo "== Sketch: ${SKETCH_DIR}"
|
|
echo "== Port: ${PORT}"
|
|
echo "== FQBN: ${FQBN}"
|
|
|
|
mkdir -p "${BUILD_DIR}" "${OUT_DIR}"
|
|
|
|
arduino-cli compile \
|
|
--clean \
|
|
--fqbn "${FQBN}" \
|
|
--build-path "${BUILD_DIR}" \
|
|
--output-dir "${OUT_DIR}" \
|
|
--library "${DEMO_BASE}/libraries/GFX_Library_for_Arduino" \
|
|
--library "${DEMO_BASE}/libraries/SensorLib" \
|
|
--library "${DEMO_BASE}/libraries/XPowersLib" \
|
|
--library "${DEMO_BASE}/libraries/lvgl" \
|
|
--library "${DEMO_BASE}/libraries/Mylibrary" \
|
|
"${SKETCH_DIR}"
|
|
|
|
arduino-cli upload \
|
|
-p "${PORT}" \
|
|
--fqbn "${FQBN}" \
|
|
--input-dir "${OUT_DIR}" \
|
|
"${SKETCH_DIR}"
|
|
|
|
echo
|
|
echo "== Done."
|