initial commit
This commit is contained in:
29
.tasks/docker.yml
Normal file
29
.tasks/docker.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
version: '3'
|
||||
|
||||
tasks:
|
||||
build:
|
||||
desc: Build Docker image
|
||||
cmds:
|
||||
- docker-compose build
|
||||
|
||||
run:
|
||||
desc: Run container and compile project
|
||||
cmds:
|
||||
- docker-compose run --rm platformio pio run
|
||||
|
||||
shell:
|
||||
desc: Open shell in Docker container
|
||||
cmds:
|
||||
- docker-compose run --rm platformio bash
|
||||
|
||||
clean:
|
||||
desc: Clean Docker containers and images
|
||||
cmds:
|
||||
- docker-compose down
|
||||
- docker-compose rm -f
|
||||
|
||||
flash:
|
||||
desc: Compile in Docker, upload locally (recommended for macOS)
|
||||
cmds:
|
||||
- task: run
|
||||
- pio run --target upload
|
||||
95
.tasks/pio.yml
Normal file
95
.tasks/pio.yml
Normal file
@@ -0,0 +1,95 @@
|
||||
version: '3'
|
||||
|
||||
tasks:
|
||||
init:
|
||||
desc: Initialize PlatformIO project for ESP32 WROOM 32
|
||||
cmds:
|
||||
- pio project init --board {{.BOARD}}
|
||||
status:
|
||||
- test -f platformio.ini
|
||||
|
||||
build:
|
||||
desc: Compile the project
|
||||
cmds:
|
||||
- pio run
|
||||
|
||||
upload:
|
||||
desc: Upload program to ESP32
|
||||
cmds:
|
||||
- pio run --target upload
|
||||
deps:
|
||||
- build
|
||||
|
||||
monitor:
|
||||
desc: Monitor serial port
|
||||
cmds:
|
||||
- pio device monitor
|
||||
|
||||
clean:
|
||||
desc: Clean build files
|
||||
cmds:
|
||||
- pio run --target clean
|
||||
|
||||
flash:
|
||||
desc: Compile and upload program (build + upload)
|
||||
cmds:
|
||||
- task: build
|
||||
- task: upload
|
||||
|
||||
flash-monitor:
|
||||
desc: Compile, upload and monitor
|
||||
cmds:
|
||||
- task: flash
|
||||
- task: monitor
|
||||
|
||||
erase:
|
||||
desc: Erase entire ESP32 flash memory
|
||||
cmds:
|
||||
- pio run --target erase
|
||||
|
||||
erase-flash:
|
||||
desc: Erase flash and upload firmware (fixes LittleFS)
|
||||
cmds:
|
||||
- pio run --target erase
|
||||
- pio run --target upload
|
||||
- pio run --target uploadfs
|
||||
|
||||
uploadfs:
|
||||
desc: Upload filesystem (data/) to ESP32
|
||||
cmds:
|
||||
- pio run --target uploadfs
|
||||
|
||||
format-flash:
|
||||
desc: Format only LittleFS (requires esptool.py)
|
||||
cmds:
|
||||
- esptool.py --port /dev/cu.SLAB_USBtoUART erase_region 0x110000 0x2F0000
|
||||
|
||||
deps:
|
||||
desc: Install project dependencies (Docker)
|
||||
cmds:
|
||||
- docker-compose run --rm platformio pio pkg install
|
||||
|
||||
update:
|
||||
desc: Update platforms and libraries (Docker)
|
||||
cmds:
|
||||
- docker-compose run --rm platformio pio pkg update
|
||||
|
||||
list-ports:
|
||||
desc: List available serial ports
|
||||
cmds:
|
||||
- pio device list
|
||||
|
||||
lib-search:
|
||||
desc: Search for a library (Docker)
|
||||
cmds:
|
||||
- docker-compose run --rm platformio pio pkg search "{{.CLI_ARGS}}"
|
||||
|
||||
lib-install:
|
||||
desc: Install a library (Docker)
|
||||
cmds:
|
||||
- docker-compose run --rm platformio pio pkg install --library "{{.CLI_ARGS}}"
|
||||
|
||||
lib-list:
|
||||
desc: List installed libraries (Docker)
|
||||
cmds:
|
||||
- docker-compose run --rm platformio pio pkg list
|
||||
25
Dockerfile
Normal file
25
Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
||||
# Force x86_64 architecture for full PlatformIO compatibility
|
||||
FROM --platform=linux/amd64 python:3.11-slim
|
||||
|
||||
# Install system dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
curl \
|
||||
build-essential \
|
||||
usbutils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PlatformIO
|
||||
RUN pip install --no-cache-dir platformio
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /project
|
||||
|
||||
# Copy configuration files
|
||||
COPY platformio.ini .
|
||||
|
||||
# Pre-download platforms and tools (optional, speeds up subsequent builds)
|
||||
RUN pio pkg install --skip-dependencies || true
|
||||
|
||||
# Default command
|
||||
CMD ["pio", "run"]
|
||||
16
Taskfile.yml
Normal file
16
Taskfile.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
version: '3'
|
||||
|
||||
vars:
|
||||
PLATFORM: esp32
|
||||
BOARD: esp32dev
|
||||
UPLOAD_PORT: '{{.UPLOAD_PORT | default "/dev/cu.usbserial-*"}}'
|
||||
|
||||
includes:
|
||||
pio: .tasks/pio.yml
|
||||
docker: .tasks/docker.yml
|
||||
|
||||
tasks:
|
||||
default:
|
||||
desc: Display available tasks
|
||||
cmds:
|
||||
- task --list
|
||||
22
docker-compose.yml
Normal file
22
docker-compose.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
services:
|
||||
platformio:
|
||||
platform: linux/amd64 # Wymuś x86_64 dla pełnej kompatybilności
|
||||
build:
|
||||
context: .
|
||||
platforms:
|
||||
- linux/amd64
|
||||
image: pio-project:latest
|
||||
container_name: pio-project
|
||||
volumes:
|
||||
- .:/project
|
||||
- platformio-cache:/root/.platformio
|
||||
working_dir: /project
|
||||
command: pio run
|
||||
stdin_open: true
|
||||
tty: true
|
||||
# UWAGA: Docker Desktop na macOS nie wspiera 'devices' ani USB passthrough
|
||||
# Do wgrywania używaj lokalnego PlatformIO: pio run --target upload
|
||||
|
||||
volumes:
|
||||
platformio-cache:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user