Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"containerEnv": {
"BLINKA_FORCEBOARD": "GENERIC_LINUX_PC",
"BLINKA_FORCECHIP": "GENERIC_X86"
},
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.isort",
"ms-python.debugpy",
"redhat.vscode-yaml",
"tamasfe.even-better-toml"
]
}
},
"image": "mcr.microsoft.com/devcontainers/python:3.13",
"name": "pysquared-dev",
"postCreateCommand": "make .venv pre-commit-install"
}
37 changes: 29 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
PYSQUARED_VERSION ?= v2.0.0-alpha-25w26-2
PYSQUARED ?= git+https://github.com/proveskit/pysquared@$(PYSQUARED_VERSION)
BOARD_MOUNT_POINT ?= ""
BOARD_TTY_PORT ?= ""
VERSION ?= $(shell git tag --points-at HEAD --sort=-creatordate < /dev/null | head -n 1)

.PHONY: all
all: .venv download-libraries pre-commit-install help
Expand Down Expand Up @@ -44,9 +47,6 @@ fmt: pre-commit-install ## Lint and format files
typecheck: .venv download-libraries ## Run type check
@$(UV) run -m pyright .

BOARD_MOUNT_POINT ?= ""
VERSION ?= $(shell git tag --points-at HEAD --sort=-creatordate < /dev/null | head -n 1)

.PHONY: install
install-%: build-% ## Install the project onto a connected PROVES Kit use `make install-flight-software BOARD_MOUNT_POINT=/my_board_destination/` to specify the mount point
ifeq ($(OS),Windows_NT)
Expand All @@ -57,10 +57,18 @@ else
$(call rsync_to_dest,artifacts/proves/$*,$(BOARD_MOUNT_POINT))
endif

# install-firmware
.PHONY: install-firmware
install-firmware: uv ## Install the board firmware onto a connected PROVES Kit
@$(UVX) --from git+https://github.com/proveskit/[email protected] install-firmware v5a
# install-circuit-python
.PHONY: install-circuit-python
install-circuit-python: arduino-cli circuit-python ## Install the Circuit Python onto a connected PROVES Kit
@$(ARDUINO_CLI) config init || true
@$(ARDUINO_CLI) config add board_manager.additional_urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
@$(ARDUINO_CLI) core install rp2040:[email protected]
@$(ARDUINO_CLI) upload -v -b 115200 --fqbn rp2040:rp2040:rpipico -p $(BOARD_TTY_PORT) -i $(CIRCUIT_PYTHON)

.PHONY: list-tty
list-tty: arduino-cli ## List available TTY ports
@echo "TTY ports:"
@$(ARDUINO_CLI) board list | grep "USB" | awk '{print $$1}'
Copy link

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Filtering TTY ports by the string "USB" may miss valid ports in different environments. Consider using arduino-cli board list --format json or a more flexible filter to reliably enumerate serial devices.

Copilot uses AI. Check for mistakes.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion, I tried this. Unfortunately --format json does not work for this command. 😢


.PHONY: clean
clean: ## Remove all gitignored files such as downloaded libraries and artifacts
Expand Down Expand Up @@ -99,11 +107,12 @@ endef
##@ Build Tools
TOOLS_DIR ?= tools
$(TOOLS_DIR):
mkdir -p $(TOOLS_DIR)
@mkdir -p $(TOOLS_DIR)

### Tool Versions
UV_VERSION ?= 0.7.13
MPY_CROSS_VERSION ?= 9.0.5
CIRCUIT_PYTHON_VERSION ?= 9.2.8

UV_DIR ?= $(TOOLS_DIR)/uv-$(UV_VERSION)
UV ?= $(UV_DIR)/uv
Expand All @@ -113,6 +122,18 @@ uv: $(UV) ## Download uv
$(UV): $(TOOLS_DIR)
@test -s $(UV) || { mkdir -p $(UV_DIR); curl -LsSf https://astral.sh/uv/$(UV_VERSION)/install.sh | UV_INSTALL_DIR=$(UV_DIR) sh > /dev/null; }

ARDUINO_CLI ?= $(TOOLS_DIR)/arduino-cli
.PHONY: arduino-cli
arduino-cli: $(ARDUINO_CLI) ## Download arduino-cli
$(ARDUINO_CLI): $(TOOLS_DIR)
@test -s $(ARDUINO_CLI) || curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=$(TOOLS_DIR) sh > /dev/null

CIRCUIT_PYTHON ?= $(TOOLS_DIR)/adafruit-circuitpython-proveskit_rp2350_v5a-en_US-$(CIRCUIT_PYTHON_VERSION).uf2
.PHONY: circuit-python
circuit-python: $(CIRCUIT_PYTHON) ## Download Circuit Python firmware
$(CIRCUIT_PYTHON): $(TOOLS_DIR)
@test -s $(CIRCUIT_PYTHON) || curl -o $(CIRCUIT_PYTHON) -fsSL https://raw.githubusercontent.com/proveskit/flight_controller_board/main/Firmware/FC_FIRM_v5a_V1.uf2

UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)

Expand Down
9 changes: 2 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
# ProvesKit RP2350 v5a CircuitPython Flight Software
# PROVES Kit RP2040 v5a CircuitPython Flight Software and Ground Station

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
![CI](https://github.com/proveskit/CircuitPython_RP2350_v5a/actions/workflows/ci.yaml/badge.svg)

Software for the v5a PROVES Kit flight control board.

# Development Getting Started
We welcome contributions, so please feel free to join us. If you have any questions about contributing please open an issue or a discussion.

You can find our Getting Started Guide [here](https://github.com/proveskit/pysquared/blob/main/docs/dev-guide.md).
This is the template repository for v5a PROVES Kit Flight Controller boards. Head to our [docs site](https://proveskit.github.io/pysquared/) to get started.