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 ?= ""
Copy link
Preview

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.

Remove the surrounding quotes on empty defaults so the variable value is truly empty; e.g., BOARD_MOUNT_POINT ?= instead of ?= "".

Suggested change
BOARD_MOUNT_POINT ?= ""
BOARD_MOUNT_POINT ?=

Copilot uses AI. Check for mistakes.

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 v4
# 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)
Copy link
Preview

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.

The -b 115200 flag is interpreted as --fqbn by Arduino CLI, conflicting with the subsequent --fqbn. Replace or remove -b 115200 and use the correct CLI option for baud rate (if supported) or omit it if not needed.

Suggested change
@$(ARDUINO_CLI) upload -v -b 115200 --fqbn rp2040:rp2040:rpipico -p $(BOARD_TTY_PORT) -i $(CIRCUIT_PYTHON)
@$(ARDUINO_CLI) upload -v --fqbn rp2040:rp2040:rpipico -p $(BOARD_TTY_PORT) -i $(CIRCUIT_PYTHON)

Copilot uses AI. Check for mistakes.


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

.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_rp2040_v4-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://downloads.circuitpython.org/bin/proveskit_rp2040_v4/en_US/adafruit-circuitpython-proveskit_rp2040_v4-en_US-$(CIRCUIT_PYTHON_VERSION).uf2

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

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

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

This is the reference software for the v4x PROVES Kit Flight Controller boards. Clone this repository and use the `make install-flight-software ...` tooling to get your v4x Flight Controller Board up and running!

If your are looking to setup ground station software you can use `make install-ground-station` to get simple receiver software running!

# 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).

If you have a mission specific usecase for the CircuitPython Flight Software you can fork this repo and use it as a baseline for developing your own system!
This is the template repository for v4 PROVES Kit Flight Controller boards. Head to our [docs site](https://proveskit.github.io/pysquared/) to get started.