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