@echo off REM Build + flash the M5Stack Dashboard project via PlatformIO on Windows. REM REM Usage: REM scripts\deploy.cmd (auto-detect USB port) REM scripts\deploy.cmd COM5 (force a specific port) REM REM Does NOT open the serial monitor afterwards. setlocal cd /d "%~dp0\.." set VENV_DIR=.venv-platformio where py >nul 2>nul if %errorlevel%==0 ( set PYTHON_CMD=py -3 ) else ( set PYTHON_CMD=python ) if not exist "%VENV_DIR%" ( echo Creating local virtualenv in %VENV_DIR% using: %PYTHON_CMD% %PYTHON_CMD% -m venv "%VENV_DIR%" if not exist "%VENV_DIR%\Scripts\python.exe" ( echo. echo ERROR: Could not create a Python 3 virtualenv. echo Make sure Python 3 is installed from https://www.python.org/downloads/ echo and that "py -3 --version" or "python --version" reports Python 3.x echo ^(your "python" currently points to: %PYTHON_CMD%^) exit /b 1 ) "%VENV_DIR%\Scripts\python.exe" -m pip install --upgrade pip "%VENV_DIR%\Scripts\pip.exe" install platformio ) set PIO=%VENV_DIR%\Scripts\pio.exe if "%~1"=="" ( echo Auto-detecting upload port... "%PIO%" run --target upload ) else ( echo Using forced upload port: %~1 "%PIO%" run --target upload --upload-port %~1 ) if errorlevel 1 ( echo Deploy FAILED. exit /b 1 ) echo Build + flash complete. endlocal