feat: draft board support for NANO_G2_ULTRA (#4) - #22
Draft
jamesarich wants to merge 1 commit into
Draft
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Collaborator
Author
|
@b8b8 can you check the nano_g2_ultra bootloader built off this branch pls 🙏 |
Meshtastic-Android's device_bootloader_ota_quirks.json flags this hwModel as requiresBootloaderUpgradeForOta with no board here yet. Every value in the new board.h is sourced from something real rather than guessed: - MCU (nrf52840) and the one physical button (P1.06): read from meshtastic/firmware's variants/nrf52840/nano-g2-ultra/variant.h and variant.cpp directly - no LED pin appears anywhere in either file, so LEDS_NUMBER=0. - Manufacturer/model/URL: meshtastic/firmware's platformio.ini (custom_meshtastic_display_name, etc.) and the vendor's own PlatformIO board manifest (datapartyjs/MeshTNC's boards/nano-g2-ultra.json), which also confirms this board reuses Adafruit's shared 0x239A VID rather than having its own. Two things are NOT confirmed and are called out in both board.h and the new README section: - USB_DESC_UF2_PID (0x00E2) was picked to avoid colliding with every other USB_DESC_UF2_PID already in this repo under 0x239A - no dedicated allocation for this board was found anywhere. - BUTTON_1 and BUTTON_2 both point at the same physical button (boards.h hard-requires BUTTONS_NUMBER >= 2), mirroring wiscore_rak4631_board's own precedent for boards with only one real button - untested whether that's the right behavior on this specific hardware. Builds clean (all 15 boards via tools/build_all.py) but has NOT run on real hardware - opening as a draft per AGENTS.md's board-gap gotcha. Issue #4 has a commenter (@b8b8) who has the hardware. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jamesarich
force-pushed
the
board-nano-g2-ultra
branch
from
August 19, 2026 16:45
fbf9614 to
89c0188
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Draft board port for
NANO_G2_ULTRA(hwModel 18), closing the gapMeshtastic-Android'sdevice_bootloader_ota_quirks.jsonflags in #4.Every value in
src/boards/nano_g2_ultra/board.his sourced from something real, not guessed:meshtastic/firmware'svariants/nrf52840/nano-g2-ultra/variant.h(nrf52840, one physical button at P1.06). No LED pin appears anywhere in that file orvariant.cpp, soLEDS_NUMBER=0.firmware'splatformio.ini(custom_meshtastic_display_name, etc.) and the vendor's own PlatformIO board manifest (datapartyjs/MeshTNC'sboards/nano-g2-ultra.json), which also confirms this board reuses Adafruit's shared0x239AVID rather than having a registered one of its own.Two things are explicitly NOT confirmed, called out in both
board.hand the new README section:USB_DESC_UF2_PID(0x00E2) was picked only to avoid colliding with every otherUSB_DESC_UF2_PIDalready in this repo under0x239A— no dedicated allocation for this board was found anywhere.BUTTON_1andBUTTON_2both point at the same physical button (src/boards/boards.hhard-requiresBUTTONS_NUMBER >= 2), mirroringwiscore_rak4631_board's own precedent for boards with only one real button — untested whether that's the right behavior on this specific hardware.Why draft
This builds and links clean, but has not run on real hardware. Per this repo's own
AGENTS.mdguidance, a board port like this shouldn't be merged without that confirmation. @b8b8 — you mentioned on #4 that you have a few of these; if you're able to test, that would close the loop here. Marking as draft until then.Test plan
tools/build_all.py— all 15 boards (14 existing + this one) build and link cleanUSB_DESC_UF2_PID