Skip to content

Conversation

@miketlk
Copy link
Contributor

@miketlk miketlk commented Jun 10, 2025

🚧 Work in Progress – Early Draft

This pull request is opened early to:

  • Share current progress
  • Gather feedback from contributors
  • Discuss implementation approaches

πŸ’‘ Note: This PR is not ready for review or merging. Some parts may be incomplete, untested, or non-buildable at this stage. Feel free to comment on design decisions, request clarifications, or suggest alternatives.

Summary

This PR upgrades the specter-diy project to support MicroPython v1.25. The majority of compatibility changes were implemented in the f469-disco submodule and its nested user C modules. This PR updates the submodule reference and makes necessary adjustments to the build system and documentation to reflect the MicroPython API changes introduced in v1.25.

IMPORTANT: This draft PR has temporary submodule pointers to my own forks that must be fixed before merging!

Changes

  • Updated f469-disco submodule to latest commit compatible with MicroPython v1.25
  • Updated build scripts to ensure compatibility with MicroPython's v1.25 engine and compiler
  • TODO: Review and update Python scripts and CI jobs that rely on MicroPython internals or output structure
  • TODO: Update documentation (README.md, docs/) to reflect new module requirements, build commands, or known issues

Testing

  • TODO: Confirm clean build of the full firmware against MicroPython v1.25
  • TODO: Smoke test key functionality on STM32F469I-DISCO hardware with optional Specter Shield
  • TODO: Validate that f469-disco submodule functions (QR, display, etc.) are callable from Specter firmware

Checklist

  • Code builds without errors
  • Tests added or updated
  • Documentation updated if necessary
  • Code reviewed for security and edge cases

@netlify
Copy link

netlify bot commented Jun 10, 2025

βœ… Deploy Preview for specter-diy-docs ready!

Name Link
πŸ”¨ Latest commit 705e962
πŸ” Latest deploy log https://app.netlify.com/projects/specter-diy-docs/deploys/68ed68c6d15e4e00088914ea
😎 Deploy Preview https://deploy-preview-304--specter-diy-docs.netlify.app
πŸ“± Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@moneymanolis moneymanolis requested a review from Copilot June 13, 2025 10:12
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR upgrades the Specter-DIY project to support MicroPython v1.25 by updating the f469-disco submodule, adjusting build scripts for the new mpy-cross layout and compiler flags, and pointing .gitmodules to a test fork and branch.

  • Updated f469-disco submodule commit to a Micropython v1.25–compatible version
  • Modified Makefile to use the new mpy-cross/build path, add CFLAGS_EXTRA, and clean up old binary
  • Temporarily redirected .gitmodules to a personal fork and branch for testing

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
f469-disco Bumped submodule pointer to new commit supporting MicroPython v1.25
Makefile Changed mpy-cross copy path, added CFLAGS_EXTRA flags, and updated clean step
.gitmodules Pointed f469-disco to a temporary fork URL and added a test branch
Comments suppressed due to low confidence (2)

.gitmodules:3

  • This URL points to a personal fork for testing. Remember to revert to the official upstream repository URL before merging to avoid confusing future contributors.
url = https://github.com/miketlk/f469-disco.git

.gitmodules:4

  • The branch attribute is temporary for this draft. Remove or update it to the default branch once the upgrade is merged upstream to maintain consistency.
branch = micropython-upgrade

@moneymanolis
Copy link
Contributor

I am just throwing this comment in from Stepan when I had asked back in the day what it would take to make the simulator run on ARM64 Macs: "Basically to port to the latest micropython we need to rewrite gui with the new version of lvgl and fix f469 integration."

@miketlk: My questions then

  • Do we have to update the version of lvgl since we update MicroPython?
  • If so, where do we update the version of lvgl?
  • And do we need to make changes to the GUI, i.e. how we call the the lvgl api? I don't know, example might be that we have to call lv.button() instead of lv.btn()
  • In any case we should verify that the GUI doesn't break.

Another question: Should it now work with this update to build the simulator on ARM64 macs?

@miketlk
Copy link
Contributor Author

miketlk commented Jun 13, 2025

Hi @moneymanolis, that's a great question on LVGL that worth discussing with other contributors too. The udisplay_f469 user module of f469-disco which is responsible for LVGL integration is not ready yet.

Basically, we have two ways:

  • Create new bindings for the current LVGL
  • Upgrade LVGL to the most recent stable version

The first way is preserving almost 100% compatibility with existing Python code. The second one needs the Python app to be updated. But it's more future-proof, gives us a sleeker UI and wider portability options for possible alternative hardware. For the efforts' perspective, they could be quite close, not taking into account updating of Python code.

@miketlk miketlk changed the title MicroPython upgrade to v1.25 [WIP] MicroPython upgrade to v1.25 Jun 13, 2025
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