Skip to content

[Feature] V3 Board Calibration GUI#186

Draft
connorgallopo wants to merge 23 commits intomainfrom
feature/v3-calibration-webui
Draft

[Feature] V3 Board Calibration GUI#186
connorgallopo wants to merge 23 commits intomainfrom
feature/v3-calibration-webui

Conversation

@connorgallopo
Copy link
Collaborator

@connorgallopo connorgallopo commented Mar 21, 2026

Description

This PR take the foundations from #181 and updates them to be merge ready.

image image image image

What does this PR do?

Refactors #181 to remove script anti-pattern, moving everything into the gui for an intuitive user experience.

Why is this change needed?

See #181. This change is required on top of 181 as we have removed manual scripts, so using them again is an anti-pattern and a step backwards.

Changes Made

  • Refactored original script into a python class
  • Added Tests
  • Added Controller / API layer
  • Added gui for functionality on the existing calibration page

Testing Performed

  • Full gui testing, and the written pytests.

Test Environment

Macbook Dev Env

Hardware Compatibility

  • Tested on Pi 5
  • Tested on Pi 4
  • Tested with single Pi setup
  • Tested with dual Pi setup

Documentation

  • No documentation needed
  • Documentation updated in this PR
  • Documentation PR to follow
  • Updated relevant sections:
    • README
    • Hardware guide
    • Software guide
    • Troubleshooting guide

AI (Vibe-Coded) Content Description

  • Tests for original script were generated, then rewritten to test against refactored version to ensure same functionality.

Checklist

Code Quality

  • Code follows existing patterns and conventions
  • No unnecessary comments added
  • Error handling implemented appropriately

Build & Test

  • Successfully builds with ./packaging/build.sh build
  • All existing tests pass
  • New tests added for new functionality
  • Tested on actual Raspberry Pi hardware (not just CI)

Submission Requirements

  • Commits squashed if needed (git rebase -i HEAD~n)
  • CLA signed
  • PR title follows format: [PR TYPE] Brief description
  • Branch is up-to-date with main

Additional Context


@peteattayek

@peteattayek
Copy link

The GUI images look great! This was a much more substantial PR than I was expecting, nice work!

I'll run this with my V3 board and LED and review the functional algo soon

try:
try:
param = os.sched_param(os.sched_get_priority_max(os.SCHED_FIFO))
os.sched_setscheduler(0, os.SCHED_FIFO, param)

Choose a reason for hiding this comment

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

This requires root privileges to set, is that already implemented?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ill have to verify the perms of the web-server. But im pretty sure its non-root. From what i read in the original that was a nice to have not a need to have. Is that the case?

If so this does handle it gracefully if it doesnt have root.

@peteattayek
Copy link

peteattayek commented Mar 22, 2026

@connorgallopo should I rebase/merge this (locally) with feature/build-cleanup branch before testing? I'm planning on doing a completely fresh build to test the dependencies

@connorgallopo
Copy link
Collaborator Author

@connorgallopo should I rebase/merge this (locally) with feature/build-cleanup branch before testing? I'm planning on doing a completely fresh build to test the dependencies

if you use the github cli you can just check out the PR - which in my opinion is the best/easiest way. You just will have to have a remote set for this upstream

@connorgallopo connorgallopo force-pushed the feature/v3-calibration-webui branch from 92272ed to c042fb0 Compare March 22, 2026 17:46
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