mirror of
https://github.com/meshtastic/firmware.git
synced 2026-11-07 23:04:49 -05:00
* Add the Nodara nRF52840 board skeleton with e-ink init. * Fix the Nodara e-ink driver leak and rename the board macro to NODARA. * Nodara: use the stock S140 v6 linker script The board-specific script had the same flash layout as nrf52840_s140_v6.ld (app 0x26000-0xEA000) and differed only in the RAM origin (0x20006000 vs 0x20004000). The SoftDevice's RAM requirement is set by the shared Bluefruit config, not the board, so the extra 8 KB was unused. Tested on hardware: BLE comes up, and a phone connects and syncs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: build the same modules as other nRF52 boards Drop the variant's module exclusions and the -<mqtt/> source filter. nRF52 boards keep MQTT for the phone client proxy, and audio/paxcounter are already excluded for the whole platform in nrf52.ini. Flash use is 89.5%, in line with t-echo (88.7%). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: probe SX1262/SX1268 and TCXO/XTAL at boot Define both radio types and TCXO_OPTIONAL so initLoRa() picks whichever chip answers (RadioLib tells them apart by the version string) and falls back from a DIO3 TCXO to the crystal. The boot log reports the result. The test unit reports "SX1262 init success, XTAL, Vref 0.0V". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: map the six keys to the trackball and cancel buttons Use the existing trackball driver for up/down/left/right/select (B key) and CANCEL_BUTTON_PIN for the A key, which also gets the SENSE wake from System OFF. Same pattern as the Wio Tracker L1 e-ink. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: power on/off through the power MCU Nodara's power button goes to an always-on power MCU, which reports it as Modbus RTU frames on a receive-only 1200 baud line (Serial2, P1.00). Handle it in extra_variants: a shutdown request takes the standard shutdownAtMsec path, and on a power-on reset boot waits up to 5.5 s for the power-on confirm the MCU sends once the button has been held long enough. Also give Serial2 a valid TX pin so the core doesn't index the pin map with -1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: fix cppcheck and millis() deadline lint in the power MCU link Zero-initialize the frame buffers and use Throttle::deadlinePassed() for the power-on wait. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: report the NODARA hardware model Map NODARA to meshtastic_HardwareModel_NODARA and add the flasher metadata (hw model 151, slug, display name, tags, support level). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: power MCU link review fixes Scan every buffered frame for the power-on confirm, poll the idle line every 250 ms instead of 20 ms, and name the boot wait as the uptime deadline it is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Nodara: menu shutdown points at the power button A software shutdown leaves the board powered, since the power MCU only cuts power on its own button. Add POWER_BUTTON_SHUTDOWN_HINT: when a variant defines it, the Shutdown menu shows it as a notification instead of the confirmation. Nodara sets it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: steve.su <steve.su@sainstore.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
50 lines
1.2 KiB
JSON
50 lines
1.2 KiB
JSON
{
|
|
"build": {
|
|
"arduino": {
|
|
"ldscript": "nrf52840_s140_v6.ld"
|
|
},
|
|
"core": "nRF5",
|
|
"cpu": "cortex-m4",
|
|
"extra_flags": "-DNRF52840_XXAA -DNODARA",
|
|
"f_cpu": "64000000L",
|
|
"hwids": [["0x239A", "0x4405"]],
|
|
"usb_product": "Nodara",
|
|
"mcu": "nrf52840",
|
|
"variant": "nodara",
|
|
"variants_dir": "variants/nrf52840",
|
|
"bsp": {
|
|
"name": "adafruit"
|
|
},
|
|
"softdevice": {
|
|
"sd_flags": "-DS140",
|
|
"sd_name": "s140",
|
|
"sd_version": "6.1.1",
|
|
"sd_fwid": "0x00B6"
|
|
},
|
|
"bootloader": {
|
|
"settings_addr": "0xFF000"
|
|
}
|
|
},
|
|
"connectivity": ["bluetooth"],
|
|
"debug": {
|
|
"jlink_device": "nRF52840_xxAA",
|
|
"onboard_tools": ["jlink"],
|
|
"svd_path": "nrf52840.svd",
|
|
"openocd_target": "nrf52840-mdk-rs"
|
|
},
|
|
"frameworks": ["arduino"],
|
|
"name": "Nodara (Adafruit BSP)",
|
|
"upload": {
|
|
"maximum_ram_size": 237568,
|
|
"maximum_size": 802816,
|
|
"speed": 115200,
|
|
"protocol": "nrfutil",
|
|
"protocols": ["jlink", "nrfjprog", "nrfutil", "stlink"],
|
|
"use_1200bps_touch": true,
|
|
"require_upload_port": true,
|
|
"wait_for_upload_port": true
|
|
},
|
|
"url": "https://github.com/RadiodditySmartMaker/firmware/tree/nodara-dev",
|
|
"vendor": "Nodara"
|
|
}
|