Skip to content

64kb cartridges, sdkconfig changes, new python tools for WiFi and Store settings, removed old scripts - #39

Merged
raffmont merged 12 commits into
riscv-prg32:mainfrom
sunshards:cicd-profiles
Sep 26, 2026
Merged

raffmont merged 12 commits into
riscv-prg32:mainfrom
sunshards:cicd-profiles

Conversation

@sunshards

Copy link
Copy Markdown

This PR:

  • includes the new 64kb cartridge changes
  • rearranged the sdkconfig files into the new profiles/ folder. The local sdkconfig file has been added to gitignore. A new sdkconfig.local has been added and the old .env file was removed.
  • Many default configuration settings have been moved to Kconfig directly.
  • There are new tools in the python module to set the WiFi and Cartridge Store settings before building.
  • The new default store is "https://store.prg32.uniparthenope.it". CA bundle has been added for the TLS handshake.

raffmont and others added 12 commits September 22, 2026 22:48
Commit 596bcf9 made CONFIG_PRG32_CART_RAM_EXTENDED (64 KiB) the default
firmware profile, but the host tools still assumed 32 KiB, so
`cartridge build` and `qemu upload` rejected carts between 32 and 64 KiB.

- env_variables: DEFAULT_CART_RAM_KIB = 64 (matches Kconfig
  PRG32_CART_RAM_KIB); FALLBACK_CART_RAM_SIZE derives from it.
- Add --cart-ram-kib (16-128) to `cartridge build` (default 64) and
  `qemu upload` (default: CONFIG_PRG32_CART_RAM_KIB from the sdkconfig
  next to --flash, else 64). Use 32 for the classroom profile.
- Restore inject_cartridge() in upload_qemu.py and fix stale imports
  that stopped prg32.qemu.load_cart, start and run_qemu from importing.
- Convert the random and sprite-render tests to unittest.TestCase so
  they run without pytest; add a test that imports every prg32 module.
- Document host-side profile matching in docs/usage/profiles.md and
  link it from cartridges.md, framework_manual.md and tooling.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- audio_synth.c: decode sample_id with the documented
  PRG32_AUDIO_SYNTH_ID layout (resonance 11:10, cutoff 9:6, pulse 5:2).
  The old decoder capped cutoff at index 7 and could produce resonance
  4..7, reading past the four-entry damping table. Filter indices are
  now masked defensively.
- audio_tracker.c: only waiting consumes ticks; events with delta 0
  run in the same tick so chords are no longer arpeggiated. A per-step
  cap of 256 events protects against malformed delta-0 JUMP loops.
- Add host-compiled C tests for both fixes.
- Document the behaviour change and compatibility impact (no ABI change).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rences in the documentation. Added .pytest_cache to gitignore. Small changes to README.
…, PRG32_WIFI_BOOT_MODE_STA, PRG32_WIFI_SSID and PRG32_WIFI_PASSWORD in KConfig. These can be modified with the python tooling with new "prg32 wifi" and "prg32 store" commands. The sdkconfig.defaults has now been separated from sdkconfig.defaults.esp32c6 to allow base defaults to apply to all configurations. The commands use a local "sdkconfig.local" file that is untracked to store the wifi and store settings for future local builds. CMakeLists was updated for this new build process.
…sed for validation by agents and humans. Edits to CONTRIBUTING andd moved some docs to more relevant places.
…ore settings, now configurable via python tooling with prg32 wifi and prg32 store. Moved many default options between Kconfig and sdkconfig default profiles; many settings can now be edited with menuconfig. Small changes to AGENTS.md.
…ope.it/". Added certificate bundle for TLS handshake. Fixed the store setup menu which was not accepting input.
@raffmont
raffmont merged commit 687251f into riscv-prg32:main Sep 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants