[Feature]: Add support for Rak4631 #142
Closed
opened 2026-08-26 03:31:58 +00:00 by ssmithx
·
2 comments
No Branch/Tag Specified
main
pr/feat/first-install-owner-network-20261112
pr/demo-intro-ux-polish
docs/security-audit-2.0.3-alpha
docs/fips-compute-market-proposal
feat/routstr-fips-llama
docs/ui-uat-pr-rule
fix/routstr-xcashu-change
fix/lifecycle-lock-wait
fix/btcpay-db-password
feat/podsteadr-app
feat/qortal-app
fix/quadlet-iec-memory-limits
feat/podsteadr-app-package
arm64-pi-test
feat/nostr-vpn-seller-app
work/terminal-developer-spec-20261009
feat/justworks-integration-review
conduit-market-archyapp
fix/gitea-portainer-20260930
fix/app-install-lifecycle-20260930
fix/filebrowser-purchase-filing
fix/ecash-paid-download-v2-keyset
fix/paid-content-payment-not-lost
fix/mint-error-detail-swallowed
investigate/framework-lnd-startup
fix/minibits-already-redeemed
cuprate-fixes
feature/dojobay-app
fix/bitcoin-core-tor-service-name
docs/openwrt-gateway-setup
cuprate-cpu-fix
fix/cuprate-explicit-logging-levels
companion/session-2026-08-31
companion/0.5.28-deploy-handoff
companion/0.5.28-ship
companion/0.5.28
app-bumps-mirror-pending
cuprate-archyapp
docs/todo-list
companion/0.5.27-version-meta
companion/0.5.27-ship
companion/0.5.27-clipboard-qr-restart
ux-at-last
fix/mesh-send-content-inline-federation-fallback
cashu-error-messages
gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf
rotate-release-root
chore/aiui-monorepo-migration
wip/phase-13-p13-02
wip/phase-13-p13-01
fix/bitcoin-conf-conflict-crash-loop
demo-build
archy-hwconfig
openwrt-enhancements
a3-10-endpoint-fallback
public-prelaunch
release/1.7.115-prep
fix/web-listener-ipv6
fips-companion-5g-hardening
fix/connection-accept-deadlock
fix/demo-images-path-filter
fix/companion-autologin-replay-intro
networking-profits-dashboard
identities-mobile-polish
companion-qr-scan-fix
companion-qr-pairing
intro-reliability-video-perf
login-bg-continuity
audio-bottom-bar
demo-intro-every-visit
intro-entrance-fixes
cloud-feedback-demo-content
cloud-tabs-search
ark-wallet-ui-demo
demo-nginx-app-assets
demo-ui-fixes
ark-wallet-barkd
v2.1.22
v2.1.21
v2.1.2-beta
v1.9.1-alpha
v1.9.0-alpha
Labels
Clear labels
companion-agent
queued
roadmap
waiting-external
Companion-app agent's handover list (node-side parts tracked separately)
Triaged, next in this session's queue after current release work
Feature/effort item, deliberately unscheduled — needs scoping + a slot, not a fix today
Waiting on a person outside this session (tester, operator)
No labels
waiting-external
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: lfg2025/archy#142
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
One of the alpha testers has this device if we could add support he can test it.Rak4631
Proposed Solution
It should work with flashing and configuring
Alternatives Considered
No response
Area
Networking
Triage + decision (2026-08-30):
What already works with no code changes: detection (the udev rule covers RAK's native USB, symlinked as /dev/mesh-radio), the UI knows the board (icon + label), and the serial/config path supports nRF52 boards over the Meshtastic serial API — a RAK4631 that arrives already flashed with Meshtastic firmware should plug in and work on v1.8.4. @reporter: could you confirm this with your board? That is testable today and would close the usable-today half.
What is deferred (deliberately, as a feature with its own milestone): in-app flashing. The entire flash backend is esptool/ESP32-only; the RAK4631 is nRF52840 and needs the UF2/DFU path (adafruit-nrfutil, 1200-baud touch to enter the bootloader), different upstream firmware assets, and a new board table entry — a new flash backend, not a table row. It also really wants the physical device in the loop to validate the DFU dance.
Keeping this open pending the tester's confirmation of the already-flashed path.
Implemented in canonical ngit PR https://gitworkshop.dev/nevent1qqsw4q34tmjymq698lh4nunraegn50fzes89qyuk6w2yerv5ancq5kspz3mhxue69uhhyetvv9ujumn8d96zuer9wcwmrwh0, merged as
21c1f8da63and mirrored exactly to Gitea. Maintainer approved the UI/UX and explicitly instructed us to proceed without a physical RAK4631 test: "oh right, I can't do that, we'll have to blind fix."RAK4631 now has a Meshtastic-only application UF2 flashing path and owned serial transport admission. It verifies the official release archive, exact RAK4631 image, nRF52840 UF2 family/application ranges and USB-bound mounted bootloader volume before copying. It never uses ESP32 erase/write commands on this board. The UI explains double-reset/bootloader-drive setup and reports the copy as awaiting device verification, not verified firmware success. The bootloader drive must already be mounted and the current bootloader TTY selected; protected USB appointment rules remain enforced across re-enumeration.
The official Meshtastic 2.7.26 RAK4631 UF2 passed validation. Fourteen firmware/USB/owner fixtures, the real frozen helper build and disposable FD copy, backend flash regressions, eight setup-modal tests and the production UI build passed. Physical flashing/configuration remains unverified under the specific maintainer waiver.
Closing as an accepted next-release source fix with that limitation. No new ISO/OTA or physical radio success is claimed.