Repository navigation
feat(rp2040): add support for JackW01 and BTT SKR Pico boards - #298
Conversation
|
Hey Eric, Unfortunately I have to ask for one more pass, because the branch as it stands would silently revert several released features - that's the real blocker, not the merge conflicts. The problemThe branch is based on V1.13.19, but it isn't a superset of it: in the shared files, the older versions from your fork won, so the diff deletes things develop shipped in V1.13.12–V1.13.19. None of these deletions show up as merge conflicts - they would merge cleanly and quietly.
My guess is the fork started life from a pre-V1.13.12 tree, and when the V1.13.19 content came in, whole files were taken from the old side - an easy trap, especially after the #280 history break. No worries, but it does need fixing before this can land. Suggested pathA plain rebase will be painful because develop's Meade-parser rewrite (#291), the core refactor (#293), and the coordinate-handling fixes (#300–#305) touch exactly the files this PR modifies.
One change to discuss separatelyThe Two smaller notes:
The rough shape to aim for: additive only - every hunk in the diff should either add RP2040 code or be a guard around it. If it deletes or rewrites something that already exists on develop, it probably shouldn't be in this PR. Happy to help with the specifics if anything here is unclear - RP2040 support is very much wanted, it just needs to land as a pure addition on top of current develop. And if you'd prefer, I can also cherry-pick the platform pieces into a clean branch on my side so you only have to review and verify on hardware. |
The previous RP2040-Support branch was based on V1.13.19 and was not a superset of develop: in shared files the old content won, silently reverting OAE board support, the test menu, CI tooling, and other features develop shipped since, with no merge conflicts to flag it. This starts fresh from current develop (through the Meade parser rewrite and coordinate-handling fixes) and re-applies only the RP2040-specific hunks as guarded additions: - New board pin files (JackW01, SKR Pico) and example local config, carried over unchanged. - Board IDs, config dispatch, and validation branches added additively for ARDUINO_ARCH_RP2040 alongside existing platforms. - RP2040 alarm-timer (InterruptCallback.cpp) and flash-backed EEPROM (EPROMStore.cpp) implementations, each in their own guarded branch. - platformio.ini: new common_rp2xxx/rp2040_* environments only; env:oaeboardv1 and all other environments left untouched. RP2040 envs exclude SSD1306_128x64_Display.cpp via src_filter since no RP2040 board supports that display and the file unconditionally pulls in a library outside the minimal RP2040 toolchain. - b_setup.hpp/c_buttons.hpp: USB CDC DTR fix, GPS/UART1 pin remapping, fan PWM, and shared-EN-pin handling, all gated behind ARDUINO_ARCH_RP2040; the previously unguarded toff(1)->toff(4) and UART baud (57600->115200) changes are now RP2040-only, preserving prior platform behavior elsewhere. - Added defaulted copy-assignment operators to the DayTime/ Declination/Latitude/Longitude coordinate types (both the core:: classes and the Latitude/Longitude Arduino overlays), needed to silence a deprecated-copy warning promoted to an error on the RP2040 toolchain; verified harmless on all other platforms via the native test suite. Every file not touched here was checked to be byte-identical to develop. rp2040_jackw01 and rp2040_skr_pico build clean; ramps builds clean; esp32/oaeboardv1/mksgenl* fail identically with and without this change (pre-existing, unrelated to this port); all 333 native unit tests pass. Smoke-tested on SKR Pico hardware. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5f5fb21 to
2796eee
Compare
|
@ClutchplateDude, I believe I've managed to create a new branch with my SKR Pico support built on the latest main branch. The PR should be updated with those changes. Let me know if anything was missed or broken. |
CI fails forked PRs that need formatting changes (the auto-fix commit only runs for branches in the main repository), so apply the project clang-format directly: brace placement in the CDC console wait, a trailing-comment column, nested #if indentation, and #define column alignment in the example configuration. No code changes. Co-Authored-By: Claude Code <noreply@anthropic.com>
Develop now carries the RP2040 port via the rebuilt #298. Take our side where this branch holds the verified deltas (5 kHz stepping and timer semantics, TMC hold-current fix, RP2040 hardware info, SSD1306 info display, CI matrix entries, single-write logging), and develop's side for the ConfigurationValidation DIAG advisories and the .gitignore ordering. Co-Authored-By: Claude Code <noreply@anthropic.com>
Supersedes #280, which had to be closed after a force-push broke its
shared history with
develop(see #280 for the full review discussionwith @julianneswinoga — all her feedback is addressed in this branch).
Adds RP2040 support for two boards:
All review comments from #280 are addressed:
the OAE validation branch that were accidentally dropped
#version for git-hosted deps)
bundled into the port, keeping only the toff(1)->toff(4) change
actually needed for TMC2209 StealthChop on RP2040
Verified: rp2040_jackw01 and rp2040_skr_pico build and flash cleanly;
SKR Pico hardware responds correctly to Meade protocol commands.