Skip to content

Release v0.1.1-beta2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Jul 14:14

What's New

Fixed: PY32F071 (V3/K1) CPU detection

The detect_cpu() heuristic now uses the Reset vector address (offset 0x04
in the ARM vector table) instead of SysTick. PY32F071 bootloader sits at flash
start (0x08000000–0x080027FF), so the firmware Reset vector is always ≥
0x08002800. Rule: Reset >= 0x08002000 → Py32f071. Works on all tested
images — stock, custom, live-flashed.

Fixed: strict per-CPU flash size limits

The auto-extension logic that allowed oversized images (up to 0x14000 / 80KB) has
been removed. Per-CPU limits are now strictly enforced to protect the bootloader:

CPU Revision Flash limit Bootloader location
DP32G030 V1 0xF000 (60KB) End of flash (from 0xF000)
PY32F030 V2 0x10000 (64KB) End of flash
PY32F071 V3/K1 0x12000 (72KB) Start of flash (0x0000–0x27FF)

Images exceeding the limit are rejected with FirmwareError::TooLarge.

--force-cpu flag

The flash subcommand now accepts --force-cpu <CPU> (dp32g030 / py32f030 /
py32f071). Now optional for normal use (auto-detection is correct), still
available for non-standard builds. Works in both --dry-run and live mode.

Cross-platform Python test scripts (test-scripts/)

Three self-contained scripts (Python 3.12+, stdlib only). Auto-discover the
rustsheng binary. Tee-logging to report.txt, byte-level diff for write tests.

Hardware validation

All scripts tested on real hardware — Windows 10, COM4.

Revision Read Write Flash
V1 (DP32G030, fw 2.01.39, bl 2.00.06) OK OK OK (2.01.26)
V3 (PY32F071, fw 7.00.11, bl 7.00.07) OK OK OK (auto-detected)

What's Changed

  • fix: strict per-CPU flash size limits, removed auto-extension by @RD2W
  • fix: PY32F071 CPU detection via Reset vector instead of SysTick by @RD2W
  • feat: --force-cpu flag for flash command by @RD2W
  • feat: cross-platform Python test scripts (test-scripts/) by @RD2W
  • chore: bump clap from 4.6.1 to 4.6.2 by @dependabot[bot] in #8
  • chore: bump thiserror from 2.0.18 to 2.0.19 by @dependabot[bot] in #7
  • chore: bump anyhow from 1.0.103 to 1.0.104 by @dependabot[bot] in #6

Full Changelog: v0.1.1-beta...v0.1.1-beta2