Repository navigation
Conversation
The nRF54LM20-DK (nRF54LM20B, built as the A) with an EBYTE E22-900M30S on P3 (SPIM22), as a DIY board under PRIVATE_HW like the nRF54L15-DK. - USB: Serial is a CDC port on the nRF's native USB (J3) through the core's TinyUSB port for the USBHS block, so the console, the serial API and the clients work over USB. - Updates over USB: the board's bootloader does serial DFU over USB CDC and shows a UF2 drive. upload_protocol = nrfutil touches the application's port at 1200 bps and uploads to the bootloader's port; the build also writes firmware-*.uf2 (extra_scripts/nrf54lm20_uf2.py, from userfirmware.hex, family 0x9EEA6BF9). - The bootloader carries the USB stack and takes 64 KB, so the application links at 0x10000 (nrf54lm20a_s145_v10_bl64k.ld). - hwids for the application (239A:CAFE) and the bootloader (239A:4AFD with the UF2 drive, 239A:4AFE CDC only), so the port finder does not pick the J-Link's VCOM ports. nRF54LM20A support is only on andyshinn/platform-nordicnrf54 so far, and the USB changes to the core and the bootloader are under review there (andyshinn/nRF54_Arduino#1, meshtastic#2, andyshinn/nRF54_Bootloader#2); the environment pins them until they are released.
enterDfuMode() (admin "enter DFU") always asked for serial DFU, as no nRF54L board had USB. With USE_TINYUSB (nRF54LM20) it now calls enterUf2Dfu(), GPREGRET 0x57, and the bootloader shows its UF2 drive, as on nRF52.
Contributor
⚡ Try this PR in the Web FlasherNote Building this pull request… the flash button, badges and supported-board |
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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 |
…e comment The comment said the flag sets TX_GAIN_LORA 10; configuration.h maps the module to 7. Name the settings instead of restating their values.
infer_architecture() knew nrf54l15 but not nrf54lm20a, so the mtjson target was skipped for the nRF54LM20-DK and no manifest came out of its builds. The env now declares the same spelling.
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.
Adds the Nordic nRF54LM20-DK as a DIY board (
PRIVATE_HW,board_level = extra, like the nRF54L15-DK), with the nRF54LM20's native USB: console, serial API and clients over USB, and firmware updates over USB (serial DFU and a UF2 drive) or BLE.Draft: it builds against packages that are not released yet (see Dependencies). It is here so the variant can be reviewed alongside them; it will be marked ready once they land.
What it adds
variants/nrf54l15/nrf54lm20dkandboards/nrf54lm20dk.json: nRF54LM20-DK (nRF54LM20B, built as the A) with an EBYTE E22-900M30S on P3 (SPIM22), I²C on TWIM30 (P0.03/P0.04),Serial2on UARTE21. The pin choices and the board's constraints (clock pins, port-bound serial instances, VDD) are documented invariant.h.Serialis a CDC port on the nRF USB connector (J3), through the core's TinyUSB port for the USBHS block (USE_TINYUSB).extra_scripts/nrf54_tinyusb.py(pre) adds the TinyUSB Arduino include path, as nRF52's platform builder does itself; a-I${platformio.packages_dir}/...build flag does not work on Windows, where the path expands with backslashes that the flag parser takes as escapes.upload_protocol = nrfutiltouches the application's port at 1200 bps and uploads to the bootloader's port. The build also writesfirmware-*.uf2(extra_scripts/nrf54lm20_uf2.py, fromuserfirmware.hex) for the bootloader's UF2 drive.hwidskeep the port finder off the on-board J-Link's VCOM ports.0x10000(nrf54lm20a_s145_v10_bl64k.ld).enterDfuMode()on nRF54: withUSE_TINYUSBit callsenterUf2Dfu(), so "enter DFU" (meshtastic --enter-dfu) brings up the UF2 drive, as on nRF52. Boards without USB keep serial DFU.Dependencies
platform: andyshinn/platform-nordicnrf54ashinn/nrf54lm20a(pinned), the only platform with nRF54LM20A support so far.enterUf2Dfu()).v0.5.0-lm20dk.1of my fork, Add the nRF54LM20-DK with DFU over USB (CDC and UF2) andyshinn/nRF54_Bootloader#2 (USB CDC DFU and UF2) plusrelease/nrf54lm20dk_bootloader.hex, which the builder needs for the DFU.zipand the merged.hex.Once those are released,
platform_packagesgoes andplatformpoints at the release.Tested
On an nRF54LM20-DK with this variant (plus bench sensors not included here):
pio run -t uploadover USB (1200 bps touch → bootloader →adafruit-nrfutil), the UF2 drive (copy,CURRENT.UF2,--enter-dfu) and BLE OTA. After the USB and UF2 updates the RRAM read back over SWD matched the image; after every update--inforeported the new version, with the node's settings kept.This branch, as is, builds from a clean PlatformIO core with the packages fetched from git (Windows), and that build was uploaded to the DK with
pio run -t uploadover USB: it boots (USB up after the SoftDevice, as intended), and--infoover USB reports it. Not tested: Linux and macOS hosts, long soak.